这里有很多快捷键可以帮我们修正自己的命令。接下来使用光标二字代替光标的位置。
ctrl + u,例如:
$ cd /proc/tty;ls -al 光标
如果此时使用ctrl + u快捷键,那么该条命令都会被清除,而不需要长按backspace键。
ctrl+k,例如:
$ cd /proc/tty光标;ls -al
如果此时使用ctrl + k快捷键,那么从光标开始处到结尾的命令文本将会被删除。
还有其他的操作,不再举例,例如:
我们都知道history记录了执行的历史命令,而使用!+历史命令前的数字,可快速执行历史命令。另外,还可以使用ctrl+r搜索执行过的命令。
history会显示大量的历史命令,而fc -l只会显示部分。
$ tail -f filename.log
tail -f 加文件名,可以实时显示日志文件内容。当然,使用less命令查看文件内容,并且使用shift+f键,也可达到类似的效果。
$ df -h
如果你已经知道home目录占用空间较大了,你想知道home目录下各个目录占用情况:
$ du -h --max-depth=1 /home/gugu/
$ du -h -d 1 /home/gugu/
这里指定了目录深度,否则的话,它会递归统计子目录占用空间大小。
$ free -h
通过free的结果,很容易看到当前总共内存多少,剩余可用内存多少等等。
想快速直接查找进程id,可以使用:
$ pgrep sshd
$ pidof sshd
需要注意的是pgrep 是模糊匹配的,pidof是全词匹配
一般我们可以使用kill -9 pid方式杀死一个进程,但是这样就需要先找到这个进程的进程id,实际上我们也可以直接根据名称杀死进程,例如:
$ killall sshd
# 或者下面的方式
$ pkill sshd
可以使用下面的命令查看进程已运行时间:
$ ps -p 1299 -o lstart,etime
我们知道使用分号隔开可以执行多条命令,例如:
$ cd /temp/log/;rm -rf *
但是如果当前目录是/目录,并且/temp/log目录不存在,那么就会发生激动人心的一幕:
bash: cd: /temp/log: No such file or directory
因为;可以执行多条命令,但是不会因为前一条命令失败,而导致后面的不会执行,因此,cd执行失败后,仍然会继续执行rm -rf *,由于处于/目录下,结果可想而知。
如果解决呢?很简单,使用&&,例如:
$ cd /temp/log/ && rm -rf *
有时候日志文件是压缩的,那么能不能偷懒一下,不解压查看呢?
例如:
$ zcat test.gz
test log
# 或者
$ zless test.gz
test log
我们可能会进程写一些小程序,并且想要知道它的运行时间,实际上我们可以很好的利用time命令帮我们计算,例如:
$ time ./fibo 30
the 30 result is 832040
real 0m0.088s
user 0m0.084s
sys 0m0.004s
它会显示系统时间,用户时间以及实际使用的总时间。
$ ps -aux | sort -k4nr | head -n 10
我们都知道man可以查看命令的帮助手册,但是如果我们想要某个功能却不知道使用哪个命令呢?别着急,还是可以使用man:
$ man -k "copy files"
使用-k参数,使得与copy files相关的帮助手册都显示出来了。
例如,要在当前目录下查找包含test字符串的文件:
$ grep -rn "test"
它便可以找到该字符串在哪个文件的第几行。
程序运行时,终端可能输出大量的日志,你想简单查看一下,又不想记录日志文件,此时可以使用ctrl+s键,冻结屏幕,使得日志不再继续输出,而如果想要恢复,可使用ctrl+q退出冻结。
欢迎大佬补充哈