7 一大波命令及特殊符号:PATH环境变量、Linux启动过程、Linux运行级别、一大波命令
Linux启动过程:


http://blog.51cto.com/oldboy/791273 linux开机到登陆的启动过程描述
环境变量:
特点:
1.大写
2.在系统大部分地方可以使用,含义相同。
[root@oldboyedu-01 ~]# env
[root@oldboyedu-01 ~]# echo $LANG
en_US.UTF-8
PATH环境变量:
[root@oldboyedu-01 ~]# echo $PATH
/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PATH中存放的是命令的位置/路径,冒号分隔。
linux下面运行命令过程:
输入命令--在PATH里面 路径进行查找--找到了就运行--否则就提示无法找到。
[root@oldboyedu-01 ~]# rpm -qa //查询已经装了的软件
[root@oldboyedu-01 ~]# rpm -qa |grep tree //等价于rpm -qa tree
tree-1.5.3-3.el6.x86_64
[root@oldboyedu-01 ~]# rpm -ql tree //查询软件包里面的内容
/usr/bin/tree
/usr/share/doc/tree-1.5.3
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz
eg:显示某个目录下的一级目录?
法一:
[root@oldboyedu-01 ~]# tree /oldboy/
/oldboy/
├── cmake-2.8.8.tar.gz
├── ett.log
├── ett.log-soft -> /oldboy/ett.log
├── new.log
├── new.log-hard
└── oldboy1
└── oldboy2
2 directories, 5 files
[root@oldboyedu-01 ~]# tree -d /oldboy/ //只显示目录
/oldboy/
└── oldboy1
└── oldboy2
2 directories
[root@oldboyedu-01 ~]# tree -dL 1 /oldboy/ //只显示一级目录
/oldboy/
└── oldboy1
1 directory
法二:
[root@oldboyedu-01 ~]# find /oldboy/ -type d
/oldboy/
/oldboy/oldboy1
/oldboy/oldboy1/oldboy2
[root@oldboyedu-01 ~]# find /oldboy/ -type d -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
/oldboy/
/oldboy/oldboy1
[root@oldboyedu-01 ~]# find /oldboy/ -maxdepth 1 -type d //good
/oldboy/
/oldboy/oldboy1
[root@oldboyedu-01 ~]# find /oldboy/ -maxdepth 1 -type d ! -name "." //排除文件名是.的
/oldboy/
/oldboy/oldboy1
法三:
[root@oldboyedu-01 ~]# ll /oldboy/|grep "^d" //以d开头的
drwxr-xr-x 3 root root 4096 Dec 13 17:11 oldboy1
法四:
[root@oldboyedu-01 ~]# ll /oldboy/ |awk '$2>2' //列数$1 $2 ... 不准,了解即可!
total 5576
drwxr-xr-x 3 root root 4096 Dec 13 17:11 oldboy1
法五:
[root@oldboyedu-01 ~]# ls -F /oldboy/ |grep "/"
oldboy1/
[root@oldboyedu-01 ~]# ls -F /oldboy/ |grep '/'
oldboy1/
[root@oldboyedu-01 ~]# ls -F /oldboy/ |grep /
oldboy1/
eg:回到上一次目录中?
[root@oldboyedu-01 ~]# cd /oldboy/
[root@oldboyedu-01 oldboy]# cd /tmp/
[root@oldboyedu-01 tmp]# cd - //回到上一次目录中
/oldboy
[root@oldboyedu-01 oldboy]# cd $OLDPWD //等效 cd -
[root@oldboyedu-01 tmp]# cd $OLDPWD
linux查询帮助:
man ls
linux内置命令 help cd(简介),man cd
http://man.linuxde.net
eg:快速查找最近更新的文件?
[root@oldboyedu-01 ~]# ls -tl /oldboy/ //按修改时间(新旧)排列
total 5576
drwxr-xr-x 3 root root 4096 Dec 13 17:11 oldboy1
lrwxrwxrwx 1 root root 15 Dec 13 14:19 ett.log-soft -> /oldboy/ett.log
-rw-r--r-- 1 root root 51 Dec 13 14:19 ett.log
-rw-r--r-- 1 root root 5691656 Dec 13 09:31 cmake-2.8.8.tar.gz
-rw-r--r-- 2 root root 14 Dec 12 23:07 new.log
-rw-r--r-- 2 root root 14 Dec 12 23:07 new.log-hard
[root@oldboyedu-01 ~]# ls -rtl /oldboy/ //r逆序
total 5576
-rw-r--r-- 2 root root 14 Dec 12 23:07 new.log-hard
-rw-r--r-- 2 root root 14 Dec 12 23:07 new.log
-rw-r--r-- 1 root root 5691656 Dec 13 09:31 cmake-2.8.8.tar.gz
-rw-r--r-- 1 root root 51 Dec 13 14:19 ett.log
lrwxrwxrwx 1 root root 15 Dec 13 14:19 ett.log-soft -> /oldboy/ett.log
drwxr-xr-x 3 root root 4096 Dec 13 17:11 oldboy1
eg:调试系统服务时,如何实时查看系统日志/var/log/messages的更新?
[root@oldboyedu-01 ~]# tail -f /var/log/messages //tailf
eg:如何显示文件内容,加行号?
[root@oldboyedu-01 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@oldboyedu-01 ~]# echo stu{01..5}|xargs -n2
stu01 stu02
stu03 stu04
stu05
[root@oldboyedu-01 ~]# echo stu{01..5}|xargs -n1>/oldboy/nginx.conf
[root@oldboyedu-01 ~]# cat /oldboy/nginx.conf
stu01
stu02
stu03
stu04
stu05
法一:
[root@oldboyedu-01 ~]# cat -n /oldboy/nginx.conf
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
法二:vim --:set nu,set nonu
法三:
[root@oldboyedu-01 ~]# grep -n "stu" /oldboy/nginx.conf
1:stu01
2:stu02
3:stu03
4:stu04
5:stu05
法四:
[root@oldboyedu-01 ~]# grep -n "." /oldboy/nginx.conf // . 表示任何符号
1:stu01
2:stu02
3:stu03
4:stu04
5:stu05
法五:
[root@oldboyedu-01 ~]# awk '{print NR,$0}' /oldboy/nginx.conf //NR--行号,(空格);内容放在$0中
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
法六:
[root@oldboyedu-01 ~]# sed '=' /oldboy/nginx.conf
1
stu01
2
stu02
3
stu03
4
stu04
5
stu05
[root@oldboyedu-01 ~]# sed '=' /oldboy/nginx.conf |xargs -n1
1
stu01
2
stu02
3
stu03
4
stu04
5
stu05
[root@oldboyedu-01 ~]# sed '=' /oldboy/nginx.conf |xargs -n2 //
1 stu01
2 stu02
3 stu03
4 stu04
5 stu05
[root@oldboyedu-01 ~]# sed '=' /oldboy/nginx.conf |xargs -n3
1 stu01 2
stu02 3 stu03
4 stu04 5
stu05
eg:装完系统后,希望让网络文件共享服务NFS(IPtables),仅在3级别上开机自启动?
[root@oldboyedu-01 ~]# chkconfig iptables off
[root@oldboyedu-01 ~]# chkconfig|grep ipt
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@oldboyedu-01 ~]# chkconfig --level 3 iptables on //
[root@oldboyedu-01 ~]# chkconfig|grep ipt
iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
[root@oldboyedu-01 ~]# chkconfig iptables off
[root@oldboyedu-01 ~]# chkconfig|grep ipt
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
打包: tar -cvf test.tar test ... //c:create创建压缩包;v:verbose显示执行过程;f:file接上压缩包名字。
解包: tar -xvf test.tar //x:extract解压
压缩: tar -czvf test.tar.gz test //z:通过gzip工具进行压缩,
tar -cjvf test.tar.bz2 test //
解压缩:tar -xzvf test.tar.gz tar -xjvf test.tar.bz2
[root@oldboyedu-01 ~]# tar ztf /opt/cmake-2.8.8.tar.gz //t:list显示压缩包的内容。
[root@oldboyedu-01 ~]# tar czvf /tmp/sanqian.tar.gz /etc/hgsq.txt
tar命令打包压缩时会自动将绝对路径变化为相对路径(为了安全 ),解压的时候会按照之前压缩的路径进行解压,会把源文件覆盖。
可以指定解压到某个目录下。
//排除某文件被压缩进
[root@oldboyedu-01 ~]# tar -czvf /tmp/etc.tar.gz /etc/ --exclude=/etc/services
[root@oldboyedu-01 ~]# tar -tf /tmp/etc.tar.gz |grep services //没有/etc/services这个文件了
etc/init/readahead-disable-services.conf
eg:有如下命令:
[root@oldboyedu-01 ~]# touch /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# echo "I am oldboy,myqq is 2431108588" >/oldboy/oldboy.txt
a.现在需要从文件中过滤出“oldboy”和“2431108588”字符串,请给出命令。
法一:
[root@oldboyedu-01 ~]# sed 's#I am ##g' /oldboy/oldboy.txt|sed 's#,myqq is##g'
oldboy 2431108588
法二:
[root@oldboyedu-01 ~]# sed 's#,# #g' /oldboy/oldboy.txt
I am oldboy myqq is 2431108588
[root@oldboyedu-01 ~]# sed 's#,# #g' /oldboy/oldboy.txt |awk '{print $3,$6}'
oldboy 2431108588
法三:
//tr替换命令
[root@oldboyedu-01 ~]# tr "," " " </oldboy/oldboy.txt //tr
I am oldboy myqq is 2431108588
[root@oldboyedu-01 ~]# tr "," " " </oldboy/oldboy.txt |awk '{print $3,$6}'
oldboy 2431108588
法四:
[root@oldboyedu-01 ~]# awk -F "," '{print $1}' /oldboy/oldboy.txt
I am oldboy
[root@oldboyedu-01 ~]# awk -F "[, ]" '{print $1}' /oldboy/oldboy.txt
I
//awk指定多个分隔符号,这里以,或者空格作为菜刀。
[root@oldboyedu-01 ~]# awk -F "[, ]" '{print $3,$6}' /oldboy/oldboy.txt
oldboy 2431108588
b.现在需要从文件中过滤出“oldboy,2431108588”字符串,请给出命令。
[root@oldboyedu-01 ~]# awk -F "[, ]" '{print $3","$6}' /oldboy/oldboy.txt //“”里面的原样输出
oldboy,2431108588
eg:查找/etc/services文件有多少行?
[root@oldboyedu-01 ~]# wc -l /etc/services //wc -l统计行号
10774 /etc/services
eg:查看sshd远程连接进程是否在运行?
[root@oldboyedu-01 ~]# ps -ef |grep "sshd"
root 1532 1 0 Dec12 ? 00:00:00 /usr/sbin/sshd
root 39841 1532 0 16:46 ? 00:00:03 sshd: root@pts/1
root 40091 1532 0 19:50 ? 00:00:03 sshd: root@pts/2
root 40233 40093 0 21:30 pts/2 00:00:00 grep sshd
[root@oldboyedu-01 ~]# ps -ef |grep "sshd"|wc -l
4
eg:过滤出/etc/services文件包含3306或者1521两数字所在行的内容?
[root@oldboyedu-01 ~]# grep -E "3306|1521" /etc/services //egrep:支持高级正则表达式
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
//命令行及shell中加单引号和双引号的区别小结:
单引号:“所见即所得” “吃啥吐啥”
双引号:里面的符号会被解析
[root@oldboyedu-01 ~]# echo '$LANG $(hostname) `pwd`'
$LANG $(hostname) `pwd`
[root@oldboyedu-01 ~]# echo "$LANG $(hostname) `pwd`"
en_US.UTF-8 oldboyedu-01 /root
浙公网安备 33010602011771号