持续更新…………

1.什么是shell

shell是一个命令解释器,提供用户和机器之间的交互
如:last w top useradd passwd 等
支持特定语法,比如逻辑判断、循环 (分支if case, 循环 for while等)
每个用户都有自己的特定的shell
centos7默认shell为 bash
还有 zsh ksh等
yum list|grep zsh
yum list|grep ksh

2.命令历史

history命令
ls /root/.bash_history
最大可以存1000条 echo $HISTSIZE
history -c 当前命令内存情况
退出终端的时候,才能保存到bash_history 中
定义变量 /etc/profile history
生效source /etc/profile
定义什么时候写入的命令 HISTTIMEFORMAT="%Y/"
/etc/profile 中加入 HISTTIMEFORMAT="%Y/%m%d %H:%M:%S"
永久保存 chattr +a ~/.bash_history
!! 上一条命令
!n 第多少条命令
!echo 导致往上找第一个echo命令

3.命令补全及别名

tab健,敲一下补全 敲两下列出所有相似开头
yum install -y bash-completion 生效需要重启
alias别名
如:alias restartnet='systemctl restart network'
vim .bashrc 自定义放到这里
cd /etc/profile.d/里面的文件中定义
unalias restartnet 取消别名

4.5.通配符、输入输出重定向
ls *.txt ls ?.txt ls [0-9].txt ls {1,2}.txt
cat 1.txt > 2.txt 覆盖重写
cat 1.txt >> 2.txt 追加
ls aaa.txt 2> err 错误信息
ls aaa.txt 2>> err 错误追加
&> 正确错误的信息 ll 1.txt 不存在文件。txt &>err
&>> 追加
wc -l < 1.txt 命令 < 文件

6。管道符、作业控制
cat 1.txt|wc -l cat 1.txt|grep 'aaa'
ctrl z 暂停一个任务
jobs查看后台的任务
fg 调出 jobs fg1 fg2
bg 【id】 把任务调到后台
fg [id] 把任务调到前台
sleep 100 暂停100秒
命令后面加&直接丢到后台
sleep 100 & 直接放到后台
只能发现自己终端的jobs

78.shell变量
变量
path home pwd logname
env获取系统变量 一般都大写字母
set也可以查看变量系统和自定义 set|less
自定义变量 a=hahah
变量名规则 : 字母、数字下划线,首位不能为数字
变量值 有特殊符号时需要用单引号括起来
变量的累加
全局变量 export b=2 echo $SSH_TTY pstree位置 向下生效
unset 取消变量

9.环境变量配置文件
/etc/profile 用户环境变量,交互,登录才执行
/etc/bashrc 用户不用登录,执行shell就生效
PS1='[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]\$ ' 颜色显示

10特殊符号 cut

*任意个任意字符
?任意一个字符
#注释字符
\脱义字符
|管道字符
几个和管道有关的命令
cut 分割,-d分隔符 -f 指定断号 -c指定第几个字符 cat /etc/passwd |head -2 |cut -d ":" -f 1,2,3 cat /etc/passwd|head -2|cut -c 12

11.排序
sort 排序, -n以数字排序 -r 反序 -t分隔符
wc -l 统计行数 wc -m 统计字符 wc -w 统计词
uniq 去重 -c统计行数

  1. tee和>类似 tee -a 追加的意思 重定向的同时还在屏幕显示 |tee 和|tee -a
    tr 替换字符 , tr 'a' 'b',大小写替换tr '[a-z]' '[A-Z]' echo "aminglinux" |tr '[al]' '[AL]' sed比较常用
    split 切割,-b 大小(默认单位字节,)-l 行数
    split -b 1000(字节) 文件

13.特殊符号

$变量前缀,!$组合,正则里面表示行尾
;多条命令写到一行,用分号分割
~用户家目录,后面正则表达式表示匹配符
&放到命令后面,会把命令丢到后台

2> 2>> &>
[]指定字符中的一个,[0-9],[a-zA-Z],[abc]
||和&& 用于命令之间 正||正 正||负 负||正 都为正
负&&负 正 负&&正 负 正&&负 负