鸟哥linux命令行总结之——认识与学习BASH

本系列会将《鸟哥的Linux私房菜-基础版》中的一些个人觉得比较有用的命令行单独摘出来,方便查阅

  • ~/.bash_history 文件中记载了曾经执行过的指令
  • job control/foreground/background 工作控制和前台后台控制
  • type -a 查询某命令是否为bash shell的内建命令
  • \反斜杠后面直接接enter,可以换行
  • slgname=Harry 设置变量
  • unset slgname 取消变量设置
  • echo ${slgname} 查看变量值
  • echo $slgname 查看变量值
  • export slgname 将变量导出成环境变量,这样才能在新的bash中使用
  • cd /lib/modules/${uname -r}/kernel 进入当前内核,这个在${}中执行命令真的是够狠啊!相当于cd /lib/modules/19.3.0/kernel
  • envexport 都两个命令都可以查看当前环境变量有哪些
  • export myvars 将自定义变量导出到环境变量
  • locale -a 查询当前linux支持了多少个语系
  • locale 查看当前的语言环境设置
  • read [-pt] myvar 可以等待用户输入变量值付给myvar这个变量
  • declare/typeset这两个命令可以定义变量的类型,具体类型与参数有关可查手册
  • myarry[0]=1可以定义数组,取的时候用echo ${myarry[0]}取就好
  • ulimit 限制资源配额,加-a参数查看当前配额
  • history查看命令执行历史
  • !322后面数字为命令历史编号,相当于执行那条历史命令
  • !!执行上一条命令
  • !pw执行最近一条以pw开头的命令
  • stty -a 可以列出当前热键给linux发出的指令,例如^C就是ctrl+c相当于给程序发出一个中断指令
  • ls -al / > rootfile 将ls列出来的文字输出到名为rootfile的文件中
  • ls -al / >> rootfile 将ls列出来的文字追加到rootfile的文件的末尾,而非覆盖
  • cat > catfile 将接下来由键盘输入的文字导入到catfile中,可以使用ctrl+d中止
  • cat > catfile < ~/.bashrc "<"符号的意思是用stdin代替键盘的输入,从.bashrc中读入流,输入到catfile中
  • cat > catfile << "eof" 之后就可以输入一系列文字,遇到"eof"之后就算结束,无需使用ctrl+d来跳出

  • [cmd1]:[cmd2]:[cmd3] 一次执行多条相互无关联的指令
  • [cmd1]&&[cmd2] cmd1正确执行完毕后再执行cmd2
  • [cmd1]||[cmd2] 只执行二者的其中一个,如果cmd1正常执行则不再执行cmd2,如果cmd1执行错误,再执行cmd2
  • ls /tmp/abc || mkdir /tmp/abc && touch /tmp/hehe 不存在优先级的问题,就是从左往右依次执行,ls和mkdir二选一执行,之后再执行touch命令

  • ls -al |less 可以翻阅ls出来的信息
  • echo ${PATH} | cut -d ':' -f 1,3 将字符串以冒号分隔开,并且返回第1个和第3个
  • echo ${PATH} | cut -c 12- 截取字符区间,取第12个字符一直到末尾
  • last 可以输出[账号/终端/来源/日期时间]的数据
  • last | cut -d ' ' -f 1 能将每一行的第一个字符串输出来,很6,因为cut是按行处理的,而每一行数据又刚好由空格隔开,因此就能输出每行的第一个字符串
  • last | grep 'root' 将last中出现root的那些行取出来
  • last | grep -v 'root' 将last中没有root的那些行取出来
  • last |grep 'root' |cut -d ' ' -f1 将last中所有有root的行取出来,并且只要第一列
  • grep --color=auto 'MANPATH' /etc/man_db.conf 高亮显示匹配字符(centos7已预设此功能)
  • cat /etc/passwd | sort 将取出的数据按照首字母的asc码排序
  • cat /etc/passwd | sort -t ':' -k 3 按照取出的第三列进行排序(字符排序)
  • cat /etc/passwd | sort -t ':' -k 3 -n 按照取出的第三列进行排序(数字排序)
  • last | cut -d ' ' -f1 |sort|uniq 将排序后的数据只取出一行来
  • last | cut -d ' ' -f1|sort|uniq -c 统计出每行出现的次数(相当于group by加count)
  • cat /etc/man_db.conf | wc会出现三列数据,分别代表:[行][字数][字符数]
  • wc -l 仅列出有多少行
  • wc -w 仅列出有多少字
  • wc -m 仅列出有多少字符
  • last |tee last.list|cut -d " " -f1 tee是双重导向的分流命令,可以同时将数据流既送到文件屏幕一份,又保存到last.list文件中一份
  • last | tr [a-z] [A-Z]将last输出的信息中的小写转换成大写
  • cat /etc/passwd|tr -d ':'将输出的数据中的冒号都删除
  • col -x可以将流数据中的[tab]键转换成对等空格键
  • join 将两个文件中有相同数据的那一行加到一块
  • join -t ':' /etc/passwd /etc/shadow | head -n 3 将两个文件第一段相同的文字整合成一列
  • paste /etc/passwd /etc/shadow将两个文件的同一行粘在一起(可接分割字符的参数,默认为按照[tab]分割)
  • split -b 300k /etc/services services 使用300k将services文件分割为services*前缀的几个文件,几个小文件会自动变成servicesaa,servicesab,servicesac这样
  • ls -al | split -l 10 - lsroot 将ls输出的内容,10行10行的分隔成lsroot*前缀的文件
  • find /usr/bin -perm /7000 | xargs ls -l 相当于ls -l ${find /usr/sbin -perm /7000} 这个xargs相当于将上一个管道输出的内容作为stdin输入给下一个管道,用于本身不支持管道的命令

关于 - 的用法

  • tar -cvf - /home | tar -xvf - -C /tmp/homeback 相当于将/home里的文件打包,打包的数据传入stdout,经过管道再传给后面的tar -xvf命令,通过这个小横杠我们就不需要使用filename了,直接隔空传送666!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值