|
1. 判断命令是否正常结束?
设置 PS1 的时候,用这个代替:
export PS1="\$? [\u@\h \w]\$ "
范例:
0 [william@fantasy ~]$ true
0 [william@fantasy ~]$ false #0 是 成功
1 [william@fantasy ~]$ 1 #1 是 失败
bash: 1: command not found
127 [william@fantasy ~]$ #127 是 失败
一般来说,非 0 就是有问题。除非有特殊说明。
2. 让你看到命令都是如何运行的。
每次开启一个新的shell的时候,运行 set -x。
在为 lfs 用户设置 .bashrc 文件的时候,加入同样的命令 set -x。
想关闭效果,执行 set +x 即可。
效果:
$ export CLFS_HOST="$(echo $MACHTYPE | sed "s/$(echo $MACHTYPE | cut -d- -f2)/cross/")"
+++ echo i686-pc-linux-gnu
+++ cut -d- -f2
++ echo i686-pc-linux-gnu
++ sed s/pc/cross/
+ export CLFS_HOST=i686-cross-linux-gnu
+ CLFS_HOST=i686-cross-linux-gnu
$
可以清楚的看到所有的运行内容,就不用瞎猜到底运行的是什么命令了。
3. LiveCD 中 sshd 的使用。
设置网络
ip addr add 192.168.0.1/24 dev eth0
设置 root 密码
passwd root
启动 ssh 服务
/etc/rc.d/init.d/sshd start
在别的机器登录就可以了
ssh root@192.168.0.1
4. 智能打补丁脚本 spatch (Smart Patch)。见附件。
(这个其实不算技巧,如果才学习Linux的最好不要用,因为你不理解什么意思,反而对学习没帮助。)
以前上传过,但是一下子找不到。
下载解压,然后 chmod +x spatch,再 mv spatch /usr/bin就可以了。
用法例子:
例1.
$ spatch ../../src/binutils-2.17-posix-1.patch #第一次打
+ spatch ../../src/binutils-2.17-posix-1.patch
patching file gas/Makefile.am
Hunk #1 succeeded at 771 (offset 9 lines).
patching file gas/Makefile.in
Hunk #1 succeeded at 3108 (offset -56 lines).
patching file ld/testsuite/ld-bootstrap/bootstrap.exp
patching file ltcf-c.sh
patching file ltcf-gcj.sh
patching file src-release
Hunk #1 succeeded at 72 (offset 3 lines).
=============== SUMMARY ==============
../../src/binutils-2.17-posix-1.patch OK (+p1)
例2.
$ spatch ../../src/binutils-2.17-posix-1.patch #(再打一次,重复了)
+ spatch ../../src/binutils-2.17-posix-1.patch
=============== SUMMARY ==============
../../src/binutils-2.17-posix-1.patch APPLIED (+p1)
例3.
$ spatch ../../src/binutils-2.17-{b,p}*
+ spatch ../../src/binutils-2.17-branch_update-2.patch ../../src/binutils-2.17-posix-1.patch
patching file bfd/bfd-in2.h
patching file bfd/bfd-in.h
patching file bfd/ChangeLog
patching file bfd/coffcode.h
patching file bfd/cpu-m68k.c
patching file bfd/elflink.c
patching file bfd/version.h
patching file binutils/ChangeLog
patching file binutils/wrstabs.c
patching file configure.in
patching file gas/ChangeLog
patching file gas/symbols.c
patching file ld/ChangeLog
patching file ld/ldcref.c
patching file ld/ld.h
patching file ld/ldlang.c
patching file ld/ldmain.c
patching file ld/testsuite/ChangeLog
patching file ld/testsuite/ld-m68k/m68k.exp
patching file ld/testsuite/ld-m68k/merge-ok-1c.d
patching file ld/testsuite/ld-scripts/empty-orphan.d
patching file ld/testsuite/ld-scripts/empty-orphan.t
patching file gas/Makefile.am
Hunk #1 succeeded at 771 (offset 9 lines).
patching file gas/Makefile.in
Hunk #1 succeeded at 3108 (offset -56 lines).
patching file ld/testsuite/ld-bootstrap/bootstrap.exp
patching file ltcf-c.sh
patching file ltcf-gcj.sh
patching file src-release
Hunk #1 succeeded at 72 (offset 3 lines).
=============== SUMMARY ==============
../../src/binutils-2.17-branch_update-2.patch OK (+p1)
../../src/binutils-2.17-posix-1.patch OK (+p1)
好处是可以带多个文件,也不用去考虑 -p1/-p2 等参数,已经打过的补丁会自动识别。欢迎大家提出改进建议。
5. 巧用 screen
初学者对screen也许很陌生,简单介绍一下,就是一个窗口中可以控制和切换到多个终端。
建议在~/.screenrc里边加入如下内容:hardstatus string '%{= wK}%-Lw%{= KW}%50>%n%f* %t%{= wK}%+Lw%< %{= KW}%-=%D %d %M '
hardstatus alwayslastline
# change key to C-o 用C-o 而不是 C-a,C=Ctrl
#defescape ^Oo
#escape ^Oo
termcapinfo xterm*|rxvt*|kterm*|Eterm*|putty*|dtterm* ti@:te@:G0
#use terminals scrollback
autodetach on
startup_message off
# auto change tab name
shelltitle $|bash
vbell off
deflogin off 启动命令就是 screen。
常用操作有:新开一个终端 C-a c,和上一个终端切换 C-a a,切换到前/后一个终端 C-a p/n,退出当前终端就是exit了。
如果是不小心关了图形终端(如konsole),那么你可以再打开一个konsole,然后 screen -RR 就可以恢复了。
screen是一个C/S架构,有关更深入的学习请去google:)。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|