3.16 shell

shell

1、记录命令历史
!是与命令历史有关的一个特殊字符,常用有3个:

  • !! :连续两个!表示执行上一条命令
  • !n:n为数字,表示执行命令历史的第n条命令
  • !字符串:字符串大于等于1,如!pw,表示执行命令历史中最近一次以pw开头的命令

2、命令和文件名补全: tab键可以帮我们补全一个指令、一个路径或一个文件名

3、别名

  • alias:把常用并且很长的指令领取名为一个简单易记的指令
  • unalias:解除别名
  • 自定义命令的别名:alias[命令别名]=[‘具体的命令’]

4、通配符: 用*来匹配零个或多个字符,用?匹配一个字符

5、输入/输出重定向

  • 输出重定向:> 用于改变命令的输出
  • 输入重定向:< 用于改变命令的输入
  • 错误重定向:2>
  • 追加重定向:>>

6、管道符: 用于将前一个指令的输出作为后一个指令的输入,如:# cat /etc/passwd|wc -l

7、作业控制

  • Ctrl+Z:暂停运行进程
  • fg:恢复进程
  • bg:后台重新运行
  • Ctrl+C:终止进程

变量

1、命令env: 可列出系统预设的全部系统变量

  • HOSTNAME:主机的名称
  • SHELL:当前用户的shell类型
  • HISTSIZE:历史记录数
  • MAIL:当前用户的邮件存放目录
  • PATH:该变量决定了shell将到哪些目录中寻找命令或程序
  • PWD:当前目录
  • LANG:这是与语言相关的环境变量,多语言环境可以修改此环境变量
  • HOME:当前用户的家目录
  • LOGNAME:当前用户的登录名

2、命令set: 和env类似,输出系统预设变量,也显示用户自定义的变量,但只能在当前shell中生效

  • 允许系统内所有用户登录后都能使用该变量:在/etc/profil文件最后一行加入export myname=Aming,然后运行source /etc/profile就可以生效了,再运行bash命令或切换其他账号(如su - test)可以看到效果
# echo "export myname=Aming" >> /etc/profile
# source !$
source /etc/profile
# bash
# echo $myname
Aming
  • 仅允许当前用户使用该变量:在用户主目录下的.bashrc文件的最后一行加入export myname=Aming,然后允许source .bashrc就可以生效了
  • 设置变量的格式为a=b,其中a为变量名,b为变量内容,=两边不能有空格
  • 变量名只能由字母、数字以及下划线组成,不能以数字开头
  • 当变量内容带有特殊字符(如空格)时,需要加上单引号,变量内容中本身带有单引号,则需要加双引号。
  • 变量内容需要用到其他命令,运行结果可以使用反引号
  • 累加其他变量,需要加双引号

系统环境变量与个人环境变量的配置文件

  • /ect/profile: 这个文件预设了几个重要的变量,如PATH、USER、MAIL等
  • /ect/bashre: 主要预设umask以及PS1(PS1的值:\u指用户、\h指主机名、\w指当前目录、$指字符)
  • .bash_profile: 定义了用户的个人化路径与环境变量的文件名称
  • .bashre: 该文件包含专属于自己的shell的bash信息
  • .bash_history: 用于记录历史记录
  • .bash_logout: 当退出shell时,会执行该文件。可将一些清理工作放进去

linux shell中的特殊符号

*1、代表零个或者多个任意字符

# ls /tmp/4_6/test*
/tmp/4_6/test1  /tmp/4_6/test111  /tmp/4_6/test4

2、?只代表一个任意的字符

# touch /tmp/4_6/testa
# ls /tmp/4_6/test?
/tmp/4_6/test1  /tmp/4_6/test4  tmp/4_6/testa

3、注释符号#
在linux中表示注释说明,即#后面的内容都会被忽略

# abc=123 #aaaa
# echo $abc
123

**4、脱义字符\ **

将后面的特殊符号还原为普通字符

# ls -d test\*
ls:无法访问test*:没有那个文件或目录

5、再说管道符|: 用于将前一个指令的输出作为后一个指令的输入

6、命令cut: 用来截取某一个字符。格式:cut -d ‘分割字符’ [-cf] n,这里的n是数字

  • -d:后面跟分割字符,分割字符要用单引号括起来
  • -c:后面接的是第几个字符
  • -f:后面接的是第几个区块

7、命令sort: 格式:sort [-t 分隔符] [-kn1,n2] [-nru],这里n1,n2指数字,其他选项含义:

  • -t:后面跟分隔符。
  • -n:表示使用纯数字排序。
  • -r:表示反向排序。
  • -u:表示去重复。
  • -kn1,n2:表示n1区间排序到n2区间,可以只写-kn1,即对n1字段排序。

8、命令wc: 用于统计文档的行数、字符数或词数,常用选项-l(统计行数)、-m(统计字符数)、-w(统计词数)

9、命令uniq: 用来删除重复的行,该命令只有-c选项比较常用,表示统计重复的行数,并把行数写在前面。

10、命令tee
类似于重定向>,但比它多一个功能,即把文件写入后面所跟的文件时,还显示在屏幕上。常用于管道符|后。

11、命令tr: 用于替换字符,常用于处理文档中出现的特殊符号,如DOS文档中出现^M,常用选项:

  • -d:表示删除某个字符,后面跟要删除的字符
  • -s:表示删除重复的字符

12、命令split: 用于切割文档,常用选项:

  • -b:表示依据大小来分割文档,单位为byte
# mkdir split_dir
# cd !$
cd split_dir
# cp /etc/passwd ./
# split -b 500 passwd
# ls
passwd xaa xab xac xad xae
  • -l:表示依据行数来分割
# rm -f 123a*
# split -l 10 passwd
   45     passwd
   10      xaa
   10      xab
   10      xac 
   10      xad 
    5      xae 
    90    总用量

13、特殊符号$: 用作变量前的标识符,还可以和!结合起来用

14、特殊符号; 在一行中运行两个或两个以上的命令,需要在命令之间加这个符号。

15、特殊符号~ 表示用户的家目录

16、特殊符号& 若想把一条命令放到后台执行,则需加上“&”,他通常用于命令运行时间较长的情况,可用在sleep后

17、重定向符号>、>>、2>和2>>

  • 重定向符号>和>>分别表示取代和追加的意思。
  • 重定向符号2>和2>>分别表示错误重定向和错误追加重定向

18、中括号[] 中括号内为字符组合,代表字符组合中的任意一个。可以是一个范围(1-3 ,a-z)

19、特殊符号&&和||

  • command1 ; command2 : 使用;时,不论command1是否执行成功,都会执行command2
  • command1 && command2 : 使用&&时,只有command1执行成功,才会执行command2,否则command2不执行
  • command1 || command2 : 使用||时,command1执行成功则command2不执行,否则执行command2。即两条命令中总有一条命令会执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值