~: 展开为用户的主目录shell
~USERNAME:展开为指定用户的主目录bash
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径ide
1 练习: 2 (1) 如何建立/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b 3 mkdir /tmp/x/{y1,y2}/{a,b} 4 5 (2) 如何建立x_m, y_m, x_n, y_n 6 mkdir {x,y}_{m,n} 7 8 (3) 如何建立/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin 9 mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
经过alias命令实现:工具
(1) aliasspa
显示当前shell进程全部可用的命令别名;命令行
(2) alias NAME='VALUE'code
定义别名NAME,其至关于执行命令VALUE;blog
注意:在命令行中定义的别名,仅对当前shell进程有效;若是想永久有效,要定义在配置文件中;排序
小Tips:进程
编辑配置给出的新配置不会当即生效,须要让bash进程从新读取配置文件:source /path/to/config_file 或 . /path/to/config_file
撤消别名:unalias
unalias [-a] name [name ...]
Note: 若是别名同原命令的名称,则若是要执行原命令,可以使用"\COMMAND";
Ctrl+a:跳转至命令开始处;
Ctrl+e:跳转至命令结尾处;
Ctrl+c:取消命令的执行;
Ctrl+u: 删除命令行首至光村所在处的全部内容;
Ctrl+k: 删除光标所在处至命令行尾部的全部内容;
程序:指令+数据
读入数据:Input
输出数据:Output
打开的文件都有一个fd: file descriptor (文件描述符)
标准输入:keyborad(键盘), 0
标准输出:monitor(显示器), 1
标准错误输出:monitor, 2
I/O重定向:改变标准位置
1)输出重定向
COMMAND > NEW_POS, COMMAND >> NEW_POS
>:覆盖重定向,目标文件中的原有内容会被清除;
>>: 追加剧定向,新内容会追加至目标文件尾部;
# set -C: 禁止将内容覆盖输出至已有文件中;
# set +C:取消进制
2>: 覆盖重定向错误输出数据流;
2>>: 追加剧定向错误输出数据流;
标准输出和错误输出各自定向至不一样位置:
COMMAND > /path/to/file.out 2> /path/to/error.out
合并标准输出和错误输出为同一个数据流进行重定向:
&>:覆盖重定向
&>>:追加剧定向
COMMAND > /path/to/file.out 2> &1
COMMAND >> /path/to/file.out 2>> &1
2)输入重定向:<
tr命令:转换或删除字符
命令格式:tr [OPTION]... SET1 [SET2]
HERE Documentation:<<
# cat << EOF
# cat > /path/to/somefile << EOF
管道:一个命令的输出能够经过管道作为另外一个命令的输入。
管道咱们能够理解现实生活中的管子,管子的一头塞东西进去,另外一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
例:ls -alh | more # 将当前路径下的文件的详细信息按照分页的方式打印在屏幕上
1 练习: 2 一、将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中; 3 # head -n 5 /etc/passwd | tr "a-z" "A-Z" > passwd.out 4 二、将登陆至将前系统上用户信息中的后3行的信息转换为大写后保存至/tmp/who.out文件中; 5 # who | tail -n 3 | tr 'a-z' 'A-Z' > /tmp/who.out
wc命令:
命令格式:wc [OPTION]... [FILE]...
cut命令:
命令格式:cut [OPTION]... [FILE]...
sort命令:
命令格式:sort [OPTION]... [FILE]...
uniq命令:
命令格式:uniq [OPTION]... [FILE]...