本文共 6460 字,大约阅读时间需要 21 分钟。
***第一章***
显示当前使用的shell
echo ${SHELL} 显示当前系统使用的所有shell cat /etc/shellshelp 内部命令列表 enable cmd 启用内部命令 enable -n cmd禁用内部命令enable -n 查看所有禁用的内部命令外部命令:查看路径:which -a | --skip-alias;whereis区别指定的命令是内部或外部命令:type commandhash缓存表:hash 显示hash缓存;hash-l显示hash缓存,可作为输入使用hash -p path name将命令全路径path其别名为namehash -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:切断电源关机或重启 :shutdownshutdown [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_historyHISTFILESIZE:命令历史文件记录历史的条数HISTTIMEFORMAT=“%F %T “ 显示时间获得帮助:whatis --helpman and infoRed Hat documentation*** 文件管理***
基名:basename
目录名:dirnamecd: 改变目录切换父目录: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:]:任意小写字母[: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:]:字母和数字 :字母 [:cntrl:]:控制(非打印)字符[:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符[:punct:]:标点符号 [:space:]:空白字符 :大写字母[: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 -Duseradd -D-s SHELLuseradd -D-b BASE_DIRuseradd -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'选项:-|--loginsu-|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,revcat-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:]字母和数字代表任何英文大小写字符[: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或Categrep及扩展的正则表达式
egrep=grep -Eegrep [OPTIONS] PATTERN [FILE...]扩展正则表达式的元字符:字符匹配:. 任意单个字符[]指定范围的字符[^]不在指定范围的字符次数匹配:^ 行首$ 行尾\<,\b 语首\>,\b 语尾分组:()后向引用:\1,\2,...或者 a|b a或bC|cat c或cat (C|c)at Cat或catvim:文本编辑器
打开文件 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 不保存退出转载于:https://blog.51cto.com/14233394/2364516