|||
标准输入,标准输出,错误输出
[root@localhost~]# ls -l /dev/stdin
lrwxrwxrwx.1 root root 15 Jul 30 20:29 /dev/stdin -> /proc/self/fd/0
[root@localhost~]# ls -l /dev/stdout
lrwxrwxrwx.1 root root 15 Jul 30 20:29 /dev/stdout -> /proc/self/fd/1
[root@localhost~]# ls -l /dev/stderr
lrwxrwxrwx.1 root root 15 Jul 30 20:29 /dev/stderr -> /proc/self/fd/2
[root@localhost~]# ls /etc/passwd1
ls:cannot access /etc/passwd1: No such file or directory
[root@localhost~]# ls /etc/passwd /etc/passwd1
ls:cannot access /etc/passwd1: No such file or directory
/etc/passwd
[root@localhost~]# ls /etc/passwd /etc/passwd1 1>1.log 2>2.log
(注: >这个符号表示输出存对象,该句的含义是将标准输出存对象为1.log,将错误输出存对象为2.log),如果我们将标准输出和错误输出存到一个log文件里面,可用:
[root@localhost~]# ls /etc/passwd /etc/passwd1 &> all.log(&后面没有空格,>后面有空格)
下句等价于上句
[root@localhost ~]# ls/etc/passwd /etc/passwd1 > guo.log 2>&1
[root@localhost~]# cat all.log
ls:cannot access /etc/passwd1: No such file or directory
/etc/passwd
系统的黑洞,不占用磁盘空间/etc/null
[root@localhost~]# du -sh /dev/null
0 /dev/null
[root@localhost~]# ls /etc/passwd /etc/passwd1 > /etc/null 2>&1
零发射器(1M的txt文件)
[root@localhost~]# ls -lh /dev/zero
crw-rw-rw-.1 root root 1, 5 Jul 30 20:29 /dev/zero
[root@localhost~]# dd if=/dev/zero of=aaa.txt bs=1 count=1M
1048576+0records in
1048576+0records out
1048576bytes (1.0 MB) copied, 5.01756 s, 209 kB/s
[root@localhost~]# ls -lh aaa.txt (这个文件的内容我们看不懂)
-rw-r--r--.1 root root 1.0M Jul 31 00:50 aaa.txt
统计用的命令wc
[root@localhost~]# wc -l /etc/passwd
32/etc/passwd (32行)
[root@localhost~]# wc -w /etc/passwd
46/etc/passwd (46 个单词)
[root@localhost~]# wc -c /etc/passwd
1469/etc/passwd (1469个字符)
[root@localhost~]# wc /etc/passwd
32 461469 /etc/passwd
过滤器grep 可以使用的命令(^, S,-n, -c, -v, -i)
[root@localhost~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost~]# grep '^root' /etc/passwd(注意^的作用,只取开头)
root:x:0:0:root:/root:/bin/bash
[root@localhost~]# grep 'nologin$' /etc/passwd(注意$的作用,只取结尾)
[root@localhost pub]# grep -c 'root' ps
2
[root@localhost pub]# grep -c '' ps
32
注意上两行的区别,第二个为啥结果是32??
[root@localhostpub]# tr 'a-z' ‘A-Z’ < ps
(小写字母被大写字母替换,为什么会出现乱码?可能是输入法的问题)
OLLQ:U:0:0:OLLQ:/OLLQ:/▒FK/▒▒PE
▒FK:U:1:1:▒FK:/▒FK:/P▒FK/KLILDFK
A▒BJLK:U:2:2:A▒BJLK:/P▒FK:/P▒FK/KLILDFK
▒AJ:U:3:4:▒AJ:/S▒O/▒AJ:/P▒FK/KLILDFK
IM:U:4:7:IM:/S▒O/PMLLI/IMA:/P▒FK/KLILDFK
PVK▒:U:5:0:PVK▒:/P▒FK:/▒FK/PVK▒
PERQALTK:U:6:0:PERQALTK:/P▒FK:/P▒FK/PERQALTK
E▒IQ:U:7:0:E▒IQ:/P▒FK:/P▒FK/E▒IQ
J▒FI:U:8:12:J▒FI:/S▒O/PMLLI/J▒FI:/P▒FK/KLILDFK
RR▒M:U:10:14:RR▒M:/S▒O/PMLLI/RR▒M:/P▒FK/KLILDFK
LMBO▒QLO:U:11:0:LMBO▒QLO:/OLLQ:/P▒FK/KLILDFK
D▒JBP:U:12:100:D▒JBP:/RPO/D▒JBP:/P▒FK/KLILDFK
DLMEBO:U:13:30:DLMEBO:/S▒O/DLMEBO:/P▒FK/KLILDFK
CQM:U:14:50:FTPUPBO:/S▒O/CQM:/P▒FK/KLILDFK
KL▒LAV:U:99:99:NL▒LAV:/:/P▒FK/KLILDFK
A▒RP:U:81:81:SVPQBJJBPP▒DB ▒RP:/:/P▒FK/KLILDFK
RP▒JRUA:U:113:113:RP▒JRUARPBO:/:/P▒FK/KLILDFK
S▒P▒:U:69:69:SFOQR▒I▒LKPLIB JBJLOV LTKBO:/ABS:/P▒FK/KLILDFK
OQHFQ:U:499:497:RB▒IQFJBKFQ:/MOL▒:/P▒FK/KLILDFK
▒S▒EF-▒RQLFMA:U:170:170:AS▒EFIPS4LL SQ▒H:/S▒O/IF▒/▒S▒EF-▒RQLFMA:/P▒FK/KLILDFK
MRIPB:U:498:496:PRIPBARAFLSVPQBJ D▒BJLK:/S▒O/ORK/MRIPB:/P▒FK/KLILDFK
E▒IA▒BJLK:U:68:68:HALA▒BJLK:/:/P▒FK/KLILDFK
KQM:U:38:38::/BQ▒/KQM:/P▒FK/KLILDFK
▒M▒EB:U:48:48:AM▒EB:/S▒O/TTT:/P▒FK/KLILDFK
P▒PI▒RQE:U:497:76:"S▒PI▒RQEARPBO":/S▒O/BJMQV/P▒PI▒RQE:/P▒FK/KLILDFK
MLPQCFU:U:89:89::/S▒O/PMLLI/MLPQCFU:/P▒FK/KLILDFK
▒OQ:U:173:173::/BQ▒/▒OQ:/P▒FK/KLILDFK
DAJ:U:42:42::/S▒O/IF▒/DAJ:/P▒FK/KLILDFK
PPEA:U:74:74:POFSFIBDB-PBM▒O▒QBASSH:/S▒O/BJMQV/PPEA:/P▒FK/KLILDFK
Q▒MARJM:U:72:72::/:/P▒FK/KLILDFK
DRL:U:500:500:DRL:/ELJB/DRL:/▒FK/▒▒PE
T▒KD▒▒K:U:501:501::/ELJB/T▒KD▒▒K:/▒FK/▒▒PE
[root@localhostpub]# tr ‘A-Z’ 'a-z' < ps
root:x:0:0:root:/root:/bin/bash
[root@localhostpub]# tr 'a-z' 'A-Z' < ps
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
排序
[root@localhostpub]# sort ps(如果什么都不加,默认按首字母排序,如下结果)
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
avahi-autoipd:x:170:170:AvahiIPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:Systemmessage bus:/:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
guo:x:500:500:guo:/home/guo:/bin/bash
haldaemon:x:68:68:HALdaemon:/:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
pulse:x:498:496:PulseAudioSystem Daemon:/var/run/pulse:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
saslauth:x:497:76:"Saslauthduser":/var/empty/saslauth:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
tcpdump:x:72:72::/:/sbin/nologin
usbmuxd:x:113:113:usbmuxduser:/:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
vcsa:x:69:69:virtualconsole memory owner:/dev:/sbin/nologin
wangban:x:501:501::/home/wangban:/bin/bash
[root@localhost pub]# sort -t: -k 3 ps
(-t,指定分隔符,-k指定那列排序)
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxduser:/:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
avahi-autoipd:x:170:170:AvahiIPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
saslauth:x:497:76:"Saslauthduser":/var/empty/saslauth:/sbin/nologin
pulse:x:498:496:PulseAudioSystem Daemon:/var/run/pulse:/sbin/nologin
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
guo:x:500:500:guo:/home/guo:/bin/bash
wangban:x:501:501::/home/wangban:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
haldaemon:x:68:68:HALdaemon:/:/sbin/nologin
vcsa:x:69:69:virtualconsole memory owner:/dev:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
dbus:x:81:81:Systemmessage bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
[root@localhost pub]# sort -t: -k 3 -r ps |head
(-r,是逆序排列,|head是查看前十行,是管道文件,把上一个命令的输出,作为下一个命令的输入。)
nobody:x:99:99:Nobody:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
dbus:x:81:81:Systemmessage bus:/:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
vcsa:x:69:69:virtualconsole memory owner:/dev:/sbin/nologin
haldaemon:x:68:68:HALdaemon:/:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
[root@localhostpub]# cut -d: -f1 ps
root
bin
daemon
adm
lp
sync
shutdown
halt
uucp
operator
games
gopher
ftp
nobody
dbus
usbmuxd
vcsa
rtkit
avahi-autoipd
pulse
haldaemon
ntp
apache
saslauth
postfix
abrt
gdm
sshd
tcpdump
guo
wangban
命令:xargs的用法
[root@localhostpub]# cut -d: -f1 ps|xargs mkdir^C
内置命令:
[root@localhostpub]# which cd(cd是内置命令)
/usr/bin/which:no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
查看所有的内置命令
[root@localhost~]# man builtin
对命令的查找 which
[root@localhost~]# which shutdown
/sbin/shutdown
[root@localhost~]# whereis shutdown
shutdown:/sbin/shutdown /usr/share/man/man3p/shutdown.3p.gz/usr/share/man/man8/shutdown.8.gz /usr/share/man/man2/shutdown.2.gz
[root@localhost~]# whereis ls
ls:/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost~]# etho $PATH
-bash:etho: command not found
Which命令依赖的数据库
[root@localhost~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
对文件的查找 locate命令(为什么无法查找啊?)
[root@localhost~]# locate passwd
locate:can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
[root@localhost~]# locate passwd
locate:can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
locate依赖的数据库update数据库
find查找命令
[root@localhost~]# find -name "passwd"
./aaaa/passwd
[root@localhost~]# pwd
/root
[root@localhost~]# find / -name "passwd"(所有根目录下面查找)
/usr/bin/passwd
/etc/passwd
/etc/pam.d/passwd
/selinux/class/passwd
/selinux/class/passwd/perms/passwd
/root/aaaa/passwd
/pub/passwd
[root@localhost ~]# find /root/ -name "passwd" -exec ls -l{} ;
-rw-r--r--.1 root root 1426 Jul 29 23:02 /root/aaaa/passwd
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-28 13:20
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社