***第一章***

显示当前使用的shell echo ${SHELL} 显示当前系统使用的所有shell cat /etc/shells help 内部命令列表 enable cmd 启用内部命令 enable -n cmd禁用内部命令 enable -n 查看所有禁用的内部命令 外部命令: 查看路径:which -a | --skip-alias;whereis 区别指定的命令是内部或外部命令:type command hash缓存表: hash 显示hash缓存;hash-l显示hash缓存,可作为输入使用 hash -p path name将命令全路径path其别名为name hash -t name 打印缓存中name的路径 hash -d name 清除name缓存 hash -r 清楚缓存 命令别名:alias 仅对当前shell有效。要想永久有效要定义在配置文件 仅对当前用户 ~/.bashrc 对所有用户有效;/etc/bashrc 重新读取配置文件 source /path/to/config_file ./path/to/config_file 撤销别名:unalias -a取消所有别名 CTRL+c 取消执行命令 CTRL+d结束命令执行 时间和日期 Linux分为两种时钟:系统时钟:由Linux内核通过cpu的工作频率进行的 硬件时钟:主板 date 显示和设置当前系统时间

hwclock,clock:显示硬件时钟 -s,以硬件时钟为准,桥正系统时钟 -w,以系统时钟为准,桥正硬件时钟 时区:/etc/localtime 显示日历:cal -y 简单命令 关机:halt,poweroff 重启:reboot -f 强制,不调用shutdown -p:切断电源 关机或重启 :shutdown shutdown [OPTION]..[TIME][MESSAGE] -r:reboot 重启 -h:halt -c:cancel TIME:无指定,默认相当于+1(7系统) now;立刻 +m 相对时间表示法,几分钟后 hh:mm:绝对时间表示,具体时间 whoami:显示当前登录有效用户 who:系统当前所有的登陆会话 w:系统当前所有的登录会话及所作的操作 nano:文本编辑 screen命令: 创建screen会话 screen -S [SESSION] 加入 screen -x [SESSION] 退出:exit 剥离当前会话:CTRL+a,d 显示所有已经打开的会话:screen -ls 恢复某会话:screen -r [SESSION] echo命令:显示字符 -E 不支持\ 解释功能 -n 不自动换行 -e 启用\ 字符的解释功能 table键:命令补全 命令历史相关变量 HISTSIZE:命令历史记录的条数 HISTFILE:指定历史文件,默认为~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 HISTTIMEFORMAT=“%F %T “ 显示时间 获得帮助: whatis
--help man and info Red Hat documentation

                                         ***  文件管理***

基名:basename 目录名:dirname cd: 改变目录 切换父目录:cd.. 切换以前的工作目录:cd - ls :列出目录内容 ls -a包含隐藏文件 ls -i显示额外的信息 ls -R 目录递归通过 ls -id目录和符号链接信息 ls -l文件分行显示 ls-S按从大到小排序 ls-t按mtime排序 ls-u配合-t选项,显示并按atime从新到旧排序 ls-U 按目录存放顺序显示 ls -X按文件后缀排序 查看文件状态:stat 文件通配符

  • 匹配零个或多个字符 ? 匹配任何单个字符 ~ 当前用户家目录 ~mage 用户mage家目录 ~+ 当前工作目录 ~- 前一个工作目录 [0-9] 匹配数字范围 [a-z]:字母 [A-Z]:字母 [wang] 匹配列表中的任何的一个字符 [^wang] 匹配列表中的所有字符以外的字符 [:digit:]:任意数字,相当于0-9 [:lower:]:任意小写字母 [:upper:]: 任意大写字母 [:alpha:]: 任意大小写字母 [:alnum:]:任意数字或字母 [:blank:]:水平空白字符 [:space:]:水平或垂直空白字符 [:punct:]:标点符号 [:print:]:可打印字符 [:cntrl:]:控制(非打印)字符 [:graph:]:图形字符 [:xdigit:]:十六进制字符 创建空文件:touch 复制文件和目录:cp -i 覆盖前提示 -n 不覆盖 -r,-R 递归复制目录及内部的所有内容 -a 归档 -d 不复制原文件,只复制链接名 移动和重命名文件:mv -i 交互式 -f 强制 -b 目标存在,覆盖前先备份 删除:rm -i 交互式 -f 强制删除 -r 递归 目录操作 tree 显示目录树 -d:只显示目录 -L:制定显示的层级数目 -p pattern:只显示由制定pattern匹配到的路径 mkdir 创建目录 -p 存在于不报错,且可自动创建所需的各目录 -v:显示详细信息 -m:创建目录时直接指定权限 rmdir 删除空目录 -p:存在于不报错,且可自动创建所需的各目录 -v:显示详细信息 rm -r递归删除目录树 硬链接:ln 软连接:ln -s 判断文件的属性:file

                        ***  标准I/O和管道***
    

