第1章 输出文件内容的行号及内容 了解{}在这里的作用 [root@oldboyedu43-lnb oldboy]# #{} 生成序列 [root@oldboyedu43-lnb oldboy]# echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z 创建环境 [root@oldboyedu43-lnb oldboy]# echo stu{01..5} |xargs -n1 >nginx.conf [root@oldboyedu43-lnb oldboy]# cat nginx.conf stu01 stu02 stu03 stu04 stu05 1.1 方法 cat -n的参数表达的意思为输出的内容加行号 [root@oldboyedu43-lnb oldboy]# cat -n nginx.conf 1 stu01 2 stu02 3 stu03 4 stu04 5 stu05 1.2 vim 使用vim打开文件 :在底部输入 :set nu 显示行号 :set nonu 取消显示行号 nu==== number 1.3 grep -n给grep命令找到的内容显示个行号 [root@oldboyedu43-lnb oldboy]# grep -n "stu" nginx.conf 1:stu01 2:stu02 3:stu03 "."点 正则表达式 表示任意一个字符 [root@oldboyedu43-lnb oldboy]# grep -n "." nginx.conf 1:stu01 2:stu02 3:stu03 1.4 awk 思路:NR行号 $0 表示这一行的内容 [root@oldboyedu43-lnb oldboy]# awk '显示行号和内容' nginx.conf 1.4.1 awk: 显示行号和内容 显示行号 #awk '{print NR}' nginx.conf 1 2 3 4 5 显示行号,并且将行对应的内容显示

awk '{print NR,$0}' nginx.conf

1 stu01 2 stu02 3 stu03 4 stu04
5 stu05 想显示逗号就用NR,$0 1.5 sed 思路:sed命令加等号,会将输出的内容以一列的形式显示,-n2以两列显示 [root@oldboyedu43-lnb oldboy]# sed '=' nginx.conf |xargs -n2 1 stu01 2 stu02 3 stu03 4 stu04 5 stu05

小结: 1.cat 配合参数-n 2.grep 配合参数-n,最好配合正则表达式.(点) 3.vim :冒号后输入set nu 4.awk 显示print 行号NR 内容$0 5.sed "="表示内容一列显示,配合|xargs -n2 显示为两列对应关系

第2章 linux系统运行级别含义 0 关机 1 单用户模式 2 不完全多用户,缺少nfs 3 完全的多用户模式,命令行,文本模式 4 未定义 5 X11,桌面模式 图形界面模式 6 重启 如何查看运行级别 runlevel 如何修改运行级别 1)init 临时修改 2)/etc/inittab 永久修改

第3章 管理不同级别开机自启动 格式:chkconfig --level 运行级别 服务 on/off

chkconfig --level 3 iptables off

chkconfig --level 3 iptables on

chkconfig |grep iptables

iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off 3运行级别iptables服务关闭

第4章 linux乱码 4.1 临时修改字符集 export LANG= en_US.UTF-8 4.2 永久修改 /etc/sysconfig/i18n

第5章 tar 5.1 格式: tar 参数 存放路径/压缩包 文件或目录(要打包压缩的) tar zcvf /tmp/etc.tar.gz /etc/ 5.2 参数的含义 z === gzip 通过gzip进行压缩 .tar.gz j ===bzip 通过bzip程序压缩 .tar.bz c === create 创建包 v === verbose 显示执行过程 f === file 指定的压缩包 t === list 查看压缩包内容 x === extract 解压

5.3 tar打包压缩整个目录 tar zcvf /tmp/etc.tar.gz /etc v可以不要,打包整个/etc 打包后检查 [root@oldboyedu43-lnb ~]# ll -rt /tmp/ -rw-r--r-- 1 root root 9729685 Dec 12 04:41 etc.tar.gz 5.4 tar查看压缩包内容 tar ztf /tmp/etc.tar.gz z可省略 5.5 解压压缩包 5.5.1 默认解压到当前目录中 cd /tmp/ 想解压到哪个目录先进入其中 tar zxvf /tmp/etc.tar.gz zv可省略 5.5.2 解压到指定目录中 tar xf /tmp/etc.tar.gz -C /opt
压缩、查看、解压 tar zcf /tmp/etc.tar.gz /etc tar tf /tmp/etc.tar.gz tar xf /tmp/etc.tar.gz 5.6 打包目录同时排除子目录 --exclude=被排除文件名 -X或--exclude-from=被排除的文件名的列表

tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude=/etc/services 排除/etc/services

检查 [root@oldboyedu43-lnb ~]# tar tf /tmp/etc-pai.tar.gz |grep "services" etc/init/readahead-disable-services.conf 5.7 创建压缩包常见警告及原因 5.7.1 原因 tar: Removing leading /' from member names 压缩包中每个文件名开头的"/" 删除掉 tar: Removing leading/' from hard link targets 删除/的原因 压缩包中的 绝对路径 ==== >相对路径 假设不会这么做 解压之前的压缩包的时候,会把新的文件覆盖,绝对路径更改为相对路径 为了安全,防止解压的时候覆盖原来文件 5.7.2 解决方案 使用相对路径创建压缩包 [root@oldboyedu43-lnb tmp]# cd / [root@oldboyedu43-lnb /]# tar zcf /tmp/etc.tar.gz etc/ 5.8 小结: 1.创建,查看,解压压缩包分别为tar zcf,tf,xf 2.-C 解压到指定的目录 3.--exclude或-X 压缩的时候排除

第6章 截取显示 6.1 方法1-sed (标点符号和空格都可过滤) sed 's#I am ##g' oldboy.txt |sed 's#,myqq is # #g'
oldboy 31333741 6.2 方法2-awk $N代表第几列,特殊:$0代表本行内容,$NF代表 [root@oldboyedu43-lnb oldboy]# awk '{print $1}' oldboy.txt $1表示取第一列 I [root@oldboyedu43-lnb oldboy]# awk '{print $1,$3}' oldboy.txt $1,$3表示取第一列和第三列 I oldboy,myqq -F表示重新定义分隔符,[]中写入分隔符,这里写的为空格和逗号,代表空格和逗号都是分隔符, [root@oldboyedu43-lnb oldboy]# awk -F "[ ,]" '{print $3,$6}' oldboy.txt oldboy 31333741 没有逗号
如果想让输出的内容中间有逗号,把$3和$6之间的逗号打上"",不打为空格 [root@oldboyedu43-lnb oldboy]# awk -F "[ ,]" '{print $3","$6}' oldboy.txt oldboy,31333741 (有括号) 6.3 方法3-cut awk的简易版 -d 指定分隔符(只能指定一个) -f 显示某一列(-f1显示第一列,-f2,5显示第二列和第五列。-f3-f6显示第三列到第六列) #cut -d " " -f3,6 oldboy.txt (" "中指定的分隔符为空格) #oldboy,myqq (这里是有逗号的) cut -d " " -f1 用空格分割,如果有多余的不想要的符号等,可以用sed过滤

sed 's#,# #g' oldboy.txt |cut -d " " -f3,6

oldboy 31333741 (这里没有逗号)

第7章 双重过滤 需要使用正则表达式中的 | 代表或者的意思

egrep "3306|1521" /etc/services (代表3306或者1521的意思不是必须符合这两个条件)

mysql 3306/tcp # MySQL mysql 3306/udp # MySQL ncube-lm 1521/tcp # nCube License Manager ncube-lm 1521/udp # nCube License Manager

# |正则中的战斗机 grep使用|必须变为egrep才可以使用

第8章 wc 查看文件信息,-l参数代表显示行

wc -l /etc/services

10774 /etc/services

第9章 ps -ef 查看当前linux中全部正在运行的进程 查找指定的进程是否运行 [root@oldboyedu43-lnb oldboy]# ps -ef |grep "sshd" root 1507 1 0 Dec11 ? 00:00:00 /usr/sbin/sshd root 4079 1507 0 02:43 ? 00:00:01 sshd: root@pts/0 root 4399 1507 0 03:38 ? 00:00:00 sshd: root@pts/1 root 4628 4081 0 06:51 pts/0 00:00:00 grep sshd 可将wc -l 和ps -ef配合使用 ps -ef |grep "/usr/sbin/sshd"|wc -l 2 (显示为2代表查找的进程正在运行)

第10章 总结: 1.显示文件行号cat、vi/vim、grep、awk、sed。 2.使用tar打包压缩 3.截取显示使用sed、awk、cut 4.统计行数及显示进程ps -ef和wc -l搭配 5.多个过滤条件:使用|