shell是一个命令解释器,提供用户和机器之前的交互

  1. 命令历史 按向上的方向键一个个出现之前命令历史 history 查看之前的命令 命令历史存在文件.bash_history 文件最大行数由变量HISTSIZE决定,默认1000 变量HISTSIZE可在/etc/profile中修改 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 设置时间显示,非永久有效,若要一直有效,需要在/etc/profile中增加 chattr +a ~/.bash_history 永久保存命令(chattr +a只能增加不能删除) !! 上一条命令 ![char] 最近char开头的命令 !n 前第n条命令

  2. 命令补全 当命令开头打出一部分,如'mk',tab键补全命令和文件目录名,若结果不唯一,需要连续按两下,会列出所有以mk开头的命令

  3. 通配符 * 任意数量任意字符 ? 1个任意字符 [0-9] 任意一个数字 [2345] 2345任一 [a-z] a-z任意一个 [A-Z] A-Z任意一个 [0-9a-zA-Z]任一数字或字母 {1,3,t,y,H} 枚举式选一个,中间用逗号隔开

  4. 输入输出重定向 [contents or cmd] > [file] 将左边内容(正确)重定向到右边文件,覆盖文件原有内容 [contents or cmd] >> [file] 将左边内容(正确)重定向到右边文件,不覆盖文件原有内容,追加 [contents or cmd] 2> [file] 将左边内容(错误)重定向到右边文件,覆盖文件原有内容 [contents or cmd] 2>> [file] 将左边内容(错误)重定向到右边文件,不覆盖文件原有内容,追加 [contents or cmd] &> [file] 将左边所有内容重定向到右边文件,覆盖文件原有内容 [contents or cmd] &>> [file] 将左边所有内容重定向到右边文件,不覆盖文件原有内容,追加 [contents or cmd] > [file1] 2>[file2] 正确和错误内容分别输出到不同文件 [cmd] < [file] 将文件内容输入到命令里(左边不能是文件)

  5. 管道符 管道符: [cmd] | [cmd] 将左边命令结果输出到右边 cut 截取字符 -d '[xx]' 以xx为分隔符 -f n,m 截取第n和m位 -c 指定第几个字符 sort 排序 -n 以数字排序(其他符号识别为0) -r 逆序 wc 统计字符 -l 行数 -m 字符数 -w 词数(根据空格来分隔,不是真的认单词) uniq 去重(要先排序使相同行相邻才能去重) -c 统计重复次数 tee 相当于>,但是要加上|管道符,以及会显示出来 -a 追加 tr 替换字符 split 切割 -b 大小(默认单位字节) -l 行数

  6. 作业控制 ctrl + z 暂停任务 fg n 回到(第n个)暂停命令 jobs 查看停止或后台运行的任务 bg 把任务放到后台运行(暂停后可以用) 命令后加' &' 直接把命令放到后台运行

  7. 变量 env 查看系统变量 自定义变量,c未定义,因此无内容 unset [变量名] 撤销变量定义 变量命名:由数字、字母、下划线组成,首位不能是数字 变量值中有特殊符号时,要用单引号括起来 单引号、双引号和反引号的区别,在另一块看到的http://blog.csdn.net/iamlaosong/article/details/54728393

bash 进入子shell 进入子shell后 exit退出此shell 一般定义变量不跨shell export [变量名]=[变量值] 此定义可以用在当前shell的子shell

环境变量配置文件 /etc/profile 登录后加载 /etc/bashrc执行shell加载 用户目录下的是: ~/.bashrc ~/.bash_profile ~/.bash_history ~/.bash_logout 定义用户退出时要进行的操作 变量PS1,在/etc/profile中定义,表示命令前字符串格式 W的大小写对应当前路径显示完整与否

  1. 特殊符号 $ 变量前缀 ; 多条命令写在一行用分号分隔 ~ 用户家目录 & 放在命令后面,表示把命令放到后台 [] 指定字符中的一个 || 两条命令间,第一条命令执行失败,才执行后面命令 && 两条命令间,第一条命令执行成功,才执行后面命令