标准输入和输出

tr命令 tr:转换和删除字符 选项: -c 去字符集的补集 -d 删除所有属于第一字符集 -s 把连续重复的字符以单独一个字符表示 -t 将第一个字符集对应字符转化为第二字符集对应的字符 [:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制(非打印)字符 [:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符 [:punct:]:标点符号 [:space:]:空白字符 [:upper:]:大写字母 [:xdigit:]:十六进制字符

管道 管道(使用符号“|”表示) less:一页一页地查看输入 mail:通过电子邮件发送输入 bc:算术运算 重定向到多个目标:tee -a追加

                                           *** 用户组和权限管理***

组group: 系统组:1-499,1-999 普通组:500+,1000+ 组分为主要组和附加组 用户和组管理命令 用户:useradd、usermod、userdel 组:groupadd、groupmod、groupdel

用户创建:useradd -u UID -o 配合-u选项,不检查UID的唯一性 -g GID 指明用户所属基本组,可为组名,也可为GID -c 用户的注释信息 -d 以制定的路径为家目录 -s 指明用户的默认shell程序,可用列表在/etc/shells文件中 -G GROUP1 [GROUP2] 为用户指明附加组,组须事先存在 -N 不创建私用组做主组,使用users组做主组 -r 创建系统用户 -m 创建家目录,用于系统用户 -M 不创建家目录,用于非系统用户 显示或更改默认设置: useradd -D useradd -D-s SHELL useradd -D-b BASE_DIR useradd -D-g GROUP

用户属性usermod -u UID:新UID -g GID;新主组 -G G1[G2]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项 -s SHELL:新的默认SHELL -d HOME:新家目录不会自动创建 -l name:新的名字 -L lock指定用户,在/etc/shadow密码栏的增加! -U unlock指定用户,将/etc/shadow密码栏的!拿掉 -e YYYY-MM-DD:指明用户账号过期日期 -f:设定非活动期限

删除用户:userdel -r:删除用户家目录

查看用户相关的id信息 -u:显示UID -g:显示GIDD -G:显示用户所属组的id -n:显示名称,需配合ugG使用

切换用户或以其它用户身份执行命令 su 切换用户的方式:su UserName:非登录方式切换,即不会读取目标用户的配置文件, 不改变当前工作目录 su -UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换 root su至其他用户无须密码;非root用户切换时需要密码 换个身份执行命令: su[-]UserName-c'COMMAND' 选项:-|--login su-|UserName相当于su-UserName

设置密码 passwd[OPTIONS]UserName:修改指定用户的密码 常用选项: -d:删除指定用户密码 -l:锁定指定用户 -u:解锁指定用户 -e;强制用户下次登陆修改密码 -f;强制操作 -n;指定最短使用期限 -x;最大使用期限 -w;提前多少天开始警告 -i;非活动期限

修改用户密码策略 chage[OPTION]..LOGIN -d last_day 实例 chage -d 0 tom 下一次登录强制重设密码 用户相关的其他命令 chfn指定个人信息 chsh指定shell

                             *** 正则表达式***

文件查看 cat,tac,rev cat -E;显示结束符$ -n;对显示出的每一行进行编程 -A;显示所有控制符 -b;非空行编号 -s;压缩连续的空行成一行

分页查看 more:分页查看文件 -d:显示翻页及退出提示 less:一页一页地查看文件 less命令时man命令使用的分页器

显示文本前或后行内容 head -c # 指定获取前#字节 -n # 指定获取前#行 -# 指定行数 tail -c # 指定获取后#字节 -n # 指定获取后#行 -# 同上 -f 跟踪文件fd新追加的内容 -F 跟踪文件名 tailf 类似于 tail -f 当文件不增长时并不访问文件

抽取文本cut 合并文件paste

cut -d 指明分隔符,默认tab -f # 第#个字段 #,#[,#] 离散的多个字段 #-# 连续的多个字段,例如1,3,6 混合使用;1-3,7 -c 按字符切割 paste -d 分隔符;指定分隔符,默认用TAB -s;所有行合成一行显示

分析文本的工具

文本数据统计:wc -l 只计数行数 -w 只记数单词总数 -c 只记数字节总数 -m 只计数字符总数 -L 显示文件最长行的长度

文本排序sort -r 执行反方向整理 -R 随机排序 -n 执行按数字大小整理 -f 选项忽略字符串中的大小写 -u 选项删除输出中的重复行 -t c 选项使用c作为字段界定符 -k X 选项按照使用c字符分隔的X列来整理能够使用多次

uniq:从输入中删除前后相接的重复的行 -c 显示每行重复出现的次数 -d 仅显示重复过的行 -u 仅显示不曾重复的行 常和sort命令一起配合使用 sort userlist.txt | uniq -c

                   *** linux 文本处理三剑客***

grep : 文本过滤工具 sed:文本编辑工具 awk:Linux上的实现gawk,文本报告生成器

grep 命令选项 -m # 匹配#次后停止 -v 显示不被pattern匹配到的行 -i 忽略字符大小写 -n 显示匹配的行号 -c 统计匹配的行数 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息 -A # 后#行 -B # 前#行 -C # 前后各#行 -e 实现多个选项之间的逻辑或关系 grep -e ‘cat’ -e ‘dog’ file -w 匹配整个单词
-E 使用ERE -F 相当于fgrep,不支持正则表达式 -f file 根据模式文件处理

正则表达式分两类: 基本正则表达式:BRE 扩展正则表达式:ERE

基本正则表达式元字符 . 匹配任意单个字符 [] 匹配指定范围内的任意单个字符 [^]匹配指定范围外的任意单个字符 [:alnum:]字母和数字 [:alpha:]代表任何英文大小写字符 [:lower:]小写字母 [:blank:]空白字符 [:space:]水平和垂直的空白字符 [:cntrl:]不可打印的控制字符(退格,删除,警铃。。) [:digit:]十进制数字 [:xdigit:]十六进制数字 [:graph:]可打印的非空白字符 [:print:]可打印字符 [:punct:]标点符号 匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数 贪婪模式:尽可能长的匹配 . 任意长度大的任意字符 \?匹配其前面的字符0或1次 +匹配其前面的字符至少一次 {n}匹配前面的字符n次 {m,n}匹配前面的字符至少m次,之多n次 {,n}匹配前面的字符之多n次 {n,}匹配前面的字符至少n次

位置锚定:定位出现的位 ^ 行首锚定,用于模式的最左侧 $行尾锚定,用于模式的最右侧 ^PATTERN$ 用于模式匹配整行 ^$ 空行 ^[[:space:]]*$ 空白行 < 或\b 词首锚定,用于单词模式的左侧 >或\b 词尾锚定, 用于单词模式的右侧 <PATTERN>\ 匹配整个单词

分组:()将一个或多个字符捆绑在一起,当作一个整体处理,如:(root)+ \1 表示从左侧其第一个左括号以及与之匹配右括号之间的模式所匹配到的字符 实例:(string1+(string2)) \1:string1+(string2) \2:string2

后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身 或者:|
实例:a|b: a或b c|cat : c或cat (c|C)at:cat或Cat

egrep及扩展的正则表达式 egrep=grep -E egrep [OPTIONS] PATTERN [FILE...] 扩展正则表达式的元字符:字符匹配: . 任意单个字符 []指定范围的字符 [^]不在指定范围的字符 次数匹配: ^ 行首 $ 行尾 <,\b 语首 >,\b 语尾 分组:()后向引用:\1,\2,...或者 a|b a或b C|cat c或cat (C|c)at Cat或cat

vim:文本编辑器 打开文件 vim [OPTION]... FILE... +# 打开文件后,让光标处于第#行的行首,+默认行尾 +/PATTERN 让光标处于第一个被PATTERN匹配到的行的行首 -b file 二进制方式打开文件 -d file1 file2...比较多个文件 -m file 只读打开文件

三种模式

命令模式:默认模式,移动光标,剪切/粘贴文本 插入或编辑模式:修改文本 扩展模式:保存,退出等 ESC键 退出当前模式 ESC键 ESC键 总是返回到命令模式

模式转换 命令模式--->插入模式 i insert,在光标所在处输入 I 在当前光标所在行的行首输入 a append,在光标所在处后面输入 A 在当前光标所在行的行尾输入 o 在当前光标所在行的下方打开一个新行 O 在当前光标所在行的上方打开一个新行

插入模式--->命令模式 ESC 命令模式--->扩展命令模式 : 扩展命令模式--->命令模式 ESC,enter

关闭文件

扩展命令模式: :q 退出 :q! 强制退出,丢弃做出的修改 :wq 保存退出 :x 保存退出 命令模式 ZZ 保存退出 ZQ 不保存退出