linux 系统运行级别通常为 0-6,请分别写出每一个级别的含义。mysql
0 关机linux
1 单用户模式正则表达式
2 多用户模式 没有NFSsql
3 彻底的多用户 命令行模式shell
4 没有使用数据库
5 图形化界面模式安全
6 重启ssh
init 5 临时修改tcp
runlevel 显示运行级别工具
修改文件 /etc/inittab
但愿防火墙,仅在 3 级别上开机自启动,该如何作?
在--level后加数字指定运行级别 on 开 off 关
[root@znix ~]# chkconfig --level 3 iptables on
[root@znix ~]# chkconfig |grep ipt
iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
[root@znix ~]# chkconfig --level 3 iptables off
[root@znix ~]# chkconfig |grep ipt
iptables 0:off 1:off 2:off 3:off 4:of
etc/目录为 linux 系统的默认的配置文件及服务启动命令的目录
a.请用 tar打包/etc 整个目录(打包及压缩)
b.请用 tar打包/etc 整个目录(打包及压缩,但须要排除/etc/services 文件)
c.请把 a 点命令的压缩包,解压到/tmp 指定目录下(最好只用 tar命令实现)
建立压缩包的时候尽可能使用相对路径
[root@znix ~]# tar zcvf /tmp/etc.tar.gz /etc/
筐(压缩包的名字) 要压缩的文件
[root@znix ~]# ls -lh /tmp/etc.tar.gz
-rw-r--r-- 1 root root 9.3M Aug 25 09:34 /tmp/etc.tar.gz
z----压缩工具 gzip 经过gzip软件进行压缩
c----create 建立压缩包
v----显示 建立/解压 的过程
f----指定压缩包的位置和名字
查看压缩包的内容时能够不加z参数,系统会自动选择。
[root@znix tmp]# tar ztf etc.tar.gz
t----显示或者列表
解压不指定路径的时候会解压到当前路径。
[root@znix tmp]# tar zxf etc.tar.gz
x----extract 解压
指定解压路径
-C (大写c) 指定解压路径
[root@znix ~]# tar xf /tmp/etc.tar.gz -C /tmp/
[root@znix ~]# ls -ld /etc/
drwxr-xr-x. 78 root root 4096 Aug 25 09:42 /etc/
--exclude 后面加上等号填上要排除的文件
[root@znix /]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=etc/services
[root@znix /]# tar tf /tmp/etc-paichu.tar.gz |grep "services"
etc/init/readahead-disable-services.conf
Removing leading `/' from member names
把压缩包中的文件最前面的斜线删除
压缩包里的内容 绝对路径>>>相对路径
缘由:
解压的时候会按照压缩包内的路径进行解压,从根目录打包会覆盖其余文件
系统解决办法:
出于安全的考虑,把绝对路径前面的'/'去掉,变成相对路径
先进入根目录再进行压缩。
[root@znix /]# tar zcf /tmp/etc.tar.gz etc/
一条命令,进入根目录而且压缩。
[root@znix ~]# cd / && tar zcf /tmp/data.tar.gz etc/
&& 表示前面的执行好了,再执行后面的
[root@znix ~]# cd / && tar zcf /tmp/etcbak.tar.gz etc/
[root@znix /]# ll /tmp/etcbak.tar.gz
-rw-r--r-- 1 root root 9733401 Aug 25 10:54 /tmp/etcbak.tar.gz
建立环境
[root@znix /]# mkdir /clsn ; echo "I am clsn,myqq is 31333741">/clsn/clsn.txt
[root@znix clsn]# cat clsn.txt
I am clsn,myqq is 31333741
如今须要从文件中过滤出“clsn”和“31333741”字符串,请给出命令。
先用sed命令将前面的部分替换为空,通过管道,sed在将后面的部分替换为空。
[root@znix clsn]# sed 's#I am ##g' clsn.txt |sed 's#,myqq is##g'
clsn 31333741
sed将逗号换为空格,awk以空格为分隔符,print输出列的内容,$3表示第三列,$NF 表示最后一列
[root@znix clsn]# sed 's#,# #g' clsn.txt |awk '{print $3,$NF}'
clsn 31333741
使用-F指定分隔符,这里指定为逗号和空格,print 须要在{}中才能够使用。
-F 指定分隔符,表示每一列的结束标记
[root@znix clsn]# awk -F "[, ]" '{print $3,$6}' clsn.txt
clsn 31333741
先用sed将逗号替换为空格,而后再用cut 切割。
-d 表示用什么切割,这里指定为空格,-f3,6表示第三和六列。
[root@znix clsn]# sed 's#,# #g' clsn.txt|cut -d ' ' -f3,6
clsn 31333741
awk在'{print $3","$NF}'里面写双引号里面写什么就显示什么
[root@znix clsn]# awk -F "[ ,]" '{print $3","$NF}' clsn.txt
clsn,31333741
查看/etc/services文件内容有多少行
[root@znix clsn]# wc -l /etc/services
10774 /etc/services
-l 显示文件有多少行
ps命令,查看正在运行的进程,-ef 显示系统中正在运行的进程
[root@znix ~]# ps -ef
[root@znix ~]# ps -ef|grep "/sshd"
root 1450 1 0 Aug24 ? 00:00:00 /usr/sbin/sshd
root 4965 4846 0 12:32 pts/0 00:00:00 grep /sshd
使用wc命令查看行数
数字大于2时表示程序运行。
[root@znix ~]# ps -ef|grep "/sshd"|wc -l
2
过滤出/etc/services 文件包含 3306或 1521 两数据库端口的行的内容。
[root@znix ~]# grep -E "3306|1521" /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
"|" 表示或者,必须加在引号中。属于正则表达式。
egrep时grep的高级版,与grep -E 相同。
[root@znix ~]# egrep "3306|1521" /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
所见即所得, 单引号里的内容会原封不动的显示出来
[root@znix ~]# echo '$LANG $(hostname)'
$LANG $(hostname)
会解析里面的特殊符号
[root@znix ~]# echo "$LANG $(hostname)"
en_US.UTF-8 znix