Linux里一些常用命令

命令历史

 cat /root/.bash_history       //存放历史命令的地方
# history      //查看命令历史的条数
# echo $HISTSIZE       //查看可以保存的条数
# vim /etc/profile       //改变变量HISTSIZE的值 “/HISTSIZE” 去搜索
# source /etc/profile       //这样才能使我们刚刚修改的值生效
# vim /etc/profile →在HISTSIZE下增加 HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S “ 改变输出历史的格式,例如: 923 2017/06/28 17:56:42 source /etc/profile 包括什么时间输入的都可以显示!!!
# chattr +a ~/.bash_history       //永久保存输入的历史(a权限,只允许增加,不允许删除)
# !!       //执行上一条命令
#!761       //查找命令第761条命令,在命令历史中!

通配符

# ls *.txt        //查看所有以.txt结尾的文件
# ls 1*         //查看以1开头的所有文件
# ls ?.txt            //一个字符且.txt的文件
# ls ??.txt          //两个字符且.txt的文件
# ls [0-3].txt         //包含0.txt 1.txt 2.txt 3.txt
# ls [123].txt         //包含1.txt 2.txt 3.txt

输入输出重定向

“>”     //重定向                   “>>”     //追加内容
# cat 12.txt > 22.txt                 //查看12.txt的内容并重定向到22.txt
# cat 12.txt >> 22.txt                    //查看12.txt的内容并追加(之前的内容不删除)到22.txt
“2>”               //错误重定向                        “2>>”                   //错误追加重定向
后期写shell脚本的时候会经常用到的一个命令:
# ls [12].txt txzzz.txt(没有这个文件) >1.txt  2>b.txt              //把正确的输出,输出到1.txt,错误的输出输出到b.txt

管道符、作业控制

管道符:把一个命令结果的输出传递到后面一个命令;
# cat 1.txt |wc -l ;             //查看1.txt 的内容 并交给后面查看有多少行 输出~
# cat 1.txt |grep ‘aaa’                   //查看1.txt 的内容 并交给后面grep 查找 aaa
# find ./ -type f | wc -l                     //查看当前目录下有多少个文件,然后统计输出
案例:假如现在正在配置IP地址,当你进入vim之后,发现忘记IP地址了,然后使用“ctrl+z”去临时返回到命令行,fg 返回到任务,也许有时候,后台任务比较多,可以使用 jobs来查看,然后恢复某个任务使用 fg+id ,或者把某个任务放到后台去继续执行 bg+id,一次性的把一个命令放到后台去执行,# sleep 1000 & ,可以用jobs去查看。

系统内置变量

# env             //查看系统变量
# set             //查看系统自设的变量+用户设置的变量
自定义变量:
# zhdy=winner            //设置自定义的变量
# set | grep zhdy              //查询自定义变量中的zhdy
# unset zhdy               //取消自定义的变量
# 变量名规则:字母、数字下划线,首位不能为数字
# 变量值有特殊符号时需要用单引号括起来
# a=’a$bc’ → # echo $a → # a$bc
# a=1;b=2 → #echo $a$b → # 12
# echo $SSH_TTY               //查看自己在哪个TTY下面
#export zhdy=linux           //制作一个全局的环境变量,
系统层次的环境变量(千万别去更改,除非特殊要求):
• /etc/profile 用户环境变量,交互,登录才执行
• /etc/bashrc 用户不用登录,执行shell就生效

特殊符号

*       任意个任意字符
?       任意一个字符
#      注释字符
\      脱义字符
|       管道符
# cat /etc/passwd | head       //显示passwd的前十行(默认)
# cat /etc/passwd | haed -2       //显示passwd的前两行(指定)
# cat /etc/passwd | haed -2 | cut -d “:” -f 1      //cut -d “:” 使用:分割, -f 第几段
# cat /etc/passwd | haed -2 | cut -d “:” -f 1,2       //第一段和第二段
# cat /etc/passwd | haed -2 | cut -d “:” -f 1-3        //第一段到第三段

sort_wc_uniq_split

cut 分割,-d 分隔符  -f 指定段号   -c 指定第几个字符
sort 排序, -n 以数字排序 -r 反序  -t 分隔符 -kn1/-kn1,n2(-t 不经常用)
wc -l 统计行数 -m 统计字符数(统计字符数一般末尾还有$符号用#cat -A 1.txt 查看) -w 统计单词
uniq 去重, -c统计行数
tee 和>(重定向)类似,重定向的同时还在屏幕显示,-a 追加重定向
tr 替换字符,tr ‘a’ ‘b’,大小写替换tr ‘[a-z]’ ‘[A-Z]’
split 切割,-b大小(默认单位字节),-l 行数
# sort 2.txt |uniq -c |tee a.txt            //对2.txt排训和去重后 重定向给a.txt
# > a.txt              //代表清空a.txt (很实用)
# echo “aminglinux” | tr ‘a’ ‘A’                  //更换a到大写的A
# echo “aminglinux” | tr ‘[a-z]’ ‘[A-Z]’              //更换小写到大写
有时在运维的时候,有些日志长时间没有去管理,最后变成了500G,要是想要查看一下不是太容易,我们需要切割一下然后去一段段的查看:
# split -b 100M filename                    //filename按照一份100M去切割(不加单位,默认是bite字节)
# split -l 1000 filename                    //filename按照1000行一份去切割
# split -b 100K filename aaa             //指定切割名字使用aaa开头
[ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]            //非常重要,指其中的一个字符
 
# ls a.txt || wc -l 2.txt                           || 的意思是前面一条命令执行不成功,才会执行第二条;
# ls 111 && cat 2.txt                             && 的意思是前面一条命令执行成功,才会执行后面的命令;
例子:
判断一个目录中是否有此目录,如果没有就创建,如果有就不创建!
# [ -d dir1 ] || mkdir dir1            //如果此目录中有dir1目录就不创建,没有就创建一个!
posted @ 2019-07-08 15:31  {Dxd}  阅读(135)  评论(0)    收藏  举报