这 7 个 Linux 命令,你是怎么来使用的?
时间:2021-10-18 16:30:56
手机看文章
扫描二维码
随时随地手机看文章
[导读]使用Linux系统的开发者,很多人都有自己喜欢的系统命令,下面这个几个命令令是我平常用的比较多的,分享一下。我不会教科书般的罗列每个指令的详细用法,只是把日常开发过程中的一些场景下,经常使用的命令常见用法进行演示。希望对您有小小的帮助~~也非常欢迎各位大侠,在留言区分享您的私房命...
使用Linux系统的开发者,很多人都有自己喜欢的系统命令,下面这个几个命令令是我平常用的比较多的,分享一下。
No.1 grep
grep、awk、sed 这三个指令,作为Linux系统中文本处理的三大法宝,我最喜欢、最常用的就是grep指令,没有之一!
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
看起来有那么的选项,我最常用的是这2个场景:
root 4681 0.0 0.1 24892 5912 pts/3 Ss 10:10 0:00 bash
root 18052 0.0 0.0 15968 960 pts/3 S 13:38 0:00 grep --color=auto bash
可以看到,结果中出现了grep这个指令自身的进程信息,可以通过-v选项过滤掉它:
root 4681 0.0 0.1 24892 5912 pts/3 Ss 10:10 0:00 bash
最后,再结合awk命令,就可以把进程ID 4681提取出来了:
4681
在一些脚本工具中,这样的用法还是很常见的。
No.2 q
看到这个指令,您一定会疑惑:仅仅一个字母 q,这是何方神圣?
强迫症的问题是解决了,但是由于这条指令使用的太频繁了,需要敲那么多的字符,还要结合shift按键。
alias la='ls -A'
alias l='ls -CF'
alias q='echo $?'
这样的话,每次执行完一条系统命令之后,随手敲一个字母 q就可以检查执行结果了,省时省力!
No.3 pwd
可能有些人会奇:pwd怎么会是常用命令呢?它的作用是打印当前路径,在命令行窗口中,路径是一直显示出来的啊!
但是这里有一个小小的问题:如果终端窗口的大小并不是全屏的,如果目录层次比较深,那么显示的路径信息就会特别的长,这样的话,本来就不太宽的终端窗口就显得很挤,输入命令的时候很可能要折返到下一行去。
也就是把前面的~/OpenSource/linux-4.15/samples路径信息都丢掉,这样的话,终端窗口中就有足够的空间来输入了。
PS1='${debian_chroot: ($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot: ($debian_chroot)}\u@\h:\w\$ '
fi
找到上面这几行内容,把最后面的\w修改成\W即可,也就是小写的w改成大写的W。
No.4 find
find命令用来查找符合指定条件的文件。
或者按照后缀名来查找文件:
No.5 history
history用来记录执行过的命令,如果您很少使用这条命令,那说明您的记忆力很好!
那么,结果中将只会显示带有gcc字眼的那些命令。
几分钟之后,我想再次执行这条命令,可以这么做:
(reverse-i-search)`':
这时,可以输入命令最前面的几个字母:gcc -m,此时终端就会到历史命令记录中去查找,输入的字符越多,匹配就越精确。
No.6 od
od命令用来输出给定文件的内容。
main是Linux系统中的可执行程序,当然也就是ELF格式了。
No.7 for
for这个命令,常常出现在脚本文件中,用来处理循环的情况,比如:遍历文件、计数,例如:
for file in /tmp/*;
do
echo $file;
done
我在使用for的时候,最常用的场景是给很多相同后缀的文件,按顺序进行重命名:
这里是按照纯数字来重命名的,也可以根据需要加上前缀等字符串。
解决方法是:在终端窗口中,先执行一下这个命令:
'
然后,再执行批量重命名命令,就不会出现错误了!
if [ $# -eq 0 ];then
sufix=mp4
else
sufix=$1
fi
IFS='
'
i=0;for x in *.$sufix; do n=$(printf "d" "$i"); mv $x $n.$sufix; let i=i 1; done
只要执行./file_rename.sh,就会默认把当前目录下所有mp4文件进行重命名。
------ End ------期待您在留言区分享自己的私房指令,任何技术问题可以探讨!
No.1 grep
grep、awk、sed 这三个指令,作为Linux系统中文本处理的三大法宝,我最喜欢、最常用的就是grep指令,没有之一!
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
看起来有那么的选项,我最常用的是这2个场景:
-r: 递归查找;2. 查看某个进程的相关信息,例如:进程 ID
-n:打印行号;
-i: 不区分大小写;
root 4681 0.0 0.1 24892 5912 pts/3 Ss 10:10 0:00 bash
root 18052 0.0 0.0 15968 960 pts/3 S 13:38 0:00 grep --color=auto bash
可以看到,结果中出现了grep这个指令自身的进程信息,可以通过-v选项过滤掉它:
root 4681 0.0 0.1 24892 5912 pts/3 Ss 10:10 0:00 bash
最后,再结合awk命令,就可以把进程ID 4681提取出来了:
4681
在一些脚本工具中,这样的用法还是很常见的。
No.2 q
看到这个指令,您一定会疑惑:仅仅一个字母 q,这是何方神圣?
强迫症的问题是解决了,但是由于这条指令使用的太频繁了,需要敲那么多的字符,还要结合shift按键。
alias la='ls -A'
alias l='ls -CF'
alias q='echo $?'
这样的话,每次执行完一条系统命令之后,随手敲一个字母 q就可以检查执行结果了,省时省力!
No.3 pwd
可能有些人会奇:pwd怎么会是常用命令呢?它的作用是打印当前路径,在命令行窗口中,路径是一直显示出来的啊!
但是这里有一个小小的问题:如果终端窗口的大小并不是全屏的,如果目录层次比较深,那么显示的路径信息就会特别的长,这样的话,本来就不太宽的终端窗口就显得很挤,输入命令的时候很可能要折返到下一行去。
也就是把前面的~/OpenSource/linux-4.15/samples路径信息都丢掉,这样的话,终端窗口中就有足够的空间来输入了。
PS1='${debian_chroot: ($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot: ($debian_chroot)}\u@\h:\w\$ '
fi
找到上面这几行内容,把最后面的\w修改成\W即可,也就是小写的w改成大写的W。
No.4 find
find命令用来查找符合指定条件的文件。
或者按照后缀名来查找文件:
No.5 history
history用来记录执行过的命令,如果您很少使用这条命令,那说明您的记忆力很好!
那么,结果中将只会显示带有gcc字眼的那些命令。
几分钟之后,我想再次执行这条命令,可以这么做:
(reverse-i-search)`':
这时,可以输入命令最前面的几个字母:gcc -m,此时终端就会到历史命令记录中去查找,输入的字符越多,匹配就越精确。
No.6 od
od命令用来输出给定文件的内容。
main是Linux系统中的可执行程序,当然也就是ELF格式了。
-Ax: 显示地址的时候,用十六进制来表示。如果使用 -Ad,意思就是用十进制来显示地址;可以看出main文件最开始的四个字节:7f 是 ELF 文件的魔数,45 4c 46 是 "ELF" 3个字母。-t -x1: 显示字节码内容的时候,使用十六进制(x),每次显示一个字节(1);
-N 52:只需要读取 52 个字节;
No.7 for
for这个命令,常常出现在脚本文件中,用来处理循环的情况,比如:遍历文件、计数,例如:
for file in /tmp/*;
do
echo $file;
done
我在使用for的时候,最常用的场景是给很多相同后缀的文件,按顺序进行重命名:
这里是按照纯数字来重命名的,也可以根据需要加上前缀等字符串。
解决方法是:在终端窗口中,先执行一下这个命令:
'
然后,再执行批量重命名命令,就不会出现错误了!
if [ $# -eq 0 ];then
sufix=mp4
else
sufix=$1
fi
IFS='
'
i=0;for x in *.$sufix; do n=$(printf "d" "$i"); mv $x $n.$sufix; let i=i 1; done
只要执行./file_rename.sh,就会默认把当前目录下所有mp4文件进行重命名。
------ End ------期待您在留言区分享自己的私房指令,任何技术问题可以探讨!