linux学习_shell基础(alias_history_输出重定向_管道符_通配符)

1.别名 alias
alias 查看系统中已经生效的别名
alias cl=‘clear’
alias vi=‘vim’

vi .bashrc 添加alias vi='vim’可以永久生效,别名的名字优先级高于原始命令,例如vim的别名vi优先级高于系统原有的vi命令
.bashrc文件需要重新登录生效,source .bashrc直接生效,不用重新登录
unalias

  常用快捷键
  ctrl+c   强制终止当前命令
  ctrl+1   清屏
  ctrl+a   光标移动到命令行首
  ctrl+e   光标移动到命令行尾
  ctrl+u   从光标所在位置删除到行首
  ctrl+z   把命令放入后台
  ctrl+r   在历史命令中搜索

2.历史 history
history [选项][历史命令保存文件
-c 清除历史命令
-w 把缓存中的历史命令下乳历史命令保存文件~/.bash_history中
!n 执行第n条命令
!! 重复执行上一条命令
!字符串 重复执行最后一条以该字符串开头的命令

历史命令默认保留1000条,可以在/etc/profile中的HISTSIZE=1000参数修改

3.输入输出重定向
1)标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

2)输出重定向

**类型 		               符号                作用**           
标准输出重定向               命令 >文件          以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。
                           命令 >>文件         以追加的方式,把命令的正确输出输出到指定的文件或设备当中。
                                                 
标准错误输出重定向            错误命令 2>文件      以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。(错误输出的 '>'左右两侧不能有空格)
                           错误命令 2>>文件     以追加的方式,把命令的错误输出输出到指定的文件或设备当中。(错误输出的 '>>'左右两侧不能有空格)
                                                 
正确输出和错误输出同时保存      命令>文件 2>&1      以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
                           命令>>文件 2>&1      以追加的方式,把正确输出和错误输出都保存到同一个文件当中。  (常见)
                           命令 &>文件          以覆盖的方式,把正确输出和错误输出同时输出都保存到同一个文件当中。
                           命令 &>>文件         以追加的方式,把正确输出和错误输出同时输出都保存到同一个文件当中。
                           命令>>文件1 2>>文件2  把正确的输出追加到文件1中,把错误的输出追加到文件2中

#ls &>/dev/null 对于不关心的输出(例如此处ls)扔进黑洞

eg:
将命令执行结果及报错均输入tar.log
tar -xvf tartest.tar >>tar.log 2>&1
tar -xvf tartest.tar &>>tar.log
将命令执行正确结果放入tar1.log,错误结果放入tar2.log
tar -xvf tartest.tar >>tar1.log 2>>tar2.log

3)输入重定向
命令<文件 把文件作为命令的输入

wc [选项][文件名]
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数

4.管道符
1)多命令顺序执行

符号          格式                 作用
   ;         命令1;命令2           多个命令顺序执行,命令之间没有逻辑联系(不论其中有哪一个命令报错)
   $$        命令1&&命令2          逻辑与,当命令1正确执行,命令2才会执行
   ||        命令1||命令2          逻辑或,命令1若不正确执行,则命令2执行;命令1正确执行,则命令2不执行
   eg:
   [root@localhost shell]# date;tar -xvf tartest.tar ;date
   Tue Apr 28 13:45:42 CST 2020
   tartest/
   tartest/a
   tartest/b
   tartest/c
   Tue Apr 28 13:45:42 CST 2020
   [root@localhost shell]# date1;tar -xvf tartest.tar ;date
   bash: date1: command not found... ---无论前面命令是否成功,不影响后面命令的执行
   Similar command is: 'date'
   tartest/
   tartest/a
   tartest/b
   tartest/c
   Tue Apr 28 13:49:22 CST 2020
   [root@localhost shell]# date&&tar -xvf tartest.tar&&date
   Tue Apr 28 13:46:14 CST 2020
   tartest/
   tartest/a
   tartest/b
   tartest/c
   Tue Apr 28 13:46:14 CST 2020
   [root@localhost shell]# date1&&tar -xvf tartest.tar&&date
   bash: date1: command not found...  ---date1执行失败,随后两个命令均不执行
   Similar command is: 'date'
   [root@localhost shell]# date1||tar -xvf tartest.tar||date
   bash: date1: command not found...  ---date1命令报错,才会触发第二个tar命令的执行,tar命令执行,则最后的date不执行
   Similar command is: 'date'
   tartest/
   tartest/a
   tartest/b
   tartest/c
   [root@localhost shell]# date1||tar12 -xvf tartest.tar||date
   bash: date1: command not found...  ---date1命令报错,触发第二个tar12命令的执行,tar12命令执行失败,触发最后的date执行
   Similar command is: 'date'
   bash: tar12: command not found...
   Tue Apr 28 13:46:46 CST 2020
   [root@localhost shell]# date1&&echo yes||echo no --注意先写&&再写||,用来判断命令是否正确执行
   bash: date1: command not found...
   Similar command is: 'date'
   no
   [root@localhost shell]# date&&echo yes||echo no
   Tue Apr 28 13:48:10 CST 2020
   yes

2)管道符
命令1|命令2 命令1的输出作为命令2的操作对象
eg:
[root@localhost shell]# ls /etc|grep cront
anacrontab
crontab
[root@localhost shell]# netstat -an|grep ESTABLISHED|wc -l —计算连接此服务器的客户端数目
1
5.通配符
1)通配符 作用

   1)通配符    作用
     *         匹配任意字符,例:find /home -name "*test*",显示所有名字带test的文件;或例:find /home -name "*",home目录下的所有文件,包括隐藏文件。
     ?         匹配任意一个字符,
     []        匹配任意一个中括号内的字符,例:find /home -name "test[12]",显示test1和test2文件;或find /home -name "[12]",显示以1和2开头的文件。
    [-]        匹配中括号内任意一个字符,代表一个范围。例如test[0-9]代表匹配test后跟任意一个数字的
    [^]        逻辑非,表示匹配不是中括号内的一个字符串。例如test[^0-9]代表匹配test后没有紧跟数字的  
组合使用:例:find /home -name "*[12]",显示所有1和2结尾的文件

2)其他特殊符号

   符号       作用
    ''       单引号。在单引号中的所有特殊符号,如“$”和“`”(反引号,键盘中ESC下的按键)都没有特殊含义,即单引号中所有内容该是什么样就是什么样,不会变
    ""       双引号。在双引号中的特殊符号也没有特殊含义,但是“$”和“`”和“\”是例外, 拥有“调用变量的值”,“引用命令”和“转义符”的特殊含义
    ``       反引号。用来引用系统命令
    $()      和反引号作用一样,用来引用系统命令
    #        bash中#开头的行代表注释
    $        调用变量的值
    \        用来转义,跟在\后的特殊符号将失去特殊含义,如\$就可以输出$这个字符
   eg:
    [root@localhost shell]# a=123
    [root@localhost shell]# echo $a
    123
    [root@localhost shell]# echo '$a'
    $a
    [root@localhost shell]# echo  "$a"
    123
    [root@localhost shell]# aa=`ls` ---将ls的执行结果赋值给aa
    [root@localhost shell]# echo "$aa"
    hello.sh
    tar1.log
    tar2.log
    tar.log
    tartest
    tartest.tar
    [root@localhost shell]# bb=$(ls)
    [root@localhost shell]# echo "$bb"
    hello.sh
    tar1.log
    tar2.log
    tar.log
    tartest
    tartest.tar
    [root@localhost shell]# echo "\$bb"
    $bb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值