三、Linux 教程-基础命令(181~完)

笔记 同时被 2 个专栏收录
24 篇文章 3 订阅
22 篇文章 0 订阅

二、Linux 命令

1. Linux 命令大全

Linux 命令大全

Linux 命令大全
1、文件管理
cat chattr chgrp chmod
chown cksum cmp diff
diffstat file find git
gitview indent cut ln
less locate lsattr mattrib
mc mdel mdir mktemp
more mmove mread mren
mtools mtoolstest mv od
paste patch rcp rm
slocate split tee tmpwatch
touch umask which cp
whereis mcopy mshowfat rhmask
scp awk read updatedb
2、文档编辑
col colrm comm csplit
ed egrep ex fgrep
fmt fold grep ispell
jed joe join look
mtype pico rgrep sed
sort spell tr expr
uniq wc let
3、文件传输
lprm lpr lpq lpd
bye ftp uuto uupick
uucp uucico tftp ncftp
ftpshut ftpwho ftpcount
4、磁盘管理
cd df dirs du
edquota eject mcd mdeltree
mdu mkdir mlabel mmd
mrd mzip pwd quota
mount mmount rmdir rmt
stat tree umount ls
quotacheck quotaoff lndir repquota
quotaon
5、磁盘维护
badblocks cfdisk dd e2fsck
ext2ed fsck fsck.minix fsconf
fdformat hdparm mformat mkbootdisk
mkdosfs mke2fs mkfs.ext2 mkfs.msdos
mkinitrd mkisofs mkswap mpartition
swapon symlinks sync mbadblocks
mkfs.minix fsck.ext2 fdisk losetup
mkfs sfdisk swapoff
6、网络通讯
apachectl arpwatch dip getty
mingetty uux telnet uulog
uustat ppp-off netconfig nc
httpd ifconfig minicom mesg
dnsconf wall netstat ping
pppstats samba setserial talk
traceroute tty newaliases uuname
netconf write statserial efax
pppsetup tcpdump ytalk cu
smbd testparm smbclient shapecfg
7、系统管理
adduser chfn useradd date
exit finger fwhios sleep
suspend groupdel groupmod halt
kill last lastb login
logname logout ps nice
procinfo top pstree reboot
rlogin rsh sliplogin screen
shutdown rwho sudo gitps
swatch tload logrotate uname
chsh userconf userdel usermod
vlock who whoami whois
newgrp renice su skill
w id groupadd free
8、系统设置
reset clear alias dircolors
aumix bind chroot clock
crontab declare depmod dmesg
enable eval export pwunconv
grpconv rpm insmod kbdconfig
lilo liloconfig lsmod minfo
set modprobe ntsysv mouseconfig
passwd pwconv rdate resize
rmmod grpunconv modinfo time
setup sndconfig setenv setconsole
timeconfig ulimit unset chkconfig
apmd hwclock mkkickstart fbset
unalias SVGATextMode gpasswd
9、备份压缩
ar bunzip2 bzip2 bzip2recover
gunzip unarj compress cpio
dump uuencode gzexe gzip
lha restore tar uudecode
unzip zip zipinfo
**10、设备管理 **
setleds loadkeys rdev dumpkeys
MAKEDEV poweroff

2. 其他命令

3. 扩展文章

4. 命令详细

(181) Linux- newaliases 命令

Linux newaliases命令
Linux 命令大全

Linux newaliases命令会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫 redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程序负责分送的工作。

/etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的数据库。

使用权限:系统管理者。
语法

newaliases

Shell

参数说明:没有任何参数。

# newaliases

Shell

下面命令会做相同的事

# sendmail -bi

Linux 命令大全

(182) Linux- uuname 命令

Linux uuname命令
Linux 命令大全

Linux uuname命令用于显示全部的UUCP远端主机。

uuname可显示UUCP远端主机。
语法

uuname [-alv][-I<配置文件>][--help]

Shell

参数说明

  • -a或–aliases 显示别名。
  • -I<配置文件>或–config<配置文件> 指定程序的配置文件。
  • -l或–local 显示本机名称。
  • -v或–version 显示版本信息。
  • –help 显示帮助。

显示uucp主机名称

# uuname

Linux 命令大全

(183) Linux- netconf 命令

Linux netconf命令
Linux 命令大全

Linux netconf命令用于设置各项网络功能。

netconf是Red Hat Linux发行版专门用来调整Linux各项设置的程序。
语法

netconf

Linux 命令大全

(184) Linux- write 命令

Linux write命令
Linux 命令大全

Linux write命令用于传讯息给其他使用者。

使用权限:所有使用者。
语法

write user [ttyname]

Shell

参数说明

  • user : 预备传讯息的使用者帐号
  • ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息

传讯息给 Rollaend,此时 Rollaend 只有一个连线

write Rollaend

Shell

接下来就是将讯息打上去,结束请按 ctrl+c

传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3

write Rollaend pts/2

Shell

接下来就是将讯息打上去,结束请按 ctrl+c

**注意:**若对方设定 mesg n,则此时讯席将无法传给对方。

Linux 命令大全

(185) Linux- statserial 命令

Linux statserial命令
Linux 命令大全

Linux statserial命令用于显示串口状态。

statserial(status ofserial port)可显示各个接脚的状态,常用来判断串口是否正常。
语法

statserial [-dnx][串口设备名称]

Shell

参数说明

  • -d 以10进制数字来表示串口的状态。
  • -n 仅显示一次串口的状态后即结束程序。
  • -x 与-n参数类似,但是以16进制来表示。

显示串口状态

# statserial /dev/tty1

Shell

只显示一次串口状态

# statserial -n /dev/tty1

Linux 命令大全

(186) Linux- efax 命令

Linux efax命令
Linux 命令大全

Linux efax命令用于收发传真。

支持Class 1与Class 2的调制解调器来收发传真。
语法

efax [-sw][-a<AT指令>][-c<调制解调器属性>][-d<驱动程序>][-f<字体文件>][-g<指令>][-h<传真标题字符串>][-i<AT指令>][-j<AT指令>][-k<AT指令>][-l<识别码>][-o<选项>][-q<错误次数>][-r<文件名>][-v<信息类型>][-x<UUCP锁定文件>][-t<电话号码><传真文件>]

Shell

参数说明

  • -a<AT指令> 以指定的AT指令来接电话。
  • -c<调制解调器属性> 设置本机调制解调器的属性。
  • -d<驱动程序> 指定调制解调器驱动程序。
  • -f<字体文件> 使用指定的字体文件来建立传真标题。
  • -g<指令> 若接到的电话为数据,则执行指定的指令。
  • -h<传真标题字符串> 指定字符串为每页最前端的标题。
  • -i<AT指令> 在调制解调器进入传真模式前,传送AT指令到调制解调器。
  • -j<AT指令> 在调制解调器进入传真模式后,传送AT指令到调制解调器。
  • -k<AT指令> 在调制解调器离开传真模式前,传送AT指令到调制解调器。
  • -l<识别码> 设置本机调制解调器的识别码。
  • -o<选项> 使用非标准调制解调器时设置相关选项。
  • -q<错误次数> 接收传真时,当每页发生错误次数超过指定的数目时,要求对方重发。
  • -r<文件名> 在接收传真时,将每页分别保存成文件。
  • -v<信息类型> 选择要印出的信息类型。
  • -w 不要接听电话,等待OK或CONNECT的信号。
  • -x<UUCP锁定文件> 使用UUCP格式的锁定文件来锁定调制解调器。
  • -t<电话号码><传真文件> 以<电话号码>中的号码来拨号,并将<传真文件>传真出去。

Linux 命令大全

(187) Linux- pppsetup 命令

Linux pppsetup命令
Linux 命令大全

Linux pppsetup命令用于设置PPP连线。

这是Slackware发行版内附程序,它具有互动式的问答界面,让用户轻易完成PPP的连线设置。
语法

pppsetup

Shell

设置ppp拨号

# pppsetup

Linux 命令大全

(188) Linux- tcpdump 命令

Linux tcpdump命令
Linux 命令大全

Linux tcpdump命令用于倾倒网络传输数据。

执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。
语法

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

Shell

参数说明

  • -a 尝试将网络和广播地址转换成名称。
  • -c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
  • -d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
  • -dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
  • -ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
  • -e 在每列倾倒资料上显示连接层级的文件头。
  • -f 用数字显示网际网络地址。
  • -F<表达文件> 指定内含表达方式的文件。
  • -i<网络界面> 使用指定的网络截面送出数据包。
  • -l 使用标准输出列的缓冲区。
  • -n 不把主机的网络地址转换成名字。
  • -N 不列出域名。
  • -O 不将数据包编码最佳化。
  • -p 不让网络界面进入混杂模式。
  • -q 快速输出,仅列出少数的传输协议信息。
  • -r<数据包文件> 从指定的文件读取数据包数据。
  • -s<数据包大小> 设置每个数据包的大小。
  • -S 用绝对而非相对数值列出TCP关联数。
  • -t 在每列倾倒资料上不显示时间戳记。
  • -tt 在每列倾倒资料上显示未经格式化的时间戳记。
  • -T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
  • -v 详细显示指令执行过程。
  • -vv 更详细显示指令执行过程。
  • -x 用十六进制字码列出数据包资料。
  • -w<数据包文件> 把数据包数据写入指定的文件。

显示TCP包信息

# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:35:55.129998 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 148872068:148872168(100) ack 4184371747 win 2100
23:35:55.182357 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 100 win 64240
23:35:55.182397 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 100:200(100) ack 1 win 2100
23:35:55.131713 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 50226+ PTR? 1.0.168.192.in-addr.arpa. (42)
23:35:55.131896 PPPoE [ses 0x1cb0] IP 118.250.6.85.64215 > dns2.cs.hn.cn.domain: 50226+ PTR? 1.0.168.192.in-addr.arpa. (42)
23:35:55.154238 PPPoE [ses 0x1cb0] IP dns2.cs.hn.cn.domain > 118.250.6.85.64215: 50226 NXDomain 0/0/0 (42)
23:35:55.156298 IP dns2.cs.hn.cn.domain > 192.168.0.3.32804: 50226 NXDomain 0/0/0 (42)
23:35:55.159292 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 30304+ PTR? 3.0.168.192.in-addr.arpa. (42)
23:35:55.159449 PPPoE [ses 0x1cb0] IP 118.250.6.85.64215 > dns2.cs.hn.cn.domain: 30304+ PTR? 3.0.168.192.in-addr.arpa. (42)
23:35:55.179816 PPPoE [ses 0x1cb0] IP dns2.cs.hn.cn.domain > 118.250.6.85.64215: 30304 NXDomain 0/0/0 (42)
23:35:55.181279 IP dns2.cs.hn.cn.domain > 192.168.0.3.32804: 30304 NXDomain 0/0/0 (42)
23:35:55.181806 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 200:268(68) ack 1 win 2100
23:35:55.182177 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 268 win 64198
23:35:55.182677 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 43983+ PTR? 112.96.103.202.in-addr.arpa. (45)
23:35:55.182807 PPPoE [ses 0x1cb0] IP 118.250.6.85.64215 > dns2.cs.hn.cn.domain: 43983+ PTR? 112.96.103.202.in-addr.arpa. (45)
23:35:55.183055 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 268:352(84) ack 1 win 2100
23:35:55.201096 PPPoE [ses 0x1cb0] IP dns2.cs.hn.cn.domain > 118.250.6.85.64215: 43983 1/0/0 (72)
23:35:55.203087 IP dns2.cs.hn.cn.domain > 192.168.0.3.32804: 43983 1/0/0 (72)
23:35:55.204666 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 352:452(100) ack 1 win 2100
23:35:55.204852 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 452 win 64152
23:35:55.205305 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 452:520(68) ack 1 win 2100
23:35:55.205889 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 9318+ PTR? 85.6.250.118.in-addr.arpa. (43)
23:35:55.206071 PPPoE [ses 0x1cb0] IP 118.250.6.85.64215 > dns2.cs.hn.cn.domain: 9318+ PTR? 85.6.250.118.in-addr.arpa. (43)
23:35:55.215338 PPPoE [ses 0x1cb0] IP 115.238.1.45.3724 > 118.250.6.85.64120: P 2392751922:2392751987(65) ack 2849759785 win 54
23:35:55.216273 IP 115.238.1.45.3724 > 192.168.0.65.2057: P 2392751922:2392751987(65) ack 2849759785 win 54
23:35:55.329204 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 520 win 64135
23:35:55.458214 IP 192.168.0.65.2057 > 115.238.1.45.3724: . ack 65 win 32590
23:35:55.458221 PPPoE [ses 0x1cb0] IP 118.250.6.85.64120 > 115.238.1.45.3724: . ack 65 win 32590
23:35:55.708228 PPPoE [ses 0x1cb0] IP 115.238.1.45.3724 > 118.250.6.85.64120: P 65:118(53) ack 1 win 54
23:35:55.710213 IP 115.238.1.45.3724 > 192.168.0.65.2057: P 65:118(53) ack 1 win 54
23:35:55.865151 IP 192.168.0.65.2057 > 115.238.1.45.3724: . ack 118 win 32768
23:35:55.865157 PPPoE [ses 0x1cb0] IP 118.250.6.85.64120 > 115.238.1.45.3724: . ack 118 win 32768
23:35:56.242805 IP 192.168.0.65.2057 > 115.238.1.45.3724: P 1:25(24) ack 118 win 32768
23:35:56.242812 PPPoE [ses 0x1cb0] IP 118.250.6.85.64120 > 115.238.1.45.3724: P 1:25(24) ack 118 win 32768
23:35:56.276816 PPPoE [ses 0x1cb0] IP 115.238.1.45.3724 > 118.250.6.85.64120: . ack 25 win 54
23:35:56.278240 IP 115.238.1.45.3724 > 192.168.0.65.2057: . ack 25 win 54
23:35:56.349747 PPPoE [ses 0x1cb0] IP 115.238.1.45.3724 > 118.250.6.85.64120: P 118:159(41) ack 25 win 54
23:35:56.351780 IP 115.238.1.45.3724 > 192.168.0.65.2057: P 118:159(41) ack 25 win 54
23:35:56.400051 PPPoE [ses 0x1cb0] IP 119.147.18.44.8000 > 118.250.6.85.4000: UDP, length 79
23:35:56.475050 IP 192.168.0.65.2057 > 115.238.1.45.3724: . ack 159 win 32762
23:35:56.475063 PPPoE [ses 0x1cb0] IP 118.250.6.85.64120 > 115.238.1.45.3724: . ack 159 win 32762
23:35:56.508968 PPPoE [ses 0x1cb0] IP 115.238.1.45.3724 > 118.250.6.85.64120: P 159:411(252) ack 25 win 54
23:35:56.510182 IP 115.238.1.45.3724 > 192.168.0.65.2057: P 159:411(252) ack 25 win 54
23:35:56.592028 PPPoE [ses 0x1cb0] IP 117.136.2.43.38959 > 118.250.6.85.63283: UDP, length 36

44 packets captured
76 packets received by filter
0 packets dropped by kernel

Shell

显示指定数量包

# tcpdump -c 20
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:36:28.949538 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 148875984:148876020(36) ack 4184373187 win 2100
23:36:28.994325 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 36 win 64020
23:36:28.994368 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 36:72(36) ack 1 win 2100
23:36:28.950779 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 18242+ PTR? 1.0.168.192.in-addr.arpa. (42)
23:36:28.950948 PPPoE [ses 0x1cb0] IP 118.250.6.85.64215 > dns2.cs.hn.cn.domain: 18242+ PTR? 1.0.168.192.in-addr.arpa. (42)
23:36:28.960105 PPPoE [ses 0x1cb0] IP 222.82.119.41.13594 > 118.250.6.85.63283: UDP, length 36
23:36:28.962192 IP 222.82.119.41.13594 > 192.168.0.65.13965: UDP, length 36
23:36:28.963118 IP 192.168.0.65.13965 > 222.82.119.41.13594: UDP, length 34
23:36:28.963123 PPPoE [ses 0x1cb0] IP 118.250.6.85.63283 > 222.82.119.41.13594: UDP, length 34
23:36:28.970185 PPPoE [ses 0x1cb0] IP dns2.cs.hn.cn.domain > 118.250.6.85.64215: 18242 NXDomain 0/0/0 (42)
23:36:28.970413 IP dns2.cs.hn.cn.domain > 192.168.0.3.32804: 18242 NXDomain 0/0/0 (42)
23:36:28.972352 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 17862+ PTR? 3.0.168.192.in-addr.arpa. (42)
23:36:28.972474 PPPoE [ses 0x1cb0] IP 118.250.6.85.64215 > dns2.cs.hn.cn.domain: 17862+ PTR? 3.0.168.192.in-addr.arpa. (42)
23:36:28.982287 PPPoE [ses 0x1cb0] IP 121.12.131.163.13109 > 118.250.6.85.63283: UDP, length 27
23:36:28.984162 IP 121.12.131.163.13109 > 192.168.0.65.13965: UDP, length 27
23:36:28.985021 IP 192.168.0.65.13965 > 121.12.131.163.13109: UDP, length 103
23:36:28.985027 PPPoE [ses 0x1cb0] IP 118.250.6.85.63283 > 121.12.131.163.13109: UDP, length 103
23:36:28.991919 PPPoE [ses 0x1cb0] IP dns2.cs.hn.cn.domain > 118.250.6.85.64215: 17862 NXDomain 0/0/0 (42)
23:36:28.993142 IP dns2.cs.hn.cn.domain > 192.168.0.3.32804: 17862 NXDomain 0/0/0 (42)
23:36:28.993574 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 72:140(68) ack 1 win 2100
20 packets captured
206 packets received by filter
129 packets dropped by kernel

Shell

精简显示

# tcpdump -c 10 -q //精简模式显示 10个包
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:43:05.792280 IP 192.168.0.3.ssh > 192.168.0.1.2101: tcp 36
23:43:05.842115 IP 192.168.0.1.2101 > 192.168.0.3.ssh: tcp 0
23:43:05.845074 IP 115.238.1.45.3724 > 192.168.0.65.2057: tcp 0
23:43:05.907155 IP 192.168.0.3.ssh > 192.168.0.1.2101: tcp 36
23:43:05.793880 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: UDP, length 42
23:43:05.794076 PPPoE [ses 0x1cb0] IP 118.250.6.85.64219 > dns2.cs.hn.cn.domain: UDP, length 42
23:43:05.811127 PPPoE [ses 0x1cb0] IP dns2.cs.hn.cn.domain > 118.250.6.85.64219: UDP, length 42
23:43:05.814764 IP dns2.cs.hn.cn.domain > 192.168.0.3.32804: UDP, length 42
23:43:05.816404 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: UDP, length 42
23:43:05.816545 PPPoE [ses 0x1cb0] IP 118.250.6.85.64219 > dns2.cs.hn.cn.domain: UDP, length 42
10 packets captured
39 packets received by filter
0 packets dropped by kernel

Shell

转换克阅读格式

# tcpdump -d    
(000) ret   #96

Shell

转换成十进制格式

# tcpdump -ddd
1
6 0 0 96

Linux 命令大全

(189) Linux- ytalk 命令

Linux ytalk命令
Linux 命令大全

Linux ytalk命令用于与其他用户交谈。

通过ytalk指令,你可以和其他用户线上交谈,如果想和其他主机的用户交谈,在用户名称后加上其主机名称或IP地址即可。
语法

ytalk [-isxY][-h<主机名称IP地址>][用户名称...]

Shell

参数说明

  • -h<主机名称IP地址> 指定交谈对象所在的远端主机。
  • -i 用提醒声响代替显示信息。
  • -s 在指令提示符号先开启ytalk交谈窗。
  • -x 关闭图形界面。
  • -Y 所有必须回应yes或no的问题,都必须用大写英文字母”Y”或”N”回答。

发送消息

# who  //显示当前用户
root   :0      Apr 9 20:17
root   pts/1    Apr 9 20:17
w3c   pts/6    May 27 16:47 (192.168.0.1)
root   pts/2    May 27 17:37 (192.168.0.1)
# ytalk w3c //发送消息
hey

Linux 命令大全

(190) Linux- cu 命令

Linux cu命令
Linux 命令大全

Linux cu命令用于连接另一个系统主机。

cu(call up)指令可连接另一台主机,并采用类似拨号终端机的接口工作,也可执行简易的文件传输作业。
语法

cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文件>][-l<外围设备代号>][-s<连线速率>][-x<排错模式>][-z<系统主机>][--help][-nostop][--parity=none][<系统主机>/<电话号码>]

Shell

参数说明

  • -a<通信端口>或-p<通信端口>或–port<通信端口> 使用指定的通信端口进行连线。
  • -c<电话号码>或–phone<电话号码> 拨打该电话号码。
  • -d 进入排错模式。
  • -e或–parity=even 使用双同位检查。
  • -E<脱离字符>或–escape<脱离字符> 设置脱离字符。
  • -h或–halfduple 使用半双工模式。
  • -I<配置文件>或–config<配置文件> 指定要使用的配置文件。
  • -l<外围设备代号>或–line<外围设备代号> 指定某项外围设备,作为连接的设备。
  • -n或–prompt 拨号时等待用户输入电话号码。
  • -o或–parity=odd 使用单同位检查。
  • -s<连线速率>或–speed<连线速率>或–baud<连线速率>或-<连线速率> 设置连线的速率,单位以鲍率计算。
  • -t或–maper 把CR字符置换成LF+CR字符。
  • -v或–version 显示版本信息。
  • -x<排错模式>或–debug<排错模式> 使用排错模式。
  • -z<系统主机>或–system<系统主机> 连接该系统主机。
  • –help 在线帮助。
  • –nostop 关闭Xon/Xoff软件流量控制。
  • –parity=none 不使用同位检查。

与远程主机连接

# cu -c 0102377765

Linux 命令大全

(191) Linux- smbd 命令

Linux smbd命令
Linux 命令大全

Linux smbd命令用于Samba服务器程序。

smbd为Samba服务器程序,可分享文件与打印机等网络资源供Windows相关的用户端程序存取。
语法

smbd [-aDhoP][-d<排错层级>][-i<范围>][-l<记录文件>][-O<连接槽选项>][-p<连接端口编号>][-s<配置文件>]

Shell

参数说明

  • -a 所有的连线记录都会加到记录文件中。
  • -d<排错层级> 指定记录文件所记载事件的详细程度。
  • -D 使用此参数时,smbd会以服务程序的方式在后台执行。
  • -h 显示帮助。
  • -i<范围> 指定NetBIOS名称的范围。
  • -l<记录文件> 指定记录文件的名称。
  • -o 每次启动时,会覆盖原有的记录文件。
  • -O<连接槽选项> 设置连接槽选项。
  • -p<连接端口编号> 设置连接端口编号。
  • -P 仅用来测试smbd程序的正确性。
  • -s<配置文件> 指定smbd的设置文件。

启动Samba服务器

# smbd -D

Linux 命令大全

(192) Linux- testparm 命令

Linux testparm命令
Linux 命令大全

Linux testparm命令用于测试Samba的设置是否正确无误。

执行testparm(test parameter)指令可以简单测试Samba的配置文件,假如测试结果无误,Samba常驻服务就能正确载入该设置值,但并不保证其后的操作如预期般一切正常。
语法

testparm [-s][配置文件][<主机名称><IP地址>]

Shell

参数说明

  • -s 不显示提示符号等待用户按下Enter键,就直接列出Samba服务定义信息。

查看Ssmba配置

# testparm     
Load smb config files from /etc/samba/smb.conf
Processing section '[homes]'
Processing section '[printers]'
Processing section '[uptech]'
Processing section '[home]'
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
      ///按下回车继续
# Global parameters
[global]
workgroup = MYGROUP
server string = Samba Server
security = SHARE
encrypt passwords = No
password server = None
log file = /var/log/samba/%m.log
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
printcap name = /etc/printcap
dns proxy = No
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
cups options = raw

[homes]
comment = Home Directories
read only = No
browseable = No

[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No

[uptech]
comment = *
path = /home/uptech
read only = No
guest ok = Yes

[home]
comment = *
path = /home
read only = No
guest ok = Yes

Shell

Linux 命令大全

(193) Linux- smbclient 命令

Linux smbclient命令
Linux 命令大全

Linux smbclient命令可存取SMB/CIFS服务器的用户端程序。

SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient(samba client)可让Linux系统存取Windows系统所分享的资源。
语法

smbclient [网络资源][密码][-EhLN][-B<IP地址>][-d<排错层级>][-i<范围>][-I<IP地址>][-l<记录文件>][-M<NetBIOS名称>][-n<NetBIOS名称>][-O<连接槽选项>][-p<TCP连接端口>][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T<tar选项>][-U<用户名称>][-W<工作群组>]

Shell

参数说明

  • [网络资源] [网络资源]的格式为//服务器名称/资源分享名称。
  • [密码] 输入存取网络资源所需的密码。
  • -B<IP地址> 传送广播数据包时所用的IP地址。
  • -d<排错层级> 指定记录文件所记载事件的详细程度。
  • -E 将信息送到标准错误输出设备。
  • -h 显示帮助。
  • -i<范围> 设置NetBIOS名称范围。
  • -I<IP地址> 指定服务器的IP地址。
  • -l<记录文件> 指定记录文件的名称。
  • -L 显示服务器端所分享出来的所有资源。
  • -M<NetBIOS名称> 可利用WinPopup协议,将信息送给选项中所指定的主机。
  • -n<NetBIOS名称> 指定用户端所要使用的NetBIOS名称。
  • -N 不用询问密码。
  • -O<连接槽选项> 设置用户端TCP连接槽的选项。
  • -p<TCP连接端口> 指定服务器端TCP连接端口编号。
  • -R<名称解析顺序> 设置NetBIOS名称解析的顺序。
  • -s<目录> 指定smb.conf所在的目录。
  • -t<服务器字码> 设置用何种字符码来解析服务器端的文件名称。
  • -T<tar选项> 备份服务器端分享的全部文件,并打包成tar格式的文件。
  • -U<用户名称> 指定用户名称。
  • -W<工作群组> 指定工作群组名称。

Linux 命令大全

(194) Linux- shapecfg 命令

Linux shapecfg命令
Linux 命令大全

Linux shapecfg命令用于管制网络设备的流量。

自Linux-2.15开始,便支持流量管制的功能。
语法

shapecfg attach [流量管制器][网络设备]

Shell

shapecfg speed [流量管制器][带宽]

Shell

参数说明

  • attach 将流量管制器与实际的网络设备结合。
  • speed 设置流量管制器的对外传输带宽。

Linux 命令大全

(195) Linux- adduser 命令

Linux adduser命令
Linux 命令大全

Linux adduser命令用于新增使用者帐号或更新预设的使用者资料。

adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)。

使用权限:系统管理员。

adduser是增加使用者。相对的,也有删除使用者的指令,userdel。语法:userdel [login ID]
语法

adduser [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] loginid

Shell

adduser -D [-g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date] [-s default_shell]

Shell

参数说明

  • -c comment 新使用者位于密码档(通常是 /etc/passwd)的注解资料
  • -d home_dir 设定使用者的家目录为 home_dir ,预设值为预设的 home 后面加上使用者帐号 loginid
  • -e expire_date 设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
  • -f inactive_time 范例:

添加一个一般用户

# useradd kk //添加用户kk

Shell

为添加的用户指定相应的用户组

# useradd -g root kk //添加用户kk,并指定用户所在的组为root用户组

Shell

创建一个系统用户

# useradd -r kk //创建一个系统用户kk

Shell

为新添加的用户指定/home目录

# useradd-d /home/myf kk //新添加用户kk,其home目录为/home/myf
//当用户名kk登录主机时,系统进入的默认目录为/home/myf

Linux 命令大全

(196) Linux- chfn 命令

Linux chfn命令
Linux 命令大全

Linux chfn命令提供使用者更改个人资讯,用于 finger and mail username

使用权限:所有使用者。
语法

shell>> chfn

Shell

改变finger信息

# chfn
Changing finger information for root.
Name [root]: hnlinux
Office []: hn
Office Phone []: 888888
Home Phone []: 9999999

Finger information changed.

Shell

改变账号真实姓名

# chfn -f hnunix
Changing finger information for root.
Finger information changed.

Linux 命令大全

(197) Linux- useradd 命令

Linux useradd命令
Linux 命令大全

Linux useradd 命令用于建立用户帐号。

useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。
语法

useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]

Shell

useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]

Shell

参数说明

  • -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
  • -d<登入目录>  指定用户登入时的起始目录。
  • -D  变更预设值.
  • -e<有效期限>  指定帐号的有效期限。
  • -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
  • -g<群组>  指定用户所属的群组。
  • -G<群组>  指定用户所属的附加群组。
  • -m  自动建立用户的登入目录。
  • -M  不要自动建立用户的登入目录。
  • -n  取消建立以用户名称为名的群组.
  • -r  建立系统帐号。
  • -s   指定用户登入后所使用的shell。
  • -u  指定用户ID。

添加一般用户

# useradd tt

Shell

为添加的用户指定相应的用户组

# useradd -g root tt

Shell

创建一个系统用户

# useradd -r tt

Shell

为新添加的用户指定home目录

# useradd -d /home/myd tt

Shell

建立用户且制定ID

# useradd caojh -u 544

Linux 命令大全

(198) Linux- date 命令

Linux date命令
Linux 命令大全

Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:

时间方面:

  • % : 印出 %
  • %n : 下一行
  • %t : 跳格
  • %H : 小时(00…23)
  • %I : 小时(01…12)
  • %k : 小时(0…23)
  • %l : 小时(1…12)
  • %M : 分钟(00…59)
  • %p : 显示本地 AM 或 PM
  • %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  • %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  • %S : 秒(00…61)
  • %T : 直接显示时间 (24 小时制)
  • %X : 相当于 %H:%M:%S
  • %Z : 显示时区

