shell常用命令整理
只整理一些平时想用,可能又突然记不起来的命令和用法。都是基于bash。
如果不想在命令行使用man来阅读手册,可以在这个网站查看 http://explainshell.com/
概述
- 学会使用
man命令,查看特定命令的手册。man -k或apropos,可以在你不知道执行某个特定任务所需要命令的名称时,查找这个命令。 - 学会使用
>和<来重定向输入输出,用|建立管道。 - 学习使用通配符。
- 学习使用bash的任务管理器,
&,ctrl-z,ctrl-c,jobs,fg,bg,kill,killall等。 - 学习使用ssh, 并且知道如果通过
ssh-agent,ssh-add等实现无密码认证。 - 掌握文件管理命令,
ls,less,head,tail,lnln -s(硬链接/软链接),chown,chmod,du等。 - 掌握文件系统命令,
df,mount,fdisk,mkfs,lsblk等。 - 熟练掌握正则表达式,以及
grep/egrep/fgrep工具。有必要知道 -i, -o, -A, -a 以及 -B 选项的意思。 - 学习基本的网络管理命令,
ifconfig,dig等。 - 学习使用包管理器,针对不同的linux发行版本有不同的包管理器,
apt-get,yum,brew等。 - 学习使用打包命令,
tar,zip等。
基础知识
bash组合键
ctrl-a移动到行首ctrl-e移动到行尾ctrl-xx在命令行首和光标之间移动ctrl-u删除整行ctrl-w从光标处删除到词首ctrl-k删除到行尾ctrl-r逆向搜索命令历史ctrl-p历史中上一条命令ctrl-n历史中下一条命令ctrl-lclear,清空屏幕!$上一个参数!!历史中上一条命令
通配符
引号
单引号
'
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。双引号
"
单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,`.
来看一个例子来说明单引号和双引号的区别:
~ x=*
~ echo $x
a b pet.txt wget
~ echo '$x'
$x
~ echo "$x"
*
shell在处理时会先作变量替换,然后作文件名替换,最后把这行处理为参数。
- 反引号
`
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(…)结构括起来,其中,$(…)格式受到POSIX标准支持,也利于嵌套。
~ echo "now is `date`"
now is 2015年 9月13日 星期日 22时23分42秒 CST
~ echo "now is $(date)"
now is 2015年 9月13日 星期日 22时23分55秒 CST
标准输入输出
执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
输入输出重定向
- 输入重定向
输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。所以说,输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。
有<和<<两种操作符。 - 输出重定向
输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中。输出重定向还可以用于把一个命令的输出当作另一个命令的输入(还有一种更简单的方法,就是使用管道)。
>后的文件如果存在,此文件会被重写;>>会追加到文件后面。2>或2>>表示错误输出重定向&>表示将标准输出和错误输出同时写到同一个文件中。管道
管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。
比如很常用的ps -ef | grep resin,结果只会展现出resin的ps信息。
netstat
tar
xargs
文件处理
awk
sed
grep
常用命令
cd -回到上一个目录ls -lh-h表示human-readable,即友好可读的显示方式。ls -lrt以文件修改时间排序ls -lrS以文件大小排序df -h查看各挂载点磁盘使用情况du -hs .查看当前目录的总大小du -hs ./*查看当前目录下文件和目录的大小
附几个dos命令
dir
类似于ls
rd /s/q ${path}
递归删除路径
参考
- explain shell: 在线查看shell命令
- awesome shell: 精心列出shell相关工具和资源