本系列会将《鸟哥的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
env
、export
都两个命令都可以查看当前环境变量有哪些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执行错误,再执行cmd2ls /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!