日期方面:

  • %a : 星期几 (Sun…Sat)
  • %A : 星期几 (Sunday…Saturday)
  • %b : 月份 (Jan…Dec)
  • %B : 月份 (January…December)
  • %c : 直接显示日期与时间
  • %d : 日 (01…31)
  • %D : 直接显示日期 (mm/dd/yy)
  • %h : 同 %b
  • %j : 一年中的第几天 (001…366)
  • %m : 月份 (01…12)
  • %U : 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)
  • %w : 一周中的第几天 (0…6)
  • %W : 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
  • %x : 直接显示日期 (mm/dd/yy)
  • %y : 年份的最后两位数字 (00.99)
  • %Y : 完整年份 (0000…9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

使用权限:所有使用者。

当您不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 – 符号,比如说 date ‘+%-H:%-M:%-S’ 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当您以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
语法

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

Shell

参数说明

  • -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
  • –help : 显示辅助讯息
  • -s datestr : 将系统时间设为 datestr 中所设定的时间
  • -u : 显示目前的格林威治时间
  • –version : 显示版本编号

显示当前时间

# date
三 5月 12 14:08:12 CST 2010
# date '+%c' 
2010年05月12日 星期三 14时09分02秒
# date '+%D' //显示完整的时间
05/12/10
# date '+%x' //显示数字日期,年份两位数表示
2010年05月12日
# date '+%T' //显示日期,年份用四位数表示
14:09:31
# date '+%X' //显示24小时的格式
14时09分39秒

Shell

按自己的格式输出

# date '+usr_time: $1:%M %P -hey'
usr_time: $1:16 下午 -hey

Shell

显示时间后跳行,再显示目前日期

date '+%T%n%D'

Shell

显示月份与日数

date '+%B %d'

Shell

显示日期与设定时间(12:34:56)

date --date '12:34:56'

Linux 命令大全

(199) Linux- exit 命令

Linux exit命令
Linux 命令大全

Linux exit命令用于退出目前的shell。

执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。
语法

exit [状态值]

Shell

退出终端

# exit

Linux 命令大全

(200) Linux- finger 命令

Linux finger命令
Linux 命令大全

Linux finger命令可以让使用者查询一些其他使用者的资料。会列出来的资料有:

  • Login Name
  • User Name
  • Home directory
  • Shell
  • Login status
  • mail status
  • .plan
  • .project
  • .forward

其中 .plan、.project 和 .forward 就是使用者在他的 Home Directory 里的 .plan , .project 和 .forward 等档案里的资料。如果没有就没有。finger 指令并不限定于在同一服务器上查询,也可以寻找某一个远端服务器上的使用者。只要给一个像是 E-mail address 一般的地址即可。

使用权限:所有使用者。
语法

finger [options] user[@address]

Shell

参数说明

  • -l  多行显示。
  • -s  单行显示。这个选项只显示登入名称、真实姓名、终端机名称、闲置时间、登入时间、办公室号码及电话号码。如果所查询的使用者是远端服务器的使用者,这个选项无效。

列出当前登录用户的相关信息

# finger -l //显示用户信息
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Fri Apr 9 20:17 (CST) on :0 (messages off)
On since Fri Apr 9 20:17 (CST) on pts/1 32 days 22 hours idle
On since Fri Apr 9 20:17 (CST) on pts/3 4 hours 5 minutes idle
(messages off)
On since Wed May 12 18:08 (CST) on pts/4 from 192.168.1.10
On since Wed May 12 18:35 (CST) on pts/5 from 192.168.1.10
7 minutes 54 seconds idle
On since Wed May 12 14:37 (CST) on pts/2 from 192.168.1.10
3 hours 14 minutes idle
On since Wed May 12 14:53 (CST) on pts/7 34 minutes 25 seconds idle
(messages off)
On since Wed May 12 16:53 (CST) on pts/8 from 192.168.1.10
30 minutes 18 seconds idle
Mail last read Mon Mar 31 04:02 2008 (CST)
No Plan.

Shell

显示指定用户信息

# finger -m hnlinux

Shell

显示远程用户信息

# finger -m root@192.168.1.13

Shell

下列指令可以查询本机管理员的资料:

finger root

Shell

其结果如下:

Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.

Linux 命令大全

(201) Linux- fwhios 命令

Linux fwhios命令
Linux 命令大全

Linux fwhios命令用于查找并显示用户信息。

本指令的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别。
语法

fwhios [帐号名称]

Linux 命令大全

(202) Linux- sleep 命令

Linux sleep命令
Linux 命令大全

Linux sleep命令可以用来将目前动作延迟一段时间。

使用权限:所有使用者。
语法

sleep [--help] [--version] number[smhd]

Shell

参数说明

  • –help : 显示辅助讯息
  • –version : 显示版本编号
  • number : 时间长度,后面可接 s、m、h 或 d
  • 其中 s 为秒,m 为 分钟,h 为小时,d 为日数

休眠5分钟

# sleep 5m

Shell

显示目前时间后延迟 1 分钟,之后再次显示时间

date;sleep 1m;date

Linux 命令大全

(203) Linux- suspend 命令

Linux suspend命令
Linux 命令大全

Linux suspend命令用于暂停执行shell。

suspend为shell内建指令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。
语法

suspend [-f]

Shell

参数说明

  • -f  若目前执行的shell为登入的shell,则suspend预设无法暂停此shell。若要强迫暂停登入的shell,则必须使用-f参数。

暂停shell

# suspend 
-bash: suspend: 无法挂起一个登录 shell
# suspend -f

Linux 命令大全

(204) Linux- groupdel 命令

Linux groupdel命令
Linux 命令大全

Linux groupdel命令用于删除群组。

需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
语法

groupdel [群组名称]

Shell

删除一个群组

# groupdel hnuser

Linux 命令大全

(205) Linux- groupmod 命令

Linux groupmod命令
Linux 命令大全

Linux groupmod命令用于更改群组识别码或名称。

需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
语法

groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]

Shell

参数

  • -g <群组识别码>  设置欲使用的群组识别码。
  • -o  重复使用群组识别码。
  • -n <新群组名称>  设置欲使用的群组名称。

修改组名

[root@runoob.com ~]# groupadd linuxso 
[root@runoob.com ~]# tail -1 /etc/group 
linuxso:x:500: 
[root@runoob.com ~]# tail -1 /etc/group 
linuxso:x:500: 
[root@runoob.com ~]# groupmod -n linux linuxso 
[root@runoob.com ~]# tail -1 /etc/group 
linux:x:500:

Linux 命令大全

(206) Linux- halt 命令

Linux halt命令
Linux 命令大全

若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。

使用权限:系统管理者。
语法

halt [-n] [-w] [-d] [-f] [-i] [-p]

Shell

参数说明

  • -n : 在关机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 文件里
  • -d : 不把记录写到 /var/log/wtmp 文件里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
  • -i : 在关机之前先把所有网络相关的装置先停止
  • -p : 当关机的时候,顺便做关闭电源(poweroff)的动作

关闭系统

# halt

Shell

关闭系统并关闭电源

# halt -p

Shell

关闭系统,但不留下纪录

# halt -d

Linux 命令大全

(207) Linux- kill 命令

Linux kill命令
Linux 命令大全

Linux kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
语法

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

Shell

参数说明

  • -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
  • -s <信息名称或编号>  指定要送出的信息。
  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

杀死进程

# kill 12345

Shell

强制杀死进程

# kill -KILL 123456

Shell

发送SIGHUP信号,可以使用一下信号

# kill -HUP pid

Shell

彻底杀死进程

# kill -9 123456

Shell

显示信号

# kill -l
1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

Shell

杀死指定用户所有进程

#kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 
#kill -u hnlinux //方法二

Linux 命令大全

(208) Linux- last 命令

Linux last命令
Linux 命令大全

Linux last 命令用于显示用户最近登录信息。

使用权限:所有使用者。
语法

shell>> last [options]

Shell

参数说明

  • -R 省略 hostname 的栏位
  • -num 展示前 num 个
  • username 展示 username 的登入讯息
  • tty 限制登入讯息包含终端机代号
shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in
wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp
shell>> last -2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)
wtmp begins Tue Aug 1 09:01:10 2000

Shell

一般显示方法

# last

Shell

简略显示,并指定显示的个数

# last -n 5 -R
root   pts/4    Thu May 13 17:25  still logged in  
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)  
root   pts/1    Thu May 13 16:46  still logged in  
root   pts/7    Thu May 13 15:36  still logged in  
root   pts/9    Thu May 13 15:35  still logged in  

wtmp begins Thu May 13 18:55:40 2014

Shell

显示最后一列显示主机IP地址

# last -n 5 -a -i
root   pts/4    Thu May 13 17:25  still logged in  192.168.1.10
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)   192.168.1.10
root   pts/1    Thu May 13 16:46  still logged in  192.168.1.10
root   pts/7    Thu May 13 15:36  still logged in  192.168.1.10
root   pts/9    Thu May 13 15:35  still logged in  192.168.1.10

wtmp begins Thu May 13 18:55:40 2014

Linux 命令大全

(209) Linux- lastb 命令

Linux lastb命令
Linux 命令大全

Linux lastb命令用于列出登入系统失败的用户相关信息。

单独执行lastb指令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容

记录的登入失败的用户名单,全部显示出来。
语法

lastb [-adRx][-f <记录文件>][-n <显示列数>][帐号名称...][终端机编号...]

Shell

参数说明

  • -a  把从何处登入系统的主机名称或IP地址显示在最后一行。
  • -d  将IP地址转换成主机名称。
  • -f<记录文件>  指定记录文件。
  • -n<显示列数>或-<显示列数>  设置列出名单的显示列数。
  • -R  不显示登入系统的主机名称或IP地址。
  • -x  显示系统关机,重新开机,以及执行等级的改变等信息。

显示登录失败的用户

# lastb 
root   tty7     :1        Thu May 13 11:26 - 11:26 (00:00)  

btmp begins Thu May 13 11:26:39 2014

Linux 命令大全

(210) Linux- login 命令

Linux login命令
Linux 命令大全

Linux login命令用于登入系统。

login指令让用户登入系统,您亦可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在指令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。
语法

login

Shell

使用新的身份登录系统

# login

Linux 命令大全

(211) Linux- logname 命令

Linux logname命令
Linux 命令大全

Linux logname命令用于显示用户名称。

执行logname指令,它会显示目前用户的名称。
语法

logname [--help][--version]

Shell

参数

  • –help  在线帮助。
  • –vesion  显示版本信息。

显示登录账号的信息:

# logname 
root

Linux 命令大全

(212) Linux- logout 命令

Linux logout命令
Linux 命令大全

Linux logout命令用于退出系统。

logout指令让用户退出系统,其功能和login指令相互对应。
语法

logout

Shell

退出系统:

[root@runoob.com ~]# logout

Linux 命令大全

(213) Linux- ps 命令

Linux ps命令
Linux 命令大全

Linux ps命令用于显示当前进程 (process) 的状态。
语法

ps [options] [--help]

Shell

参数

  • ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
  • -A 列出所有的行程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的行程
  • au(x) 输出格式 :
  • USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
  • D: 无法中断的休眠状态 (通常 IO 的进程)
  • R: 正在执行中
  • S: 静止状态
  • T: 暂停执行
  • Z: 不存在但暂时无法消除
  • W: 没有足够的记忆体分页可分配
  • <: 高优先序的行程
  • N: 低优先序的行程
  • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令
# ps -A 显示进程信息
PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
  17 ?    00:00:00 kacpi_notify
  18 ?    00:00:00 kacpi_hotplug
  19 ?    00:00:27 ata/0
……省略部分结果
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31396 pts/2  00:00:00 ps

Shell

显示指定用户信息

# ps -u root //显示root进程用户信息
 PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
……省略部分结果
30487 ?    00:00:06 gnome-terminal
30488 ?    00:00:00 gnome-pty-helpe
30489 pts/0  00:00:00 bash
30670 ?    00:00:00 debconf-communi 
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31397 pts/2  00:00:00 ps

Shell

显示所有进程信息,连同命令行

# ps -ef //显示所有命令,连带命令行
UID    PID PPID C STIME TTY     TIME CMD
root     1   0 0 10:22 ?    00:00:02 /sbin/init
root     2   0 0 10:22 ?    00:00:00 [kthreadd]
root     3   2 0 10:22 ?    00:00:00 [migration/0]
root     4   2 0 10:22 ?    00:00:00 [ksoftirqd/0]
root     5   2 0 10:22 ?    00:00:00 [watchdog/0]
root     6   2 0 10:22 ?    /usr/lib/NetworkManager
……省略部分结果
root   31302 2095 0 17:42 ?    00:00:00 sshd: root@pts/2 
root   31374 31302 0 17:42 pts/2  00:00:00 -bash
root   31400   1 0 17:46 ?    00:00:00 /usr/bin/python /usr/sbin/aptd
root   31407 31374 0 17:48 pts/2  00:00:00 ps -ef

Linux 命令大全

(214) Linux- nice 命令

Linux nice命令
Linux 命令大全

Linux nice命令以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定的 adjustment 为 10,范围为 -20(最高优先序)到 19(最低优先序)。

使用权限:所有使用者。
语法

nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]

Shell

参数说明

  • -n adjustment, -adjustment, –adjustment=adjustment 皆为将该原有优先序的增加 adjustment
  • –help 显示求助讯息
  • –version 显示版本资讯

设置程序运行时的优先级

# vi & //后台运行
[1] 15297
# nice vi & //设置默认优先级
[2] 15298

[1]+ Stopped         vi
# nice -n 19 vi & //设置优先级为19
[3] 15299

[2]+ Stopped         nice vi
# nice -n -20 vi & //设置优先级为 -20
[4] 15300

[3]+ Stopped         nice -n 19 vi
# ps -l //显示进程
F S  UID  PID PPID C PRI NI ADDR SZ WCHAN TTY     TIME CMD
4 S   0 15278 15212 0 80  0 - 1208 wait  pts/2  00:00:00 bash
0 T   0 15297 15278 0 80  0 - 2687 signal pts/2  00:00:00 vi
0 T   0 15298 15278 0 90 10 - 2687 signal pts/2  00:00:00 vi
0 T   0 15299 15278 1 99 19 - 2687 signal pts/2  00:00:00 vi
4 T   0 15300 15278 3 60 -20 - 2687 signal pts/2  00:00:00 vi
4 R   0 15301 15278 0 80  0 -  625 -   pts/2  00:00:00 ps

[4]+ Stopped         nice -n -20 vi

Shell

将 ls 的优先序加 1 并执行

nice -n 1 ls

Shell

将 ls 的优先序加 10 并执行

nice ls

Shell

**注意:**优先序 (priority) 为操作系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。

Linux 命令大全

(215) Linux- procinfo 命令

Linux procinfo命令
Linux 命令大全

Linux procinfo命令用于显示系统状态。

procinfo(process information)指令从/proc目录里读取相关数据,将数据妥善整理过后输出到标准输出设备。
语法

procinfo [-abdDfhimsSv][-F <输出文件>][-n <间隔秒数>]

Shell

参数说明

  • -a  显示所有信息。
  • -b  显示磁盘设备的区块数目,而非存取数目。
  • -d  显示系统信息每秒间的变化差额,而非总和的数值。本参数必须配合”-f”参数使用
  • -D  此参数效果和指定”-d”参数类似,但内存和交换文件的信息为总和数值。
  • -f  进入全画面的互动式操作界面。
  • -F<输出文件>  把信息状态输出到文件保存起来,而非预设的标准输出设备。
  • -h  在线帮助。
  • -i  显示完整的IRP列表。
  • -m  显示系统模块和外围设备等相关信息。
  • -n<间隔秒数>  设置全画面互动模式的信息更新速度,单位以秒计算。
  • -s  显示系统的内存,磁盘空间,IRP和DMA等信息,此为预设值。
  • -S  搭配参数”-d”或”-D”使用时,每秒都会更新信息,不论是否有使用参数”-n”。
  • -v  显示版本信息。

显示系统状态

# procinfo

Linux 命令大全

(216) Linux- top 命令

Linux top命令
Linux 命令大全

Linux top命令用于实时显示 process 的动态。

使用权限:所有使用者。
语法

top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

Shell

参数说明

  • d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
  • q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
  • c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
  • s : 安全模式,将交谈式指令取消, 避免潜在的危机
  • i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
  • n : 更新的次数,完成后将会退出 top
  • b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

显示进程信息

# top

Shell

显示完整命令

# top -c

Shell

以批处理模式显示程序信息

# top -b

Shell

以累积模式显示程序信息

# top -S

Shell

设置信息更新次数

top -n 2

//表示更新两次后终止更新显示

Shell

设置信息更新时间

# top -d 3

//表示更新周期为3秒

Shell

显示指定的进程信息

# top -p 139

//显示进程号为139的进程信息,CPU、内存占用率等

Shell

显示更新十次后退出

top -n 10

Shell

使用者将不能利用交谈式指令来对行程下命令

top -s

Linux 命令大全

(217) Linux- pstree 命令

Linux pstree命令
Linux 命令大全

Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。

使用权限:所有使用者。
语法

pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]

Shell

pstree -V

Shell

参数说明

  • -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
  • -c 如果有重覆的行程名, 则分开列出(预设值是会在前面加上 *)

显示进程的关系

pstree
init-+-amd
|-apmd
|-atd
|-httpd---10*[httpd]
%pstree -p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree -c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
| |-httpd
| |-httpd
| |-httpd
....

Shell

特别表明在运行的进程

# pstree -apnh //显示进程间的关系

Shell

同时显示用户名称

# pstree -u //显示用户名称

Linux 命令大全

(218) Linux- reboot 命令

Linux reboot命令
Linux 命令大全

Linux reboot命令用于用来重新启动计算机。

若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代
语法

reboot [-n] [-w] [-d] [-f] [-i]

Shell

参数

  • -n : 在重开机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
  • -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
  • -f : 强迫重开机,不呼叫 shutdown 这个指令
  • -i : 在重开机之前先把所有网络相关的装置先停止

重新启动

# reboot

Linux 命令大全

(219) Linux- rlogin 命令

Linux rlogin命令
Linux 命令大全

Linux rlogin命令用于远端登入。

执行rlogin指令开启终端机阶段操作,并登入远端主机。
语法

rlogin [-8EL][-e <脱离字符>][-l <用户名称>][主机名称或IP地址]

Shell

必要参数

  • -E 忽略escape字符
  • -8 只识别8位字的字符
  • -L 允许rlogin会话运行在litout模式
  • -ec 设置escape字符为c
  • -c 断开连接前要求确认
  • -a 强制要求远程主机在发送完一个空的本地用户名之后请求一个密码
  • -f 向远端主机发送一个本地认证
  • -F 向远程主机发送一个可转寄的本地认证
  • -7 强制执行7为的传输
  • -d 打开用于远端主机通信的TCP套接口的调试
  • -k 要求包含远端主机的tisckets
  • -x 启动数据传输的DES加密
  • -4 只使用 kerkberos的版本4的认证

选择参数

-e<字符> 设置退出字符

-l<用户> 指定登陆的用户

-t<终端类型> 设置终端类型

实例
显示rlogin服务是否开启

# chkconfig --list //检测rlogin服务是否开启

Shell

开启rlogin服务

# chkconfig rlogin on //开启rlogin服务

Shell

登陆远程主机

# rlogin 192.168.1.88
Password:
Password:
Login incorrect
Login:root
Passwd:
Login incorrect
Login:kk
Passwd:

Shell

指定用户名登陆远程主机

# rlogin 192.168.1.88 -l hnlinux

Passord:
Last login:Mon May 28 15:30:25 from 192.168.1.88

#

Linux 命令大全

(220) Linux- rsh 命令

Linux rsh命令
Linux 命令大全

Linux rsh命令用于远端登入的Shell。

rsh(remote shell)提供用户环境,也就是Shell,以便指令能够在指定的远端主机上执行。
语法

rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令]

Shell

参数说明

  • -d  使用Socket层级的排错功能。
  • -l<用户名称>  指定要登入远端主机的用户名称。
  • -n  把输入的指令号向代号为/dev/null的特殊外围设备。

开启rsh服务

# chkconfig --list //检测rlogin服务是否开启

# chkconfig rsh on //开启rsh服务

# chkconfig -list //检测开启的服务

Shell

远程命令执行

# rsh -l hnlinux 192.168.1.88 /bin/ls //远程执行ls命令

Linux 命令大全

(221) Linux- sliplogin 命令

Linux sliplogin命令
Linux 命令大全

Linux sliplogin命令用于将SLIP接口加入标准输入。

sliplogin可将SLIP接口加入标准输入,把一般终端机的连线变成SLIP连线。通常可用来建立SLIP服务器,让远端电脑以SLIP连线到服务器。sliplogin活去检查/etc/slip/slip.hosts文件中是否有相同的用户名称。通过检查后,sliplogin会调用执行shell script来设置IP地址,子网掩码等网络界面环境。此shell script通常是/etc/slip/slip.login。
语法

sliplogin [用户名称]

Shell

改变用户的连接方式

# sliplogin kk // 改变用户的连接方式

Linux 命令大全

(222) Linux- screen 命令

Linux screen命令
Linux 命令大全

Linux screen命令用于多重视窗管理程序。

screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]

Shell

参数说明

  • -A  将所有的视窗都调整为目前终端机的大小。
  • -d<作业名称>  将指定的screen作业离线。
  • -h<行数>  指定视窗的缓冲区行数。
  • -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  • -r<作业名称>  恢复离线的screen作业。
  • -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  • -s  指定建立新视窗时,所要执行的shell。
  • -S<作业名称>  指定screen作业的名称。
  • -v  显示版本信息。
  • -x  恢复之前离线的screen作业。
  • -ls或–list  显示目前所有的screen作业。
  • -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

创建 screen 终端

# screen //创建 screen 终端

Shell

创建 screen 终端 并执行任务

# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令

Shell

离开 screen 终端

# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令

#include 

main ()
{

}

"~/mail.c"       0,0-1    

在 screen 终端 下 按下 Ctrl+a d键

Shell

重新连接离开的 screen 终端

# screen -ls  //显示已创建的screen终端 
There are screens on:
2433.pts-3.linux    (2013年10月20日 16时48分59秒)    (Detached)
2428.pts-3.linux    (2013年10月20日 16时48分05秒)    (Detached)
2284.pts-3.linux    (2013年10月20日 16时14分55秒)    (Detached)
2276.pts-3.linux    (2013年10月20日 16时13分18秒)    (Detached)
4 Sockets in /var/run/screen/S-root.

# screen -r 2276 //连接 screen_id 为 2276 的 screen终端

Linux 命令大全

(223) Linux- shutdown 命令

Linux shutdown命令
Linux 命令大全

Linux shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。

使用权限:系统管理者。
语法

shutdown [-t seconds] [-rkhncfF] time [message]

Shell

参数说明

  • -t seconds : 设定在几秒钟之后进行关机程序。
  • -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
  • -r : 关机后重新开机。
  • -h : 关机后停机。
  • -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
  • -c : 取消目前已经进行中的关机动作。
  • -f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
  • -F : 关机时,强迫进行 fsck 动作。
  • time : 设定关机的时间。
  • message : 传送给所有使用者的警告讯息。

立即关机

# shutdown -h now

Shell

指定 10 分钟后关机

# shutdown -h 10

Shell

重新启动计算机

# shutdown -r now

Linux 命令大全

(224) Linux- rwho 命令

Linux rwho命令
Linux 命令大全

Linux rwho命令用于查看系统用户。

rwho指令的效果类似who指令,但它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令。
语法

rwho [-a]

Shell

参数说明

  • -a  列出所有的用户,包括闲置时间超过1个小时以上的用户。

显示本地局域网内的所有用户

# rwho
root   snail-hnlinux:pts/2 May 14 17:42

Linux 命令大全

(225) Linux- sudo 命令

Linux sudo命令
Linux 命令大全

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

使用权限:在 /etc/sudoers 中有出现的使用者。
语法

sudo -V

Shell

sudo -h

Shell

sudo -l

Shell

sudo -v

Shell

sudo -k

Shell

sudo -s

Shell

sudo -H

Shell

sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s

Shell

sudo command

Shell

参数说明

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

sudo命令使用

$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.

Shell

指定用户执行命令

# sudo -u userb ls -l

Shell

显示sudo设置

$ sudo -L //显示sudo设置
Available options in a sudoers ``Defaults'' line:

syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: Syslog priority to use when user authenticates successfully
syslog_badpri: Syslog priority to use when user authenticates unsuccessfully
long_otp_prompt: Put OTP prompt on its own line
ignore_dot: Ignore '.' in $PATH
mail_always: Always send mail when sudo is run
mail_badpass: Send mail if user authentication fails
mail_no_user: Send mail if the user is not in sudoers
mail_no_host: Send mail if the user is not in sudoers for this host
mail_no_perms: Send mail if the user is not allowed to run a command
tty_tickets: Use a separate timestamp for each user/tty combo
lecture: Lecture user the first time they run sudo
lecture_file: File containing the sudo lecture
authenticate: Require users to authenticate by default
root_sudo: Root may run sudo
log_host: Log the hostname in the (non-syslog) log file
log_year: Log the year in the (non-syslog) log file
shell_noargs: If sudo is invoked with no arguments, start a shell
set_home: Set $HOME to the target user when starting a shell with -s
always_set_home: Always set $HOME to the target user's home directory
path_info: Allow some information gathering to give useful error messages
fqdn: Require fully-qualified hostnames in the sudoers file
insults: Insult the user when they enter an incorrect password
requiretty: Only allow the user to run sudo if they have a tty
env_editor: Visudo will honor the EDITOR environment variable
rootpw: Prompt for root's password, not the users's
runaspw: Prompt for the runas_default user's password, not the users's
targetpw: Prompt for the target user's password, not the users's
use_loginclass: Apply defaults in the target user's login class if there is one
set_logname: Set the LOGNAME and USER environment variables
stay_setuid: Only set the effective uid to the target user, not the real uid
preserve_groups: Don't initialize the group vector to that of the target user
loglinelen: Length at which to wrap log file lines (0 for no wrap)
timestamp_timeout: Authentication timestamp timeout
passwd_timeout: Password prompt timeout
passwd_tries: Number of tries to enter a password
umask: Umask to use or 0777 to use user's
logfile: Path to log file
mailerpath: Path to mail program
mailerflags: Flags for mail program
mailto: Address to send mail to
mailfrom: Address to send mail from
mailsub: Subject line for mail messages
badpass_message: Incorrect password message
timestampdir: Path to authentication timestamp dir
timestampowner: Owner of the authentication timestamp dir
exempt_group: Users in this group are exempt from password and PATH requirements
passprompt: Default password prompt
passprompt_override: If set, passprompt will override system prompt in all cases.
runas_default: Default user to run commands as
secure_path: Value to override user's $PATH with
editor: Path to the editor for use by visudo
listpw: When to require a password for 'list' pseudocommand
verifypw: When to require a password for 'verify' pseudocommand
noexec: Preload the dummy exec functions contained in 'noexec_file'
noexec_file: File containing dummy exec functions
ignore_local_sudoers: If LDAP directory is up, do we ignore local sudoers file
closefrom: File descriptors >= %d will be closed before executing a command
closefrom_override: If set, users may override the value of `closefrom' with the -C option
setenv: Allow users to set arbitrary environment variables
env_reset: Reset the environment to a default set of variables
env_check: Environment variables to check for sanity
env_delete: Environment variables to remove
env_keep: Environment variables to preserve
role: SELinux role to use in the new security context
type: SELinux type to use in the new security context
askpass: Path to the askpass helper program
env_file: Path to the sudo-specific environment file
sudoers_locale: Locale to use while parsing sudoers
visiblepw: Allow sudo to prompt for a password even if it would be visisble
pwfeedback: Provide visual feedback at the password prompt when there is user input
fast_glob: Use faster globbing that is less accurate but does not access the filesystem
umask_override: The umask specified in sudoers will override the user's, even if it is more permissive

Shell

以root权限执行上一条命令

$ sudo !!

Shell

以特定用户身份进行编辑文本

$ sudo -u uggc vi ~www/index.html
//以 uggc 用户身份编辑  home 目录下www目录中的 index.html 文件

Shell

列出目前的权限

sudo -l

Shell

列出 sudo 的版本资讯

sudo -V

Linux 命令大全

(226) Linux- gitps 命令

Linux gitps命令
Linux 命令大全

Linux gitps命令用于报告程序状况。

gitps(gnu interactive tools process status)是用来报告并管理程序执行的指令,基本上它就是通过ps指令来报告,管理程序,也能通过gitps指令随时中断,删除不必要的程序。因为gitps指令会去执行ps指令,所以其参数和ps指令相当类似。
语法

gitps [acefgjlnrsSTuvwxX][p <程序识别码>][t <终端机编号>][U <帐号名称>]

Shell

参数说明

  • a  显示 现行终端机下的所有程序,包括其他用户的程序。
  • c  列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或是常驻服务的标示.
  • e  列出程序时,显示每个程序所使用的环境变量。
  • f  用ASCII字符显示树状结构,表达程序间的相互关系。
  • g  显示现行终端机下的所有程序,包括群组领导者的程序。
  • j  采用工作控制的格式来显示程序状况。
  • l  采用纤细的格式来显示程序状况。
  • n  以数字来表示USER和WCHAN栏位。
  • p<程序识别码>  指定程序识别码,并列出该程序的状况。
  • r  只列出现行终端机正在执行中的程序。
  • s  采用程序信号的格式显示程序状况。
  • S  列出程序时,包括已中断的子程序信息。
  • t<终端机机标号>  指定终端机编号,并列出属于该终端机的程序的状况。
  • T  显示现行终端机下的所有程序。
  • u  以用户为主的格式来显示程序状况。
  • U<帐号名称>  列出属于该用户的程序的状况。
  • v  采用虚拟内存的格式显示程序状况。
  • w  采用宽阔的格式来显示程序状况。
  • x  显示所有程序,不以终端机来区分。
  • X  采用旧试的Linux i386登陆格式显示程序状况。

显示指定用户信息

# gitps hnlinux

Linux 命令大全

(227) Linux- swatch 命令

Linux swatch命令
Linux 命令大全

Linux swatch命令用于系统监控程序。

swatch可用来监控系统记录文件,并在发现特定的事件时,执行指定的动作。swatch所监控的事件以及对应事件的动作都存放在swatch的配置文件中。预设的配置文件为拥护根目录下的.swatchrc。然而在Red Hat Linux的预设用户根目录下并没有.swatchrc配置文件,您可将/usr/doc/swatch-2.2/config_files/swatchrc.personal文件复制到用户根目录下的.swatchrc,然后修改.swatchrc所要监控的事件及执行的动作。
语法

swatch [-A <分隔字符>][-c <设置文件>][-f <记录文件>][-I <分隔字符>][-P <分隔字符>][-r <时间>][-t <记录文件>]

Shell

参数说明

  • -A<分隔字符>  预设配置文件中,动作的分隔字符,预设为逗号。
  • -c<设置文件>  指定配置文件,而不使用预设的配置文件。
  • -f<记录文件>  检查指定的记录文件,检查完毕后不会继续监控该记录文件。
  • -I<分隔字符>  指定输入记录的分隔字符,预设为换行字符。
  • -P<分隔字符>  指定配置文件中,事件的分隔字符,预设为逗号。
  • -r<时间>  在指定的时间重新启动。
  • -t<记录文件>  检查指定的记录文件,并且会监控加入记录文件中的后继记录。

开启系统监视

# swatch

Linux 命令大全

(228) Linux- tload 命令

Linux tload命令
Linux 命令大全

Linux tload命令用于显示系统负载状况。

tload指令使用ASCII字符简单地以文字模式显示系统负载状态。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。
语法

tload [-V][-d <间隔秒数>][-s <刻度大小>][终端机编号]

Shell

参数说明

  • -d<间隔秒数>  设置tload检测系统负载的间隔时间,单位以秒计算。
  • -s<刻度大小>  设置图表的垂直刻度大小,单位以列计算。
  • -V  显示版本信息。

显示系统负载

# tload

Linux 命令大全

(229) Linux- logrotate 命令

Linux logrotate命令
Linux 命令大全

Linux logrotate命令用于管理记录文件。

使用logrotate指令,可让你轻松管理系统所产生的记录文件。它提供自动替换,压缩,删除和邮寄记录文件,每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc目录下,文件名称为logrotate.conf。
语法

logrotate [-?dfv][-s <状态文件>][--usage][配置文件]

Shell

参数说明

  • -?或–help  在线帮助。
  • -d或–debug  详细显示指令执行过程,便于排错或了解程序执行的情况。
  • -f或–force  强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然。
  • -s<状态文件>或–state=<状态文件>  使用指定的状态文件。
  • -v或–version  显示指令执行过程。
  • -usage  显示指令基本用法。

指定记录文件

# logrotate /root/log.config

Linux 命令大全

(230) Linux- uname 命令

Linux uname命令
Linux 命令大全

Linux uname命令用于显示系统信息。

uname可显示电脑以及操作系统的相关信息。
语法

uname [-amnrsv][--help][--version]

Shell

参数说明

  • -a或–all  显示全部的信息。
  • -m或–machine  显示电脑类型。
  • -n或-nodename  显示在网络上的主机名称。
  • -r或–release  显示操作系统的发行编号。
  • -s或–sysname  显示操作系统名称。
  • -v  显示操作系统的版本。
  • –help  显示帮助。
  • –version  显示版本信息。

显示系统信息:

# uname -a
Linux iZbp19byk2t6khuqj437q6Z 4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Shell

显示计算机类型:

# uname -m
x86_64

Shell

显示计算机名:

# uname -n
runoob-linux

Shell

显示操作系统发行编号:

# uname -r
4.11.0-14-generic

Shell

显示操作系统名称:

# uname -s
Linux

Shell

显示系统版本与时间:

# uname -v
#20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017

Linux 命令大全

(231) Linux- chsh 命令

Linux chsh命令
Linux 命令大全

Linux chsh命令用于更改使用者 shell 设定。

使用权限:所有使用者。
语法

shell>> chsh

Shell

shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的 shell]
[del]
shell>> chsh -l ### 展示 /etc/shells 档案内容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh

Shell

改变当前的shell。当前的shell 设置为//bin/bash,通过chsh命令,改变shell的设置/bin/csh。

# chsh
Changing shell for root.
New shell [/bin/bash]: /bin/csh //输入新的shell地址
Shell changed.

Shell

通过 -s 参数改变当前的shell设置

# chsh -s /bin/csh //改变当前设置为 /bin/csh
Changing shell for root.
Shell not changed.

Linux 命令大全

(232) Linux- userconf 命令

Linux userconf命令
Linux 命令大全

Linux userconf命令用于用户帐号设置程序。

userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
语法

userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称><shell>][--delgroup <群组>][--deluser <用户ID>][--help]

Shell

参数说明

  • –addgroup<群组>  新增群组。
  • –adduser<用户ID><群组><用户名称>  新增用户帐号。
  • –delgroup<群组>  删除群组。
  • –deluser<用户ID>  删除用户帐号。
  • –help  显示帮助。

新增用户

# userconf --adduser 666 tt lord /bin/bash //新增用户账号

She

Linux 命令大全

(233) Linux- userdel 命令

Linux userdel命令
Linux 命令大全

Linux userdel命令用于删除用户帐号。

userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
语法

userdel [-r][用户帐号]

Shell

参数说明

  • -r  删除用户登入目录以及目录中所有文件。

删除用户账号

# userdel hnlinux

Linux 命令大全

(234) Linux- usermod 命令

Linux usermod命令
Linux 命令大全

Linux usermod命令用于修改用户帐号。

usermod可用来修改用户帐号的各项设定。
语法

usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]

Shell

参数说明

  • -c<备注>  修改用户帐号的备注文字。
  • -d登入目录>  修改用户登入时的目录。
  • -e<有效期限>  修改帐号的有效期限。
  • -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
  • -g<群组>  修改用户所属的群组。
  • -G<群组>  修改用户所属的附加群组。
  • -l<帐号名称>  修改用户帐号名称。
  • -L  锁定用户密码,使密码无效。
  • -s  修改用户登入后所使用的shell。
  • -u  修改用户ID。
  • -U  解除密码锁定。

更改登录目录

# usermod -d /home/hnlinux root

Shell

改变用户的uid

# usermod -u 777 root

Linux 命令大全

(235) Linux- vlock 命令

Linux vlock命令
Linux 命令大全

Linux vlock命令用于锁住虚拟终端。

执行vlock(virtual console lock)指令可锁住虚拟终端,避免他人使用。
语法

vlock [-achv]

Shell

参数说明

  • -a或–all  锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
  • 切换终端机的功能一并关闭。
  • -c或–current  锁住目前的终端阶段作业,此为预设值。
  • -h或–help  在线帮助。
  • -v或–version  显示版本信息。

锁定虚拟终端

# vlock

Linux 命令大全

(236) Linux- who 命令

Linux who命令
Linux 命令大全

Linux who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。

使用权限:所有使用者都可使用。
语法

who - [husfV] [user]

Shell

参数说明

  • -H 或 –heading:显示各栏位的标题信息列;
  • -i 或 -u 或 –idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成”.”号,如果该用户已超过24小时没有任何动作,则标示出”old”字符串;
  • -m:此参数的效果和指定”am i”字符串相同;
  • -q 或–count:只显示登入系统的帐号名称和总人数;
  • -s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
  • -w 或-T或–mesg或–message或–writable:显示用户的信息状态栏;
  • –help:在线帮助;
  • –version:显示版本信息。

显示当前登录系统的用户

# who  //显示当前登录系统的用户
root   tty7     2014-05-13 12:12 (:0)
root   pts/0    2014-05-14 17:09 (:0.0)
root   pts/1    2014-05-14 18:51 (192.168.1.17)
root   pts/2    2014-05-14 19:48 (192.168.1.17)

Shell

显示标题栏

# who -H
NAME   LINE     TIME       COMMENT
root   tty7     2014-05-13 12:12 (:0)
root   pts/0    2014-05-14 17:09 (:0.0)
root   pts/1    2014-05-14 18:51 (192.168.1.17)
root   pts/2    2014-05-14 19:48 (192.168.1.17)

Shell

显示用户登录来源

# who -l -H
NAME   LINE     TIME       IDLE     PID COMMENT
LOGIN  tty4     2014-05-13 12:11        852 id=4
LOGIN  tty5     2014-05-13 12:11        855 id=5
LOGIN  tty2     2014-05-13 12:11        862 id=2
LOGIN  tty3     2014-05-13 12:11        864 id=3
LOGIN  tty6     2014-05-13 12:11        867 id=6
LOGIN  tty1     2014-05-13 12:11       1021 id=1

Shell

显示终端属性

# who -T -H
NAME    LINE     TIME       COMMENT
root   + tty7     2014-05-13 12:12 (:0)
root   + pts/0    2014-05-14 17:09 (:0.0)
root   - pts/1    2014-05-14 18:51 (192.168.1.17)
root   - pts/2    2014-05-14 19:48 (192.168.1.17)

Shell

只显示当前用户

# who -m -H
NAME   LINE     TIME       COMMENT
root   pts/1    2014-05-14 18:51 (192.168.1.17)

Shell

精简模式显示

# who -q
root root root root
# users=4

Linux 命令大全

(237) Linux- whoami 命令

Linux whoami命令
Linux 命令大全

Linux whoami命令用于显示自身用户名称。

显示自身的用户名称,本指令相当于执行”id -un”指令。
语法

whoami [--help][--version]

Shell

参数说明

  • –help  在线帮助。
  • –version  显示版本信息。

显示用户名

# whoami 
root

Linux 命令大全

(238) Linux- whois 命令

Linux whois命令
Linux 命令大全

Linux whois命令用于查找并显示用户信息。

whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
语法

whois [帐号名称]

Shell

显示指定用户信息

# whois root

//查找root用户信息

Shell

查询域名描述信息

# whois .Lx138.COm

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

...省略部分内容

Shell

查询域名信息

# whois Lx138.COm

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
Domain Name ..................... Lx138.COm
Name Server ..................... dns15.hichina.com
                 dns16.hichina.com
Registrant ID ................... hc937242545-cn

...省略部分内容

Shell

查询域名信息省略法律声明

# whois -H Lx138.COm

...省略内容

Shell

指定端口查询

# whois -p 80 Lx138.COm

...省略内容

Linux 命令大全

(239) Linux- newgrp 命令

Linux newgrp命令
Linux 命令大全

Linux newgrp 命令用于登入另一个群组。

newgrp 指令类似 login 指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用 newgrp 指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则 newgrp 指令会登入该用户名称的预设群组。
语法

newgrp [群组名称]

Shell

改变群组

# newgrp root

Linux 命令大全

(240) Linux- renice 命令

Linux renice命令
Linux 命令大全

Linux renice命令用于重新指定一个或多个行程(Process)的优先序(一个或多个将根据参数而定)。

**注意:**每一个行程(Process)都有一个唯一的(unique)id。

使用权限:所有使用者。
语法

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Shell

参数说明

  • -p pid 重新指定行程的 id 为 pid 的行程的优先序
  • -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
  • -u user 重新指定行程拥有者为 user 的行程的优先序

将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1

renice +1 987 -u daemon root -p 32

Linux 命令大全

(241) Linux- su 命令

Linux su命令
Linux 命令大全

Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

使用权限:所有使用者。
语法

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

Shell

参数说明

  • -f 或 –fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
  • -m -p 或 –preserve-environment 执行 su 时不改变环境变数
  • -c command 或 –command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
  • -s shell 或 –shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
  • –help 显示说明文件
  • –version 显示版本资讯
  • – -l 或 –login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
  • USER 欲变更的使用者帐号
  • ARG 传入新的 shell 参数

变更帐号为 root 并在执行 ls 指令后退出变回原使用者

su -c ls root

Shell

变更帐号为 root 并传入 -f 参数给新执行的 shell

su root -f

Shell

变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)

su - clsung

Shell

切换用户

hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su root //切换到root用户
密码: 
root@runoob.com:/home/hnlinux# whoami 
root
root@runoob.com:/home/hnlinux# pwd
/home/hnlinux

Shell

切换用户,改变环境变量

hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su - root //切换到root用户
密码: 
root@runoob.com:/home/hnlinux# whoami 
root
root@runoob.com:/home/hnlinux# pwd //显示当前目录
/root

Linux 命令大全

(242) Linux- skill 命令

Linux skill命令
Linux 命令大全

Linux skill命令送个讯号给正在执行的程序,预设的讯息为 TERM (中断),较常使用的讯息为 HUP、INT、KILL、STOP、CONT 和 0。

讯息有三种写法:分别为 -9、-SIGKILL、-KILL,可以使用 -l 或 -L 已列出可使用的讯息。

使用权限:所有使用者。

其他相关的命令:kill
语法

skill [signal to send] [options] 选择程序的规则

Shell

一般参数

  • -f 快速模式/尚未完成
  • -i 互动模式/ 每个动作将要被确认
  • -v 详细输出/ 列出所选择程序的资讯
  • -w 智能警告讯息/ 尚未完成
  • -n 没有动作/ 显示程序代号

参数:选择程序的规则可以是:终端机代号、使用者名称、程序代号、命令名称。

  • -t 终端机代号 ( tty 或 pty )
  • -u 使用者名称
  • -p 程序代号 ( pid )
  • -c 命令名称可使用的讯号

以下列出已知的讯号名称、讯号代号、功能。

名称(代号)功能/描述
ALRM 14离开
HUP 1离开
INT 2离开
KILL 9离开/强迫关闭
PIPE 13离开
POLL离开
PROF离开
TERM 15离开
USR1离开
USR2离开
VTALRM离开
STKFLT离开/只适用于i386、m68k、arm 和 ppc 硬件
UNUSED离开/只适用于i386、m68k、arm 和 ppc 硬件
TSTP停止/产生与内容相关的行为
TTIN停止/产生与内容相关的行为
TTOU停止/产生与内容相关的行为
STOP停止/强迫关闭
CONT重新启动/如果在停止状态则重新启动,否则忽略
PWR忽略/在某些系统中会离开
WINCH忽略
CHLD忽略
ABRT 6核心
FPE 8核心
ILL 4核心
QUIT 3核心
SEGV 11核心
TRAP 5核心
SYS核心/或许尚未实作
EMT核心/或许尚未实作
BUS核心/核心失败
XCPU核心/核心失败
XFSZ核心/核心失败

停止所有在 PTY 装置上的程序

skill -KILL -v pts/*

Shell

停止三个使用者 user1、user2、user3

skill -STOP user1 user2 user3

Linux 命令大全

(243) Linux- w 命令

Linux w命令
Linux 命令大全

Linux w命令用于显示目前登入系统的用户信息。

执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。

单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
语法

w [-fhlsuV][用户名称]

Shell

参数说明

  • -f  开启或关闭显示用户从何处登入系统。
  • -h  不显示各栏位的标题信息列。
  • -l  使用详细格式列表,此为预设值。
  • -s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
  • -u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
  • -V  显示版本信息。

显示当前用户

w  //显示当前用户,不显示登录位置
19:50:14 up 9:27, 4 users, load average: 0.31, 0.26, 0.18
USER   TTY   FROM       LOGIN@  IDLE  JCPU  PCPU WHAT
root   tty7   :0        Thu12  31:39m 10:10  0.60s gnome-session
root   pts/0  :0.0       17:09  2:18m 15.26s 0.15s bash
root   pts/1  192.168.1.17   18:51  1.00s 1.24s 0.14s -bash
root   pts/2  192.168.1.17   19:48  60.00s 0.05s 0.05s -bash

Shell

不显示登录位置

w -f
19:53:59 up 9:31, 4 users, load average: 0.05, 0.16, 0.15
USER   TTY    LOGIN@  IDLE  JCPU  PCPU WHAT
root   tty7   Thu12  31:43m 10:10  0.60s gnome-session
root   pts/0   17:09  2:21m 15.26s 0.15s bash
root   pts/1   18:51  0.00s 1.04s 0.14s -bash
root   pts/2   19:48  4:45  0.05s 0.05s -bash

Shell

以精简模式显示

w -s
19:54:37 up 9:31, 4 users, load average: 0.24, 0.19, 0.16
USER   TTY   FROM        IDLE WHAT
root   tty7   :0        31:43m gnome-session
root   pts/0  :0.0       2:22m bash
root   pts/1  192.168.1.17   0.00s -bash
root   pts/2  192.168.1.17   5:23 -bash

Shell

不显示标题

w -h
root   tty7   :0        Thu12  31:44m 10:10  0.60s gnome-session
root   pts/0  :0.0       17:09  2:23m 15.26s 0.15s bash
root   pts/1  192.168.1.17   18:51  0.00s 1.05s 0.14s -bash
root   pts/2  192.168.1.17   19:48  5:54  0.05s 0.05s -bash

Linux 命令大全

(244) Linux- id 命令

Linux id命令
Linux 命令大全

Linux id命令用于显示用户的ID,以及所属群组的ID。

id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
语法

id [-gGnru][--help][--version][用户名称]

Shell

参数说明

  • -g或–group  显示用户所属群组的ID。
  • -G或–groups  显示用户所属附加群组的ID。
  • -n或–name  显示用户,所属群组或附加群组的名称。
  • -r或–real  显示实际ID。
  • -u或–user  显示用户ID。
  • -help  显示帮助。
  • -version  显示版本信息。

显示当前用户信息

# id //显示当前用户ID
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t

Shell

显示用户群组的ID

# id -g
0

Shell

显示所有群组的ID

# id -g
0 1 2 3 4 5 6 10

Shell

显示指定用户信息

# id hnlinux

Linux 命令大全

(245) Linux- groupadd 命令

Linux groupadd 命令
Linux 命令大全

groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

相关文件:

  • /etc/group 组账户信息。
  • /etc/gshadow 安全组账户信息。
  • /etc/login.defs Shadow密码套件配置。

语法
groupadd 命令 语法格式如下:

groupadd [-g gid [-o]] [-r] [-f] group

Shell

参数说明:

  • -g:指定新建工作组的 id;
  • -r:创建系统工作组,系统工作组的组ID小于 500;
  • -K:覆盖配置文件 “/ect/login.defs”;
  • -o:允许添加组 ID 号不唯一的工作组。
  • -f,–force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。

创建一个新的组,并添加组 ID。

#groupadd -g 344 runoob

Shell

此时在 /etc/group 文件中产生一个组 ID(GID)是 344 的项目。

Linux 命令大全

(246) Linux- free 命令

Linux free命令
Linux 命令大全

Linux free命令用于显示内存状态。

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法

free [-bkmotV][-s <间隔秒数>]

Shell

参数说明

  • -b  以Byte为单位显示内存使用情况。

  • -k  以KB为单位显示内存使用情况。

  • -m  以MB为单位显示内存使用情况。

  • -h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:

    B = bytes
    K = kilos
    M = megas
    G = gigas
    T = teras
    
  • -o  不显示缓冲区调节列。

  • -s<间隔秒数>  持续观察内存使用状况。

  • -t  显示内存总和列。

  • -V  显示版本信息。

显示内存使用情况

# free //显示内存使用信息
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164

Shell

以总和的形式显示内存的使用信息

# free -t //以总和的形式查询内存的使用信息
total used free shared buffers cached
Mem: 254772 184868 69904 0 5936 89908
-/+ buffers/cache: 89024 165748
Swap: 524280 65116 459164
Total: 779052 249984 529068

Shell

周期性的查询内存使用信息

# free -s 10 //每10s 执行一次命令
total used free shared buffers cached
Mem: 254772 187628 67144 0 6140 89964
-/+ buffers/cache: 91524 163248
Swap: 524280 65116 459164

total used free shared buffers cached
Mem: 254772 187748 67024 0 6164 89940
-/+ buffers/cache: 91644 163128
Swap: 524280 65116 459164

Linux 命令大全

(247) Linux- reset 命令

Linux reset命令
Linux 命令大全

Linux reset命令其实和 tset 是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是 ‘?’ 的话,这个程序会要求使用者输入终端机的型别。

由于这个程序会将终端机设回原始的状态,除了在 login 时使用外,当系统终端机因为程序不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o 例如不小心把二进位档用 cat 指令进到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪字元的问题。此时就可以用 reset 将终端机回复至原始状态。
语法

tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]

Shell

参数说明

  • -p  将终端机类别显示在屏幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别。
  • -e ch  将 erase 字元设成 ch
  • -i ch  将中断字元设成 ch
  • -k ch  将删除一行的字元设成 ch
  • -I  不要做设定的动作,如果没有使用选项 -Q 的话,erase、中断及删除字元的目前值依然会送到屏幕上。
  • -Q  不要显示 erase、中断及删除字元的值到屏幕上。
  • -r  将终端机类别印在屏幕上。
  • -s  将设定 TERM 用的命令用字串的型式送到终端机中,通常在 .login 或 .profile 中用。

让使用者输入一个终端机型别并将终端机设到该型别的预设状态

# reset ?

Shell

将 erase 字元设定 control-h

# reset -e ^B

Shell

将设定用的字串显示在屏幕上

# reset -s
Erase is control-B (^B).
Kill is control-U (^U).
Interrupt is control-C (^C).
TERM=xterm;

Linux 命令大全

(248) Linux- clear 命令

Linux clear命令
Linux 命令大全

Linux clear命令用于清除屏幕。
语法

clear

Shell

清屏

#clear

Linux 命令大全

(249) Linux- alias 命令

Linux alias命令
Linux 命令大全

Linux alias命令用于设置指令的别名。

用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。
语法

alias[别名]=[指令名称]

Shell

参数说明:若不加任何参数,则列出目前所有的别名设置。

给命令设置别名

# alias lx=ls
# lx
anaconda-ks.cfg Desktop install.log install.log.syslog qte

Linux 命令大全

(250) Linux- dircolors 命令

Linux dircolors命令
Linux 命令大全

Linux dircolors命令用于设置 ls 指令在显示目录或文件时所用的色彩。

dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的shell指令。
语法

dircolors [色彩配置文件]

Shell

dircolors [-bcp][--help][--version]

Shell

参数说明

  • -b或–sh或–bourne-shell  显示在Boume shell中,将LS_COLORS设为目前预设置的shell指令。
  • -c或–csh或–c-shell  显示在C shell中,将LS_COLORS设为目前预设置的shell指令。
  • -p或–print-database  显示预设置
  • -help  显示帮助。
  • -version  显示版本信息。

显示默认值

# dircolors -p //显示默认值
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
# Copyright (C) 1996, 1999-2008
# Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# Below, there should be one TERM entry for each termtype that is colorizable
TERM Eterm
TERM ansi
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM xterm-debian
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to “normal“ color
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
HARDLINK 44;37 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
# Or if you want to colorize scripts even if they do not have the
# executable bit actually set.
#.sh 01;32
#.csh 01;32
# archives or compressed (bright red)
.tar 01;31

.pcx 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.m2v 01;35
.mkv 01;35
.ogm 01;35
.mp4 01;35
.m4v 01;35
.mp4v 01;35
.vob 01;35
.qt 01;35
.nuv 01;35
.wmv 01;35
.asf 01;35
.rm 01;35
.rmvb 01;35
.flc 01;35
.avi 01;35
.fli 01;35
.flv 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35
.yuv 01;35
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 01;35
.anx 01;35
.ogv 01;35
.ogx 01;35
# audio formats
.aac 00;36
.au 00;36
.flac 00;36
.mid 00;36
.midi 00;36
.mka 00;36
.mp3 00;36
.mpc 00;36
.ogg 00;36
.ra 00;36
.wav 00;36
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa 00;36
.oga 00;36
.spx 00;36
.xspf 00;36

Shell

Linux 命令大全

(251) Linux- aumix 命令

Linux aumix命令
Linux 命令大全

Linux aumix命令用于设置音效装置。

aumix(audio mixer)命令设置各项音效装置的信号强度以及指定播放与录音的装置。
语法

aumix [-123bcilmoprstvwWx][(+/-)强度][PqR][-dfhILqS]

Shell

参数说明:[-123bcilmoprstvwWx]为频道参数,用来指定装置的频道;[PqR]可用来指定播放或录音装置;[-dfhILqS] 则为指令参数。若不加任何参数,aumix会显示简单的图形界面供调整设置频道参数。

  • -1  输入信号线1。
  • -2  输入信号线2。
  • -3  输入信号线3。
  • -b  低音。
  • -c  CD。
  • -i  输入信号强度。
  • -m  麦克风。
  • -o  输出信号强度。
  • -p  PC喇叭。
  • -r  录音。
  • -s  合成器。
  • -t  高音。
  • -v  主音量。
  • -w  PCM。
  • -W  PCM2。
  • -x  混音器。
  • (+/-)强度  出现(+/-)时,代表在原有的强度上加减指定值。若未使用(+/-),则直接将强度设为指定值。  指定音效装置
  • P  指定播放装置。
  • q  显示频道设置。
  • R  指定录音装置。

指令参数

  • -d  指定音效装置的名称。
  • -f  指定存储或载入设置的文件。
  • -h  在使用时显示信息。
  • -I  以图形界面方式来执行aumix。
  • -L  从$HOME/.aumixrc或/etc/aumixrc载入设置。
  • -q  显示所有频道的设置值。
  • -S  将设置值保存至/HOME/.aumixrc。

设置音效设备

# aumix

Linux 命令大全

(252) Linux- bind 命令

Linux bind命令
Linux 命令大全

Linux bind命令用于显示或设置键盘按键与其相关的功能。

您可以利用bind命令了解有哪些按键组合与其功能,也可以自行指定要用哪些按键组合。
语法

bind [-dlv][-f <按键配置文件>][-m <按键配置>][-q <功能>]

Shell

参数说明

  • -d  显示按键配置的内容。
  • -f<按键配置文件>  载入指定的按键配置文件。
  • -l  列出所有的功能。
  • -m<按键配置>  指定按键配置。
  • -q<功能>  显示指定功能的按键。
  • -v  列出目前的按键配置与其功能。

显示按键组合的所有功能

# bind -l //显示按键组合的内容
abort
accept-line
alias-expand-line
arrow-key-prefix
backward-byte
backward-char
backward-delete-char
backward-kill-line
backward-kill-word
backward-word
beginning-of-history
beginning-of-line
……省略部分内容
vi-goto-mark
vi-insert-beg
vi-insertion-mode
vi-match
vi-movement-mode
vi-next-word
vi-overstrike
vi-overstrike-delete
vi-prev-word
vi-put
vi-redo
vi-replace
vi-rubout
vi-search
vi-search-again
vi-set-mark
vi-subst
vi-tilde-expand
vi-yank-arg
vi-yank-to
yank
yank-last-arg
yank-nth-arg
yank-pop

Shell

显示当前按键组合的设置

# bind -l
abort
accept-line
alias-expand-line
arrow-key-prefix
backward-byte
backward-char
backward-delete-char
backward-kill-line
backward-kill-word
backward-word
beginning-of-history
beginning-of-line
call-last-kbd-macro
capitalize-word
character-search
character-search-backward
clear-screen
complete
complete-command
complete-filename
complete-hostname
complete-into-braces
complete-username
complete-variable
copy-backward-word
copy-forward-word
copy-region-as-kill
dabbrev-expand
delete-char
delete-char-or-list
delete-horizontal-space
digit-argument
display-shell-version
do-lowercase-version
downcase-word
dump-functions
dump-macros
dump-variables
dynamic-complete-history
edit-and-execute-command
emacs-editing-mode
end-kbd-macro
end-of-history
end-of-line
exchange-point-and-mark
forward-backward-delete-char
forward-byte
forward-char
forward-search-history
forward-word
glob-complete-word
glob-expand-word
glob-list-expansions
history-and-alias-expand-line
history-expand-line
history-search-backward
history-search-forward
insert-comment
insert-completions
insert-last-argument
kill-line
kill-region
kill-whole-line
kill-word
magic-space
menu-complete
menu-complete-backward
next-history
non-incremental-forward-search-history
non-incremental-forward-search-history-again
non-incremental-reverse-search-history
non-incremental-reverse-search-history-again
old-menu-complete
operate-and-get-next
overwrite-mode
possible-command-completions
possible-completions
possible-filename-completions
possible-hostname-completions
possible-username-completions
possible-variable-completions
previous-history
quoted-insert
redraw-current-line
re-read-init-file
reverse-search-history
revert-line
self-insert
set-mark
shell-backward-kill-word
shell-backward-word
shell-expand-line
shell-forward-word
shell-kill-word
skip-csi-sequence
start-kbd-macro
tab-insert
tilde-expand
transpose-chars
transpose-words
tty-status
undo
universal-argument
unix-filename-rubout
unix-line-discard
unix-word-rubout
upcase-word
vi-append-eol
vi-append-mode
vi-arg-digit
vi-back-to-indent
vi-bword
vi-bWord
vi-change-case
vi-change-char
vi-change-to
vi-char-search
vi-column
vi-complete
vi-delete
vi-delete-to
vi-editing-mode
vi-end-word
vi-eof-maybe
vi-eword
vi-eWord
vi-fetch-history
vi-first-print
vi-fword
vi-fWord
vi-goto-mark
vi-insert-beg
vi-insertion-mode
vi-match
vi-movement-mode
vi-next-word
vi-overstrike
vi-overstrike-delete
vi-prev-word
vi-put
vi-redo
vi-replace
vi-rubout
vi-search
vi-search-again
vi-set-mark
vi-subst
vi-tilde-expand
vi-yank-arg
vi-yank-to
yank
yank-last-arg
yank-nth-arg
yank-pop
root@snail-hnlinux:~# 
root@snail-hnlinux:~# 
root@snail-hnlinux:~# 
root@snail-hnlinux:~# 
root@snail-hnlinux:~# bind -v
set bind-tty-special-chars on
set blink-matching-paren on
set byte-oriented off
set completion-ignore-case off
set convert-meta off
set disable-completion off
set echo-control-characters on
set enable-keypad off
set enable-meta-key on
set expand-tilde off
set history-preserve-point off
set horizontal-scroll-mode off
set input-meta on
set mark-directories on
set mark-modified-lines off
set mark-symlinked-directories off
set match-hidden-files on
set meta-flag on
set output-meta on
set page-completions on
set prefer-visible-bell on
set print-completions-horizontally off
set revert-all-at-newline off
set show-all-if-ambiguous off
set show-all-if-unmodified off
set skip-completed-text off
set visible-stats off
set bell-style audible
set comment-begin #
set completion-prefix-display-length 0
set completion-query-items 100
set editing-mode emacs
set history-size 1000
set keymap emacs

Shell

列出指定功能的按键和按键组合

# bind -q abort
//请用 调用abort “C-g”, “C-xC-g”, “eC-g”.

# bind -q accept-line //列出功能“accept-line”按键以及组合按键
//请用 调用accept-line “C-j”, “C-m”.

Linux 命令大全

(253) Linux- chroot 命令

Linux chroot命令
Linux 命令大全

Linux chroot命令用于改变根目录。

chroot(change root)命令把根目录换成指定的目的目录。

语法

chroot [--help][--version][目的目录][执行指令...]

Shell

参数说明

  • –help  在线帮助。
  • –version  显示版本信息。

改变根目录

# chroot /mnt/ls //改变根目录

Linux 命令大全

(254) Linux- clock 命令

Linux clock命令
Linux 命令大全

Linux clock命令用于调整 RTC 时间。

RTC 是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟。
语法

clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="<日期时间>"][--setepoch --epoch=< >][--show][--systohc][--test][--utc][--version]

Shell

参数说明

  • –adjust  第一次使用”–set”或”–systohc”参数设置硬件时钟,会在/etc目录下产生一个名称为adjtime的文件。当再次使用这两个参数调整硬件时钟,此文件便会记录两次调整间之差异,日后执行clock指令加上”–adjust”参数时,程序会自动根 据记录文件的数值差异,计算出平均值,自动调整硬件时钟的时间。
  • –debug  详细显示指令执行过程,便于排错或了解程序执行的情形。
  • –directisa  告诉clock指令不要通过/dev/rtc设备文件,直接对硬件时钟进行存取。这个参数适用于仅有ISA总线结构的老式电脑。
  • –getepoch  把系统核心内的硬件时钟新时代数值,呈现到标准输出设备。
  • –hctosys  Hardware Clock to System Time,把系统时间设成和硬件时钟一致。由于这个动作将会造成系统全面更新文件的存取时间,所以最好在系统启动时就执行它。
  • –set–date  设置硬件时钟的日期和时间。
  • –setepoch–epoch=<年份>  设置系统核心之硬件时钟的新时代数值,年份以四位树字表示。
  • –show  读取硬件时钟的时间,并将其呈现至标准输出设备。
  • –systohc  System Time to Hardware Clock,将系统时间存回硬件时钟内。
  • –test  仅作测试,并不真的将时间写入硬件时钟或系统时间。
  • –utc  把硬件时钟上的时间时为CUT,有时也称为UTC或UCT。
  • –version  显示版本信息。

获取当前的时间

# clock //获取当前的时间

Shell

显示UTC时间

# clock -utc //显示UTC时间

Linux 命令大全

(255) Linux- crontab 命令

Linux crontab 命令
Linux 命令大全

Linux crontab是用来定期执行程序的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

**注意:**新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

而 linux 任务调度的工作主要分为以下两类:

  • 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
  • 2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

语法

crontab [ -u user ] file

Shell

crontab [ -u user ] { -l | -r | -e }

Shell

说明:

crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。

-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

参数说明

  • -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
  • -r : 删除目前的时程表
  • -l : 列出目前的时程表

时间格式如下:

f1 f2 f3 f4 f5 program

Shell

  • 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

Shell

使用者也可以将所有的设定先存放在文件中,用 crontab file 的方式来设定执行时间。

每月每天每小时的第 0 分钟执行一次 /bin/ls

0 * * * * /bin/ls

Shell

在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

0 6-12/3 * 12 * /usr/bin/backup

Shell

周一到周五每天下午 5:00 寄一封信给 alex@domain.name

0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

Shell

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”

20 0-23/2 * * * echo "haha"

Shell

下面再看看几个具体的例子:

0 */2 * * * /sbin/service httpd restart  意思是每两个小时重启一次apache 

50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务 

50 22 * * * /sbin/service sshd stop  意思是每天22:50关闭ssh服务 

0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 

1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件 

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30执行一次ls命令

Shell

**注意:**当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可,如:

20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1

Shell

脚本无法执行问题
如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。

解决方法:

  • 1、所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。

  • 2、在 shell 脚本开头使用以下代码:

    #!/bin/sh
    
    . /etc/profile
    . ~/.bash_profile
    

    3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得好几遍了生效,例如:

    20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh
    

Linux 命令大全

(256) Linux- declare 命令

Linux declare命令
Linux 命令大全

Linux declare命令用于声明 shell 变量。

declare为shell指令,在第一种语法中可用来声明变量并设置变量的属性([rix]即为变量的属性),在第二种语法中可用来显示shell函数。若不加上任何参数,则会显示全部的shell变量与函数(与执行set指令的效果相同)。
语法

declare [+/-][rxi][变量名称=设置值]declare -f

Shell

参数说明

  • +/-  ”-“可用来指定变量的属性,”+”则是取消变量所设的属性。
  • -f  仅显示函数。
  • r  将变量设置为只读。
  • x  指定的变量会成为环境变量,可供shell以外的程序来使用。
  • i  [设置值]可以是数值,字符串或运算式。

声明整数型变量

# declare -i ab //声明整数型变量
# ab=56 //改变变量内容
# echo $ab //显示变量内容
56

Shell

改变变量属性

# declare -i ef //声明整数型变量
# ef=1  //变量赋值(整数值)
# echo $ef //显示变量内容
1
# ef="wer" //变量赋值(文本值)
# echo $ef 
0
# declare +i ef //取消变量属性
# ef="wer"
# echo $ef
wer

Shell

设置变量只读

# declare -r ab //设置变量为只读
# ab=88 //改变变量内容
-bash: ab: 只读变量
# echo $ab //显示变量内容
56

Shell

声明数组变量

# declare -a cd='([0]="a" [1]="b" [2]="c")' //声明数组变量
# echo ${cd[1]}
b //显示变量内容

# echo ${cd[@]} //显示整个数组变量内容
a b c

Shell

显示函数

# declare -f
command_not_found_handle () 
{ 
  if [ -x /usr/lib/command-not-found ]; then
    /usr/bin/python /usr/lib/command-not-found -- $1;
    return $?;
  else
    if [ -x /usr/share/command-not-found ]; then
      /usr/bin/python /usr/share/command-not-found -- $1;
      return $?;
    else
      return 127;
    fi;
  fi
}

Linux 命令大全

(257) Linux- depmod 命令

Linux depmod命令
Linux 命令大全

Linux depmod命令用于分析可载入模块的相依性。

depmod(depend module)可检测模块的相依性,供modprobe在安装模块时使用。
语法

depmod [-adeisvV][-m <文件>][--help][模块名称]

Shell

参数说明

  • -a或–all  分析所有可用的模块。
  • -d或debug  执行排错模式。
  • -e  输出无法参照的符号。
  • -i  不检查符号表的版本。
  • -m<文件>或system-map<文件>  使用指定的符号表文件。
  • -s或–system-log  在系统记录中记录错误。
  • -v或–verbose  执行时显示详细的信息。
  • -V或–version  显示版本信息。
  • –help  显示帮助。

显示可用模块

# depmod -a //显示可用模块

Linux 命令大全

(258) Linux- dmesg 命令

Linux dmesg命令
Linux 命令大全

Linux dmesg命令用于显示开机信息。

kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
语法

dmesg [-cn][-s <缓冲区大小>]

Shell

参数说明

  • -c  显示信息后,清除ring buffer中的内容。
  • -s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。
  • -n  设置记录信息的层级。

显示开机信息

# dmesg |less
WARNING: terminal is not fully functional
[  0.000000] Initializing cgroup subsys cpuset
[  0.000000] Initializing cgroup subsys cpu
[  0.000000] Linux version 2.6.32-21-generic (buildd@rothera) (gcc version 4.4.3 (Ub
untu 4.4.3-4ubuntu5) ) #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 (Ubuntu 2.6.32-21.3
2-generic 2.6.32.11+drm33.2)
[  0.000000] KERNEL supported cpus:
[  0.000000]  Intel GenuineIntel
[  0.000000]  AMD AuthenticAMD
[  0.000000]  NSC Geode by NSC
[  0.000000]  Cyrix CyrixInstead
[  0.000000]  Centaur CentaurHauls
[  0.000000]  Transmeta GenuineTMx86
[  0.000000]  Transmeta TransmetaCPU
[  0.000000]  UMC UMC UMC UMC
[  0.000000] BIOS-provided physical RAM map:
[  0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[  0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[  0.000000] BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)
[  0.000000] BIOS-e820: 00000000000dc000 - 00000000000e0000 (reserved)
[  0.000000] BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
[  0.000000] BIOS-e820: 0000000000100000 - 000000003fef0000 (usable)
[  0.000000] BIOS-e820: 000000003fef0000 - 000000003feff000 (ACPI data)
[  0.000000] BIOS-e820: 000000003feff000 - 000000003ff00000 (ACPI NVS)

……省略部分内容

Shell

显示开机信息

#pwd   //查看当前所在目录
/home/hnlinux/
# dmesg > boot.msg //将开机信息保存到 boot.msg文件中
#ls //显示当前目录文件
boot.msg

Linux 命令大全

(259) Linux- enable 命令

Linux enable命令
Linux 命令大全

Linux enable命令用于启动或关闭 shell 内建指令。

若要执行的文件名称与shell内建指令相同,可用enable -n来关闭shell内建指令。若不加-n参数,enable可重新启动关闭的指令。
语法

enable [-n][-all][内建指令]

Shell

参数说明

  • -n  关闭指定的shell内建指令。
  • -all  显示shell所有关闭与启动的指令。

显示shell内置命令

# enable //显示shell命令
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable compopt
enable continue
enable declare
enable dirs
enable disown
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable fg
enable getopts
enable hash
enable help
enable history
enable jobs
enable kill
enable let
enable local
enable logout
enable mapfile
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readarray
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable suspend
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait

Shell

Linux 命令大全

(260) Linux- eval 命令

Linux eval命令
Linux 命令大全

Linux eval命令用于重新运算求出参数的内容。

eval可读取一连串的参数,然后再依参数本身的特性来执行。
语法

eval [参数]

Shell

参数说明:参数不限数目,彼此之间用分号分开。

连接多个命令

# eval enable;ls //连接多个命令
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable compopt
enable continue
enable declare
enable dirs
enable disown
enable echo
enable enable
enable eval
enable exec
enable exit
enable export
enable false
enable fc
enable fg
enable getopts
enable hash
enable help
enable history
enable jobs
enable kill
enable let
enable local
enable logout
enable mapfile
enable popd
enable printf
enable pushd
enable pwd
enable read
enable readarray
enable readonly
enable return
enable set
enable shift
enable shopt
enable source
enable suspend
enable test
enable times
enable trap
enable true
enable type
enable typeset
enable ulimit
enable umask
enable unalias
enable unset
enable wait

Shell

Linux 命令大全

(261) Linux- export 命令

Linux export命令
Linux 命令大全

Linux export 命令用于设置或显示环境变量。

在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。
语法

export [-fnp][变量名称]=[变量设置值]

Shell

参数说明

  • -f  代表[变量名称]中为函数名称。
  • -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
  • -p  列出所有的shell赋予程序的环境变量。

列出当前所有的环境变量

# export -p //列出当前的环境变量值
declare -x HOME=“/root“
declare -x LANG=“zh_CN.UTF-8“
declare -x LANGUAGE=“zh_CN:zh“
declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“
declare -x LESSOPEN=| /usr/bin/lesspipe %s“
declare -x LOGNAME=“root“
declare -x LS_COLORS=““
declare -x MAIL=“/var/mail/root“
declare -x OLDPWD
declare -x PATH=“/opt/toolchains/arm920t-eabi/bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
declare -x PWD=“/root“
declare -x SHELL=“/bin/bash“
declare -x SHLVL=“1“
declare -x SPEECHD_PORT=“6560“
declare -x SSH_CLIENT=“192.168.1.65 1674 22“
declare -x SSH_CONNECTION=“192.168.1.65 1674 192.168.1.3 22“
declare -x SSH_TTY=“/dev/pts/2“
declare -x TERM=“XTERM“
declare -x USER=“root“
declare -x XDG_SESSION_COOKIE=“93b5d3d03e032c0cf892a4474bebda9f-1273864738.954257-340206484“

Shell

定义环境变量

# export MYENV //定义环境变量
# export -p //列出当前的环境变量
declare -x HOME=“/root“
declare -x LANG=“zh_CN.UTF-8“
declare -x LANGUAGE=“zh_CN:zh“
declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“
declare -x LESSOPEN=| /usr/bin/lesspipe %s“
declare -x LOGNAME=“root“
declare -x LS_COLORS=““
declare -x MAIL=“/var/mail/root“
declare -x MYENV
declare -x OLDPWD
declare -x PATH=“/opt/toolchains/arm920t-eabi/bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
declare -x PWD=“/root“
declare -x SHELL=“/bin/bash“
declare -x SHLVL=“1“
declare -x SPEECHD_PORT=“6560“
declare -x SSH_CLIENT=“192.168.1.65 1674 22“
declare -x SSH_CONNECTION=“192.168.1.65 1674 192.168.1.3 22“
declare -x SSH_TTY=“/dev/pts/2“
declare -x TERM=“XTERM“
declare -x USER=“root“
declare -x XDG_SESSION_COOKIE=“93b5d3d03e032c0cf892a4474bebda9f-1273864738.954257-340206484“

Shell

定义环境变量赋值

# export MYENV=7 //定义环境变量并赋值
# export -p
declare -x HOME=“/root“
declare -x LANG=“zh_CN.UTF-8“
declare -x LANGUAGE=“zh_CN:zh“
declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“
declare -x LESSOPEN=| /usr/bin/lesspipe %s“
declare -x LOGNAME=“root“
declare -x LS_COLORS=““
declare -x MAIL=“/var/mail/root“
declare -x MYENV=“7“
declare -x OLDPWD
declare -x PATH=“/opt/toolchains/arm920t-eabi/bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
declare -x PWD=“/root“
declare -x SHELL=“/bin/bash“
declare -x SHLVL=“1“
declare -x SPEECHD_PORT=“6560“
declare -x SSH_CLIENT=“192.168.1.65 1674 22“
declare -x SSH_CONNECTION=“192.168.1.65 1674 192.168.1.3 22“
declare -x SSH_TTY=“/dev/pts/2“
declare -x TERM=“XTERM“
declare -x USER=“root“
declare -x XDG_SESSION_COOKIE=“93b5d3d03e032c0cf892a4474bebda9f-1273864738.954257-340206484“

Linux 命令大全

(262) Linux- pwunconv 命令

Linux pwunconv命令
Linux 命令大全

Linux pwunconv命令用于关闭用户的投影密码。

执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。
语法

pwunconv

Shell

关闭用户的投影密码

# pwunconv

Linux 命令大全

(263) Linux- grpconv 命令

Linux grpconv命令
Linux 命令大全

Linux grpconv(group convert to shadow password)命令用于开启群组的投影密码。

Linux系统里的用户和群组密码,分别存放在/etc目录下的passwd和group文件中。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为”x”字符。投影密码的功能可随时开启或关闭,您只需执行grpconv指令就能开启群组投影密码。
语法

grpconv

Linux 命令大全

(264) Linux- rpm 命令

Linux rpm命令
Linux 命令大全

Linux rpm 命令用于管理套件。

rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
语法

rpm [-acdhilqRsv][-b<完成阶段><套间档>+][-e<套件挡>][-f<文件>+][-i<套件档>][-p<套件档>][-U<套件档>][-vv][--addsign<套件档>+][--allfiles][--allmatches][--badreloc][--buildroot<根目录>][--changelog][--checksig<套件档>+][--clean][--dbpath<数据库目录>][--dump][--excludedocs][--excludepath<排除目录>][--force][--ftpproxy<主机名称或IP地址>][--ftpport<通信端口>][--help][--httpproxy<主机名称或IP地址>][--httpport<通信端口>][--ignorearch][--ignoreos][--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp][--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe<执行指令>][--prefix<目的目录>][--provides][--queryformat<档头格式>][--querytags][--rcfile<配置档>][--rebulid<套件档>][--rebuliddb][--recompile<套件档>][--relocate<原目录>=<新目录>][--replacefiles][--replacepkgs][--requires][--resign<套件档>+][--rmsource][--rmsource<文件>][--root<根目录>][--scripts][--setperms][--setugids][--short-circuit][--sign][--target=<安装平台>+][--test][--timecheck<检查秒数>][--triggeredby<套件档>][--triggers][--verify][--version][--whatprovides<功能特性>][--whatrequires<功能特性>]

Shell

参数说明

  • -a  查询所有套件。
  • -b<完成阶段><套件档>+或-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。
  • -c  只列出组态配置文件,本参数需配合”-l”参数使用。
  • -d  只列出文本文件,本参数需配合”-l”参数使用。
  • -e<套件档>或–erase<套件档>  删除指定的套件。
  • -f<文件>+  查询拥有指定文件的套件。
  • -h或–hash  套件安装时列出标记。
  • -i  显示套件的相关信息。
  • -i<套件档>或–install<套件档>  安装指定的套件档。
  • -l  显示套件的文件列表。
  • -p<套件档>+  查询指定的RPM套件档。
  • -q  使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
  • -R  显示套件的关联性信息。
  • -s  显示文件状态,本参数需配合”-l”参数使用。
  • -U<套件档>或–upgrade<套件档> 升级指定的套件档。
  • -v  显示指令执行过程。
  • -vv  详细显示指令执行过程,便于排错。
  • -addsign<套件档>+  在指定的套件里加上新的签名认证。
  • –allfiles  安装所有文件。
  • –allmatches  删除符合指定的套件所包含的文件。
  • –badreloc  发生错误时,重新配置文件。
  • –buildroot<根目录>  设置产生套件时,欲当作根目录的目录。
  • –changelog  显示套件的更改记录。
  • –checksig<套件档>+  检验该套件的签名认证。
  • –clean  完成套件的包装后,删除包装过程中所建立的目录。
  • –dbpath<数据库目录>  设置欲存放RPM数据库的目录。
  • –dump  显示每个文件的验证信息。本参数需配合”-l”参数使用。
  • –excludedocs  安装套件时,不要安装文件。
  • –excludepath<排除目录>  忽略在指定目录里的所有文件。
  • –force  强行置换套件或文件。
  • –ftpproxy<主机名称或IP地址>  指定FTP代理服务器。
  • –ftpport<通信端口>  设置FTP服务器或代理服务器使用的通信端口。
  • –help  在线帮助。
  • –httpproxy<主机名称或IP地址>  指定HTTP代理服务器。
  • –httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
  • –ignorearch  不验证套件档的结构正确性。
  • –ignoreos  不验证套件档的结构正确性。
  • –ignoresize  安装前不检查磁盘空间是否足够。
  • –includedocs  安装套件时,一并安装文件。
  • –initdb  确认有正确的数据库可以使用。
  • –justdb  更新数据库,当不变动任何文件。
  • –nobulid  不执行任何完成阶段。
  • –nodeps  不验证套件档的相互关联性。
  • –nofiles  不验证文件的属性。
  • –nogpg  略过所有GPG的签名认证。
  • –nomd5  不使用MD5编码演算确认文件的大小与正确性。
  • –nopgp  略过所有PGP的签名认证。
  • –noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。
  • –noscripts  不执行任何安装Script文件。
  • –notriggers  不执行该套件包装内的任何Script文件。
  • –oldpackage  升级成旧版本的套件。
  • –percent  安装套件时显示完成度百分比。
  • –pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
  • –prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。
  • –provides  查询该套件所提供的兼容度。
  • –queryformat<档头格式>  设置档头的表示方式。
  • –querytags  列出可用于档头格式的标签。
  • –rcfile<配置文件>  使用指定的配置文件。
  • –rebulid<套件档>  安装原始代码套件,重新产生二进制文件的套件。
  • –rebuliddb  以现有的数据库为主,重建一份数据库。
  • –recompile<套件档>  此参数的效果和指定”–rebulid”参数类似,当不产生套件档。
  • –relocate<原目录>=<新目录>  把本来会放到原目录下的文件改放到新目录。
  • –replacefiles  强行置换文件。
  • –replacepkgs  强行置换套件。
  • –requires  查询该套件所需要的兼容度。
  • –resing<套件档>+  删除现有认证,重新产生签名认证。
  • –rmsource  完成套件的包装后,删除原始代码。
  • –rmsource<文件>  删除原始代码和指定的文件。
  • –root<根目录>  设置欲当作根目录的目录。
  • –scripts  列出安装套件的Script的变量。
  • –setperms  设置文件的权限。
  • –setugids  设置文件的拥有者和所属群组。
  • –short-circuit  直接略过指定完成阶段的步骤。
  • –sign  产生PGP或GPG的签名认证。
  • –target=<安装平台>+  设置产生的套件的安装平台。
  • –test  仅作测试,并不真的安装套件。
  • –timecheck<检查秒数>  设置检查时间的计时秒数。
  • –triggeredby<套件档>  查询该套件的包装者。
  • –triggers  展示套件档内的包装Script。
  • –verify  此参数的效果和指定”-q”参数相同。
  • –version  显示版本信息。
  • –whatprovides<功能特性>  查询该套件对指定的功能特性所提供的兼容度。
  • –whatrequires<功能特性>  查询该套件对指定的功能特性所需要的兼容度。

安装软件

# rpm -hvi dejagnu-1.4.2-10.noarch.rpm 
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 签名:NOKEY, key ID db42a60e
准备...           
########################################### [100%]

Shell

显示软件安装信息

# rpm -qi dejagnu-1.4.2-10.noarch.rpm

【第1次更新 教程、类似命令关联】

Linux 命令大全

(265) Linux- insmod 命令

Linux insmod命令
Linux 命令大全

Linux insmod(insert module)命令用于载入模块。

Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程序。
语法

insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 = 符号值]

Shell

参数说明

  • -f  不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。
  • -k  将模块设置为自动卸除。
  • -m  输出模块的载入信息。
  • -o<模块名称>  指定模块的名称,可使用模块文件的文件名。
  • -p  测试模块是否能正确地载入kernel。
  • -s  将所有信息记录在系统记录文件中。
  • -v  执行时显示详细的信息。
  • -x  不要汇出模块的外部符号。
  • -X  汇出模块所有的外部符号,此为预设置。

加载模块

# insmod led.o 

//向内核加载模块

Linux 命令大全

(266) Linux- kbdconfig 命令

Linux kbdconfig命令
Linux 命令大全

Linux kbdconfig命令用于设置键盘类型。

kbdconfig(Red Hat Linux才有的指令)是一个用来设置键盘的程序,提供图形化的操作界面。kbdconfig实际上是修改/etc/sysconfig/keyboard的键盘配置文件。
语法

kbdconfig [--back][--test]

Shell

参数

  • –back  执行时将预设的Cancel按钮更改为Back按钮。
  • –test  仅作测试,不会实际更改设置。

键盘设置:

# kdbconfig //设置键盘

Linux 命令大全

(267) Linux- lilo 命令

Linux lilo命令
Linux 命令大全

Linux lilo命令用于安装核心载入,开机管理程序。

lilo(linux loader)是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/目录下的lilo.conf配置文件,然后根据其内容安装lilo。
语法

lilo [-clqtV][-b<外围设备代号>][-C<配置文件>][-d<延迟时间>][-D<识别标签>][-f<几何参数文件>][-i<开机磁区文件>][-I<识别标签>][-m<映射文件>][-P<fix/ignore>][-r<根目录>][-R<执行指令>...][-s<备份文件>][-S<备份文件>][-uU<外围设备代号>][-v...]

Shell

参数说明

  • -b<外围设备代号>  指定安装lilo之处的外围设备代号。
  • -c  使用紧致映射模式。
  • -C<配置文件>  指定lilo的配置文件。
  • -d<延迟时间>  设置开机延迟时间。
  • -D<识别标签>  指定开机后预设启动的操作系统,或系统核心识别标签。
  • -f<几何参数文件>  指定磁盘的几何参数配置文件。
  • -i<开机磁区文件>  指定欲使用的开机磁区文件,预设是/boot目录里的boot.b文件。
  • -I<识别标签>  显示系统核心存放之处。
  • -l  产生线形磁区地址。
  • -m<映射文件>  指定映射文件。
  • -P<fix/ignore>  决定要修复或忽略分区表的错误。
  • -q  列出映射的系统核心文件。
  • -r<根目录>  设置系统启动时欲挂入成为根目录的目录。
  • -R<执行指令>  设置下次启动系统时,首先执行的指令。
  • -s<备份文件>  指定备份文件。
  • -S<备份文件>  强制指定备份文件。
  • -t  不执行指令,仅列出实际执行会进行的动作。
  • -u<外围色设备代号>  删除lilo。
  • -U<外围设备代号>  此参数的效果和指定”-u”参数类似,当不检查时间戳记。
  • -v  显示指令执行过程。
  • -V  显示版本信息。

安装lilo到第一台SCSI硬盘的第三个主要分区,采用3级模式。

# lilo -b /dev/sda3 -v -v -v

Shell

指定安装lilo的配置文件和备份文件。

# lilo -C /etc/lilo.conf2 -s /boot/boot. Backup

Linux 命令大全

(268) Linux- liloconfig 命令

Linux liloconfig命令
Linux 命令大全

Linux liloconfig命令用于设置核心载入,开机管理程序。

liloconfig是Slackware发行版专门用来调整lilo设置的程序。它通过互动式操作界面,让用户能够利用键盘上的方向键等,轻易地操控lilo的安装,设置作业,而无须下达各种参数或撰写配置文件。
语法

liloconfig

Shell

执行liloconfig命令

# liloconfig

Linux 命令大全

(269) Linux- lsmod 命令

Linux lsmod命令
Linux 命令大全

Linux lsmod命令用于显示已载入系统的模块。

执行lsmod(list modules)指令,会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。
语法

lsmod

Shell

显示模块信息

# lsmod 
Module         Size Used by
nfsd         238935 11 
lockd         64849 1 nfsd
nfs_acl         2245 1 nfsd
auth_rpcgss      33735 1 nfsd
sunrpc        193181 10 nfsd,lockd,nfs_acl,auth_rpcgss
exportfs        3437 1 nfsd
xt_TCPMSS        2931 1 
xt_tcpmss        1197 1 
xt_tcpudp        2011 1 
iptable_mangle     2771 1 
ip_tables        9991 1 iptable_mangle
x_tables        14299 4 xt_TCPMSS,xt_tcpmss,xt_tcpudp,ip_tables
pppoe          8943 2 
pppox          2074 1 pppoe
binfmt_misc       6587 1 
snd_ens1371      18814 0 
gameport        9089 1 snd_ens1371
snd_ac97_codec    100646 1 snd_ens1371
ac97_bus        1002 1 snd_ac97_codec
snd_pcm_oss      35308 0 
snd_mixer_oss     13746 1 snd_pcm_oss
snd_pcm        70662 3 snd_ens1371,snd_ac97_codec,snd_pcm_oss
snd_seq_dummy      1338 0 
snd_seq_oss      26726 0 
snd_seq_midi      4557 0 
snd_rawmidi      19056 2 snd_ens1371,snd_seq_midi
snd_seq_midi_event   6003 2 snd_seq_oss,snd_seq_midi
snd_seq        47263 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer       19098 2 snd_pcm,snd_seq
snd_seq_device     5700 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
fbcon         35102 71 
tileblit        2031 1 fbcon
font          7557 1 fbcon
bitblit         4707 1 fbcon
ppdev          5259 0 
softcursor       1189 1 bitblit
snd          54148 10 snd_ens1371,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
psmouse        63245 0 
serio_raw        3978 0 
soundcore        6620 1 snd
parport_pc       25962 1 
snd_page_alloc     7076 1 snd_pcm
vga16fb        11385 1 
intel_agp       24177 1 
vgastate        8961 1 vga16fb
i2c_piix4        8335 0 
shpchp         28820 0 
agpgart        31724 1 intel_agp
lp           7028 0 
parport        32635 3 ppdev,parport_pc,lp
mptspi         14652 2 
mptscsih        31325 1 mptspi
pcnet32        28890 0 
floppy         53016 0 
mii           4381 1 pcnet32
mptbase        83022 2 mptspi,mptscsih
scsi_transport_spi   21096 1 mptspi

Shell

Linux 命令大全

(270) Linux- minfo 命令

Linux minfo命令
Linux 命令大全

Linux minfo命令用于显示MS-DOS文件系统的各项参数。

minfo为mtools工具指令,可显示MS-DOS系统磁盘的各项参数,包括磁区数,磁头数…等。
语法

</>minfo [-v][驱动器代号]

Shell

参数说明

  • -v  除了一般信息外,并显示可开机磁区的内容。

显示DOS系统参数

# minfo -v C: //显示系统参数

Linux 命令大全

(271) Linux- set 命令

Linux set命令
Linux 命令大全

Linux set命令用于设置shell。

set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。
语法

set [+-abCdefhHklmnpPtuvx]

Shell

参数说明

  • -a  标示已修改的变量,以供输出至环境变量。
  • -b  使被中止的后台程序立刻回报执行状态。
  • -C  转向所产生的文件无法覆盖已存在的文件。
  • -d  Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
  • -e  若指令传回值不等于0,则立即退出shell。
  • -f   取消使用通配符。
  • -h  自动记录函数的所在位置。
  • -H Shell  可利用”!”加<指令编号>的方式来执行history中记录的指令。
  • -k  指令所给的参数都会被视为此指令的环境变量。
  • -l  记录for循环的变量名称。
  • -m  使用监视模式。
  • -n  只读取指令,而不实际执行。
  • -p  启动优先顺序模式。
  • -P  启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
  • -t  执行完随后的指令,即退出shell。
  • -u  当执行时使用到未定义过的变量,则显示错误信息。
  • -v  显示shell所读取的输入值。
  • -x  执行指令后,会先显示该指令及所下的参数。
  • +<参数>  取消某个set曾启动的参数。

显示环境变量

# set
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="00" [2]="15" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")
BASH_VERSION='3.00.15(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=99
DIRSTACK=()
EUID=0
GROUPS=()
G_BROKEN_FILENAMES=1
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=hnlinux
HOSTTYPE=i386
IFS=$' '
INPUTRC=/etc/inputrc
KDEDIR=/usr
LANG=zh_CN.GB2312
LESSOPEN='|/usr/bin/lesspipe.sh %s'
LINES=34
L
MAIL=/var/spool/mail/root
MAILCHECK=60
OLDPWD=/home/uptech
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/crosstools/gcc-3.4.6-glibc-2.3.6/bin
PIPESTATUS=([0]="2")
PPID=26005
PROMPT_COMMAND='echo -ne "

Shell

Linux 命令大全

(272) Linux- modprobe 命令

Linux modprobe命令
Linux 命令大全

Linux modprobe命令用于自动处理可载入模块。

modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
语法

modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]

Shell

参数

  • -a或–all  载入全部的模块。
  • -c或–show-conf  显示所有模块的设置信息。
  • -d或–debug  使用排错模式。
  • -l或–list  显示可用的模块。
  • -r或–remove  模块闲置不用时,即自动卸载模块。
  • -t或–type  指定模块类型。
  • -v或–verbose  执行时显示详细的信息。
  • -V或–version  显示版本信息。
  • -help  显示帮助。

安装软驱模块:

[root@w3cschool.cc ~]# modprobe -v floppy

Shell

卸载软驱模块:

[root@w3cschool.cc ~]# modprobe -v -r floppy

Linux 命令大全

(273) Linux- ntsysv 命令

Linux ntsysv命令
Linux 命令大全

Linux ntsysv命令用于设置系统的各种服务。

这是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。
语法

ntsysv [--back][--level <等级代号>]

Shell

参数

  • –back  在互动式界面里,显示Back钮,而非Cancel钮。
  • –level <等级代号>  在指定的执行等级中,决定要开启或关闭哪些系统服务。

Linux 命令大全

(274) Linux- mouseconfig 命令

Linux mouseconfig命令
Linux 命令大全

Linux mouseconfig命令用于设置鼠标相关参数。

mouseconfig为鼠标设置程序,可自动设置相关参数,或者用户也可以利用所提供互动模式自行设置鼠标。mouseconfig是Red Hat Linux才有的命令。
语法

mouseconfig [--back][--emulthree][--help][--expert][--kickstart][--noprobe][--test][--device <连接端口>][鼠标类型]

Shell

参数

  • –back  在设置画面上显示Back按钮,而取代预设的Cancel按钮。
  • –device<连接端口>  指定硬件连接端口。可用的选项有ttyS0,ttyS1,ttyS2,ttyS3与orpsaux。
  • –emulthree  将二钮鼠标模拟成三钮鼠标。
  • –help  显示帮助以及所有支持的鼠标类型。
  • –expert  程序预设可自动判断部分设置值。若要自行设置,请使用–expert参数。
  • –kickstart  让程序自动检测并保存所有的鼠标设置。
  • –noprobe  不要检测鼠标设备。
  • –test  测试模式,不会改变任何设置。

实例
以交互模式配置鼠标:

# mouseconfig -text

Linux 命令大全

(275) Linux- passwd 命令

Linux passwd命令
Linux 命令大全

Linux passwd命令用来更改使用者的密码
语法

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

Shell

必要参数

  • -d 删除密码
  • -f 强制执行
  • -k 更新只能发送在过期之后
  • -l 停止账号使用
  • -S 显示密码信息
  • -u 启用已被停止的账户
  • -x 设置密码的有效期
  • -g 修改群组密码
  • -i 过期后停止用户账号

选择参数

  • –help 显示帮助信息
  • –version 显示版本信息

修改用户密码

# passwd runoob  //设置runoob用户的密码
Enter new UNIX password:  //输入新密码,输入的密码无回显
Retype new UNIX password:  //确认密码
passwd: password updated successfully
#

Shell

显示账号密码信息

# passwd -S runoob
runoob P 05/13/2010 0 99999 7 -1

Shell

删除用户密码

# passwd -d lx138 
passwd: password expiry information changed.

Linux 命令大全

(276) Linux- pwconv 命令

Linux pwconv命令
Linux 命令大全

Linux pwconv命令用于开启用户的投影密码。

Linux系统里的用户和群组密码,分别存放在名称为passwd和group的文件中, 这两个文件位于/etc目录下。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为”x”字符,有效的强化了系统的安全性。
语法

pwconv

Shell

开启用户的投影密码

# pwconv

Linux 命令大全

(277) Linux- rdate 命令

Linux rdate命令
Linux 命令大全

Linux rdate命令用于显示其他主机的日期与时间。

执行rdate指令,向其他主机询问系统时间并显示出来。
语法

rdate [-ps][主机名称或IP地址...]

Shell

参数

  • -p  显示远端主机的日期与时间。
  • -s  把从远端主机收到的日期和时间,回存到本地主机的系统时间。
  • -u 传输协议使用UDP协议
  • -l 使用syslog显示错误信息
  • -t<时间> 设置超时时间

Linux 命令大全

(278) Linux- resize 命令

Linux resize命令
Linux 命令大全

Linux resize命令设置终端机视窗的大小。

执行resize指令可设置虚拟终端机的视窗大小。
语法

resize [-cu][-s <列数> <行数>]

Shell

参数

  • -c  就算用户环境并非C Shell,也用C Shell指令改变视窗大小。
  • -s <列数> <行数>  设置终端机视窗的垂直高度和水平宽度。
  • -u  就算用户环境并非Bourne Shell,也用Bourne Shell指令改变视窗大小。

实例
使用 C shell

[root@linux runoob]# resize -c
set noglob;
setenv COLUMNS '99';
setenv LINES '34';
unset noglob;

Shell

使用 Bourne shell

[root@hnlinux runoob]# resize -u
COLUMNS=99;
LINES=34;
export COLUMNS LINES;

Shell

设置指定大小

[root@hnlinux runoob]# resize -s 80 160

Linux 命令大全

(279) Linux- rmmod 命令

Linux rmmod命令
Linux 命令大全

Linux rmmod命令用于删除模块。

执行rmmod指令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。
语法

rmmod [-as][模块名称...]

Shell

参数

  • -a  删除所有目前不需要的模块。
  • -s  把信息输出至syslog常驻服务,而非终端机界面。

显示已安装的模块

# lsmod
Module         Size Used by
cramfs         39042 1 
nfsd         238935 11 
lockd         64849 1 nfsd
nfs_acl         2245 1 nfsd
auth_rpcgss      33735 1 nfsd
sunrpc        193181 10 nfsd,lockd,nfs_acl,auth_rpcgss
exportfs        3437 1 nfsd
xt_TCPMSS        2931 0 
xt_tcpmss        1197 0 
xt_tcpudp        2011 0 
iptable_mangle     2771 0 
ip_tables        9991 1 iptable_mangle
x_tables        14299 4 

……省略部分结果
pppoe          8943 0 
pppox          2074 1 pppoe
binfmt_misc       6587 1 
snd_ens1371      18814 0 
gameport        9089 1 snd_ens1371
snd_ac97_codec    100646 1 snd_ens1371
ac97_bus        1002 1 snd_ac97_codec
snd_pcm_oss      35308 0

Shell

卸载模块

# rmmod -v pppoe //卸载模块pppoe
Checking ppoe for persistent data

Shell

安装模块

# insmod -v pppoe >1.log //安装模块

~# tail -b 30 1.log //显示文件信息

Linux 命令大全

(280) Linux- grpunconv 命令

Linux grpunconv命令
Linux 命令大全

Linux grpunconv命令用于关闭群组的投影密码。

执行grpunconv指令可关闭群组投影密码,它会把密码从gshadow文件内,回存到group文件里。
语法

grpunconv

Shell

未关闭的情况

cat /etc/gshadow | grep cdy 
cdy:123456::

Shell

关闭影子密码

cat /etc/gshadow
cat: /etc/gshadow: 没有那个文件或目录

Shell

查看密码已经复制到 /etc/group 中了。

cat /etc/group | grep cdy
cdy:123456:1000:

Linux 命令大全

(281) Linux- modinfo 命令

Linux modinfo命令
Linux 命令大全

Linux modinfo命令用于显示kernel模块的信息。

modinfo会显示kernel模块的对象文件,以显示该模块的相关信息。
语法

modinfo [-adhpV][模块文件]

Shell

参数

  • -a或–author  显示模块开发人员。
  • -d或–description  显示模块的说明。
  • -h或–help  显示modinfo的参数使用方法。
  • -p或–parameters  显示模块所支持的参数。
  • -V或–version  显示版本信息。

显示sg模块的信息。

# modinfo sg
filename:    /lib/modules/2.6.9-42.ELsmp/kernel/drivers/scsi/sg.ko
author:     Douglas Gilbert
description:  SCSI generic (sg) driver
license:    GPL
version:    3.5.31 B0B0CB1BB59F0669A1F0D6B
parm:      def_reserved_size:size of buffer reserved for each fd
parm:      allow_dio:allow direct I/O (default: 0 (disallow))
alias:     char-major-21-*
vermagic:    2.6.9-42.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
depends:    scsi_mod

Linux 命令大全

(282) Linux- time 命令

Linux time命令
Linux 命令大全

Linux time命令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。

例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 time 指令无法取得这些资料。
语法

time [options] COMMAND [arguments]

Shell

参数

  • -o 或 –output=FILE:设定结果输出档。这个选项会将 time 的输出写入 所指定的档案中。如果档案已经存在,系统将覆写其内容。
  • -a 或 –append:配合 -o 使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
  • -f FORMAT 或 –format=FORMAT:以 FORMAT 字串设定显示方式。当这个选项没有被设定的时候,会用系统预设的格式。不过你可以用环境变数 time 来设定这个格式,如此一来就不必每次登入系统都要设定一次。

time 指令可以显示的资源有四大项,分别是

  • Time resources
  • Memory resources
  • IO resources
  • Command info

详细的内容如下

1、Time Resources

E 执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的 CPU 时间。

e 执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的 CPU 时间。

S 指令执行时在核心模式(kernel mode)所花费的时间,单位是秒。

U 指令执行时在使用者模式(user mode)所花费的时间,单位是秒。

P 执行指令时 CPU 的占用比例。其实这个数字就是核心模式加上使用者模式的 CPU 时间除以总时间。

2、Memory Resources

M 执行时所占用的实体记忆体的最大值。单位是 KB

t 执行时所占用的实体记忆体的平均值,单位是 KB

K 执行程序所占用的记忆体总量(stack+data+text)的平均大小,单位是 KB

D 执行程序的自有资料区(unshared data area)的平均大小,单位是 KB

p 执行程序的自有堆叠(unshared stack)的平均大小,单位是 KB

X 执行程序间共享内容(shared text)的平均值,单位是 KB

Z 系统记忆体页的大小,单位是 byte。对同一个系统来说这是个常数

3、IO Resources

F 此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换档(swap file)中,而且已经分配给其他程序。此时该页的内容必须从置换档里再读出来。

R 此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换档中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换档里读出来

W 此程序被交换到置换档的次数

c 此程序被强迫中断(像是分配到的 CPU 时间耗尽)的次数

w 此程序自愿中断(像是在等待某一个 I/O 执行完毕,像是磁碟读取等等)的次数

I 此程序所输入的档案数

O 此程序所输出的档案数

r 此程序所收到的 Socket Message

s 此程序所送出的 Socket Message

k 此程序所收到的信号 ( Signal )数量

4、Command Info

C 执行时的参数以及指令名称

x 指令的结束代码 ( Exit Status )

-p or –portability:这个选项会自动把显示格式设定成为:

real %e user %Usys %S:这么做的目的是为了与 POSIX 规格相容。

-v or –verbose:这个选项会把所有程序中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。

1. # time date
2. Sun Mar 26 22:45:34 GMT-8 2006
3. 
4. real    0m0.136s
5. user    0m0.010s
6. sys     0m0.070s
7. #

Shell

在以上实例中,执行命令”time date”(见第1行)。

系统先执行命令”date”,第2行为命令”date”的执行结果。

第3-6行为执行命令”date”的时间统计结果,其中第4行”real”为实际时间,第5行”user”为用户CPU时间,第6行”sys”为系统CPU时间。

以上三种时间的显示格式均为MMmNN[.FFF]s。

利用下面的指令

time -v ps -aux

Shell

我们可以获得执行 ps -aux 的结果和所花费的系统资源。如下面所列的资料:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
Command being timed: "ps -aux"
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

Shell

Linux 命令大全

(283) Linux- setup 命令

Linux setup命令
Linux 命令大全

Linux setup命令设置公用程序,是一个启动图形设置系统的命令。

setup 命令:用来配置X,打印设置,时区设置,系统服务,网络配置,配置,防火墙配置,验证配置,鼠标配置。
语法

setup

Shell

setup是一个设置公用程序,提供图形界面的操作方式。在setup中可设置7类的选项:

  • 1.登陆认证方式
  • 2.键盘组态设置
  • 3.鼠标组态设置
  • 4.开机时所要启动的系统服务
  • 5.声卡组态设置
  • 6.时区设置
  • 7.X Windows组态设置

Linux 命令大全

(284) Linux- sndconfig 命令

Linux sndconfig命令
Linux 命令大全

Linux sndconfig命令用于设置声卡。

sndconfig为声卡设置程序,支持PnP设置,可自动检测并设置PnP声卡。
语法

sndconfig [--help][--noautoconfig][--noprobe]

Shell

参数

  • –help  显示帮助。
  • –noautoconfig  不自动设置PnP的声卡。
  • –noprobe  不自动检测PnP声卡。

Linux 命令大全

(285) Linux- setenv 命令

Linux setenv命令
Linux 命令大全

Linux setenv命令用于查询或显示环境变量。

setenv为tsch中查询或设置环境变量的指令。
语法

setenv [变量名称][变量值]

Shell

显示环境变量

setenv

Shell

设置环境变量

# setenv USER lx138

Linux 命令大全

(286) Linux- setconsole 命令

Linux setconsole命令
Linux 命令大全

Linux setconsole命令用于设置系统终端。

setconsole可用来指定系统终端。
语法

setconsole [serial][ttya][ttyb]

Shell

参数

  • serial  使用PROM终端。
  • ttya,cua0或ttyS0  使用第1个串口设备作为终端。
  • ttyb,cua1或ttyS1  使用第2个串口设备作为终端。
  • video  使用主机上的现卡作为终端。

设置终端

# setconsole ttyS0

Linux 命令大全

(287) Linux- timeconfig 命令

Linux timeconfig命令
Linux 命令大全

Linux timeconfig命令用于设置时区。

这是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,设置系统时间所属的时区。
语法

timeconfig [--arc][--back][--test][--utc][时区名称]

Shell

参数

  • –arc  使用Alpha硬件结构的格式存储系统时间。
  • –back  在互动式界面里,显示Back钮而非Cancel钮。
  • –test  仅作测试,并不真的改变系统的时区。
  • –utc  把硬件时钟上的时间视为CUT,有时也称为UTC或UCT。
# timeconfig //设置时区

Linux 命令大全

(288) Linux- ulimit 命令

Linux ulimit命令
Linux 命令大全

Linux ulimit命令用于控制shell程序的资源。

ulimit为shell内建指令,可用来控制shell执行程序的资源。
语法

ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]

Shell

参数

  • -a  显示目前资源限制的设定。
  • -c <core文件上限>  设定core文件的最大值,单位为区块。
  • -d <数据节区大小>  程序数据节区的最大值,单位为KB。
  • -f <文件大小>  shell所能建立的最大文件,单位为区块。
  • -H  设定资源的硬性限制,也就是管理员所设下的限制。
  • -m <内存大小>  指定可使用内存的上限,单位为KB。
  • -n <文件数目>  指定同一时间最多可开启的文件数。
  • -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
  • -s <堆叠大小>  指定堆叠的上限,单位为KB。
  • -S  设定资源的弹性限制。
  • -t <CPU时间>  指定CPU使用时间的上限,单位为秒。
  • -u <程序数目>  用户最多可开启的程序数目。
  • -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

显示系统资源的设置

[root@w3cschool.cc ~]# ulimit -a
core file size     (blocks, -c) 0
data seg size      (kbytes, -d) unlimited
file size        (blocks, -f) unlimited
pending signals         (-i) 1024
max locked memory    (kbytes, -l) 32
max memory size     (kbytes, -m) unlimited
open files           (-n) 1024
pipe size      (512 bytes, -p) 8
POSIX message queues   (bytes, -q) 819200
stack size       (kbytes, -s) 10240
cpu time        (seconds, -t) unlimited
max user processes       (-u) 4096
virtual memory     (kbytes, -v) unlimited
file locks           (-x) unlimited
[root@w3cschool.cc ~]#

Shell

设置单一用户程序数目上限

[root@w3cschool.cc ~]# ulimit -u 500 //设置单一用户程序上限
[root@w3cschool.cc ~]# ulimit -a
core file size     (blocks, -c) 0
data seg size      (kbytes, -d) unlimited
file size        (blocks, -f) unlimited
pending signals         (-i) 1024
max locked memory    (kbytes, -l) 32
max memory size     (kbytes, -m) unlimited
open files           (-n) 1024
pipe size      (512 bytes, -p) 8
POSIX message queues   (bytes, -q) 819200
stack size       (kbytes, -s) 10240
cpu time        (seconds, -t) unlimited
max user processes       (-u) 500
virtual memory     (kbytes, -v) unlimited
file locks           (-x) unlimited
[root@w3cschool.cc ~]#

Linux 命令大全

(289) Linux- unset 命令

Linux unset命令
Linux 命令大全

Linux unset命令用于删除变量或函数。

unset为shell内建指令,可删除变量或函数。
语法

unset [-fv][变量或函数名称]

Shell

参数

  • -f  仅删除函数。
  • -v  仅删除变量。

删除环境变量

[root@runoob.com ~]# lx="ls -lh" //设定环境变量
[root@runoob.com ~]# $lx //使用环境变量
总用量 116K
-rw-r--r-- 1 root root 2.1K 2008-03-30 anaconda-ks.cfg
drwx------ 3 root root 4.0K 3月 30 21:22 Desktop
-rw-r--r-- 1 root root 50K 2008-03-30 install.log
-rw-r--r-- 1 root root 32K 2008-03-30 install.log.syslog
lrwxrwxrwx 1 root root  9 2008-03-30 qte -> /opt/qte/
[root@runoob.com ~]# set //查看当前的环境变量
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
……省略部分内容
PROMPT_COMMAND='echo -ne "33]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}07"'
PS1='[u@h W]$ '
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt-3.3
SHELL=/bin/bash
SSH_TTY=/dev/pts/4
SUPPORTED=zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en
SYSFONT=latarcyrheb-sun16
TERM=xterm
UID=0
USER=root
_=-lh
lx='ls -lh'
[root@runoob.com ~]# unset lx //删除环境变量
[root@runoob.com ~]# set //显示当前环境变量
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
……省略部分内容
PROMPT_COMMAND='echo -ne "33]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}07"'
PS1='[u@h W]$ '
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt-3.3
SHELL=/bin/bash
SSH_TTY=/dev/pts/4
SUPPORTED=zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en
SYSFONT=latarcyrheb-sun16
TERM=xterm
UID=0
USER=root
_=-lh

Shell

Linux 命令大全

(290) Linux- chkconfig 命令

Linux chkconfig命令
Linux 命令大全

Linux chkconfig命令用于检查,设置系统的各种服务。

这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
语法

chkconfig [--add][--del][--list][系统服务]chkconfig [--level <等级代号>][系统服务][on/off/reset]

Shell

参数

  • –add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
  • –del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
  • –level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。

列出chkconfig所知道的所有命令。

# chkconfig -list

Shell

开启服务。

# chkconfig telnet on //开启Telnet服务
# chkconfig --list //列出chkconfig所知道的所有的服务的情况

Shell

关闭服务

# chkconfig telnet off  //关闭Telnet服务
# chkconfig -list //列出chkconfig所知道的所有的服务的情况

Linux 命令大全

(291) Linux- apmd 命令

Linux apmd命令
Linux 命令大全

Linux apmd命令用于进阶电源管理服务程序。

apmd负责BIOS进阶电源管理(APM)相关的记录,警告与管理工作。
语法

apmd [-u v V W][-p <百分比变化量>][-w <百分比值>]

Shell

参数

  • -p<百分比变化量>或–percentage<百分比变化量> 当电力变化的幅度超出设置的百分比变化量,即记录事件百分比变化量的预设值为5,若设置值超过100,则关闭此功能。
  • -u或–utc 将BIOS时钟设为UTC,以便从悬待模式恢复时,将-u参数传送至clock或hwclock程序。
  • -v或–verbose 记录所有的APM事件。
  • -V或–version 显示版本信息。
  • -w<百分比值>或–warn<百分比值> 当电池不在充电状态时,且电池电量低于设置的百分比值,则在syslog(2)的ALERT层记录警告信息。百分比值的预设置为10,若设置为0,则关闭此功能。
  • -W或–wall 发出警告信息给所有人。

记录所有的电源管理事件

# apmd -v

Shell

设置BIOS时钟

# apmd -utc //设置BIOS时钟为UTC

Linux 命令大全

(292) Linux- hwclock 命令

Linux hwclock命令
Linux 命令大全

Linux hwclock命令用于显示与设定硬件时钟。

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
语法

hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<日期与时间>]

Shell

参数

  • –adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用–adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
  • –debug  显示hwclock执行时详细的信息。
  • –directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
  • –hctosys  将系统时钟调整为与目前的硬件时钟一致。
  • –set –date=<日期与时间>  设定硬件时钟。
  • –show  显示硬件时钟的时间与日期。
  • –systohc  将硬件时钟调整为与目前的系统时钟一致。
  • –test  仅测试程序,而不会实际更改硬件时钟。
  • –utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
  • –version  显示版本信息。

显示当前时间

# hwclock 
2010年05月27日 星期四 18时04分31秒 -0.704214 seconds

Shell

查看版本信息

# hwclock -v
hwclock from util-linux-2.12a

Linux 命令大全

(293) Linux- mkkickstart 命令

Linux mkkickstart命令
Linux 命令大全

Linux mkkickstart命令用于建立安装的组态文件。

mkkickstart可根据目前系统的设置来建立组态文件,供其他电脑在安装时使用。组态文件的内容包括使用语言,网络环境,系统磁盘状态,以及X Windows的设置等信息。
语法

mkkickstart [--bootp][--dhcp][--nonet][--nox][--version][--nfs <远端电脑:路径>]

Shell

参数

  • –bootp  安装与开机时,使用BOOTP。
  • –dhcp  安装与开机时,使用DHCP。
  • –nfs<远端电脑:路径>  使用指定的网络路径安装。
  • –nonet  不要进行网络设置,即假设在没有网络环境的状态下。
  • –nox  不要进行X Windows的环境设置。
  • –version  显示版本信息。

构建一个安装组态文件:

# mkkickstart --nonet -bootp

Linux 命令大全

(294) Linux- fbset 命令

Linux fbset命令
Linux 命令大全

Linux fbset命令用于设置景框缓冲区。

fbset指令可用于设置景框缓冲区的大小,还能调整画面之分辨率,位置,高低宽窄,色彩 深度,并可决定是否启动先卡之各项硬件特性。
语法

fbset [-ahinsvVx][-db <信息文件>][-fb <外围设备代号>][--test][显示模式]

Shell

参数

  • -a或–all  改变所有使用该设备之虚拟终端机的显示模式。
  • -db<信息文件>  指定显示模式的信息文件,预设值文件名称为fb.modes,存放在/etc目录下
  • -fb<外围设备代号>  指定用来做为输出景框缓冲区之外围设备,预设置为”/dev/fd0″。
  • -h或-help  在线帮助。
  • -i或–info  列出所有景框缓冲区之相关信息。
  • -ifb<外围设备代号>  使用另一个景框缓冲区外围设备之设置值。
  • -n或–now  马上改变显示模式。
  • -ofb<外围设备代号>  此参数效果和指定”-fb”参数相同。
  • -s或–show  列出目前显示模式之设置。
  • -v或–verbose  显示指令执行过程。
  • -V或–version  显示版本信息。
  • -x或–xfree86  使用XFree86兼容模式。
  • –test  仅做测试,并不改变现行的显示模式。

设置画面分辨率 和桌面分辨率

# fbset -g 800 688 1024 768//画面分辨率为800*600 桌面分辨率为1024*768

Shell

启动硬件文本加速

# fbset -accel true  // 启动硬件文本加速

Shell

启动广播功能

# fbset -bcast true //启动广播功能

Linux 命令大全

(295) Linux- unalias 命令

Linux unalias命令
Linux 命令大全

Linux unalias命令用于删除别名。

unalias为shell内建指令,可删除别名设置。
语法

unalias [-a][别名]

Shell

参数

  • -a  删除全部的别名。

给命令设置别名

[root@runoob.com ~]# alias lx=ls
[root@runoob.com ~]# lx
anaconda-ks.cfg Desktop install.log install.log.syslog qte

Shell

删除别名

[root@runoob.com ~]# alias lx //显示别名
alias lx='ls'
[root@runoob.com ~]# unalias lx //删除别名
[root@runoob.com ~]# lx
-bash: lx: command not found

Linux 命令大全

(296) Linux- SVGATextMode 命令

Linux SVGATextMode命令
Linux 命令大全

Linux SVGATextMode命令用于加强文字模式的显示画面。

SVGATextMode可用来设置文字模式下的显示画面,包括分辨率,字体和更新频率等。
语法

SVGATextMode [-acdfhmnrsv][-t <配置文件>][模式]

Shell

参数

  • -a  如果新显示模式的屏幕大小与原先不同时,SVGATextMode会执行必要的系统设置。
  • -c  维持原有的VGA时脉。
  • -d  执行时会显示详细的信息,供排错时参考。
  • -f  不要执行配置文件中有关字体载入的指令。
  • -h  显示帮助。
  • -m  允许1×1的方式来重设屏幕大小。
  • -n  仅测试指定的模式。
  • -r  通知或重设与屏幕大小相关的程序。
  • -s  显示配置文件中所有可用的模式。
  • -t<配置文件>  指定配置文件。
  • -v  SVGATextMode在配置新的显示模式时,预设会先检查垂直与水平的更新更新频率是否在配置文件所指定的范围内,如果不在范围内,则不设置新的显示模式。
  • 模式]  [模式]参数必须是配置文件中模式的名称。

Linux 命令大全

(297) Linux- gpasswd 命令

Linux gpasswd 命令
Linux 命令大全

Linux passwd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。
语法

gpasswd [可选项] 组名

Shell

可选项参数

  • -a:添加用户到组;
  • -d:从组删除用户;
  • -A:指定管理员;
  • -M:指定组成员和-A的用途差不多;
  • -r:删除密码;
  • -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

如系统有个 peter 账户,该账户本身不是 groupname 群组的成员,使用 newgrp 需要输入密码即可。

gpasswd groupname

Shell

让使用者暂时加入成为该组成员,之后 peter 建立的文件 group 也会是 groupname。所以该方式可以暂时让 peter 建立文件时使用其他的组,而不是 peter 本身所在的组。

所以使用 gpasswd groupname 设定密码,就是让知道该群组密码的人可以暂时切换具备 groupname 群组功能的。

gpasswd -A peter users

Shell

这样 peter 就是 users 群组的管理员,就可以执行下面的操作:

gpasswd -a mary users
gpasswd -a allen users

Shell

注意:添加用户到某一个组 可以使用 usermod -G group_name user_name 这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。

所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户:

gpasswd -a user_name group_name

Linux 命令大全

(298) Linux- ar 命令

Linux ar命令
Linux 命令大全

Linux ar命令用于建立或修改备存文件,或是从备存文件中抽取文件。

ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。
语法

ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][备存文件][成员文件]

Shell

参数

必要参数

  • -d  删除备存文件中的成员文件。
  • -m  变更成员文件在备存文件中的次序。
  • -p  显示备存文件中的成员文件内容。
  • -q  将文件附加在备存文件末端。
  • -r  将文件插入备存文件中。
  • -t  显示备存文件中所包含的文件。
  • -x  自备存文件中取出成员文件。

选项参数

  • a<成员文件>  将文件插入备存文件中指定的成员文件之后。
  • b<成员文件>  将文件插入备存文件中指定的成员文件之前。
  • c  建立备存文件。
  • f  为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,截掉要放入备存文件中过长的成员文件名称。
  • i<成员文件>  将文件插入备存文件中指定的成员文件之前。
  • o  保留备存文件中文件的日期。
  • s  若备存文件中包含了对象模式,可利用此参数建立备存文件的符号表。
  • S  不产生符号表。
  • u  只将日期较新文件插入备存文件中。
  • v  程序执行时显示详细的信息。
  • V  显示版本信息。

打包文件

[root@runoob.com ~]# ls   //显示当前目录文件   
a.c    b.c d.c   install.log      qte
anaconda-ks.cfg c.c Desktop 

[root@runoob.com ~]# ar rv one.bak a.c b.c //打包 a.c b.c文件 
ar: 正在创建 one.bak
a - a.c
a - b.c
[root@runoob.com ~]#

Shell

打包多个文件

[root@runoob.com ~]# ar rv two.bak *.c  //打包以.c结尾的文件  
ar: 正在创建 two.bak
a - a.c
a - b.c
a - c.c
a - d.c
[root@runoob.com ~]#

Shell

显示打包文件的内容

[root@runoob.com ~]# ar t two.bak    
a.c
b.c
c.c
d.c
[root@runoob.com ~]#

Shell

删除打包文件的成员文件

[root@runoob.com ~]# ar d two.bak a.c b.c c.c  
[root@runoob.com ~]# ar t two.bak       
d.c

Linux 命令大全

(299) Linux- bunzip2 命令

Linux bunzip2命令
Linux 命令大全

Linux bunzip2命令是.bz2文件的解压缩程序。

bunzip2可解压缩.bz2格式的压缩文件。bunzip2实际上是bzip2的符号连接,执行bunzip2与bzip2 -d的效果相同。

语法:bunzip2 [-fkLsvV][.bz2压缩文件]

参数

  • -f或–force  解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件。若要覆盖,请使用此参数。
  • -k或–keep  在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数。
  • -s或–small  降低程序执行时,内存的使用量。
  • -v或–verbose  解压缩文件时,显示详细的信息。
  • -L,–license,-V或–version  显示版本信息。

解压.bz2文件

# bunzip2 -v temp.bz2 //解压文件显示详细处理信息

Linux 命令大全

(300) Linux- bzip2 命令

Linux bzip2命令
Linux 命令大全

Linux bzip2命令是.bz2文件的压缩程序。

bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
语法

bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 压缩等级][要压缩的文件]

Shell

参数

  • -c或–stdout  将压缩与解压缩的结果送到标准输出。
  • -d或–decompress  执行解压缩。
  • -f或–force  bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
  • -h或–help  显示帮助。
  • -k或–keep  bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
  • -s或–small  降低程序执行时内存的使用量。
  • -t或–test  测试.bz2压缩文件的完整性。
  • -v或–verbose  压缩或解压缩文件时,显示详细的信息。
  • -z或–compress  强制执行压缩。
  • -L,–license,
  • -V或–version  显示版本信息。
  • –repetitive-best  若文件中有重复出现的资料时,可利用此参数提高压缩效果。
  • –repetitive-fast  若文件中有重复出现的资料时,可利用此参数加快执行速度。
  • -压缩等级  压缩时的区块大小。

解压.bz2文件

[root@w3cschool.cc ~]# bzip2 -v temp.bz2 //解压文件显示详细处理信息

Shell

压缩文件

[root@w3cschool.cc ~]# bzip2 -c a.c b.c c.c

Shell

检查文件完整性

[root@w3cschool.cc ~]# bzip2 -t temp.bz2

Linux 命令大全

(301) Linux- bzip2recover 命令

Linux bzip2recover命令
Linux 命令大全

Linux bzip2recover命令用来修复损坏的.bz2文件。

bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用bzip2recover,试着将文件中的区块隔开来,以便解压缩正常的区块。通常只适用在压缩文件很大的情况。
语法

bzip2recover [.bz2 压缩文件]

Shell

修复.bz2文件

bzip2recover col.bz2

Linux 命令大全

(302) Linux- gunzip 命令

Linux gunzip命令
Linux 命令大全

Linux gunzip命令用于解压文件。

gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。
语法
参数

gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...] 或 gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]

Shell

  • -a或–ascii  使用ASCII文字模式。
  • -c或–stdout或–to-stdout  把解压后的文件输出到标准输出设备。
  • -f或-force  强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
  • -h或–help  在线帮助。
  • -l或–list  列出压缩文件的相关信息。
  • -L或–license  显示版本与版权信息。
  • -n或–no-name  解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理。
  • -N或–name  解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
  • -q或–quiet  不显示警告信息。
  • -r或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
  • -S<压缩字尾字符串>或–suffix<压缩字尾字符串>  更改压缩字尾字符串。
  • -t或–test  测试压缩文件是否正确无误。
  • -v或–verbose  显示指令执行过程。
  • -V或–version 显示版本信息。
<p>解压文件
</p>
<pre>
# gunzip ab.gz

Linux 命令大全

(303) Linux- unarj 命令

Linux unarj命令
Linux 命令大全

Linux unarj命令用于解压缩.arj文件。

unarj为.arj压缩文件的压缩程序。
语法

unarj [eltx][.arj压缩文件]

Shell

参数

  • e 解压缩.arj文件。
  • l 显示压缩文件内所包含的文件。
  • t 检查压缩文件是否正确。
  • x 解压缩时保留原有的路径。

解压.arj文件

# unarj e test.arj

Linux 命令大全

(304) Linux- compress 命令

Linux compress命令
Linux 命令大全

Linux compress命令是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。
语法

compress [-dfvcV] [-b maxbits] [file ...]

Shell

参数

  • c 输出结果至标准输出设备(一般指荧幕)
  • f 强迫写入档案,若目的档已经存在,则会被覆盖 (force)
  • v 将程序执行的讯息印在荧幕上 (verbose)
  • b 设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits (bits)
  • d 将压缩档解压缩
  • V 列出版本讯息
  • 范例
  • 将 source.dat 压缩成 source.dat.Z ,若 source.dat.Z 已经存在,内容则会被压缩档覆盖。
  • compress -f source.dat
  • 将 source.dat 压缩成 source.dat.Z ,并列印出压缩比例。
  • -v 与 -f 可以一起使用
  • compress -vf source.dat
  • 将压缩后的资料输出后再导入 target.dat.Z 可以改变压缩档名。
  • compress -c source.dat > target.dat.Z
  • -b 的值越大,压缩比例就越大,范围是 9-16 ,预设值是 16 。
  • compress -b 12 source.dat
  • 将 source.dat.Z 解压成 source.dat ,若档案已经存在,使用者按 y 以确定覆盖档案,若使用 -df 程序则会自动覆盖档案。由于系统会自动加入 .Z 为延伸档名,所以 source.dat 会自动当作 source.dat.Z 处理。
  • compress -d source.dat
  • compress -d source.dat.Z

压缩文件

[root@runoob.com ~]# compress abc.h
[root@runoob.com ~]# ls

abc.h.Z

Shell

解压文件

[root@runoob.com ~]# compress -d abc.h.Z
[root@runoob.com ~]# ls

abc.h.

Shell

按指定压缩比例进行压缩

[root@runoob.com ~]# compress -b 7 abc.h

Shell

强制压缩文件夹

[root@runoob.com ~]# compress -rf /home/abc/

Linux 命令大全

(305) Linux- cpio 命令

Linux cpio命令
Linux 命令大全

Linux cpio命令用于备份文件。

cpio是用来建立,还原备份档的工具程序,它可以加入,解开cpio或tra备份档内的文件。
语法

cpio [-0aABckLovV][-C <输入/输出大小>][-F <备份档>][-H <备份格式>][-O <备份档>][--block-size=<区块大小>][--force-local][--help][--quiet][--version] 或 cpio [-bBcdfikmnrsStuvV][-C <输入/输出大小>][-E <范本文件>][-F <备份档>][-H <备份格式>][-I <备份档>][-M <回传信息>][-R <拥有者><:/.><所属群组>][--block-size=<区块大小>][--force-local][--help][--no-absolute-filenames][--no-preserve-owner][--only-verify-crc][--quiet][--sparse][--version][范本样式...] 或 cpio [-0adkiLmpuvV][-R <拥有者><:/.><所属群组>][--help][--no-preserve-owner][--quiet][--sparse][--version][目的目]

Shell

参数

  • -0或–null  接受新增列控制字符,通常配合find指令的”-print0″参数使用。
  • -a或–reset-access-time  重新设置文件的存取时间。
  • -A或–append  附加到已存在的备份档中,且这个备份档必须存放在磁盘上,而不能放置于磁带机里。
  • -b或–swap  此参数的效果和同时指定”-sS”参数相同。
  • -B  将输入/输出的区块大小改成5210 Bytes。
  • -c  使用旧ASCII备份格式。
  • -C<区块大小>或–io-size=<区块大小>  设置输入/输出的区块大小,单位是Byte。
  • -d或–make-directories  如有需要cpio会自行建立目录。
  • -E<范本文件>或–pattern-file=<范本文件>  指定范本文件,其内含有一个或多个范本样式,让cpio解开符合范本条件的文件,格式为每列一个范本样式。
  • -f或–nonmatching  让cpio解开所有不符合范本条件的文件。
  • -F<备份档>或–file=<备份档>  指定备份档的名称,用来取代标准输入或输出,也能借此通过网络使用另一台主机的保存设备存取备份档。
  • -H<备份格式>  指定备份时欲使用的文件格式。
  • -i或–extract  执行copy-in模式,还原备份档。
  • -l<备份档>  指定备份档的名称,用来取代标准输入,也能借此通过网络使用另一台主机的保存设备读取备份档。
  • -k  此参数将忽略不予处理,仅负责解决cpio不同版本间的兼容性问题。
  • -l或–link  以硬连接的方式取代复制文件,可在copy-pass模式下运用。
  • -L或–dereference  不建立符号连接,直接复制该连接所指向的原始文件。
  • -m或preserve-modification-time  不去更换文件的更改时间。
  • -M<回传信息>或–message=<回传信息>  设置更换保存媒体的信息。
  • -n或–numeric-uid-gid  使用”-tv”参数列出备份档的内容时,若再加上参数”-n”,则会以用户识别码和群组识别码替代拥有者和群组名称列出文件清单。
  • -o或–create  执行copy-out模式,建立备份档。
  • -O<备份档>  指定备份档的名称,用来取代标准输出,也能借此通过网络 使用另一台主机的保存设备存放备份档。
  • -p或–pass-through  执行copy-pass模式,略过备份步骤,直接将文件复制到目的目录。
  • -r或–rename  当有文件名称需要更动时,采用互动模式。
  • -R<拥有者><:/.><所属群组>或
  • —-owner<拥有者><:/.><所属群组>  在copy-in模式还原备份档,或copy-pass模式复制文件时,可指定这些备份,复制的文件的拥有者与所属群组。
  • -s或–swap-bytes  交换每对字节的内容。
  • -S或–swap-halfwords  交换每半个字节的内容。
  • -t或–list  将输入的内容呈现出来。
  • -u或–unconditional  置换所有文件,不论日期时间的新旧与否,皆不予询问而直接覆盖。
  • -v或–verbose  详细显示指令的执行过程。
  • -V或–dot  执行指令时,在每个文件的执行程序前面加上”.”号
  • –block-size=<区块大小>  设置输入/输出的区块大小,假如设置数值为5,则区块大小为2500,若设置成10,则区块大小为5120,依次类推。
  • –force-local  强制将备份档存放在本地主机。
  • –help  在线帮助。
  • –no-absolute-filenames  使用相对路径建立文件名称。
  • –no-preserve-owner  不保留文件的拥有者,谁解开了备份档,那些文件就归谁所有。
  • -only-verify-crc  当备份档采用CRC备份格式时,可使用这项参数检查备份档内的每个文件是否正确无误。
  • –quiet  不显示复制了多少区块。
  • –sparse  倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
  • –version  显示版本信息。

制作备份文件

[root@runoob.com var]# ll //显示当前目录下的文件
总用量 164
drwxr-xr-x  2 root  root  4096 2008-03-30 account
drwxr-xr-x  9 root  root  4096 2008-03-30 cache
drwxr-xr-x  3 netdump netdump 4096 2008-03-30 crash
drwxr-xr-x  3 root  root  4096 2008-03-30 db
drwxr-xr-x  3 root  root  4096 2008-03-30 empty
drwxr-xr-x  3 root  root  4096 2008-03-30 ftp
drwxrwx--T  2 root  gdm   4096 4月 9 20:17 gdm
drwxr-xr-x 25 root  root  4096 2008-03-30 lib
drwxr-xr-x  2 root  root  4096 2004-08-13 local
drwxrwxr-x  6 root  lock  4096 5月 8 15:25 lock
drwxr-xr-x 14 root  root  4096 5月 8 15:14 log
lrwxrwxrwx  1 root  root   10 2008-03-30 mail -> spool/mail
drwxr-xr-x  2 root  root  4096 2004-08-13 nis
drwxr-xr-x  2 root  root  4096 2004-08-13 opt
drwxr-xr-x  2 root  root  4096 2004-08-13 preserve
drwxr-xr-x 16 root  root  4096 5月 8 15:14 run
drwxr-xr-x 16 root  root  4096 2008-03-30 spool
drwxrwxrwt  3 root  root  4096 1月 13 18:53 tmp
drwx------  2 root  root  4096 2004-07-08 tux
drwxr-xr-x  8 root  root  4096 1月 19 19:39 www
drwxr-xr-x  3 root  root  4096 2008-03-30 yp
[root@runoob.com var]# ls | cpio -o >123.cpio //制作备份文件
25 blocks
[root@runoob.com var]# ll //显示当前目录下的文件
总用量 172
-rw-r--r--  1 root  root  1024 5月 24 13:06 123.cpio
drwxr-xr-x  2 root  root  4096 2008-03-30 account
drwxr-xr-x  9 root  root  4096 2008-03-30 cache
drwxr-xr-x  3 netdump netdump 4096 2008-03-30 crash
drwxr-xr-x  3 root  root  4096 2008-03-30 db
drwxr-xr-x  3 root  root  4096 2008-03-30 empty
drwxr-xr-x  3 root  root  4096 2008-03-30 ftp
drwxrwx--T  2 root  gdm   4096 4月 9 20:17 gdm
drwxr-xr-x 25 root  root  4096 2008-03-30 lib
drwxr-xr-x  2 root  root  4096 2004-08-13 local
drwxrwxr-x  6 root  lock  4096 5月 8 15:25 lock
drwxr-xr-x 14 root  root  4096 5月 8 15:14 log
lrwxrwxrwx  1 root  root   10 2008-03-30 mail -> spool/mail
drwxr-xr-x  2 root  root  4096 2004-08-13 nis
drwxr-xr-x  2 root  root  4096 2004-08-13 opt
drwxr-xr-x  2 root  root  4096 2004-08-13 preserve
drwxr-xr-x 16 root  root  4096 5月 8 15:14 run
drwxr-xr-x 16 root  root  4096 2008-03-30 spool
drwxrwxrwt  3 root  root  4096 1月 13 18:53 tmp
drwx------  2 root  root  4096 2004-07-08 tux
drwxr-xr-x  8 root  root  4096 1月 19 19:39 www
drwxr-xr-x  3 root  root  4096 2008-03-30 yp
[root@runoob.com var]#

Shell

解压备份文件

[root@runoob.com var]# ls | cpio -i -l 123.cpio

Shell

解压缩备份文件,并列出详细信息

[root@runoob.com var]# cpio -t -I 123.cpio  
123.cpio
a.c
b.c
c.c
……省略部分结果

Shell

强制解压缩

[root@runoob.com var]# cpio -i -u -I 123.cpio

Shell

解压缩时进行反向匹配,指定不解压的文件

[root@runoob.com var]# cpio -i -I 123.cpio -f *.c 

//不解压.c结尾的文件

Shell

向指定的.cpio文件添加文件

[root@runoob.com var]# ls
123.cpio crash ftp local mail preserve tmp yp
account  db    gdm lock  nis  run       tux
cache     empty lib log  opt  spool   www
[root@runoob.com var]# cpio -o -O 123.cpio -A
db  //用户输入 按下Ctrl+D结束输入
1 block
[root@runoob.com var]#

Shell

从标准输入备份文件

[root@runoob.com test]# ls              
a. a.c b.c c.c d.c    f.c
[root@runoob.com test]# cpio -o >123.cpio
a.c  //用户输入
b.c
c.c  //按下Ctrl+D完成输入
3 block
[root@runoob.com test]#

Shell

复制文件

[root@runoob.com test]# cpio -p /root
a.c  //用户输入
b.c
c.c  //按下Ctrl+D完成输入
3 block

Linux 命令大全

(306) Linux- dump 命令

Linux dump命令
Linux 命令大全

Linux dump命令用于备份文件系统。

dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
语法

dump [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f <设备名称>][-h <层级>][-s <磁带长度>][-T <日期>][目录或文件系统] 或 dump [-wW]

Shell

参数

  • -0123456789  备份的层级。
  • -b<区块大小>  指定区块的大小,单位为KB。
  • -B<区块数目>  指定备份卷册的区块数目。
  • -c  修改备份磁带预设的密度与容量。
  • -d<密度>  设置磁带的密度。单位为BPI。
  • -f<设备名称>  指定备份设备。
  • -h<层级>  当备份层级等于或大于指定的层级时,将不备份用户标示为”nodump”的文件。
  • -n  当备份工作需要管理员介入时,向所有”operator”群组中的使用者发出通知。
  • -s<磁带长度>  备份磁带的长度,单位为英尺。
  • -T<日期>  指定开始备份的时间与日期。
  • -u  备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等。
  • -w  与-W类似,但仅显示需要备份的文件。
  • -W  显示需要备份的文件及其最后一次备份的层级,时间与日期。

备份文件到磁带

# dump -0 -u /dev/tape /home/

Shell

其中”-0″参数指定的是备份等级”-u”要求备份完毕之后将相应的信息存储到文件 /etc/dumpdates 留作记录

Linux 命令大全

(307) Linux- uuencode 命令

Linux uuencode命令
Linux 命令大全

Linux uuencode命令用于将uuencode编码后的档案还原。

早期在许多 unix 系统的传送协定只能传送七位元字元,并不支援二进位档案,像中文文字档就有用到八位元,所以无法完整地送到另一架机器上。 uuencode 指令,可以将二进位档转换成七位元的档案,传送到另一架机器上再以 uudecode 还原。最常见的是用在以电子邮件传送二进位档。uuencode 编码后的资料都以 begin 开始,以 end 作为结束。
语法

compress[必要参数][选择参数][目录或者文件]

Shell

参数说明:

必要参数:

**
选择参数:**

  • h 显示帮助信息
  • v 显示版本信息

还原档案

# uuencode test.uud

Linux 命令大全

(308) Linux- gzexe 命令

Linux gzexe命令
Linux 命令大全

Linux gzexe命令用于压缩执行文件。

gzexe是用来压缩执行文件的程序。当您去执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。
语法

gzexe [-d][执行文件...]

Shell

参数

  • -d  解开压缩文件。

压缩可执行文件

# gzexe abc

Linux 命令大全

(309) Linux- gzip 命令

Linux gzip命令
Linux 命令大全

Linux gzip命令用于压缩文件。

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出”.gz”的扩展名。
语法

gzip [-acdfhlLnNqrtvV][-S &lt;压缩字尾字符串&gt;][-&lt;压缩效率&gt;][--best/fast][文件...]gzip [-acdfhlLnNqrtvV][-S &lt;压缩字尾字符串&gt;][-&lt;压缩效率&gt;][--best/fast][目录]

Shell

参数

  • -a或–ascii  使用ASCII文字模式。
  • -c或–stdout或–to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。
  • -d或–decompress或—-uncompress  解开压缩文件。
  • -f或–force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
  • -h或–help  在线帮助。
  • -l或–list  列出压缩文件的相关信息。
  • -L或–license  显示版本与版权信息。
  • -n或–no-name  压缩文件时,不保存原来的文件名称及时间戳记。
  • -N或–name  压缩文件时,保存原来的文件名称及时间戳记。
  • -q或–quiet  不显示警告信息。
  • -r或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
  • -S<压缩字尾字符串>或—-suffix<压缩字尾字符串>  更改压缩字尾字符串。
  • -t或–test  测试压缩文件是否正确无误。
  • -v或–verbose  显示指令执行过程。
  • -V或–version  显示版本信息。
  • -<压缩效率>  压缩效率是一个介于1-9的数值,预设值为”6″,指定愈大的数值,压缩效率就会愈高。
  • –best  此参数的效果和指定”-9″参数相同。
  • –fast  此参数的效果和指定”-1″参数相同。

压缩文件

[root@runoob.com a]# ls //显示当前目录文件
a.c b.h d.cpp
[root@runoob.com a]# gzip * //压缩目录下的所有文件
[root@runoob.com a]# ls //显示当前目录文件
a.c.gz    b.h.gz    d.cpp.gz
[root@runoob.com a]#

Shell

接范例1, 列出详细的信息

[root@runoob.com a]# gzip -dv * //解压文件,并列出详细信息
a.c.gz:     0.0% -- replaced with a.c
b.h.gz:     0.0% -- replaced with b.h
d.cpp.gz:     0.0% -- replaced with d.cpp
[root@runoob.com a]#

Shell

接范例1,显示压缩文件的信息

[root@runoob.com a]# gzip -l *
     compressed    uncompressed ratio uncompressed_name
         24          0  0.0% a.c
         24          0  0.0% b.h
         26          0  0.0% d.cpp

Linux 命令大全

(310) Linux- lha 命令

Linux lha命令
Linux 命令大全

Linux lha命令用于压缩或解压缩文件。

lha是从lharc演变而来的压缩程序,文件经它压缩后,会另外产生具有”.lzh”扩展名的压缩文件。
语法

lha [-acdfglmnpqtuvx][-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][文件...] 或 lha [-acdfglmnpqtuvx][-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][目录...]

Shell

参数

  • -a或a 压缩文件,并加入到压缩文件内。
  • -a<0/1/2>/u</0/1/2> 压缩文件时,采用不同的文件头。
  • -c或c 压缩文件,重新建构新的压缩文件后,再将其加入。
  • -d或d 从压缩文件内删除指定的文件。
  • -<a/c/u>d或<a/c/u>d 压缩文件,然后将其加入,重新建构,更新压缩文件或,删除原始文件,也就是把文件移到压缩文件中。
  • -e或e 解开压缩文件。
  • -f或f 强制执行lha命令,在解压时会直接覆盖已有的文件而不加以询问。
  • -g或g 使用通用的压缩格式,便于解决兼容性的问题。
  • -<e/x>i或<e/x>i 解开压缩文件时,忽略保存在压缩文件内的文件路径,直接将其解压后存放在现行目录下或是指定的目录中。
  • -l或l 列出压缩文件的相关信息。
  • -m或m 此参数的效果和同时指定”-ad”参数相同。
  • -n或n 不执行指令,仅列出实际执行会进行的动作。
  • -<a/u>o或<a/u>o 采用lharc兼容格式,将压缩后的文件加入,更新压缩文件。
  • -p或p 从压缩文件内输出到标准输出设备。
  • -q或q 不显示指令执行过程。
  • -t或t 检查备份文件内的每个文件是否正确无误。
  • -u或u 更换较新的文件到压缩文件内。
  • -u</0/1/2>或u</0/1/2> 在文件压缩时采用不同的文件头,然后更新到压缩文件内。
  • -v或v 详细列出压缩文件的相关信息。
  • -<e/x>w=<目的目录>或<e/x>w=<目的目录> 指定解压缩的目录。
  • -x或x 解开压缩文件。
  • -<a/u>z或<a/u>z 不压缩文件,直接把它加入,更新压缩文件。

缩文件

# lha -a abc.lhz a.b //压缩a.b文件,压缩后生成 abc.lhz文件

Shell

压缩目录

# lha -a abc2 /home/hnlinux

Shell

解压文件到当前目录

# lha -xiw=agis abc  //解压文件abc

Linux 命令大全

(311) Linux- restore 命令

Linux restore命令
Linux 命令大全

Linux restore命令用来还原由dump操作所备份下来的文件或整个文件系统(一个分区)。

restore 指令所进行的操作和dump指令相反,dump操作可用来备份文件,而restore操作则是写回这些已备份的文件。
语法

restore [-cCvy][-b <区块大小>][-D <文件系统>][-f <备份文件>][-s <文件编号>] 或 restore [-chimvy][-b <区块大小>][-f <备份文件>][-s <文件编号>] 或 restore [-crvy][-b <区块大小>][-f <备份文件>][-s <文件编号>] 或 restore [-cRvy][-b <区块大小>][-D <文件系统>][-f <备份文件>][-s <文件编号>] 或 restore [chtvy][-b <区块大小>][-D <文件系统>][-f <备份文件>][-s <文件编号>][文件...] 或 restore [-chmvxy][-b <区块大小>][-D <文件系统>][-f <备份文件>][-s <文件编号>][文件...]

Shell

参数

  • -b<区块大小> 设置区块大小,单位是Byte。
  • -c 不检查dump操作的备份格式,仅准许读取使用旧格式的备份文件。
  • -C 使用对比模式,将备份的文件与现行的文件相互对比。
  • -D<文件系统> 允许用户指定文件系统的名称。
  • -f<备份文件> 从指定的文件中读取备份数据,进行还原操作。
  • -h 仅解出目录而不包括与该目录相关的所有文件。
  • -i 使用互动模式,在进行还原操作时,restore指令将依序询问用户。
  • -m 解开符合指定的inode编号的文件或目录而非采用文件名称指定。
  • -r 进行还原操作。
  • -R 全面还原文件系统时,检查应从何处开始进行。
  • -s<文件编号> 当备份数据超过一卷磁带时,您可以指定备份文件的编号。
  • -t 指定文件名称,若该文件已存在备份文件中,则列出它们的名称。
  • -v 显示指令执行过程。
  • -x 设置文件名称,且从指定的存储媒体里读入它们,若该文件已存在在备份文件中,则将其还原到文件系统内。
  • -y 不询问任何问题,一律以同意回答并继续执行指令。

Linux 命令大全

(312) Linux- tar 命令

Linux tar命令
Linux 命令大全

Linux tar命令用于备份文件。

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
语法

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]

Shell

参数

  • -A或–catenate 新增文件到已存在的备份文件。
  • -b<区块数目>或–blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
  • -B或–read-full-records 读取数据时重设区块大小。
  • -c或–create 建立新的备份文件。
  • -C<目的目录>或–directory=<目的目录> 切换到指定的目录。
  • -d或–diff或–compare 对比备份文件内和文件系统上的文件的差异。
  • -f<备份文件>或–file=<备份文件> 指定备份文件。
  • -F<Script文件>或–info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
  • -g或–listed-incremental 处理GNU格式的大量备份。
  • -G或–incremental 处理旧的GNU格式的大量备份。
  • -h或–dereference 不建立符号连接,直接复制该连接所指向的原始文件。
  • -i或–ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
  • -k或–keep-old-files 解开备份文件时,不覆盖已有的文件。
  • -K<文件>或–starting-file=<文件> 从指定的文件开始还原。
  • -l或–one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
  • -L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
  • -m或–modification-time 还原文件时,不变更文件的更改时间。
  • -M或–multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
  • -N<日期格式>或–newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
  • -o或–old-archive或–portability 将资料写入备份文件时使用V7格式。
  • -O或–stdout 把从备份文件里还原的文件输出到标准输出设备。
  • -p或–same-permissions 用原来的文件权限还原文件。
  • -P或–absolute-names 文件名使用绝对名称,不移除文件名称前的”/”号。
  • -r或–append 新增文件到已存在的备份文件的结尾部分。
  • -R或–block-number 列出每个信息在备份文件中的区块编号。
  • -s或–same-order 还原文件的顺序和备份文件内的存放顺序相同。
  • -S或–sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
  • -t或–list 列出备份文件的内容。
  • -T<范本文件>或–files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
  • -u或–update 仅置换较备份文件内的文件更新的文件。
  • -U或–unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
  • -v或–verbose 显示指令执行过程。
  • -V<卷册名称>或–label=<卷册名称> 建立使用指定的卷册名称的备份文件。
  • -w或–interactive 遭遇问题时先询问用户。
  • -W或–verify 写入备份文件后,确认文件正确无误。
  • -x或–extract或–get 从备份文件中还原文件。
  • -X<范本文件>或–exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
  • -z或–gzip或–ungzip 通过gzip指令处理备份文件。
  • -Z或–compress或–uncompress 通过compress指令处理备份文件。
  • -<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度。
  • –after-date=<日期时间> 此参数的效果和指定”-N”参数相同。
  • –atime-preserve 不变更文件的存取时间。
  • –backup=<备份方式>或–backup 移除文件前先进行备份。
  • –checkpoint 读取备份文件时列出目录名称。
  • –concatenate 此参数的效果和指定”-A”参数相同。
  • –confirmation 此参数的效果和指定”-w”参数相同。
  • –delete 从备份文件中删除指定的文件。
  • –exclude=<范本样式> 排除符合范本样式的文件。
  • –group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组。
  • –help 在线帮助。
  • –ignore-failed-read 忽略数据读取错误,不中断程序的执行。
  • –new-volume-script=<Script文件> 此参数的效果和指定”-F”参数相同。
  • –newer-mtime 只保存更改过的文件。
  • –no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。
  • –null 从null设备读取文件名称。
  • –numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称。
  • –owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户。
  • –posix 将数据写入备份文件时使用POSIX格式。
  • –preserve 此参数的效果和指定”-ps”参数相同。
  • –preserve-order 此参数的效果和指定”-A”参数相同。
  • –preserve-permissions 此参数的效果和指定”-p”参数相同。
  • –record-size=<区块数目> 此参数的效果和指定”-b”参数相同。
  • –recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。
  • –remove-files 文件加入备份文件后,就将其删除。
  • –rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令。
  • –same-owner 尝试以相同的文件拥有者还原文件。
  • –suffix=<备份字尾字符串> 移除文件前先行备份。
  • –totals 备份文件建立后,列出文件大小。
  • –use-compress-program=<执行指令> 通过指定的指令处理备份文件。
  • –version 显示版本信息。
  • –volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号。

压缩文件 非打包

# touch a.c       
# tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
a.c

Shell

列出压缩文件内容

# tar -tzvf test.tar.gz 
-rw-r--r-- root/root     0 2010-05-24 16:51:59 a.c

Shell

解压文件

# tar -xzvf test.tar.gz 
a.c

Linux 命令大全

(313) Linux- uudecode 命令

Linux uudecode命令
Linux 命令大全

Linuxuudecode 将 uuencode 编码后的档案还原, uudecode 只会将 begin 与 end 标记之间的编码资料还原,程序会跳过标记以外的资料。
语法

uuencode [-hv] [file1 ...]</p>

Shell

参数

  • h 列出指令使用格式 (help)
  • v 列出版本讯息

将 file.uud 还原,而还原后的档名储存在 file.uud 档中。

uuencode file.uud

Shell

可以一起还原好几个档案。

uuencode file1.uud file2.uud

Linux 命令大全

(314) Linux- unzip 命令

Linux unzip命令
Linux 命令大全

Linux unzip命令用于解压缩zip文件

unzip为.zip压缩文件的解压缩程序。
语法

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

Shell

参数

  • -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
  • -f 更新现有的文件。
  • -l 显示压缩文件内所包含的文件。
  • -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
  • -t 检查压缩文件是否正确。
  • -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
  • -v 执行是时显示详细的信息。
  • -z 仅显示压缩文件的备注文字。
  • -a 对文本文件进行必要的字符转换。
  • -b 不要对文本文件进行字符转换。
  • -C 压缩文件中的文件名称区分大小写。
  • -j 不处理压缩文件中原有的目录路径。
  • -L 将压缩文件中的全部文件名改为小写。
  • -M 将输出结果送到more程序处理。
  • -n 解压缩时不要覆盖原有的文件。
  • -o 不必先询问用户,unzip执行后覆盖原有文件。
  • -P<密码> 使用zip的密码选项。
  • -q 执行时不显示任何信息。
  • -s 将文件名中的空白字符转换为底线字符。
  • -V 保留VMS的文件版本信息。
  • -X 解压缩时同时回存文件原来的UID/GID。
  • [.zip文件] 指定.zip压缩文件。
  • [文件] 指定要处理.zip压缩文件中的哪些文件。
  • -d<目录> 指定文件解压缩后所要存储的目录。
  • -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
  • -Z unzip -Z等于执行zipinfo指令。

查看压缩文件中包含的文件:

# unzip -l abc.zip 
Archive: abc.zip
 Length   Date  Time  Name
--------  ----  ----  ----
  94618 05-21-10 20:44  a11.jpg
  202001 05-21-10 20:44  a22.jpg
    16 05-22-10 15:01  11.txt
  46468 05-23-10 10:30  w456.JPG
  140085 03-14-10 21:49  my.asp
--------          -------
  483188          5 files

Shell

-v 参数用于查看压缩文件目录信息,但是不解压该文件。

# unzip -v abc.zip 
Archive: abc.zip
Length  Method  Size Ratio  Date  Time  CRC-32  Name
-------- ------ ------- -----  ----  ----  ------  ----
  94618 Defl:N  93353  1% 05-21-10 20:44 9e661437 a11.jpg
 202001 Defl:N  201833  0% 05-21-10 20:44 1da462eb a22.jpg
   16 Stored    16  0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt
  46468 Defl:N  39997 14% 05-23-10 10:30 962861f2 w456.JPG
 140085 Defl:N  36765 74% 03-14-10 21:49 836fcc3f my.asp
--------     ------- ---              -------
 483188      371964 23%              5 files

Linux 命令大全

(315) Linux- zip 命令

Linux zip命令
Linux 命令大全

Linux zip 命令用于压缩文件。

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。
语法

zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]

Shell

参数

  • -A 调整可执行的自动解压缩文件。
  • -b<工作目录> 指定暂时存放文件的目录。
  • -c 替每个被压缩的文件加上注释。
  • -d 从压缩文件内删除指定的文件。
  • -D 压缩文件内不建立目录名称。
  • -f 更新现有的文件。
  • -F 尝试修复已损坏的压缩文件。
  • -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
  • -h 在线帮助。
  • -i<范本样式> 只压缩符合条件的文件。
  • -j 只保存文件名称及其内容,而不存放任何目录名称。
  • -J 删除压缩文件前面不必要的数据。
  • -k 使用MS-DOS兼容格式的文件名称。
  • -l 压缩文件时,把LF字符置换成LF+CR字符。
  • -ll 压缩文件时,把LF+CR字符置换成LF字符。
  • -L 显示版权信息。
  • -m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
  • -n<字尾字符串> 不压缩具有特定字尾字符串的文件。
  • -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
  • -q 不显示指令执行过程。
  • -r 递归处理,将指定目录下的所有文件和子目录一并处理。
  • -S 包含系统和隐藏文件。
  • -t<日期时间> 把压缩文件的日期设成指定的日期。
  • -T 检查备份文件内的每个文件是否正确无误。
  • -u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
  • -v 显示指令执行过程或显示版本信息。
  • -V 保存VMS操作系统的文件属性。
  • -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
  • -x<范本样式> 压缩时排除符合条件的文件。
  • -X 不保存额外的文件属性。
  • -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
  • -z 替压缩文件加上注释。
  • -$ 保存第一个被压缩文件所在磁盘的卷册名称。
  • -<压缩效率> 压缩效率是一个介于1-9的数值。

将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

zip -q -r html.zip /home/html

Shell

如果在我们在 /home/html 目录下,可以执行以下命令:

zip -q -r html.zip *

Shell

从压缩文件 cp.zip 中删除文件 a.c

zip -dv cp.zip a.c

Linux 命令大全

(316) Linux- zipinfo 命令

Linux zipinfo命令
Linux 命令大全

Linux zipinfo命令用于列出压缩文件信息。

执行zipinfo指令可得知zip压缩文件的详细信息。
语法

zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>]

Shell

参数

  • -1 只列出文件名称。
  • -2 此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用。
  • -h 只列出压缩文件的文件名称。
  • -l 此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率。
  • -m 此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率。
  • -M 若信息内容超过一个画面,则采用类似more指令的方式列出信息。
  • -s 用类似执行”ls -l”指令的效果列出压缩文件内容。
  • -t 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率。
  • -T 将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出。
  • -v 详细显示压缩文件内每一个文件的信息。
  • -x<范本样式> 不列出符合条件的文件的信息。
  • -z 如果压缩文件内含有注释,就将注释显示出来。

显示压缩文件信息

[root@w3cschool.cc a]# zipinfo cp.zip 
Archive: cp.zip  486 bytes  4 files
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 a.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 b.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 c.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 e.c
4 files, 0 bytes uncompressed, 0 bytes compressed: 0.0%
[root@w3cschool.cc a]#

Shell

显示压缩文件中每个文件的信息

[root@w3cschool.cc a]# zipinfo -v cp.zip 
Archive: cp.zip  486 bytes  4 files

End-of-central-directory record:
-------------------------------

 Actual offset of end-of-central-dir record:     464 (000001D0h)
 Expected offset of end-of-central-dir record:    464 (000001D0h)
 (based on the length of the central directory and its expected offset)

 This zipfile constitutes the sole disk of a single-part archive; its
 central directory contains 4 entries. The central directory is 248
 (000000F8h) bytes long, and its (expected) offset in bytes from the
 beginning of the zipfile is 216 (000000D8h).

 There is no zipfile comment.

Central directory entry #1:
---------------------------

 a.c

 offset of local header from start of archive:   0 (00000000h) bytes
 file system or operating system of origin:    Unix
 version of encoding software:           2.3
 minimum file system compatibility required:    MS-DOS, OS/2 or NT FAT
 minimum software version required to extract:   1.0
 compression method:                none (stored)
 file security status:               not encrypted
 extended local header:              no
 file last modified on (DOS date/time):      2010 May 24 18:54:26
 file last modified on (UT extra field modtime):  2010 May 24 18:54:26 local
 file last modified on (UT extra field modtime):  2010 May 24 10:54:26 UTC
 32-bit CRC value (hex):              00000000
 compressed size:                 0 bytes
 uncompressed size:                0 bytes
 length of filename:                3 characters
 length of extra field:              13 bytes
 length of file comment:              0 characters
 disk number on which file begins:         disk 1
 apparent file type:                binary
 Unix file attributes (100644 octal):       -rw-r--r--
 MS-DOS file attributes (00 hex):         none

 The central-directory extra field contains:
 - A subfield with ID 0x5455 (universal time) and 5 data bytes.
  The local extra field has UTC/GMT modification/access times.
 - A subfield with ID 0x7855 (Unix UID/GID) and 0 data bytes.

 There is no file comment.

Central directory entry #2:
---------------------------

 b.c

 offset of local header from start of archive:   54 (00000036h) bytes
 file system or operating system of origin:    Unix
 version of encoding software:           2.3
 minimum file system compatibility required:    MS-DOS, OS/2 or NT FAT
 minimum software version required to extract:   1.0
 compression method:                none (stored)
 file security status:               not encrypted
 extended local header:              no
 file last modified on (DOS date/time):      2010 May 24 18:54:26
 file last modified on (UT extra field modtime):  2010 May 24 18:54:26 local
 file last modified on (UT extra field modtime):  2010 May 24 10:54:26 UTC
 32-bit CRC value (hex):              00000000
 compressed size:                 0 bytes
 uncompressed size:                0 bytes
 length of filename:                3 characters
 length of extra field:              13 bytes
 length of file comment:              0 characters
 disk number on which file begins:         disk 1
 apparent file type:                binary
 Unix file attributes (100644 octal):       -rw-r--r--
 MS-DOS file attributes (00 hex):         none

 The central-directory extra field contains:
 - A subfield with ID 0x5455 (universal time) and 5 data bytes.
  The local extra field has UTC/GMT modification/access times.
 - A subfield with ID 0x7855 (Unix UID/GID) and 0 data bytes.

 There is no file comment.

Central directory entry #3:
---------------------------

 c.c

 offset of local header from start of archive:   108 (0000006Ch) bytes
 file system or operating system of origin:    Unix
 version of encoding software:           2.3
 minimum file system compatibility required:    MS-DOS, OS/2 or NT FAT
 minimum software version required to extract:   1.0
 compression method:                none (stored)
 file security status:               not encrypted
 extended local header:              no
 file last modified on (DOS date/time):      2010 May 24 18:54:26
 file last modified on (UT extra field modtime):  2010 May 24 18:54:26 local
 file last modified on (UT extra field modtime):  2010 May 24 10:54:26 UTC
 32-bit CRC value (hex):              00000000
 compressed size:                 0 bytes
 uncompressed size:                0 bytes
 length of filename:                3 characters
 length of extra field:              13 bytes
 length of file comment:              0 characters
 disk number on which file begins:         disk 1
 apparent file type:                binary
 Unix file attributes (100644 octal):       -rw-r--r--
 MS-DOS file attributes (00 hex):         none

 The central-directory extra field contains:
 - A subfield with ID 0x5455 (universal time) and 5 data bytes.
  The local extra field has UTC/GMT modification/access times.
 - A subfield with ID 0x7855 (Unix UID/GID) and 0 data bytes.

 There is no file comment.

Central directory entry #4:
---------------------------

 e.c

 offset of local header from start of archive:   162 (000000A2h) bytes
 file system or operating system of origin:    Unix
 version of encoding software:           2.3
 minimum file system compatibility required:    MS-DOS, OS/2 or NT FAT
 minimum software version required to extract:   1.0
 compression method:                none (stored)
 file security status:               not encrypted
 extended local header:              no
 file last modified on (DOS date/time):      2010 May 24 18:54:26
 file last modified on (UT extra field modtime):  2010 May 24 18:54:26 local
 file last modified on (UT extra field modtime):  2010 May 24 10:54:26 UTC
 32-bit CRC value (hex):              00000000
 compressed size:                 0 bytes
 uncompressed size:                0 bytes
 length of filename:                3 characters
 length of extra field:              13 bytes
 length of file comment:              0 characters
 disk number on which file begins:         disk 1
 apparent file type:                binary
 Unix file attributes (100644 octal):       -rw-r--r--
 MS-DOS file attributes (00 hex):         none

 The central-directory extra field contains:
 - A subfield with ID 0x5455 (universal time) and 5 data bytes.
  The local extra field has UTC/GMT modification/access times.
 - A subfield with ID 0x7855 (Unix UID/GID) and 0 data bytes.

 There is no file comment.

Shell

Linux 命令大全

(317) Linux- setleds 命令

Linux setleds命令
Linux 命令大全

Linux setleds命令用来设定键盘上方三个 LED 的状态。在 Linux 中,每一个虚拟主控台都有独立的设定。
语法

setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll]

Shell

参数

  • -F:预设的选项,设定虚拟主控台的状态。
  • -D:除了改变虚拟主控台的状态外,还改变预设的状态。
  • -L:不改变虚拟主控台的状态,但直接改变 LED 显示的状态。这会使得 LDE 显示和目前虚拟主控台的状态不符合。我们可以在稍后用 -L 且不含其它选项的 setleds 命令回复正常状态。
  • -num +num:将数字键打开或关闭。
  • -caps +caps:把大小写键打开或关闭。
  • -scroll +scroll:把选项键打开或关闭。

将数字键打开,其馀二个灯关闭。

# setleds +num -caps -scroll

Linux 命令大全

(318) Linux- loadkeys 命令

Linux loadkeys命令
Linux 命令大全

Linux loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。详细的说明请参考 dumpkeys。
语法

loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ]...] [ -m --mktable ] [ -c --clearcompose ] [ -s --clearstrings ] [ filename... ]

Shell

参数:

  • -v –verbose:印出详细的资料,你可以重复以增加详细度。
  • -q –quiet:不要显示任何讯息。
  • -c –clearcompose:清除所有 composite 定义。
  • -s –clearstrings:将定串定义表清除。
定义按键组合
<pre>
# loadkeys 
control alt keycode 88 = F80 //现确定键代码
string F80="runoob.com" //给变变量设定值
//按下 Ctrl + D键 确定输入

//效果:按下 Ctrl +Alt + F12 输出 Lx138.Com

# dumpkeys --funcs-only //显示功能键

……省略部分结果
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string Macro = "\033[M"
string Pause = "\033[P"
string F80 = "runoob.com"

Shell

Linux 命令大全

(319) Linux- rdev 命令

Linux rdev命令
Linux 命令大全

Linux rdev命令可以用来查询/设置内核映像文件的根设备,RAM 磁盘大小或视频模式。

不带任何参数的 rdev 命令将输出当前根文件系统的 /etc/mtab 文件行。不带任何参数的 ramsize, vidmode, 和 rootflags 将显示帮助信息。
语法

rdev [-rsvh ] [-o offset ] [ image [value [ offset ] ] ]</p>

Shell

但是随著使用者想要设定的参数的不同,底下的方式也是一样:

rdev [ -o offset ] [ image [ root_device [ offset ] ] ]

Shell

swapdev [ -o offset ] [ image [ swap_device [ offset ] ] ]

Shell

ramsize [ -o offset ] [ image [ size [ offset ] ] ]

Shell

videomode [ -o offset ] [ image [ mode [ offset ] ] ]

Shell

rootflags [ -o offset ] [ image [ flags [ offset ] ] ]

Shell

参数

  • -r:
    使得 rdev 作为 ramsize 运行。
  • -R:
    使得 rdev 作为 rootflags 运行。
  • -v:
    使得 rdev 作为 vidmode 运行。
  • -h:
    提供帮助。

Linux 命令大全

(320) Linux- dumpkeys 命令

Linux dumpkeys命令
Linux 命令大全

Linux dumpkeys命令用于显示键盘映射表,输出的内容可以被loadkeys命令识别,改变映射关系。
语法

dumpkey[选择参数]

Shell

参数说明:

  • -i 驱动信息(键码范围、数量、状态键)
  • -l 详细驱动信息
  • -n 十六进制显示
  • -f 显示全部信息
  • -1 分行显示按键组合
  • -S 设定输出格式(0:预设 1:完整 2:分行 3简单)
  • –funcs-only 功能键信息
  • –keys-only 键组合信息
  • –compose-only 普通键信息

显示功能键信息

# dumpkeys --funcs-only 
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string Macro = "\033[M"
string Pause = "\033[P"
root@snail-hnlinux:~#

Shell

显示驱动信息

# dumpkeys -i
键值码范围被内核支持: 1 - 255
可绑定到键值的动作最大值: 256
实际使用的键值数: 128
其中 121 已动态分配
被内核支持的动作码值范围
0x0000 - 0x00ff
0x0100 - 0x01ff
0x0200 - 0x0213
0x0300 - 0x0313
0x0400 - 0x0405
0x0500 - 0x05ff
0x0600 - 0x0603
0x0700 - 0x0708
0x0800 - 0x08ff
0x0900 - 0x0919
0x0a00 - 0x0a08
0x0b00 - 0x0bff
0x0c00 - 0x0c08
0x0d00 - 0x0dff
0x0e00 - 0x0e0a
内核支持的功能键数:256
编写定义的最大nr: 256
实际使用的编写定义nr: 68

Linux 命令大全

(321) Linux- MAKEDEV 命令

Linux MAKEDEV命令
Linux 命令大全

Linux MAKEDEV命令用于新增 /dev/ 下的装置档案,多数分区已经将所有的档案都产生,故一般而言不太会需要用到这个命令。
语法

MAKEDEV -V
MAKEDEV [ -n ] [ -v ] update
MAKEDEV [ -n ] [ -v ] [ -d ] device ...

Linux 命令大全

(322) Linux- poweroff 命令

Linux poweroff命令
Linux 命令大全

poweroff 命令命令用于关闭计算器并切断电源。

使用权限:系统管理者。
语法

poweroff [-n] [-w] [-d] [-f] [-i] [-h]

Shell

参数说明

  • -n : 在关机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
  • -d : 不把记录写到 /var/log/wtmp 文件里
  • -i : 在关机之前先把所有网络相关的装置先停止
  • -p : 关闭操作系统之前将系统中所有的硬件设置为备用模式。

关闭系统

# poweroff

Linux 命令大全

(323) Linux- bc 命令

Linux bc命令
Linux 命令大全

bc 命令是任意精度计算器语言,通常在linux下当计算器用。

它类似基本的计算器, 使用这个计算器可以做基本的数学运算。

常用的运算:

  • + 加法
  • – 减法
  • * 乘法
  • / 除法
  • ^ 指数
  • % 余数

语法

bc(选项)(参数)

Shell

选项值

  • -i:强制进入交互式模式;
  • -l:定义使用的标准数学库
  • ; -w:对POSIX bc的扩展给出警告信息;
  • -q:不打印正常的GNU bc环境信息;
  • -v:显示指令版本信息;
  • -h:显示指令的帮助信息。

参数

文件:指定包含计算任务的文件。

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2+3
5
5-2
3
2+3*1
5

Shell

输入 quit 退出。

通过管道符

$ echo "15+5" | bc
20

Shell

scale=2 设小数位,2 代表保留两位:

$ echo 'scale=2; (2.777 - 1.4744)/1' | bc
1.30

Shell

bc 除了 scale 来设定小数位之外,还有 ibase 和 obase 来其它进制的运算:

$ echo "ibase=2;111" |bc
7

Shell

进制转换

#!/bin/bash

abc=192 
echo "obase=2;$abc" | bc
<pre>
<p>
执行结果为:11000000,这是用bc将十进制转换成二进制。</p>


<pre>
#!/bin/bash 

abc=11000000 
echo "obase=10;ibase=2;$abc" | bc

Shell

执行结果为:192,这是用bc将二进制转换为十进制。

计算平方和平方根:

$ echo "10^10" | bc 
10000000000
$ echo "sqrt(100)" | bc
10

Linux 命令大全

(324) Linux- tail 命令

Linux tail命令
Linux 命令大全

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

命令格式:

tail [参数] [文件]

Shell

参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, –quiet, –silent 从不输出给出文件名的首部
  • -s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

要显示 notes.log 文件的最后 10 行,请输入以下命令:

tail notes.log

Shell

要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

Shell

此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

显示文件 notes.log 的内容,从第 20 行至文件末尾:

tail +20 notes.log

Shell

显示文件 notes.log 的最后 10 个字符:

tail -c 10 notes.log

Linux 命令大全

(325) Linux- xargs 命令

Linux xargs命令
Linux 命令大全

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令,例如:

find /sbin -perm +700 |ls -l       #这个命令是错误的
find /sbin -perm +700 |xargs ls -l   #这样才是正确的

Shell

xargs 一般是和管道一起使用。

命令格式:

somecommand |xargs -item  command

Shell

参数:

  • -a file 从文件中读入作为sdtin
  • -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
  • -p 当每次执行一个argument的时候询问一次用户。
  • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
  • -t 表示先打印命令,然后再执行。
  • -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
  • -r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
  • -s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
  • -L num 从标准输入一次读取 num 行送给 command 命令。
  • -l 同 -L。
  • -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
  • -x exit的意思,主要是配合-s使用。。
  • -P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

xargs 用作替换工具,读取输入数据重新格式化后输出。

定义一个测试文件,内有多行文本数据:

# cat test.txt

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

Shell

多行输入单行输出:

# cat test.txt | xargs
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

Shell

-n 选项多行输出:

# cat test.txt | xargs -n3

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

Shell

-d 选项可以自定义一个定界符:

# echo "nameXnameXnameXname" | xargs -dX

name name name name

Shell

结合 -n 选项使用:

# echo "nameXnameXnameXname" | xargs -dX -n2

name name
name name

Shell

读取 stdin,将格式化后的参数传递给命令

假设一个命令为 sk.sh 和一个保存参数的文件 arg.txt:

#!/bin/bash
#sk.sh命令内容,打印出所有参数。

echo $*

Shell

arg.txt文件内容:

# cat arg.txt

aaa
bbb
ccc

Shell

xargs 的一个选项 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:

# cat arg.txt | xargs -I {} ./sk.sh -p {} -l

-p aaa -l
-p bbb -l
-p ccc -l

Shell

复制所有图片文件到 /data/images 目录下:

ls *.jpg | xargs -n1 -I {} cp {} /data/images

Shell

xargs 结合 find 使用

用 rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用 xargs 去避免这个问题:

find . -type f -name "*.log" -print0 | xargs -0 rm -f

Shell

xargs -0 将 \0 作为定界符。

统计一个源代码目录中所有 php 文件的行数:

find . -type f -name "*.php" -print0 | xargs -0 wc -l

Shell

查找所有的 jpg 文件,并且压缩它们:

find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz

Shell

xargs 其他应用

假如你有一个文件包含了很多你希望下载的 URL,你能够使用 xargs下载所有链接:

# cat url-list.txt | xargs wget -c

Linux 命令大全

(326) Linux- 常用命令 全拼

Linux 常用命令命令
Linux 命令大全

  • pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径

  • ps: process status(进程状态,类似于windows的任务管理器)

    常用参数:-auxf

    ps -auxf 显示进程状态

  • df: disk free 其功能是显示磁盘可用空间数目信息及空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。

  • du: Disk usage

  • rpm:即RedHat Package Management,是RedHat的发明之一

  • rmdir:Remove Directory(删除目录)

  • rm:Remove(删除目录或文件)

  • cat: concatenate 连锁

  • cat file1file2>>file3 把文件1和文件2的内容联合起来放到file3中

  • insmod: install module,载入模块

  • ln -s : link -soft 创建一个软链接,相当于创建一个快捷方式

  • mkdir:Make Directory(创建目录)

  • touch: touch

  • man: Manual

  • su:Swith user(切换用户)

  • cd:Change directory

  • ls:List files

  • ps:Process Status

  • mkdir:Make directory

  • rmdir:Remove directory

  • mkfs: Make file system

  • fsck:File system check

  • uname: Unix name

  • lsmod: List modules

  • mv: Move file

  • rm: Remove file

  • cp: Copy file

  • ln: Link files

  • fg: Foreground

  • bg: Background

  • chown: Change owner

  • chgrp: Change group

  • chmod: Change mode

  • umount: Unmount

  • dd: 本来应根据其功能描述”Convert an copy”命名为”cc”,但”cc”已经被用以代表”CComplier”,所以命名为”dd”

  • tar:Tape archive (磁带档案)

  • ldd:List dynamic dependencies

  • insmod:Install module

  • rmmod:Remove module

  • lsmod:List module

  • 文件结尾的”rc”(如.bashrc、.xinitrc等):Resource configuration

  • Knnxxx /Snnxxx(位于rcx.d目录下):K(Kill);S(Service);nn(执行顺序号);xxx(服务标识)

  • .a(扩展名a):Archive,static library

  • .so(扩展名so):Shared object,dynamically linked library

  • .o(扩展名o):Object file,complied result of C/C++ source file

  • RPM:Red hat package manager

  • dpkg:Debian package manager

  • apt:Advanced package tool(Debian或基于Debian的发行版中提供)

其他 Linux 命令缩写

bin = Binaries (二进制文件)

/dev = Devices (设备)

/etc = Etcetera (等等)

/lib = LIBrary

/proc = Processes

/sbin = Superuser Binaries (超级用户的二进制文件)

/tmp = Temporary (临时)

/usr = Unix Shared Resources

/var = Variable (变量)

FIFO = First In, First Out

GRUB = GRand Unified Bootloader

IFS= Internal Field Seperators

LILO = LInux LOader

MySQL = My 是最初作者女儿的名字,

SQL = Structured QueryLanguage

PHP = Personal Home Page Tools = PHP HypertextPreprocessor

PS = Prompt String

Perl = “Pratical Extraction and Report Language”(实际的抽取和报告语言) =”Pathologically Eclectic Rubbish Lister”

Python 得名于电视剧Monty Python’s Flying Circus

Tcl = Tool Command Language

Tk = ToolKit

VT = Video Terminal

YaST = Yet Another Setup Tool

apache = “a patchy” server

apt = Advanced Packaging Tool

ar = archiver

as = assembler

awk = “Aho Weiberger and Kernighan”三个作者的姓的第一个字母

bash = Bourne Again SHell

bc = Basic (Better) Calculator

bg = BackGround

biff = 作者HeidiStettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。

cal = Calendar (日历)

cat = Catenate (链接)

cd = Change Directory

chgrp = Change Group

chmod = Change Mode

chown = Change Owner

chsh = Change Shell

cmp = compare

cobra = Common Object Request BrokerArchitecture

comm = common

cp = Copy

cpio = CoPy In and Out

cpp = C Pre Processor

cron = Chronos 希腊文时间

cups = Common Unix Printing System

cvs = Current Version System

daemon = Disk And Execution MONitor

dc = Desk Calculator

dd = Disk Dump (磁盘转储)

df = Disk Free

diff = Difference

dmesg = diagnostic message

du = Disk Usage

ed = editor

egrep = Extended GREP

elf = Extensible Linking Format

elm = ELectronic Mail

emacs = Editor MACroS

eval = EVALuate

ex = EXtended

exec = EXECute (执行)

fd = file descriptors

fg = ForeGround

fgrep = Fixed GREP

fmt = format

fsck = File System ChecK

fstab = FileSystem TABle

fvwm = F*** Virtual Window Manager

gawk = GNU AWK

gpg = GNU Privacy Guard

groff = GNU troff

hal = Hardware Abstraction Layer

joe = Joe’s Own Editor

ksh = Korn SHell

lame = Lame Ain’t an MP3 Encoder

lex = LEXical analyser

lisp = LISt Processing = Lots of IrritatingSuperfluous Parentheses

ln = Link

lpr = Line PRint

ls = list

lsof = LiSt Open Files

m4 = Macro processor Version 4

man = MANual pages

mawk = Mike Brennan’s AWK

mc = Midnight Commander

mkfs = MaKe FileSystem

mknod = Make Node

motd = Message of The Day

mozilla = MOsaic GodZILLa

mtab = Mount TABle

mv = Move

nano = Nano’s ANOther editor

nawk = New AWK

nl = Number of Lines

nm = names

nohup = No HangUP

nroff = New ROFF

od = Octal Dump

passwd = Passwd

pg = pager

pico = PIne’s message COmposition editor

pine = “Program for Internet News &Email” = “Pine is not Elm”

ping = 拟声 又 = Packet Internet Grouper

pirntcap = PRINTer CAPability

popd = POP Directory

pr = pre

printf = Print Formatted

ps = Processes Status

pty = pseudo tty

pushd = PUSH Directory

pwd = Print Working Directory

rc = runcom = run command, rc还是plan9的shell

rev = REVerse

rm = ReMove

rn = Read News

roff = RunOFF

rpm = RPM Package Manager = RedHat PackageManager

rsh, rlogin, rvim中的

r = Remote

rxvt = ouR XVT

seamoneky =sed = Stream Editor

seq = SEQuence

shar = Shell ARchive

slrn = S-Lang rn

ssh = Secure Shell

ssl = Secure Sockets Layer

stty = Set TTY

su = Substitute User

svn = SubVersion

tar = Tape ARchive

tcsh = TENEX C shell

tee = T (T形水管接口)

telnet = TEminaL over Network

termcap = terminal capability

terminfo = terminal information

tex = τέχνη的缩写,希腊文art

tr = traslate

troff = Typesetter new ROFF

tsort = Topological SORT

tty = TeleTypewriter

twm = Tom’s Window Manager

tz = TimeZone

udev = Userspace DEV

ulimit = User’s LIMIT

umask = User’s MASK

uniq = UNIQue

i = VIsual = Very Inconvenient

vim = Vi IMproved

wall = write all

wc = Word Count

wine = WINE Is Not an Emulator

xargs = eXtended ARGuments

xdm = X Display Manager

xlfd = X Logical Font Description

xmms = X Multimedia System

xrdb = X Resources DataBase

xwd = X Window Dump

yacc = yet another compiler compiler

Fish = the Friendly Interactive SHell

su = Switch User

MIME = Multipurpose Internet Mail Extensions

ECMA = European Computer ManufacturersAssociation

Shell

Linux 命令大全

(327) AWK 工作原理

Linux 常用命令命令
Linux 命令大全

本篇文章我们主要为大家介绍 AWK 是如何工作的。

AWK 工作流程可分为三个部分:

  • 读输入文件之前执行的代码段(由BEGIN关键字标识)。
  • 主循环执行输入文件的代码段。
  • 读输入文件之后的代码段(由END关键字标识)。

命令结构:

awk 'BEGIN{ commands } pattern{ commands } END{ commands }'

Shell

下面的流程图描述出了 AWK 的工作流程:

img

  • 1、通过关键字 BEGIN 执行 BEGIN 块的内容,即 BEGIN 后花括号 {} 的内容。
  • 2、完成 BEGIN 块的执行,开始执行body块。
  • 3、读入有 \n 换行符分割的记录。
  • 4、将记录按指定的域分隔符划分域,填充域,$0 则表示所有域(即一行内容), 1 表 示 第 一 个 域 , 1 表示第一个域, 1n 表示第 n 个域。
  • 5、依次执行各 BODY 块,pattern 部分匹配该行内容成功后,才会执行 awk-commands 的内容。
  • 6、循环读取并执行各行直到文件结束,完成body块执行。
  • 7、开始 END 块执行,END 块可以输出最终结果。

开始块(BEGIN)
开始块的语法格式如下:

BEGIN {awk-commands}

Shell

开始块就是在程序启动的时候执行的代码部分,并且它在整个过程中只执行一次。

一般情况下,我们可以在开始块中初始化一些变量。

BEGIN 是 AWK 的关键字,因此它必须是大写的。

**注意:**开始块部分是可选的,你的程序可以没有开始块部分。
主体块(BODY)
主体部分的语法格式如下:

/pattern/ {awk-commands}

Shell

对于每一个输入的行都会执行一次主体部分的命令。

默认情况下,对于输入的每一行,AWK 都会执行命令。但是,我们可以将其限定在指定的模式中。

注意:在主体块部分没有关键字存在。
结束块(END)
结束块的语法格式如下:

END {awk-commands}

Shell

结束块是在程序结束时执行的代码。 END 也是 AWK 的关键字,它也必须大写。 与开始块相似,结束块也是可选的。

先创建一个名为 marks.txt 的文件。其中包括序列号、学生名字、课程名称与所得分数。

1)    张三    语文    80
2)    李四    数学    90
3)    王五    英语    87

Shell

接下来,我们将使用 AWK 脚本来显示输出文件中的内容,同时输出表头信息。

$ awk 'BEGIN{printf "序号\t名字\t课程\t分数\n"} {print}' marks.txt

Shell

执行以上命令,输出结果如下:

序号    名字    课程    分数
1)    张三    语文    80
2)    李四    数学    90
3)    王五    英语    87

Shell

程序开始执行时,AWK 在开始块中输出表头信息。在主体块中,AWK 每读入一行就将读入的内容输出至标准输出流中,一直到整个文件被全部读入为止。

Linux 命令大全

(328) AWK 数组

Linux 常用命令命令
Linux 命令大全

AWK 可以使用关联数组这种数据结构,索引可以是数字或字符串。

AWK关联数 组也不需要提前声明其大小,因为它在运行时可以自动的增大或减小。

数组使用的语法格式:

array_name[index]=value

Shell

  • array_name:数组的名称
  • index:数组索引
  • value:数组中元素所赋予的值

创建数组
接下来看一下如何创建数组以及如何访问数组元素:

$ awk 'BEGIN {
sites["runoob"]="www.runoob.com";
sites["google"]="www.google.com"
print sites["runoob"] "\n" sites["google"]
}'

Shell

执行以上命令,输出结果为:

www.runoob.com
www.google.com

Shell

在上面的例子中,我们定义了一个站点(sites)数组,该数组的索引为网站英文简称,值为网站访问地址。可以使用如下格式访问数组元素:

array_name[index]

Shell

删除数组元素
我们可以使用 delete 语句来删除数组元素,语法格式如下:

delete array_name[index

Shell

下面的例子中,数组中的 google 元素被删除(删除命令没有输出):

$ awk 'BEGIN {
sites["runoob"]="www.runoob.com";
sites["google"]="www.google.com"
delete sites["google"];
print fruits["google"]
}'

Shell

多维数组
AWK 本身不支持多维数组,不过我们可以很容易地使用一维数组模拟实现多维数组。

如下示例为一个 3×3 的三维数组:

100 200 300
400 500 600
700 800 900

Shell

以上实例中,array[0][0] 存储 100,array[0][1] 存储 200 ,依次类推。为了在 array[0][0] 处存储 100, 我们可以使用如下语法:
array[“0,0”] = 100。

我们使用了 0,0 作为索引,但是这并不是两个索引值。事实上,它是一个字符串索引 0,0。

下面是模拟二维数组的例子:

$ awk 'BEGIN {
array["0,0"] = 100;
array["0,1"] = 200;
array["0,2"] = 300;
array["1,0"] = 400;
array["1,1"] = 500;
array["1,2"] = 600;
# 输出数组元素
print "array[0,0] = " array["0,0"];
print "array[0,1] = " array["0,1"];
print "array[0,2] = " array["0,2"];
print "array[1,0] = " array["1,0"];
print "array[1,1] = " array["1,1"];
print "array[1,2] = " array["1,2"];
}'

Shell

执行上面的命令可以得到如下结果:

array[0,0] = 100
array[0,1] = 200
array[0,2] = 300
array[1,0] = 400
array[1,1] = 500
array[1,2] = 600

Shell

在数组上可以执行很多操作,比如,使用 asort 完成数组元素的排序,或者使用 asorti 实现数组索引的排序等等。

Linux 命令大全

(329) AWK 条件语句与循环

Linux 常用命令命令
Linux 命令大全

1 条件语句

IF 语句
IF 条件语句语法格式如下:

if (condition)
    action

Shell

也可以使用花括号来执行一组操作:

if (condition)
{
    action-1
    action-1
    .
    .
    action-n
}

Shell

以下实例用来判断数字是奇数还是偶数:

$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d 是偶数\n", num }'

Shell

输出结果为:

10 是偶数
IF – ELSE 语句
IF – ELSE 条件语句语法格式如下:

if (condition)
    action-1
else
    action-2

Shell

在条件语句 condition 为 true 时只需 action-1,否则执行 action-2。

$ awk 'BEGIN {
    num = 11; 
    if (num % 2 == 0) printf "%d 是偶数\n", num; 
    else printf "%d 是奇数\n", num 
}'

Shell

输出结果为:

11 是奇数

Shell

IF – ELSE – IF
我们可以创建多个 IF – ELSE 格式的判断语句来实现多个条件的判断:

$ awk 'BEGIN {
a=30;
if (a==10)
  print "a = 10";
else if (a == 20)
  print "a = 20";
else if (a == 30)
  print "a = 30";
}'

Shell

输出结果为:

a = 30

2 循环

For
For 循环的语法如下:

for (initialisation; condition; increment/decrement)
    action

Shell

for 语句首先执行初始化动作( initialisation ),然后再检查条件( condition )。如果条件为真,则执行动作( action ),然后执行递增( increment )或者递减( decrement )操作。只要条件为 true 循环就会一直执行。每次循环结束都会进条件检查,若条件为 false 则结束循环。

下面的例子使用 For 循环输出数字 1 至 5:

$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

Shell

输出结果为:

1
2
3
4
5

Shell

While
While 循环的语法如下:

while (condition)
    action

Shell

While 循环首先检查条件 condition 是否为 true ,若条件为 true 则执行动作 action。此过程一直重复直到条件 condition 为 flase 才停止。

下面是使用 While 循环输出数字 1 到 5 的例子:

$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

Shell

输出结果为:

1
2
3
4
5

Shell

Break
break 用以结束循环:

在下面的示例子中,当计算的和大于 50 的时候使用 break 结束循环:

$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) { 
      sum += i; if (sum > 50) break; else print "Sum =", sum 
   } 
}'

Shell

输出结果为:

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Shell

Continue
Continue 语句用于在循环体内部结束本次循环,从而直接进入下一次循环迭代。

下面的例子输出 1 到 20 之间的偶数:

$ awk 'BEGIN {for (i = 1; i <= 20; ++i) {if (i % 2 == 0) print i ; else continue} }'

Shell

输出结果为:

2
4
6
8
10
12
14
16
18
20

Shell

Exit
Exit 用于结束脚本程序的执行。

该函数接受一个整数作为参数表示 AWK 进程结束状态。 如果没有提供该参数,其默认状态为 0。

下面例子中当和大于 50 时结束 AWK 程序。

$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) {
      sum += i; if (sum > 50) exit(10); else print "Sum =", sum 
   } 
}'

Shell

输出结果为:

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Shell

让我们检查一下脚本执行后的返回状态:

$ echo $?

Shell

执行上面的命令可以得到如下的结果:

19

Shell

Linux 命令大全

(330) AWK 用户自定义函数

Linux 常用命令命令
Linux 命令大全

一个程序包含有多个功能,每个功能我们可以独立一个函数。

函数可以提高代码的复用性。

用户自定义函数的语法格式为:

function function_name(argument1, argument2, ...)
{
    function body
}

Shell

解析:

  • function_name 是用户自定义函数的名称。函数名称应该以字母开头,其后可以是数字、字母或下划线的自由组合。AWK 保留的关键字不能作为用户自定义函数的名称。
  • 自定义函数可以接受多个输入参数,这些参数之间通过逗号分隔。参数并不是必须的。我们也可以定义没有任何输入参数的函数。
  • function body 是函数体部分,它包含 AWK 程序代码。

以下实例我们实现了两个简单函数,它们分别返回两个数值中的最小值和最大值。我们在主函数 main 中调用了这两个函数。 文件 functions.awk 代码如下:

# 返回最小值
function find_min(num1, num2)
{
  if (num1 < num2)
    return num1
  return num2
}

# 返回最大值
function find_max(num1, num2)
{
  if (num1 > num2)
    return num1
  return num2
}

# 主函数
function main(num1, num2)
{
  # 查找最小值
  result = find_min(10, 20)
  print "Minimum =", result

  # 查找最大值
  result = find_max(10, 20)
  print "Maximum =", result
}

# 脚本从这里开始执行
BEGIN {
  main(10, 20)
}

Shell

执行 functions.awk 文件,可以得到如下的结果:

$ awk -f functions.awk 
Minimum = 10
Maximum = 20

Linux 命令大全

(331) AWK 内置函数

Linux 常用命令命令
Linux 命令大全

AWK 内置函数主要有以下几种:

  • 算数函数
  • 字符串函数
  • 时间函数
  • 位操作函数
  • 其它函数

算数函数

函数名说明实例
atan2( y, x )返回 y/x 的反正切。$ awk 'BEGIN { PI = 3.14159265 x = -10 y = 10 result = atan2 (y,x) * 180 / PI; printf "The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result }'输出结果为:The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees
cos( x )返回 x 的余弦;x 是弧度。$ awk 'BEGIN { PI = 3.14159265 param = 60 result = cos(param * PI / 180.0); printf "The cosine of %f degrees is %f.\n", param, result }'输出结果为:The cosine of 60.000000 degrees is 0.500000.
sin( x )返回 x 的正弦;x 是弧度。$ awk 'BEGIN { PI = 3.14159265 param = 30.0 result = sin(param * PI /180) printf "The sine of %f degrees is %f.\n", param, result }'输出结果为:The sine of 30.000000 degrees is 0.500000.
exp( x )返回 x 幂函数。$ awk 'BEGIN { param = 5 result = exp(param); printf "The exponential value of %f is %f.\n", param, result }'输出结果为:The exponential value of 5.000000 is 148.413159.
log( x )返回 x 的自然对数。$ awk 'BEGIN { param = 5.5 result = log (param) printf "log(%f) = %f\n", param, result }'输出结果为:log(5.500000) = 1.704748
sqrt( x )返回 x 平方根。$ awk 'BEGIN { param = 1024.0 result = sqrt(param) printf "sqrt(%f) = %f\n", param, result }'输出结果为:sqrt(1024.000000) = 32.000000
int( x )返回 x 的截断至整数的值。$ awk 'BEGIN { param = 5.12345 result = int(param) print "Truncated value =", result }'输出结果为:Truncated value = 5
rand( )返回任意数字 n,其中 0 <= n < 1。$ awk 'BEGIN { print "Random num1 =" , rand() print "Random num2 =" , rand() print "Random num3 =" , rand() }'输出结果为:Random num1 = 0.237788 Random num2 = 0.291066 Random num3 = 0.845814
srand( [Expr] )将 rand 函数的种子值设置为 Expr 参数的值,或如果省略 Expr 参数则使用某天的时间。返回先前的种子值。$ awk 'BEGIN { param = 10 printf "srand() = %d\n", srand() printf "srand(%d) = %d\n", param, srand(param) }'输出结果为:srand() = 1 srand(10) = 1417959587

字符串函数

函数说明实例
gsub( Ere, Repl, [ In ] )gsub 是全局替换( global substitution )的缩写。除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行。$ awk 'BEGIN { str = "Hello, World" print "String before replacement = " str gsub("World", "Jerry", str) print "String after replacement = " str }'输出结果为:String before replacement = Hello, World String after replacement = Hello, Jerry
sub(regex,sub,string)sub 函数执行一次子串替换。它将第一次出现的子串用 regex 替换。第三个参数是可选的,默认为 $0。$ awk 'BEGIN { str = "Hello, World" print "String before replacement = " str sub("World", "Jerry", str) print "String after replacement = " str }'输出结果为:String before replacement = Hello, World String after replacement = Hello, Jerry
substr(str, start, l)substr 函数返回 str 字符串中从第 start 个字符开始长度为 l 的子串。如果没有指定 l 的值,返回 str 从第 start 个字符开始的后缀子串。$ awk 'BEGIN { str = "Hello, World !!!" subs = substr(str, 1, 5) print "Substring = " subs }'输出结果为:Substring = Hello
index( String1, String2 )在由 String1 参数指定的字符串(其中有出现 String2 指定的参数)中,返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)。$ awk 'BEGIN { str = "One Two Three" subs = "Two" ret = index(str, subs) printf "Substring \"%s\" found at %d location.\n", subs, ret }'输出结果为:Substring "Two" found at 5 location.
length [(String)]返回 String 参数指定的字符串的长度(字符形式)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。$ awk 'BEGIN { str = "Hello, World !!!" print "Length = ", length(str) }'输出结果为:Substring "Two" found at 5 location.
blength [(String)]返回 String 参数指定的字符串的长度(以字节为单位)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。
substr( String, M, [ N ] )返回具有 N 参数指定的字符数量子串。子串从 String 参数指定的字符串取得,其字符以 M 参数指定的位置开始。M 参数指定为将 String 参数中的第一个字符作为编号 1。如果未指定 N 参数,则子串的长度将是 M 参数指定的位置到 String 参数的末尾 的长度。$ awk 'BEGIN { str = "Hello, World !!!" subs = substr(str, 1, 5) print "Substring = " subs }'输出结果为:Substring = Hello
match( String, Ere )在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0(零)。RSTART 特殊变量设置为返回值。RLENGTH 特殊变量设置为匹配的字符串的长度,或如果未找到任何匹配,则设置为 -1(负一)。$ awk 'BEGIN { str = "One Two Three" subs = "Two" ret = match(str, subs) printf "Substring \"%s\" found at %d location.\n", subs, ret }'输出结果为:Substring "Two" found at 5 location.
split( String, A, [Ere] )将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。除非上下文指明特定的元素还应具有一个数字值,否则 A 数组中的元素用字符串值来创建。$ awk 'BEGIN { str = "One,Two,Three,Four" split(str, arr, ",") print "Array contains following values" for (i in arr) { print arr[i] } }'输出结果为:Array contains following values One Two Three Four
tolower( String )返回 String 参数指定的字符串,字符串中每个大写字符将更改为小写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。$ awk 'BEGIN { str = "HELLO, WORLD !!!" print "Lowercase string = " tolower(str) }'输出结果为:Lowercase string = hello, world !!!
toupper( String )返回 String 参数指定的字符串,字符串中每个小写字符将更改为大写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。$ awk 'BEGIN { str = "hello, world !!!" print "Uppercase string = " toupper(str) }'输出结果为:Uppercase string = HELLO, WORLD !!!
sprintf(Format, Expr, Expr, . . . )根据 Format 参数指定的 printf 子例程格式字符串来格式化 Expr 参数指定的表达式并返回最后生成的字符串。$ awk 'BEGIN { str = sprintf("%s", "Hello, World !!!") print str }'输出结果为:Hello, World !!!
strtonum(str)strtonum 将字符串 str 转换为数值。 如果字符串以 0 开始,则将其当作十进制数;如果字符串以 0x 或 0X 开始,则将其当作十六进制数;否则,将其当作浮点数。$ awk 'BEGIN { print "Decimal num = " strtonum("123") print "Octal num = " strtonum("0123") print "Hexadecimal num = " strtonum("0x123") }'输出结果为:Decimal num = 123 Octal num = 83 Hexadecimal num = 291

**注:**Ere 部分可以是正则表达式。

1、gsub、sub 使用

$ awk 'BEGIN{info="this is a test2012test!";gsub(/[0-9]+/,"||",info);print info}'
this is a test||test!

Shell

2、查找字符串(index 使用)

使用了三元运算符: 表达式 ? 动作1 : 动作2

$ awk 'BEGIN{info="this is a test2012test!";print index(info,"11111")?"ok":"no found";}'
no found
$ awk 'BEGIN{info="this is a test2012test!";print index(info,"is")?"ok":"no found";}'
ok
$ awk 'BEGIN{info="this is a test2012test!";print index(info,"test")?"ok":"no found";}'
ok

Shell

3、正则表达式匹配查找(match 使用)

$ awk 'BEGIN{info="this is a test2012test!";print match(info,/[0-9]+/)?"ok":"no found";}'
ok

Shell

4、截取字符串(substr使用)

从第 4 个 字符开始,截取 10 个长度字符串。

$ awk 'BEGIN{info="this is a test2012test!";print substr(info,4,10);}'
s is a tes

Shell

5、字符串分割(split使用)

$ awk 'BEGIN{info="this is a test";split(info,tA," ");print length(tA);for(k in tA){print k,tA[k];}}'
4
2 is
3 a
4 test
1 this

Shell

分割 info,将 info 字符串使用空格切分为动态数组 tA。注意 awk for …in 循环,是一个无序的循环。 并不是从数组下标 1…n ,因此使用时候需要特别注意。

6、格式化字符串输出(sprintf使用)

其中格式化字符串包括两部分内容: 一部分是正常字符,这些字符将按原样输出; 另一部分是格式化规定字符, 以 % 开始, 后跟一个或几个规定字符,用来确定输出内容格式。 需要特别注意的是使用 printf 时默认是不会换行的,而 print 函数默认会在每行后面加上 \n 换行符。

格式符说明
%d十进制有符号整数
%u十进制无符号整数
%f浮点数
%s字符串
%c单个字符
%p指针的值
%e指数形式的浮点数
%x%X 无符号以十六进制表示的整数
%o无符号以八进制表示的整数
%g自动选择合适的表示法
$ awk 'BEGIN{n1=124.113;n2=-1.224;n3=1.2345; printf("%.2f,%.2u,%.2g,%X,%o\n",n1,n2,n3,n1,n1);}'
124.11,4294967295,1.2,7C,174
$  awk 'BEGIN{n1=124.113;n2=-1.224;n3=1.2645; printf("%.2f,%.2u,%.2g,%X,%o\n",n1,n2,n3,n1,n1);}'
124.11,4294967295,1.3,7C,174

Shell

**注:**看上面的 n3 输出值会发现,在使用 printf 处理时一个比较智能的功能是可以进行四舍五入保留小数点位的。

时间函数

函数名说明实例
mktime( YYYY MM DD HH MM SS[ DST])生成时间格式$ awk 'BEGIN { print "Number of seconds since the Epoch = " mktime("2014 12 14 30 20 10") }'输出结果为:Number of seconds since the Epoch = 1418604610
strftime([format [, timestamp]])格式化时间输出,将时间戳转为时间字符串 具体格式,见下表.$ awk 'BEGIN { print strftime("Time = %m/%d/%Y %H:%M:%S", systime()) }'输出结果为:Time = 12/14/2014 22:08:42
systime()得到时间戳,返回从1970年1月1日开始到当前时间(不计闰年)的整秒数awk 'BEGIN{now=systime();print now}'输出结果为:1343210982

strftime 日期和时间格式说明符:

序号描述
%a星期缩写(Mon-Sun)。
%A星期全称(Monday-Sunday)。
%b月份缩写(Jan)。
%B月份全称(January)。
%c本地日期与时间。
%C年份中的世纪部分,其值为年份整除100。
%d十进制日期(01-31)
%D等价于 %m/%d/%y.
%e日期,如果只有一位数字则用空格补齐
%F等价于 %Y-%m-%d,这也是 ISO 8601 标准日期格式。
%gISO8610 标准周所在的年份模除 100(00-99)。比如,1993 年 1 月 1 日属于 1992 年的第 53 周。所以,虽然它是 1993 年第 1 天,但是其 ISO8601 标准周所在年份却是 1992。同样,尽管 1973 年 12 月 31 日属于 1973 年但是它却属于 1994 年的第一周。所以 1973 年 12 月 31 日的 ISO8610 标准周所在的年是 1974 而不是 1973。
%GISO 标准周所在年份的全称。
%h等价于 %b.
%H用十进制表示的 24 小时格式的小时(00-23)
%I用十进制表示的 12 小时格式的小时(00-12)
%j一年中的第几天(001-366)
%m月份(01-12)
%M分钟数(00-59)
%n换行符 (ASCII LF)
%p十二进制表示法(AM/PM)
%r十二进制表示法的时间(等价于 %I:%M:%S %p)。
%R等价于 %H:%M。
%S时间的秒数值(00-60)
%t制表符 (tab)
%T等价于 %H:%M:%S。
%u以数字表示的星期(1-7),1 表示星期一。
%U一年中的第几个星期(第一个星期天作为第一周的开始),00-53
%V一年中的第几个星期(第一个星期一作为第一周的开始),01-53。
%w以数字表示的星期(0-6),0表示星期日 。
%W十进制表示的一年中的第几个星期(第一个星期一作为第一周的开始),00-53。
%x本地日期表示
%X本地时间表示
%y年份模除 100。
%Y十进制表示的完整年份。
%z时区,表示格式为+HHMM(例如,格式要求生成的 RFC 822或者 RFC 1036 时间头)
%Z时区名称或缩写,如果时区待定则无输出。

位操作函数

函数名说明实例
and位与操作。$ awk 'BEGIN { num1 = 10 num2 = 6 printf "(%d AND %d) = %d\n", num1, num2, and(num1, num2) }'输出结果为:(10 AND 6) = 2
compl按位求补。$ awk 'BEGIN { num1 = 10 printf "compl(%d) = %d\n", num1, compl(num1) }'输出结果为:compl(10) = 9007199254740981
lshift左移位操作$ awk 'BEGIN { num1 = 10 printf "lshift(%d) by 1 = %d\n", num1, lshift(num1, 1) }'输出结果为:lshift(10) by 1 = 20
rshift右移位操作$ awk 'BEGIN { num1 = 10 printf "rshift(%d) by 1 = %d\n", num1, rshift(num1, 1) }'输出结果为:rshift(10) by 1 = 5
or按位或操作$ awk 'BEGIN { num1 = 10 num2 = 6 printf "(%d OR %d) = %d\n", num1, num2, or(num1, num2) }'输出结果为:(10 OR 6) = 14
xor按位异或操作$ awk 'BEGIN { num1 = 10 num2 = 6 printf "(%d XOR %d) = %d\n", num1, num2, xor(num1, num2) }'输出结果为:(10 bitwise xor 6) = 12

其他函数

函数名说明实例
close(expr)关闭管道的文件$ awk 'BEGIN { cmd = "tr [a-z] [A-Z]" print "hello, world !!!" |& cmd close(cmd, "to") cmd |& getline out print out; close(cmd); }'输出结果为:HELLO, WORLD !!!第一条语句 cmd = “tr [a-z] [A-Z]” 在 AWK 中建立了一个双向的通信通道。第二条语句 print 为 tr 命令提供输入。&| 表示双向通信。第三条语句 close(cmd, “to”) 完成执行后关闭 to 进程。第四条语句 cmd |& getline out 使用 getline 函数将输出存储到 out 变量中。接下来的输出语句打印输出的内容,最后 close 函数关闭 cmd。
delete用于从数组中删除元素$ awk 'BEGIN { arr[0] = "One" arr[1] = "Two" arr[2] = "Three" arr[3] = "Four" print "Array elements before delete operation:" for (i in arr) { print arr[i] } delete arr[0] delete arr[1] print "Array elements after delete operation:" for (i in arr) { print arr[i] } }'输出结果为:Array elements before delete operation: One Two Three Four Array elements after delete operation: Three Four
exit终止脚本执行,它可以接受可选的参数 expr 传递 AWK 返回状态。$ awk 'BEGIN { print "Hello, World !!!" exit 10 print "AWK never executes this statement." }'输出结果为:Hello, World !!!
flush刷新打开文件或管道的缓冲区
getline读入下一行使用 getline 从文件 marks.txt 中读入一行并输出:$ awk '{getline; print $0}' marks.txt,AWK 从文件 marks.txt 中读入一行存储到变量 0 中。在下一条语句中,我们使用 getline 读入下一行。因此AWK读入第二行并存储到 0 中。最后,AWK 使用 print 输出第二行的内容。这个过程一直到文件结束。
next停止处理当前记录,并且进入到下一条记录的处理过程。当模式串匹配成功后程序并不执行任何操作:$ awk '{if ($0 ~/Shyam/) next; print $0}' marks.txt
nextfile停止处理当前文件,从下一个文件第一个记录开始处理。首先创建两个文件。 file1.txt 内容如下:file1:str1 file1:str2 file1:str3 file1:str4文件 file2.txt 内容如下:file2:str1 file2:str2 file2:str3 file2:str4现在我们来测试 nextfile 函数。$ awk '{ if ($0 ~ /file1:str2/) nextfile; print $0 }' file1.txt file2.txt输出结果为:file1:str1 file2:str1 file2:str2 file2:str3 file2:str4
return从用户自定义的函数中返回值。请注意,如果没有指定返回值,那么的返回值是未定义的。创建文件 functions.awk,内容如下:function addition(num1, num2) { result = num1 + num2 return result } BEGIN { res = addition(10, 20) print "10 + 20 = " res }执行该文件:$ awk -f functions.awk 10 + 20 = 30
system执行特定的命令然后返回其退出状态。返回值为 0 表示命令执行成功;非 0 表示命令执行失败。$ awk 'BEGIN { ret = system("date"); print "Return value = " ret }'输出结果为:Sun Dec 21 23:16:07 IST 2014 Return value = 0

Linux 命令大全

(332) 8 个有力的 Awk 内建变量

Linux 常用命令命令
Linux 命令大全

Awk 有几个非常强力的内置变量.通常来说,分为两种类型的内置变量: – 第一种是定义的变量可以改变, 比如字段分隔(FS)与记录分隔(RS) – 第二种是可以用来数据处理或者数据总结,比如记录数(NR)与字段数目(NF) 文中 介绍了: FS,OFS, RS, ORS, NR, NR, FNR
FS: 输入字段分隔符变量
FS(Field Separator) 读取并解析输入文件中的每一行时,默认按照空格分隔为字段变量,$1,$2…等。FS 变量被用来设置每一记录的字段分隔符号。FS 可以是任意的字符串或者正则表达式.你可以使用下面两种方式来声名FS:

使用 -F 命令选项

作为设置为普通变量使用

语法:

$ awk -F 'FS' 'commands' inputfilename

或者

$ awk 'BEGIN{FS="FS";}'

Shell

FS 可以是任意字符或者正则表达式

FS 可以多次改变, 不过会保持不变直到被明确修改。不过如果想要改变字段分隔符, 最好是在读入文本之前就改变 FS, 这样改变才会在你读入的文本生效。

下面是一个使用 FS 读取 /etc/passwd 以 : 作为分隔符的例子

$ cat etc_passwd.awk
BEGIN{
FS=":";
print "Name\tUserID\tGroupID\tHomeDirectory";
}
{
    print $1"\t"$3"\t"$4"\t"$6;
}
END {
    print NR,"Records Processed";
}

Shell

使用结果:

$ awk -f etc_passwd.awk /etc/passwd
Name    UserID  GroupID        HomeDirectory
gnats    41    41    /var/lib/gnats
libuuid    100    101    /var/lib/libuuid
syslog    101    102    /home/syslog
hplip    103    7    /var/run/hplip
avahi    105    111    /var/run/avahi-daemon
saned    110    116    /home/saned
pulse    111    117    /var/run/pulse
gdm    112    119    /var/lib/gdm
8 Records Processed

Shell

OFS: 输出字段分隔符变量
OFS(Output Field Separator) 相当与输出上的 FS, 默认是以一个空格字符作为输出分隔符的,下面是一个 OFS 的例子:

$ awk -F':' '{print $3,$4;}' /etc/passwd
41 41
100 101
101 102
103 7
105 111
110 116
111 117
112 119

Shell

注意命令中的 print 语句的, 表示的使用一个空格连接两个参数,也就是默认的OFS的值。因此 OFS 可以像下面那样插入到输出的字段之间:

$ awk -F':' 'BEGIN{OFS="=";} {print $3,$4;}' /etc/passwd
41=41
100=101
101=102
103=7
105=111
110=116
111=117
112=11

Shell

RS: 记录分隔符
RS(Record Separator)定义了一行记录。读取文件时,默认将一行作为一条记录。 下面的例子以 student.txt 作为输入文件,记录之间用两行空行分隔,并且每条记录的每个字段用一个换行符分隔:

$ cat student.txt
Jones
2143
78
84
77

Gondrol
2321
56
58
45

RinRao
2122
38
37
65

Edwin
2537
78
67
45

Dayan
2415
30
47
20

Shell

然后下面的脚本就会从student.txt输出两项内容:

$ cat student.awk
BEGIN {
    RS="\n\n";
    FS="\n";
}
{
    print $1,$2;
}
$ awk -f student.awk  student.txt
Jones 2143
Gondrol 2321
RinRao 2122
Edwin 2537
Dayan 2415

Shell

在 student.awk 中,把每个学生的详细信息作为一条记录, 这是因为RS(记录分隔符)是被设置为两个换行符。并且因为 FS (字段分隔符)是一个换行符,所以一行就是一个字段。
ORS: 输出记录分隔符变量
ORS(Output Record Separator)顾名思义就相当与输出的 RS。 每条记录在输出时候会用分隔符隔开,看下面的 ORS 的例子:

$  awk 'BEGIN{ORS="=";} {print;}' student-marks
Jones 2143 78 84 77=Gondrol 2321 56 58 45=RinRao 2122 38 37 65=Edwin 2537 78 67 45=Dayan 2415 30 47 20=

Shell

上面的脚本,输入文件的每条记录被 = 分隔开。 附:student-marks 便是上面的输出.
NR: 记录数变量
NR(Number of Record) 表示的是已经处理过的总记录数目,或者说行号(不一定是一个文件,可能是多个)。下面的例子,NR 表示行号,在 END 部分,NR 就是文件中的所有记录数目。

$ awk '{print "Processing Record - ",NR;}END {print NR, "Students Records are processed";}' student-marks
Processing Record -  1
Processing Record -  2
Processing Record -  3
Processing Record -  4
Processing Record -  5
5 Students Records are processed

Shell

NF:一条记录的记录数目
NF(Number for Field)表示的是,一条记录的字段的数目. 它在判断某条记录是否所有字段都存在时非常有用。 让我们观察 student-mark 文件如下:

$ cat student-marks
Jones 2143 78 84 77
Gondrol 2321 56 58 45
RinRao 2122 38 37
Edwin 2537 78 67 45
Dayan 2415 30 47

Shell

接着下面的Awk程序,打印了记录数(NR),以及该记录的字段数目: 因此可以非常容易的发现那些数据丢失了。

$ awk '{print NR,"->",NF}' student-marks
1 -> 5
2 -> 5
3 -> 4
4 -> 5
5 -> 4

Shell

FILENAME: 当前输入文件的名字
FILENAME 表示当前正在输入的文件的名字。 AWK 可以接受读取很多个文件去处理。看下面的例子:

$ awk '{print FILENAME}' student-marks
student-marks
student-marks
student-marks
student-marks
student-marks

Shell

在输入的文件的每一条记录都会输出该名字。
FNR: 当前输入文件的记录数目
当awk读取多个文件时,NR 代表的是当前输入所有文件的全部记录数,而 FNR 则是当前文件的记录数。如下面的例子:

$ awk '{print FILENAME, "FNR= ", FNR,"  NR= ", NR}' student-marks bookdetails
student-marks FNR=  1   NR=  1
student-marks FNR=  2   NR=  2
student-marks FNR=  3   NR=  3
student-marks FNR=  4   NR=  4
student-marks FNR=  5   NR=  5
bookdetails FNR=  1   NR=  6
bookdetails FNR=  2   NR=  7
bookdetails FNR=  3   NR=  8
bookdetails FNR=  4   NR=  9
bookdetails FNR=  5   NR=  10

Shell

附: bookdetails 与 student-marks 内容一样,作例子. 可以看出来 NR 与 FNR 的区别。

经常使用 NR 与 FNR 结合来处理两个文件,比如有两个文件:

$ cat a.txt
李四|000002
张三|000001
王五|000003
赵六|000004

$ cat b.txt
000001|10
000001|20
000002|30
000002|15
000002|45
000003|40
000003|25
000004|60

Shell

如果想作对应的话, 比如张三|000001|10

$ awk -F '|' 'NR == FNR{a[$2]=$1;} NR>FNR {print a[$1],"|", $0}' a.txt b.txt
张三 | 000001|10
张三 | 000001|20
李四 | 000002|30
李四 | 000002|15
李四 | 000002|45
王五 | 000003|40
王五 | 000003|25
赵六 | 000004|60

英文原文:http://www.thegeekstuff.com/2010/01/8-powerful-awk-built-in-variables-fs-ofs-rs-ors-nr-nf-filename-fnr/

译文 :http://shomy.top/2016/05/05/trans-8-powerful-awk-built-in-variables/

Linux 命令大全

  • 1
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值