shell 命令
1.1 记录历史命令
!! : 表示执行上一条命令
!n : 这里n表示数字 ,表示执行命令历史中的第n 条命令
! 字符串(字符串大于等于1) : 以字符串中字母查找最近一次使用字符串字母开头的命令
1.2 命令 和文件名补全
TAB 补全
1.3 别名
alias 可以把一个很长得指令变成简短易记得指令 , 如果不想用可以用unalias命令解除别名功能
alias 格式为 alias 【命令别名】= 【‘具体命令’】
1.4 通配符
在bash下,可以使用*来匹配零个或多个字符,用?匹配一个字符
1.5 输入/输出重定向
< 输入重定向
> 输出重定向
2> 错误重定向
>> 追加重定向
1.6 管道符
| 用于将前一个指令输出作为后一个指令输出
1.7 作业控制
当运行进程是,可以使用 CTRL+Z组合键暂停,然后使用fg(foreground)命令恢复, 利用bg(background)命令使它到后台运行。此外,你也可以使它终止(CTRL+C)
2.1 命令env
HOSTNAME: 表示主机得名称
SHELL : 表示当前用户得shell类型
HISTSIZE : 表示历史记录数
MAIL : 表示当前用户的邮件存放目录
PATH : 该变量决定了shell将到哪些目录中寻找命令或程序
PWD 表示当前目录
LANG 这是与语言相关的环境变量,多语言环境可以修改此次环境变量。
HOME 表示当前用户家目录
LOGNAME 表示当前用户的登录名
2.2 命令set
允许系统内所有用户登录后都能使用该变量。具体的操作方法是:在/etc/profile文件的最后- 一
行加人export myname -Aming,然后运行source /etc/profile就可以生效了 。此时再运行bash
命令或者切换到其他账户(如su - test) 就可以看到效果。
仅允许当前用户使用该变量。具体的操作方法是:在用户主目录下的.bashre文件的最后- -行
加入export myname nAming,然后运行source .bashrc就可以生效了。 这时再登录test账户,
myname变量则不会生效了。这里source命令的作用是将目前设定的配置刷新,即不用注销再
登录也能生效。
设定变量的格式为a=b,其中a为变量名,b为变量的内容,等号两边不能有空格。
变量名只能由字母、数字以及下划线组成,而且不能以数字开头。
当变量内容带有特殊字符(如空格)时,需要加上单引号。
3.1 系统环境变量与个人环境变量得配置文件
- /etc/profile:这个文件预设了几个重要的变量,例如PATH、 USER、 LOGNAME . MAIL. INPUTRC .
HOSTNAME、HISTSIZE 、umask等。
- /etcbashre:这个文件主要预设umask以及PS1。这个PS1就是我们在输人命令时前而的那串字符。
其中,\u指用户,\h指主机名,\W指 当前目录,\$ 指字符# (如果是普通用户,则显示为$ )。
除了以.上两个系统级别的配置文件外,每个用户的主目录下还有以下几个隐藏文件。
- .bash. profile: 该文件定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用
该文件输人专属于自己的shell信息,当用户登录时,该文件仅仅执行一-次。
- .bashre: 该文件包含专属于自已的shel的bash信息,当登录或每次打开新的shell时,该文件
会被读取。例如,你可以将用户自定义的别名或者自定义变量写到这个文件中。
- bash. history: 该文件用于记录命令历史。
- bash_ logout: 当退出e时,会执行该文件。你可以将一些清理的工作放到这个文件中。
4.1 * 代表零个或多个任意字符
4.2 ? 只代表一个任意字符
4.3 注释符号#
4.4 脱义字符\
4.5 管道符|
4.6 命令cut
cut命令用来截取某-一个字段,其格式为cut -d '分隔字符'[-cf] n,这里的n是数字。该命令有如
下几个可用选项。
-d:后面跟分隔字符,分隔字符要用单引号括起来。
-C:后面接的是第几个字符。
-f:后面接的是第几个区块。
4.7命令sort
sort命令用做排序,其格式为sort [-t分隔符] [-kn1,n2] [-nru], 这里n1和n2指的是数字,其
他选项的含义如下。
-t:后面跟分隔字符,作用跟cut的-d选项-一样。
-n:表示使用纯数字排序。
-r:表示反向排序。
-u: 表示去重复。
-kn1,n2: 表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序。
4.8 命令wc
wc命令用于统计文档的行数、字符数或词数。该命令的常用选项有-1 (统计行数)、-m (统计字符
数)和-W(统计词数)。
4.9 命令uniq
uniq命令用来删除重复的行,该命令只有-c选项比较常用,它表示统计重复的行数,并把行数写
在前面。
使用uniq前,必须先给文件排序,否则不管用。
4.10 命令 tee
tee命令后面跟文件名,其作用类似于重定向>,但它比重定向多-一个功能,即把文件写人后面所
跟的文件时,还显示在屏幕上。该命令常用于管道符|后。
4.11 命令 tr
tr命令用于替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的符号^M。该命令
常用的选项有以下两个。
口-d:表示删除某个字符,后而跟要删除的字符。
口-S:表示删除重复的字符。
tr命令常用于把小写字母变成大写字母,如tr '[a-z]' '[A-Z]'。
tr命令还可以替换一个字符
不过替换、删除以及去重复等操作都是针对-一个字符来讲的,有一定的局限性。如果是针对- -个
字符串,就不能再使用了,所以你只需简单了解一下tr命令即可。以后,你还会学到更多可以实现字
符串操作的工具。
4.12 命令 split
该命令用于切割文档 常用选项 -b -l
-b 表示依据大小来分割文档,单位为byte。
-l 表示依据行数来分割文档。
4.13 特殊符号$
可以用作变量前面得表示符,还可以和! 结合起来使用。
4.14 特殊符号;
通常,我们都是在- -行中输入一个命令,然后回车就运行了。如果想在一行中运行两个或两个以
上的命令,需要在命令之间加符号;。
4.15 特殊符号 ~
符号~表示用户的家目录,
root用户的家目录是/root,普通用户则是/home/usermame。
4.16 特殊符号 &
如果想把- -条命令放到后台执行,则需要加上符号8,它通常用于命令运行时间较长的情况。比
如,可以用在sleep后。
4.17 重定向符号>、>>、2>和2>>
前面讲过重定向符号>和1>>,它们分别表示取代和追加的意思。当我们运行一个命令报错时,报
错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>.它们分别表示
错误重定向和错误追加重定向。
4.18 中括号【】
中括号内为字符组合,代表字符组合中的任意-一个,可以是一个范围(1-3,a-z)。
4.19 特殊符号 &&和 ||
前面提到了分号可作为多条命令间的分隔符,其实还有两个可以用于多条命令中间的特殊符号,
那就是&&和||。下面列出以下几种情况:
commnand1 ; commnand2
command1 && command2
comnand1|l comnand2
使用;时,不管command1是 否执行成功,都会执行command2。
使用&&时,只有command1执行成功后, command2才 会执行,否则command2不执行。
使用| |时,command1执行成功后 则command2不执行,否则执行comand2,即command1 和command2中
总有一-条命令会执行。