Linux常用小技巧

Linux常用小技巧

    • 命令编辑及光标移动
      • 删除从开头到光标处的命令文本
      • 删除从光标到结尾处的命令文本
  • 历史命令快速执行
    • 部分历史命令查看
    • 实时查看日志
    • 磁盘或内存情况查看
        • 当前目录各个子目录占用空间大小
        • 当前内存使用情况
    • 根据名称查找进程id
    • 根据名称杀死进程
    • 查看进程运行时间
    • 多条命令执行
    • 查看压缩日志文件
    • 计算程序运行时间
    • 查看内存占用前10的进程
    • 快速查找你需要的命令
    • 搜索包含某个字符串的文件
    • 屏幕冻结

命令编辑及光标移动

这里有很多快捷键可以帮我们修正自己的命令。接下来使用光标二字代替光标的位置。

删除从开头到光标处的命令文本

ctrl + u,例如:

$ cd /proc/tty;ls -al 光标

如果此时使用ctrl + u快捷键,那么该条命令都会被清除,而不需要长按backspace键。

删除从光标到结尾处的命令文本

ctrl+k,例如:

$ cd /proc/tty光标;ls -al

如果此时使用ctrl + k快捷键,那么从光标开始处到结尾的命令文本将会被删除。

还有其他的操作,不再举例,例如:

  • ctrl + a:光标移动到命令开头
  • ctrl + e:光标移动到命令结尾
  • alt + f:光标向后移动一个单词
  • alt + b:光标向前移动一个单词
  • ctrl + w:删除光标前面一个词(以空格隔开的字符串)

历史命令快速执行

我们都知道history记录了执行的历史命令,而使用!+历史命令前的数字,可快速执行历史命令。另外,还可以使用ctrl+r搜索执行过的命令。

部分历史命令查看

history会显示大量的历史命令,而fc -l只会显示部分。
Linux常用小技巧_第1张图片

实时查看日志

$ tail -f filename.log

tail -f 加文件名,可以实时显示日志文件内容。当然,使用less命令查看文件内容,并且使用shift+f键,也可达到类似的效果。

磁盘或内存情况查看

$ df -h

Linux常用小技巧_第2张图片
使用df命令可以快速查看各挂载路径磁盘占用情况。

当前目录各个子目录占用空间大小

如果你已经知道home目录占用空间较大了,你想知道home目录下各个目录占用情况:

$ du -h --max-depth=1 /home/gugu/
$ du -h -d 1 /home/gugu/

Linux常用小技巧_第3张图片
这里指定了目录深度,否则的话,它会递归统计子目录占用空间大小。

当前内存使用情况

$ free -h

在这里插入图片描述
通过free的结果,很容易看到当前总共内存多少,剩余可用内存多少等等。

根据名称查找进程id

想快速直接查找进程id,可以使用:

$ pgrep sshd
$ pidof sshd

需要注意的是pgrep 是模糊匹配的,pidof是全词匹配

Linux常用小技巧_第4张图片

根据名称杀死进程

一般我们可以使用kill -9 pid方式杀死一个进程,但是这样就需要先找到这个进程的进程id,实际上我们也可以直接根据名称杀死进程,例如:

$ killall sshd
# 或者下面的方式
$ pkill sshd

查看进程运行时间

可以使用下面的命令查看进程已运行时间:

$ ps -p 1299 -o lstart,etime

在这里插入图片描述
其中1299是你要查看进程的进程id。

多条命令执行

我们知道使用分号隔开可以执行多条命令,例如:

$ 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

它会显示系统时间,用户时间以及实际使用的总时间。

查看内存占用前10的进程

$ ps -aux | sort -k4nr | head -n 10

Linux常用小技巧_第5张图片

快速查找你需要的命令

我们都知道man可以查看命令的帮助手册,但是如果我们想要某个功能却不知道使用哪个命令呢?别着急,还是可以使用man:

$ man -k "copy files"

在这里插入图片描述
使用-k参数,使得与copy files相关的帮助手册都显示出来了。

搜索包含某个字符串的文件

例如,要在当前目录下查找包含test字符串的文件:

$ grep -rn "test"

它便可以找到该字符串在哪个文件的第几行。

屏幕冻结

程序运行时,终端可能输出大量的日志,你想简单查看一下,又不想记录日志文件,此时可以使用ctrl+s键,冻结屏幕,使得日志不再继续输出,而如果想要恢复,可使用ctrl+q退出冻结。

欢迎大佬补充哈

你可能感兴趣的:(linux,bash,运维)