二、Linux 教程-基础命令(1~180未完)

二、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. 其他命令

  • Linux bc 命令

  • Linux tail 命令

  • Linux xargs 命令

3. 扩展文章

  • Linux 常用命令全拼
  • Linux 命令大全

4. 命令详细

(1) Linux- cat 命令

Linux cat命令
Linux 命令大全

cat 命令用于连接文件并打印到标准输出设备上。
使用权限
所有使用者
语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

Shell

参数说明:
-n 或 –number:由 1 开始对所有输出的行数编号。

-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 –show-ends : 在每行结束处显示 $。

-T 或 –show-tabs: 将 TAB 字符显示为 ^I。

-A, –show-all:等价于 -vET。

**-e:**等价于”-vE”选项;

**-t:**等价于”-vT”选项;
实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

Shell

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

Shell

清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

Shell

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

Shell

相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

Shell

  • \1. OUTFILE 指输出的镜像文件名。
  • \2. IMG_FILE 指镜像文件。
  • \3. 若从镜像文件写回 device 时,device 容量需与相当。
  • \4. 通常用制作开机磁片。

Linux 命令大全

(2) Linux- chattr 命令

Linux chattr命令
Linux 命令大全

Linux chattr命令用于改变文件属性。

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

  1. a:让文件或目录仅供附加用途。
  2. b:不更新文件或目录的最后存取时间。
  3. c:将文件或目录压缩后存放。
  4. d:将文件或目录排除在倾倒操作之外。
  5. i:不得任意更动文件或目录。
  6. s:保密性删除文件或目录。
  7. S:即时更新文件或目录。
  8. u:预防意外删除。

语法

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

Shell

参数
-R 递归处理,将指定目录下的所有文件及子目录一并处理。

-v<版本编号> 设置文件或目录版本。

-V 显示指令执行过程。

+<属性> 开启文件或目录的该项属性。

-<属性> 关闭文件或目录的该项属性。

=<属性> 指定文件或目录的该项属性。

用chattr命令防止系统中某个关键文件被修改:

chattr +i /etc/resolv.conf

Shell

lsattr /etc/resolv.conf

Shell

会显示如下属性

----i-------- /etc/resolv.conf

Shell

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

chattr +a /var/log/messages

Shell

Linux 命令大全

(3) Linux- chgrp 命令

Linux chgrp命令

Linux 命令大全

Linux chgrp命令用于变更文件或目录的所属群组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
语法

chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

Shell

参数说明
-c或–changes 效果类似”-v”参数,但仅回报更改的部分。

-f或–quiet或–silent  不显示错误信息。

-h或–no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。

-R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

-v或–verbose  显示指令执行过程。

–help  在线帮助。

–reference=<参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

–version  显示版本信息。

实例1:改变文件的群组属性:

chgrp -v bin log2012.log

Shell

输出:

[root@localhost test]# ll
---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log
[root@localhost test]# chgrp -v bin log2012.log

Shell

“log2012.log” 的所属组已更改为 bin

[root@localhost test]# ll
---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

Shell

说明:
将log2012.log文件由root群组改为bin群组

实例2:根据指定文件改变文件的群组属性

chgrp --reference=log2012.log log2013.log

Shell

输出:

[root@localhost test]# ll
---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log
-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log
[root@localhost test]#  chgrp --reference=log2012.log log2013.log 
[root@localhost test]# ll
---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

Shell

说明:
改变文件log2013.log 的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同

Linux 命令大全

(4) Linux- chmod 命令

Linux chmod命令

Linux 命令大全

Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。

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

chmod [-cfvR] [--help] [--version] mode file...

Shell

参数说明
mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

Shell

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
  • –help : 显示辅助说明
  • –version : 显示版本

将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

Shell

将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

Shell

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

Shell

将 ex1.py 设定为只有该文件拥有者可以执行 :

chmod u+x ex1.py

Shell

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

Shell

此外chmod也可以用数字来表示权限如 :

chmod 777 file

Shell

语法为:

chmod abc file

Shell

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1

  • 若要rwx属性则4+2+1=7;
  • 若要rw-属性则4+2=6;
  • 若要r-x属性则4+1=5。
chmod a=rwx file

Shell

chmod 777 file

Shell

效果相同

chmod ug=rwx,o=x file

Shell

chmod 771 file

Shell

效果相同

若用chmod 4755 filename可使此程序具有root的权限

Linux 命令大全

(5) Linux- chown 命令

Linux chown命令

Linux 命令大全

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

使用权限 : root
语法

chown [-cfhvR] [--help] [--version] user[:group] file...

Shell

参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
  • –help : 显示辅助说明
  • –version : 显示版本

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

Shell

将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

Shell

Linux 命令大全

(6) Linux- cksum 命令

Linux cksum命令

Linux 命令大全

Linux cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏。

CRC是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。

指定文件交由指令”cksum”进行校验后,该指令会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为”-“,则指令”cksum”会从标准输入设备中读取数据。
语法

cksum [--help][--version][文件...]

Shell

参数

  • –help:在线帮助。
  • –version:显示版本信息。
  • 文件…:需要进行检查的文件路径

实例
使用指令”cksum”计算文件”testfile1″的完整性,输入如下命令:

$ cksum testfile1

Shell

以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:

1263453430 78 testfile1         //输出信息

Shell

上面的输出信息中,”1263453430″表示校验码,”78″表示字节数。

**
注意:**如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。

Linux 命令大全

(7) Linux- cmp 命令

Linux cmp命令

Linux 命令大全

Linux cmp命令用于比较两个文件是否有差异。

当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为”-“,则cmp指令会从标准输入设备读取数据。
语法

cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]

Shell

参数

  • -c或–print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
  • -i<字符数目>或–ignore-initial=<字符数目>  指定一个数目。
  • -l或–verbose  标示出所有不一样的地方。
  • -s或–quiet或–silent  不显示错误信息。
  • -v或–version  显示版本信息。
  • –help  在线帮助。

要确定两个文件是否相同,请输入:

cmp prog.o.bak prog.o

Shell

这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:

prog.o.bak prog.o differ: char 4, line 1

Shell

如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。

Linux 命令大全https://geek-docs.com/linux/linux-command/linux-command-manual.html)

(8) Linux- diff 命令

Linux diff命令

Linux 命令大全

Linux diff命令用于比较文件的差异。

diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
语法

diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]

Shell

参数

-<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。

-a或–text  diff预设只会逐行比较文本文件。

-b或–ignore-space-change  不检查空格字符的不同。

  • -B或–ignore-blank-lines  不检查空白行。
  • -c  显示全部内文,并标出不同之处。
  • -C<行数>或–context<行数>  与执行”-c-<行数>”指令相同。
  • -d或–minimal  使用不同的演算法,以较小的单位来做比较。
  • -D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。
  • -e或–ed  此参数的输出格式可用于ed的script文件。
  • -f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
  • -H或–speed-large-files  比较大文件时,可加快速度。
  • -l<字符或字符串>或–ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
  • -i或–ignore-case  不检查大小写的不同。
  • -l或–paginate  将结果交由pr程序来分页。
  • -n或–rcs  将比较结果以RCS的格式来显示。
  • -N或–new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:
  • Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
  • -p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
  • -P或–unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
  • -q或–brief  仅显示有无差异,不显示详细的信息。
  • -r或–recursive  比较子目录中的文件。
  • -s或–report-identical-files  若没有发现任何差异,仍然显示信息。
  • -S<文件>或–starting-file<文件>  在比较目录时,从指定的文件开始比较。
  • -t或–expand-tabs  在输出时,将tab字符展开。
  • -T或–initial-tab  在每行前面加上tab字符以便对齐。
  • -u,-U<列数>或–unified=<列数>  以合并的方式来显示文件内容的不同。
  • -v或–version  显示版本信息。
  • -w或–ignore-all-space  忽略全部的空格字符。
  • -W<宽度>或–width<宽度>  在使用-y参数时,指定栏宽。
  • -x<文件名或目录>或–exclude<文件名或目录>  不比较选项中所指定的文件或目录。
  • -X<文件>或–exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
  • -y或–side-by-side  以并列的方式显示文件的异同之处。
  • –help  显示帮助。
  • –left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
  • –suppress-common-lines  在使用-y参数时,仅显示不同之处。

实例1:比较两个文件

[root@localhost test3]# diff log2014.log log2013.log 
3c3
< 2014-03
---
> 2013-03
8c8
< 2013-07
---
> 2013-08
11,12d10
< 2013-11
< 2013-12

Shell

上面的”3c3″和”8c8″表示log2014.log和log20143log文件在3行和第8行内容有所不同;”11,12d10″表示第一个文件比第二个文件多了第11和12行。
实例2:并排格式输出

[root@localhost test3]# diff log2014.log log2013.log  -y -W 50
2013-01                 2013-01
2013-02                 2013-02
2014-03               | 2013-03
2013-04                 2013-04
2013-05                 2013-05
2013-06                 2013-06
2013-07                 2013-07
2013-07               | 2013-08
2013-09                 2013-09
2013-10                 2013-10
2013-11               <
2013-12               <
[root@localhost test3]# diff log2013.log log2014.log  -y -W 50
2013-01                 2013-01
2013-02                 2013-02
2013-03               | 2014-03
2013-04                 2013-04
2013-05                 2013-05
2013-06                 2013-06
2013-07                 2013-07
2013-08               | 2013-07
2013-09                 2013-09
2013-10                 2013-10
                      > 2013-11
                      > 2013-12

Shell

说明:

  • “|”表示前后2个文件内容有不同
  • “<“表示后面文件比前面文件少了1行内容
  • “>”表示后面文件比前面文件多了1行内容

Linux 命令大全

(9) Linux- diffstat 命令

Linux diffstat命令

Linux 命令大全

Linux diffstat命令根据diff的比较结果,显示统计数字。

diffstat读取diff的输出结果,然后统计各文件的插入,删除,修改等差异计量。
语法

diff [-wV][-n <文件名长度>][-p <文件名长度>]

Shell

参数

  • -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
  • -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
  • -w  指定输出时栏位的宽度。
  • -V  显示版本信息。

用户也可以直接使用”|”将diff指令所输出的结果直接送给diffstat指令进行统计结果的显示。

使用该指令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。

将目录”test1″和”test2″下的同名文件”testf.txt”使用diff指令进行比较。然后使用diffstat指令对结果进行统计显示,输入如下命令:

$ diff test1 test2 | diffstat   #进行比较结果的统计显示

Shell

注意:使用这条命令可以非常方便地实现统计显示的功能。

对于查看文件中的内容,用户可以通过指令”cat”进行查看即可,具体操作如下:

$ cat test1/testf.txt           #查看test1/testf的内容  
abc  
def  
ghi  
jkl  
mno  
pqr  
stu  
vws  
$ cat test2/testf.txt           #查看test2/testf的内容  
abc  
def  
ghi  
jkl  
mno

Shell

从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:

testfile | 2 +-             #统计信息输出显示  
1 file changed, 1 insertion(+), 1 deletion(-)

Shell

Linux 命令大全

(10) Linux- file 命令

Linux file命令

Linux 命令大全

Linux file命令用于辨识文件类型。

通过file指令,我们得以辨识该文件的类型。
语法

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

Shell

参数

  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容。
  • [文件或目录…] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

显示文件类型:

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text

[root@localhost ~]# file -b install.log      <== 不显示文件名称
UTF-8 Unicode text

[root@localhost ~]# file -i install.log      <== 显示MIME类别。
install.log: text/plain; charset=utf-8

[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8

Shell

显示符号链接的文件类型

[root@localhost ~]# ls -l /var/mail
lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

[root@localhost ~]# file /var/mail
/var/mail: symbolic link to `spool/mail'

[root@localhost ~]# file -L /var/mail
/var/mail: directory

[root@localhost ~]# file /var/spool/mail
/var/spool/mail: directory

[root@localhost ~]# file -L /var/spool/mail
/var/spool/mail: directory

Shell

Linux 命令大全

(11) Linux- find 命令

Linux find命令

Linux 命令大全

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {
     } \;

Shell

参数说明 :

find 根据下列规则判断 path 和 expression,在命令列上第一个 – ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去n天内被读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去n天内被修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。

d: 目录

c: 字型装置文件

b: 区块装置文件

p: 具名贮列

f: 一般文件

l: 符号连结

s: socket

-pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

# find . -name "*.c"

Shell

将目前目录其其下子目录中所有一般文件列出

# find . -type f

Shell

将目前目录及其子目录下所有最近 20 天内更新过的文件列出

# find . -ctime -20

Shell

查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

# find /var/log -type f -mtime +7 -ok rm {} \;

Shell

查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

# find . -type f -perm 644 -exec ls -l {} \;

Shell

为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:

# find / -type f -size 0 -exec ls -l {} \;

Shell

Linux 命令大全

(12) Linux- git 命令

Linux git命令

Linux 命令大全

Linux git命令是文字模式下的文件管理员。

git是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样。
语法

git

Shell

操作说明:

  • F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。
  • F2 :执行cat指令,列出文件内容。
  • F3 :执行gitview指令,观看文件内容。
  • F4 :执行vi指令,编辑文件内容。
  • F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。
  • F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。
  • F7 :执行mkdir指令,建立目录。
  • F8 :执行rm指令,删除文件或目录。
  • F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。
  • F10 :离开git文件管理员。

Linux 命令大全

(13) Linux- gitview 命令

Linux gitview命令

Linux 命令大全

Linux gitview命令用于观看文件的内容,它会同时显示十六进制和ASCII格式的字码。
语法

gitview [-bchilv][文件]

Shell

参数

  • -b  单色模式,不使用ANSI控制码显示彩色。
  • -c  彩色模式,使用ANSI控制码显示色彩。
  • -h  在线帮助。
  • -i  显示存放gitview程序的所在位置。
  • -l  不使用先前的显示字符。
  • -v  显示版本信息。

使用指令gitview以彩色模式观看文件”/home/ rootlocal/demo.txt”中的内容,输入如下命令:

$ gitview -c /home/rootlocal/demo.txt      #使用gitview指令观看指定文件内容

Shell

Linux 命令大全

(14) Linux- indent 命令

Linux indent命令

Linux 命令大全

Linux indent命令用于调整C原始代码文件的格式。

indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读。
语法

indent [参数][源文件] 或 indent [参数][源文件][-o 目标文件]

Shell

参数

  • -bad或–blank-lines-after-declarations  在声明区段或加上空白行。
  • -bap或–blank-lines-after-procedures  在程序或加上空白行。
  • -bbb或–blank-lines-after-block-comments  在注释区段后加上空白行。
  • -bc或–blank-lines-after-commas  在声明区段中,若出现逗号即换行。
  • -bl或–braces-after-if-line  if(或是else,for等等)与后面执行区段的”{“不同行,且”}”自成一行。
  • -bli<缩排格数>或–brace-indent<缩排格数>  设置{ }缩排的格数。
  • -br或–braces-on-if-line  if(或是else,for等等)与后面执行跛段的”{“不同行,且”}”自成一行。
  • -bs或–blank-before-sizeof  在sizeof之后空一格。
  • -c<栏数>或–comment-indentation<栏数>  将注释置于程序码右侧指定的栏位。
  • -cd<栏数>或–declaration-comment-column<栏数>  将注释置于声明右侧指定的栏位。
  • -cdb或–comment-delimiters-on-blank-lines  注释符号自成一行。
  • -ce或–cuddle-else  将else置于”}”(if执行区段的结尾)之后。
  • -ci<缩排格数>或–continuation-indentation<缩排格数>  叙述过长而换行时,指定换行后缩排的格数。
  • -cli<缩排格数>或–case-indentation-<缩排格数>  使用case时,switch缩排的格数。
  • -cp<栏数>或-else-endif-column<栏数>  将注释置于else与elseif叙述右侧定的栏位。
  • -cs或–space-after-cast  在cast之后空一格。
  • -d<缩排格数>或-line-comments-indentation<缩排格数>  针对不是放在程序码右侧的注释,设置其缩排格数。
  • -di<栏数>或–declaration-indentation<栏数>  将声明区段的变量置于指定的栏位。
  • -fc1或–format-first-column-comments  针对放在每行最前端的注释,设置其格式。
  • -fca或–format-all-comments  设置所有注释的格式。
  • -gnu或–gnu-style  指定使用GNU的格式,此为预设值。
  • -i<格数>或–indent-level<格数>  设置缩排的格数。
  • -ip<格数>或–parameter-indentation<格数>  设置参数的缩排格数。
  • -kr或–k-and-r-style  指定使用Kernighan&Ritchie的格式。
  • -lp或–continue-at-parentheses  叙述过长而换行,且叙述中包含了括弧时,将括弧中的每行起始栏位内容垂直对其排列。
  • -nbad或–no-blank-lines-after-declarations  在声明区段后不要加上空白行。
  • -nbap或–no-blank-lines-after-procedures  在程序后不要加上空白行。
  • -nbbb或–no-blank-lines-after-block-comments  在注释区段后不要加上空白行。
  • -nbc或–no-blank-lines-after-commas  在声明区段中,即使出现逗号,仍旧不要换行。
  • -ncdb或–no-comment-delimiters-on-blank-lines  注释符号不要自成一行。
  • -nce或–dont-cuddle-else  不要将else置于”}”之后。
  • -ncs或–no-space-after-casts  不要在cast之后空一格。
  • -nfc1或–dont-format-first-column-comments  不要格式化放在每行最前端的注释。
  • -nfca或–dont-format-comments  不要格式化任何的注释。
  • -nip或–no-parameter-indentation  参数不要缩排。
  • -nlp或–dont-line-up-parentheses  叙述过长而换行,且叙述中包含了括弧时,不用将括弧中的每行起始栏位垂直对其排列。
  • -npcs或–no-space-after-function-call-names  在调用的函数名称之后,不要加上空格。
  • -npro或–ignore-profile  不要读取indent的配置文件.indent.pro。
  • -npsl或–dont-break-procedure-type  程序类型与程序名称放在同一行。
  • -nsc或–dont-star-comments  注解左侧不要加上星号(*)。
  • -nsob或–leave-optional-semicolon  不用处理多余的空白行。
  • -nss或–dont-space-special-semicolon  若for或while区段仅有一行时,在分号前不加上空格。
  • -nv或–no-verbosity  不显示详细的信息。
  • -orig或–original  使用Berkeley的格式。
  • -pcs或–space-after-procedure-calls  在调用的函数名称与”{“之间加上空格。
  • -psl或–procnames-start-lines  程序类型置于程序名称的前一行。
  • -sc或–start-left-side-of-comments  在每行注释左侧加上星号(*)。
  • -sob或–swallow-optional-blank-lines  删除多余的空白行。
  • -ss或–space-special-semicolon  若for或swile区段今有一行时,在分号前加上空格。
  • -st或–standard-output  将结果显示在标准输出设备。
  • -T  数据类型名称缩排。
  • -ts<格数>或–tab-size<格数>  设置tab的长度。
  • -v或–verbose  执行时显示详细的信息。
  • -version  显示版本信息。

Indent代码格式化说明

使用的indent参数 含义
–blank-lines-after-declarations bad 变量声明后加空行
–blank-lines-after-procedures bap 函数结束后加空行
–blank-lines-before-block-comments bbb 块注释前加空行
–break-before-boolean-operator bbo 较长的行,在逻辑运算符前分行
–blank-lines-after-commas nbc 变量声明中,逗号分隔的变量不分行
–braces-after-if-line bl “if”和”{“分做两行
–brace-indent 0 bli0 “{“不继续缩进
–braces-after-struct-decl-line bls 定义结构,”struct”和”{“分行
–comment-indentationn c33 语句后注释开始于行33
–declaration-comment-columnn cd33 变量声明后注释开始于行33
–comment-delimiters-on-blank-lines ncdb 不将单行注释变为块注释
–cuddle-do-while ncdw “do — while”的”while”和其前面的”}”另起一行
–cuddle-else nce “else”和其前面的”}”另起一行
–case-indentation 0 cli0 switch中的case语句所进0个空格
–else-endif-columnn cp33 #else, #endif后面的注释开始于行33
–space-after-cast cs 在类型转换后面加空格
–line-comments-indentation n d0 单行注释(不从1列开始的),不向左缩进
–break-function-decl-args nbfda 关闭:函数的参数一个一行
–declaration-indentationn di2 变量声明,变量开始于2行,即不必对齐
–format-first-column-comments nfc1 不格式化起于第一行的注释
–format-all-comments nfca 不开启全部格式化注释的开关
–honour-newlines hnl Prefer to break long lines at the position of newlines in the input.
–indent-leveln i4 设置缩进多少字符,如果为tab的整数倍,用tab来缩进,否则用空格填充。
–parameter-indentationn ip5 旧风格的函数定义中参数说明缩进5个空格
–line-length 75 l75 非注释行最长75
–continue-at-parentheses lp 续行从上一行出现的括号开始
–space-after-procedure-calls pcs 函数和”(“之间插入一个空格
–space-after-parentheses nprs 在”(”后”)”前不插入空格
–procnames-start-lines psl 将函数名和返回类型放在两行定义
–space-after-for saf for后面有空格
–space-after-if sai if后面有空格
–space-after-while saw while后面有空格
–start-left-side-of-comments nsc 不在生成的块注释中加*
–swallow-optional-blank-lines nsob 不去掉可添加的空行
–space-special-semicolon nss 一行的for或while语句,在”;”前不加空。
–tab-size ts4 一个tab为4个空格(要能整除”-in”)
–use-tabs ut 使用tab来缩进

Linux 命令大全

(15) Linux- cut 命令

Linux cut命令

Linux 命令大全

Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。
语法

cut  [-bn] [file]
cut [-c] [file]
cut [-df] [file]

Shell

使用说明:

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

参数:

  • -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  • -c :以字符为单位进行分割。
  • -d :自定义分隔符,默认为制表符。
  • -f :与-d一起使用,指定显示哪个区域。
  • -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
    范围之内,该字符将被写出;否则,该字符将被排除

当你执行who命令时,会输出类似如下的内容:

$ who
rocrocket :0           2009-01-08 11:07
rocrocket pts/0        2009-01-08 11:23 (:0.0)
rocrocket pts/1        2009-01-08 14:15 (:0.0)

Shell

如果我们想提取每一行的第3个字节,就这样:

$ who|cut -b 3
c
c

Shell

Linux 命令大全

(16) Linux- ln 命令

Linux ln命令

Linux 命令大全

Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
语法

ln [参数][源文件或目录][目标文件或目录]

Shell

其中参数的格式为
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

[–help] [–version] [–]

命令功能 :
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

软链接

  • 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 2.软链接可以 跨文件系统 ,硬链接不可以
  • 3.软链接可以对一个不存在的文件名进行链接
  • 4.软链接可以对目录进行链接

硬链接

  • 1.硬链接,以文件副本的形式存在。但不占用实际空间。
  • 2.不允许给目录创建硬链接
  • 3.硬链接只有在同一个文件系统中才能创建

命令参数
必要参数

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

选择参数

  • -S “-S<字尾备份字符串> “或 “–suffix=<字尾备份字符串>”
  • -V “-V<备份方式>”或”–version-control=<备份方式>”
  • –help 显示帮助信息
  • –version 显示版本信息

给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:

ln -s log2013.log link2013

Shell

输出:

[root@localhost test]# ll
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

Shell

给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同

ln log2013.log ln2013

Shell

输出:

[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
[root@localhost test]# ln log2013.log ln2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 2 root bin      61 11-13 06:03 ln2013
-rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log

Shell

Linux 命令大全

(17) Linux- less 命令

Linux less命令

Linux 命令大全

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法

less [参数] 文件

Shell

参数说明

  • -b 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x 将”tab”键显示为规定的数字空格
  • /字符串:向下搜索”字符串”的功能
  • ?字符串:向上搜索”字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

1、查看文件

less log2013.log

Shell

2、ps查看进程信息并通过less分页显示

ps -ef |less

Shell

3、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less
22  scp -r tomcat6.0.32 [email protected]:/opt/soft
23  cd ..
24  scp -r web [email protected]:/opt/
25  cd soft
26  ls
……省略……

Shell

4、浏览多个文件

less log2013.log log2014.log

Shell

说明:

输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log
附加备注
1.全屏导航

  • ctrl + F – 向前移动一屏
  • ctrl + B – 向后移动一屏
  • ctrl + D – 向前移动半屏
  • ctrl + U – 向后移动半屏

2.单行导航

  • j – 向前移动一行
  • k – 向后移动一行

3.其它导航

  • G – 移动到最后一行
  • g – 移动到第一行
  • q / ZZ – 退出 less 命令

4.其它有用的命令

  • v – 使用配置的编辑器编辑当前文件
  • h – 显示 less 的帮助文档
  • &pattern – 仅显示匹配模式的行,而不是整个文件

5.标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

  • ma – 使用 a 标记文本的当前位置
  • ‘a – 导航到标记 a 处

Linux 命令大全

(18) Linux- locate 命令

Linux locate命令

Linux 命令大全

Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。

一般情况我们只需要输入 locate your_file_name 即可查找指定文件。
语法

locate [-d ][--help][--version][范本样式...]

Shell

参数:

  • -d或–database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
  • –help  在线帮助。
  • –version  显示版本信息。

查找passwd文件,输入以下命令:

locate passwd

Shell

附加说明
locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。

locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:

locate -u

Shell

Linux 命令大全

(19) Linux- lsattr 命令

Linux lsattr命令

Linux 命令大全

Linux lsattr命令用于显示文件属性。

用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。
语法

lsattr [-adlRvV][文件或目录...]

Shell

参数

  • -a  显示所有文件和目录,包括以”.”为名称开头字符的额外内建,现行目录”.”与上层目录”…”。
  • -d  显示,目录名称,而非其内容。
  • -l  此参数目前没有任何作用。
  • -R  递归处理,将指定目录下的所有文件及子目录一并处理。
  • -v  显示文件或目录版本。
  • -V  显示版本信息。

1、用chattr命令防止系统中某个关键文件被修改:

# chattr +i /etc/resolv.conf

Shell

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。

vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉:

chattr -i /etc/resolv.conf

Shell

使用 lsattr 命令来显示文件属性:

# lsattr /etc/resolv.conf

Shell

输出结果为:

----i-------- /etc/resolv.conf

Shell

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

# chattr +a /var/log/messages

Shell

Linux 命令大全

(20) Linux- mattrib 命令

Linux mattrib命令

Linux 命令大全

Linux mattrib命令用来变更或显示MS-DOS文件的属性。

mattrib为mtools工具指令,模拟MS-DOS的attrib指令,可变更MS-DOS文件的属性。
语法

mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] msdosfile [ msdosfiles ... ]

Shell

参数

  • -a/+a 除去/设定备份属性。
  • -h/+h 除去/设定隐藏属性。
  • -r/+r 除去/设定唯读属性。
  • -s/+s 除去/设定系统属性。
  • -/ 递回的处理包含所有子目录下的档案。
  • -X 以较短的格式输出结果。

列出 A 槽 MSDOS 格式磁片上所有文件的属性。

mattrib a:

Shell

除去 A 槽磁片上 msdos.sys 档案的隐藏、系统与唯读属性。

mattrib -h -s -r a:msdos.sys

Shell

除去 A 槽磁片上包含子目录下所有档案的唯读属性。

mattrib -r -/ a:*.*

Shell

Linux 命令大全

(21) Linux- mc 命令

Linux mc命令

Linux 命令大全

Linux mc命令用于提供一个菜单式的文件管理程序。

执行mc之后,将会看到菜单式的文件管理程序,共分成4个部分。
语法

mc [-abcdfhkPstuUVx][-C <参数>][-l <文件>][-v <文件>][目录]

Shell

参  数

  • -a  当mc程序画线时不用绘图字符画线。
  • -b  使用单色模式显示。
  • -c  使用彩色模式显示。
  • -C<参数>  指定显示的颜色。
  • -d  不使用鼠标。
  • -f  显示mc函数库所在的目录。
  • -h  显示帮助。
  • -k  重设softkeys成预设置。
  • -l<文件>  在指定文件中保存ftpfs对话窗的内容。
  • -P  程序结束时,列出最后的工作目录。
  • -s  用慢速的终端机模式显示,在这模式下将减少大量的绘图及文字显示。
  • -t  使用TEMPCAP变量设置终端机,而不使用预设置。
  • -u  不用目前的shell程序。
  • -U  使用目前的shell程序。
  • -v<文件>  使用mc的内部编辑器来显示指定的文件。
  • -V  显示版本信息。
  • -x  指定以xterm模式显示。

Linux MC 相关操作

命令按键 描 述
F9 or Esc+9 激活菜单栏
Tab 在两个窗口间移动
F10 or Esc+0 退出MC
Control-Enter or Alt-Enter 可以将文件名拷贝到命令行
F1 or Esc+1 打开帮助页面

虽然MC很好用,不过我还是建议大家使用命令行工具!

Linux 命令大全

(22) Linux- mdel 命令

Linux mdel命令

Linux 命令大全

Linux mdel命令用来删除 MSDOS 格式的档案。

在删除只读之前会有提示信息产生。
语法

mdel [-v] msdosfile [ msdosfiles ... ]

Shell

参数:

  • -v 显示更多的讯息。

将 A 槽磁片根目录中的 autoexec.bat 删除。

mdel a:autoexec.bat .

Shell

Linux 命令大全

(23) Linux- mdir 命令

Linux mdir命令

Linux 命令大全

Linux mdir命令用于显示MS-DOS目录。

mdir为mtools工具指令,模拟MS-DOS的dir指令,可显示MS-DOS文件系统中的目录内容。
语法

mdir [-afwx/][目录]

Shell

参数

  • -/ 显示目录下所有子目录与文件。
  • -a  显示隐藏文件。
  • -f  不显示磁盘所剩余的可用空间。
  • -w  仅显示目录或文件名称,并以横排方式呈现,以便一次能显示较多的目录或文件。
  • -X  仅显示目录下所有子目录与文件的完整路径,不显示其他信息。

显示a盘中的内容

$ mdir -/ a:\*

Shell

以上命令执行后,mdir将显示指定盘”a:\”中的所有子目录及其中的文件信息,如下所示:

Volume in drive A has no label  #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:\                   #以下为目录信息  
./TEST <DIR> 2011-08-23 16:59     
#显示格式为文件名,目录大小,修改时间  
AUTORUN.INF 265 2011-08-23 16:53  
AUTORUN.BAT 43 2011-08-23 16:56  
3 files 308 bytes               #统计总大小  
724 325 bytes free              #剩余空间

Shell

Linux 命令大全

(24) Linux- mktemp 命令

Linux mktemp命令

Linux 命令大全

Linux mktemp命令用于建立暂存文件。

mktemp建立的一个暂存文件,供shell script使用。
语法

mktemp [-qu][文件名参数]

Shell

参数

  • -q  执行时若发生错误,不会显示任何信息。
  • -u  暂存文件会在mktemp结束前先行删除。
  • [文件名参数]  文件名参数必须是以”自订名称.XXXXXX”的格式。

使用mktemp 命令生成临时文件时,文件名参数应当以”文件名.XXXX”的形式给出,mktemp 会根据文件名参数建立一个临时文件。在命令行提示符输入如下命令:

mktemp tmp.xxxx #生成临时文件

Shell

使用该命令后,可使用dir 或ls看当前目录,得到如下结果:

cmd@cmd-desktop:~$ mktemp tmp.xxxx #生成临时文件  
cmd@cmd-desktop:~$dir #查看当前目录  
file test testfile testfile1 tmp.3847 #生成了tmp.3847

Shell

由此可见,生成的临时文件为tmp.3847,其中,文件名参数中的”XXXX”被4 个随机产生的字符所取代。

Linux 命令大全

(25) Linux- more 命令

Linux more命令

Linux 命令大全

Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
语法

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

Shell

参数

  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数

逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。

more -s testfile

Shell

从第 20 行开始显示 testfile 之文档内容。

more +20 testfile

Shell

常用操作命令

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

Linux 命令大全

(26) Linux- mmove 命令

Linux mmove命令

Linux 命令大全

Linux mmove命令用于在MS-DOS文件系统中,移动文件或目录,或更改名称。

mmove为mtools工具命令,模拟MS-DOS的move命令,可在MS-DOS文件系统中移动现有的文件或目录,或是更改现有文件或目录的名称。
语法

mmove [源文件或目录...][目标文件或目录]

Shell

参数说明:

  • [目标文件或目录]:

    执行操作后的目标文件或目录路径

使用指令mmove将文件”autorun.bat”移动到目录”test”中,输入如下命令:

$ mmove autorun.bat test        #移动文件到目录test中

Shell

以上命令执行以后,指令mmove会将文件”autorun.bat”移动到指定目录”test”中。

注意:用户可以使用mdir指令查看移动后的文件或目录信息。

Linux 命令大全

(27) Linux- mread 命令

Linux mread命令

Linux 命令大全

Linux mread命令用于将MS-DOS文件复制到Linux/Unix的目录中。

mread为mtools工具命令,可将MS-DOS文件复制到Linux的文件系统中。这个命令目前已经不常用,一般都使用mcopy命令来代替。
语法

mread [MS-DOS文件...][Linux文件或目录]

Shell

参数说明:

使用指令mread将盘”a:\”中的所有内容复制到当前工作目录下,输入如下命令:

$ mread a:\* ./     #将a盘上的所有文件复制到当前工作目录

Shell

执行该命令前,可以先使用mdir命令查看原来的目录结构。执行mread之后,可使用ls命令再次查看复制之后的文件结构,结果如下所示:

$ mdir -/ a:\*      #查看a盘中的文件  
Volume in drive A has no label          #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:/                   #以下为目录信息  
./TEST <DIR> 2011-08-23 16:59         
#显示格式为文件名,目录大小,修改时间  
AUTORUN.INF 265 2011-08-23 16:53  
AUTORUN.BAT 43 2011-08-23 16:56  
3 files 308 bytes                       #统计总大小  
724 325 bytes free                  #剩余空间  
$ mread A:\* ./     #将a盘上所有文件复制到当前工作目录  
$ ls                                    #查看文件或子目录信息  
TEST AUTORUN.INF AUTORUN.BAT            #显示复制后的内容

Shell

Linux 命令大全

(28) Linux- mren 命令

Linux mren命令

Linux 命令大全

Linux mren命令用于更改MS-DOS文件或目录的名称,或是移动文件或目录。

mren为MS-DOS工具指令,与DOS下的ren指令相似,可以实现更改MS-DOS文件或目录名称。

源文件必须是磁盘上已经存在的文件,若忽略盘符及路径,则表示当前盘及当前目录的文件。

新文件名是所要更换的文件名称。新文件名称前不可以加与源文件不同的盘符及路径,因为该命令只能更改同一盘上的文件名称。
语法

mren [源文件或目录...][目标文件或目录]

Shell

参数说明:

  • 源文件或目录…:
    执行操作的源文件名或者源文件路径
  • [目标文件或目录]:
    执行操作的目标文件名或者目标文件路径

使用指令mren将a盘下的文件”autorun.bat”的文件名修改为”auto.bat”,输入如下命令:

$ mren a:\autorun.bat auto.bat  
#将文件autorun.bat重命名为auto.bat

Shell

使用该命令前后使用mdir命令查看并对比,得到结果如下:

$ mdir -/ a:\*                  #查看a盘中的文件  
Volume in drive A has no label  #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:\                   #以下为目录信息  
./TEST <DIR> 2011-08-23 16:59       #文件名,目录大小,修改时间  
AUTORUN.BAT 43 2011-08-23 16:56  
3 files 308 bytes                   #统计总大小  
724 325 bytes free              #剩余空间  
#将文件autorun.bat重命名为auto.bat  
$ mren a:\autorun.bat auto.bat        
$ mdir -/ a:\*                  #再次查看a盘中文件  
Volume in drive A has no label      #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:\                   #以下为目录信息  
./TEST <DIR> 2011-08-23 16:59       #文件名目录大小 修改时间  
#文件名被改为auto.bat,修改时间改为当前系统时间  
AUTO.BAT 43 2011-08-23 16:56          
3 files 308 bytes                   #统计总大小  
724 325 bytes free              #剩余空间

Shell

Linux 命令大全

(29) Linux- mtools 命令

Linux mtools命令

Linux 命令大全

Linux mtools命令用于显示mtools支持的指令。

mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令。这些指令都是mtools的符号连接,因此会有一些共同的特性。
语法

mtools

Shell

参数说明

  • -a  长文件名重复时自动更改目标文件的长文件名。
  • -A  短文件名重复但长文件名不同时自动更改目标文件的短文件名。
  • -o  长文件名重复时,将目标文件覆盖现有的文件。
  • -O  短文件名重复但长文件名不同时,将目标文件覆盖现有的文件。
  • -r  长文件名重复时,要求用户更改目标文件的长文件名。
  • -R  短文件名重复但长文件名不同时,要求用户更改目标文件的短文件名。
  • -s  长文件名重复时,则不处理该目标文件。
  • -S  短文件名重复但长文件名不同时,则不处理该目标文件。
  • -v  执行时显示详细的说明。
  • -V  显示版本信息。

显示 mtools软件包所支持的MS-DOS命令。

在命令提示符中直接输入mtools,可显示其所支持的MS-DOS命令,如下所示:

$ mtools #显示所支持的MS-DOS命令  
Supported commands: #命令列表  
mattrib, mbadblocks, mcat, mcd, mclasserase, mcopy, mdel, mdeltree  
mdir, mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount  
mpartition, mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype  
mwrite, mzip

Shell

Linux 命令大全

(30) Linux- mtoolstest 命令

Linux mtoolstest命令

Linux 命令大全

Linux mtoolstest命令用于测试并显示mtools的相关设置。

mtoolstest为mtools工具指令,可读取与分析mtools的配置文件,并在屏幕上显示结果。
语法

mtoolstest

Shell

在命令行中直接输入mtoolstest,即可显示mtools软件包当前的配置信息,结果如下:

$ mtoolstest #显示mtools 软件包当前的配置信息  
drive J: #mtools软件包当前的配置信息列表  
#fn=0 mode=0 builtin  
file="/dev/sdb4" fat_bits=16 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x0 
partition=0 
mformat_only  
drive Z:  
#fn=0 mode=0 builtin  
file="/dev/sdb4" fat_bits=16 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x0 
partition=0 
mformat_only  
drive X:  
#fn=0 mode=0 builtin  
file="$DISPLAY" fat_bits=0 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x0 
partition=0 
drive A:  
#fn=2 mode=128 defined in /etc/mtools.conf  
file="/dev/fd0" fat_bits=0 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x0 
partition=0 
exclusive  
drive B:  
#fn=2 mode=128 defined in /etc/mtools.conf  
file="/dev/fd1" fat_bits=0 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x0 
partition=0 
exclusive  
drive M:  
#fn=2 mode=0 defined in /etc/mtools.conf  
file="/var/lib/dosemu/hdimage.first" fat_bits=0 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x80 
partition=1 
drive N:  
#fn=2 mode=0 defined in /etc/mtools.conf  
file="/var/lib/dosemu/fdimage" fat_bits=0 
tracks=0 heads=0 sectors=0 hidden=0 
offset=0x0 
partition=0 
mtools_fat_compatibility=0 
mtools_skip_check=0 
mtools_lower_case=0

Shell

Linux 命令大全

(31) Linux- mv 命令

Linux mv 命令

Linux 命令大全

Linux mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法

mv [options] source dest
mv [options] source... directory

Shell

参数说明

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

mv参数设置与运行结果

命令格式 运行结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv 目录名 文件名 出错

将文件 aaa 更名为 bbb :

mv aaa bbb

Shell

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs

Shell

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/student/*  .

Shell

Linux 命令大全

(32) Linux- od 命令

Linux od命令

Linux 命令大全

Linux od命令用于输出文件内容。

od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。
语法

od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]

Shell

参数

  • -a  此参数的效果和同时指定”-ta”参数相同。
  • -A<字码基数>  选择要以何种基数计算字码。
  • -b  此参数的效果和同时指定”-toC”参数相同。
  • -c  此参数的效果和同时指定”-tC”参数相同。
  • -d  此参数的效果和同时指定”-tu2″参数相同。
  • -f  此参数的效果和同时指定”-tfF”参数相同。
  • -h  此参数的效果和同时指定”-tx2″参数相同。
  • -i  此参数的效果和同时指定”-td2″参数相同。
  • -j<字符数目>或–skip-bytes=<字符数目>  略过设置的字符数目。
  • -l  此参数的效果和同时指定”-td4″参数相同。
  • -N<字符数目>或–read-bytes=<字符数目>  到设置的字符数目为止。
  • -o  此参数的效果和同时指定”-to2″参数相同。
  • -s<字符串字符数>或–strings=<字符串字符数>  只显示符合指定的字符数目的字符串。
  • -t<输出格式>或–format=<输出格式>  设置输出格式。
  • -v或–output-duplicates  输出时不省略重复的数据。
  • -w<每列字符数>或–width=<每列字符数>  设置每列的最大字符数。
  • -x  此参数的效果和同时指定”-h”参数相同。
  • –help  在线帮助。
  • –version  显示版本信息。

创建 tmp 文件:

$ echo abcdef g > tmp
$ cat tmp
abcdef g

Shell

使用 od 命令:

$ od -b tmp
0000000 141 142 143 144 145 146 040 147 012
0000011

Shell

使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节:

$ od -c tmp
0000000   a   b   c   d   e   f       g  \n
0000011

Shell

使用ASCII码进行输出,注意其中包括转义字符

$ od -t d1 tmp
0000000   97   98   99  100  101  102   32  103   10
0000011

Shell

使用单字节十进制进行解释

$ od -A d -c tmp
0000000   a   b   c   d   e   f       g  \n
0000009

Shell

Linux 命令大全

(33) Linux- paste 命令

Linux paste命令

Linux 命令大全

Linux paste 命令用于合并文件的列。

paste 指令会把每个文件以列对列的方式,一列列地加以合并。
语法

paste [-s][-d <间隔字符>][--help][--version][文件...]

Shell

参数

  • -d<间隔字符>或–delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
  • -s或–serial  串列进行而非平行处理。
  • –help  在线帮助。
  • –version  显示帮助信息。
  • [文件…] 指定操作的文件路径

使用paste指令将文件”file”、”testfile”、”testfile1″进行合并,输入如下命令:

paste file testfile testfile1 #合并指定文件的内容

Shell

但是,在执行以上命令之前,首先使用”cat”指令对3个文件内容进行查看,显示如下所示:

$ cat file                  #file文件的内容  
xiongdan 200  
lihaihui 233  
lymlrl 231  
$ cat testfile              #testfile文件的内容  
liangyuanm  ss  
$ cat testfile1             #testfile1文件的内容  
huanggai 56  
zhixi 73

Shell

当合并指令”$ paste file testfile testfile1″执行后,程序界面中将显示合并后的文件内容,如下所示:

xiongdan 200  
lihaihui 233  
lymlrl 231  
liangyuanm  ss  
huanggai 56  
zhixi 73

Shell

若使用paste指令的参数”-s”,则可以将一个文件中的多行数据合并为一行进行显示。例如,将文件”file”中的3行数据合并为一行数据进行显示,输入如下命令

$ paste -s file             #合并指定文件的多行数据

Shell

上面的命令执行后,显示的数据内容如下所示:

xiongdan 200 lihaihui 233 lymlrl 231

Shell

注意:参数”-s”只是将testfile文件的内容调整显示方式,并不会改变原文件的内容格式。

Linux 命令大全

(34) Linux- patch 命令

Linux patch命令

Linux 命令大全

Linux patch命令用于修补文件。

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。
语法

patch [-bceEflnNRstTuvZ][-B <备份字首字符串>][-d <工作目录>][-D <标示符号>][-F <监别列数>][-g <控制数值>][-i <修补文件>][-o <输出文件>][-p <剥离层级>][-r <拒绝文件>][-V <备份方式>][-Y <备份字首字符串>][-z <备份字尾字符串>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件 <修补文件>] 或 path [-p <剥离层级>] < [修补文件]

Shell

参数

  • -b或–backup  备份每一个原始文件。
  • -B<备份字首字符串>或–prefix=<备份字首字符串>  设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。
  • -c或–context  把修补数据解译成关联性的差异。
  • -d<工作目录>或–directory=<工作目录>  设置工作目录。
  • -D<标示符号>或–ifdef=<标示符号>  用指定的符号把改变的地方标示出来。
  • -e或–ed  把修补数据解译成ed指令可用的叙述文件。
  • -E或–remove-empty-files  若修补过后输出的文件其内容是一片空白,则移除该文件。
  • -f或–force  此参数的效果和指定”-t”参数类似,但会假设修补数据的版本为新 版本。
  • -F<监别列数>或–fuzz<监别列数>  设置监别列数的最大值。
  • -g<控制数值>或–get=<控制数值>  设置以RSC或SCCS控制修补作业。
  • -i<修补文件>或–input=<修补文件>  读取指定的修补文件。
  • -l或–ignore-whitespace  忽略修补数据与输入数据的跳格,空格字符。
  • -n或–normal  把修补数据解译成一般性的差异。
  • -N或–forward  忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使 用过。
  • -o<输出文件>或–output=<输出文件>  设置输出文件的名称,修补过的文件会以该名称存放。
  • -p<剥离层级>或–strip=<剥离层级>  设置欲剥离几层路径名称。
  • -f<拒绝文件>或–reject-file=<拒绝文件>  设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej。
  • -R或–reverse  假设修补数据是由新旧文件交换位置而产生。
  • -s或–quiet或–silent  不显示指令执行过程,除非发生错误。
  • -t或–batch  自动略过错误,不询问任何问题。
  • -T或–set-time  此参数的效果和指定”-Z”参数类似,但以本地时间为主。
  • -u或–unified  把修补数据解译成一致化的差异。
  • -v或–version  显示版本信息。
  • -V<备份方式>或–version-control=<备份方式>  用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用”-z”参数变更,当使用”-V”参数指定不同备份方式时,也会产生不同字尾的备份字符串。
  • -Y<备份字首字符串>或–basename-prefix=–<备份字首字符串>  设置文件备份时,附加在文件基本名称开头的字首字符串。
  • -z<备份字尾字符串>或–suffix=<备份字尾字符串>  此参数的效果和指定”-B”参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,加上”backup/”字符串后,文件super.c会备份于/src/linux/fs/backup目录里。
  • -Z或–set-utc  把修补过的文件更改,存取时间设为UTC。
  • –backup-if-mismatch  在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件。
  • –binary  以二进制模式读写数据,而不通过标准输出设备。
  • –help  在线帮助。
  • –nobackup-if-mismatch  在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件。
  • –verbose  详细显示指令的执行过程。

使用patch指令将文件”testfile1″升级,其升级补丁文件为”testfile.patch”,输入如下命令:

$ patch -p0 testfile1 testfile.patch    #使用补丁程序升级文件

Shell

使用该命令前,可以先使用指令”cat”查看”testfile1″的内容。在需要修改升级的文件与原文件之间使用指令”diff”比较可以生成补丁文件。具体操作如下所示:

$ cat testfile1                 #查看testfile1的内容  
Hello,This is the firstfile!  
$ cat testfile2                 #查看testfile2的内容  
Hello,Thisisthesecondfile!  
$ diff testfile1 testfile2          #比较两个文件  
1c1  
<Hello,Thisisthefirstfile!  
---  
>Hello,Thisisthesecondfile!  
#将比较结果保存到tetsfile.patch文件  
$ diff testfile1 testfile2>testfile.patch     
$ cat testfile.patch                #查看补丁包的内容  
1c1  
<Hello,Thisisthefirstfile!  
---  
>Hello,Thisisthesecondfile!  
#使用补丁包升级testfile1文件  
$ patch -p0 testfile1 testfile.patch      
patching file testfile1  
$cat testfile1                  #再次查看testfile1的内容  
#testfile1文件被修改为与testfile2一样的内容  
Hello,This is the secondfile!

Shell

注意:上述命令代码中,”$ diff testfile1 testfile2>testfile. patch”所使用的操作符”>”表示将该操作符左边的文件数据写入到右边所指向的文件中。在这里,即是指将两个文件比较后的结果写入到文件”testfile.patch”中。

Linux 命令大全

(35) Linux- rcp 命令

Linux rcp命令

Linux 命令大全

Linux rcp命令用于复制远程文件或目录。

rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
语法

rcp [-pr][源文件或目录][目标文件或目录]

Shell

rcp [-pr][源文件或目录...][目标文件]

Shell

参数

-p  保留源文件或目录的属性,包括拥有者,所属群组,权限与时间。

-r  递归处理,将指定目录下的文件与子目录一并处理。

使用rcp指令复制远程文件到本地进行保存。

设本地主机当前账户为rootlocal,远程主机账户为root,要将远程主机(218.6.132.5)主目录下的文件”testfile”复制到本地目录”test”中,则输入如下命令:

rcp [email protected]:./testfile testfile  #复制远程文件到本地  
rcp [email protected]:home/rootlocal/testfile testfile  
#要求当前登录账户cmd 登录到远程主机  
rcp 218.6.132.5:./testfile testfile

Shell

注意:指令”rcp”执行以后不会有返回信息,仅需要在目录”test”下查看是否存在文件”testfile”。若存在,则表示远程复制操作成功,否则远程复制操作失败。

Linux 命令大全

(36) Linux- rm 命令

Linux rm命令

Linux 命令大全

Linux rm命令用于删除一个文件或者目录。
语法

rm [options] name...

Shell

参数

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

删除文件可以直接使用rm命令,若删除目录则必须配合选项”-r”,例如:

# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y  
# rm  homework  
rm: 无法删除目录"homework": 是一个目录  
# rm  -r  homework  
rm:是否删除 目录 "homework"? y

Shell

删除当前目录下的所有文件及目录,命令行为:

rm  -r  *

Shell

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

Linux 命令大全

(37) Linux- slocate 命令

Linux slocate命令

Linux 命令大全

Linux slocate命令查找文件或目录。

slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
语法

slocate [-u][--help][--version][-d <目录>][查找的文件]

Shell

参数

  • -d<目录>或–database=<目录>  指定数据库所在的目录。
  • -u  更新slocate数据库。
  • –help  显示帮助。
  • –version  显示版本信息。

使用指令”slocate”显示文件名中含有关键字”fdisk”的文件路径信息,输入如下命令:

$ slocate fdisk #显示文件名中含有fdisk关键字的文件的路径信息

Shell

执行以上命令后,指令执行的输出信息如下:

$ slocate fdisk #显示文件名中含有fdisk 关键字的文件的路径信息  
/root/cfdisk        #搜索到的文件路径列表  
/root/fdisk  
/root/sfdisk  
/usr/include/grub/ieee1275/ofdisk.h  
/usr/share/doc/util-Linux/README.cfdisk  
/usr/share/doc/util-Linux/README.fdisk.gz  
/usr/share/doc/util-Linux/examples/sfdisk.examples.gz

Shell

Linux 命令大全

(38) Linux- split 命令

Linux split命令

Linux 命令大全

Linux split命令用于将一个文件分割成数个。

该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。
语法

split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

Shell

参数说明

  • -<行数> :
    指定每多少行切成一个小文件
  • -b<字节> :
    指定每多少字节切成一个小文件
  • –help :
    在线帮助
  • –version :
    显示版本信息
  • -C<字节> :
    与参数”-b”相似,但是在切
    割时将尽量维持每行的完整性
  • [输出文件名] :
    设置切割后文件的前置文件名,
    split会自动在前置文件名后再加上编号

使用指令”split”将文件”README”每6行切割成一个文件,输入如下命令:

$ split -6 README       #将README文件每六行分割成一个文件

Shell

以上命令执行后,指令”split”会将原来的大文件”README”切割成多个以”x”开头的小文件。而在这些小文件中,每个文件都只有6行内容。

使用指令”ls”查看当前目录结构,如下所示:

$ ls                                #执行ls指令  
#获得当前目录结构  
README xaa xad xag xab xae xah xac xaf xai

Shell

Linux 命令大全

(39) Linux- tee 命令

Linux tee命令

Linux 命令大全

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
语法

tee [-ai][--help][--version][文件...]

Shell

参数

  • -a或–append  附加到既有文件的后面,而非覆盖它.
  • -i或–ignore-interrupts  忽略中断信号。
  • –help  在线帮助。
  • –version  显示版本信息。

使用指令”tee”将用户输入的数据同时保存到文件”file1″和”file2″中,输入如下命令:

$ tee file1 file2                   #在两个文件中复制内容

Shell

以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示:

My Linux                        #提示用户输入数据  
My Linux                        #输出数据,进行输出反馈

Shell

此时,可以分别打开文件”file1″和”file2″,查看其内容是否均是”My Linux”即可判断指令”tee”是否执行成功。

Linux 命令大全

(40) Linux- tmpwatch 命令

Linux tmpwatch命令

Linux 命令大全

Linux tmpwatch命令用于删除暂存文件。

执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。
语法

tmpwatch [-afqv][--test][超期时间][目录...]

Shell

参数

  • -a或–all  删除任何类型的文件。
  • -f或–force  强制删除文件或目录,其效果类似rm指令的”-f”参数。
  • -q或–quiet  不显示指令执行过程。
  • -v或–verbose  详细显示指令执行过程。
  • -test  仅作测试,并不真的删除文件或目录。

使用指令”tmpwatch”删除目录”/tmp”中超过一天未使用的文件,输入如下命令:

$ tmpwatch 24 /tmp/ #删除/tmp目录中超过一天未使用的文件

Shell

以上命令执行后,其执行结果如下所示:

removing directctmp/orbit-tom if not empty

Shell

注意:该指令需要root权限,因此在使用tmpwatch命令前应该使用su命令切换用户。切换管理权限操作如下所示:

$ su                                #切换到root用户  
口令:**********                   #输入用户密码

Shell

Linux 命令大全

(41) Linux- touch 命令

Linux touch命令

Linux 命令大全

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

ls -l 可以显示档案的时间记录。
语法

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

Shell

  • 参数说明
  • a 改变档案的读取时间记录。
  • m 改变档案的修改时间记录。
  • c 假如目的档案不存在,不会建立新的档案。与 –no-create 的效果一样。
  • f 不使用,是为了与其他 unix 系统的相容性而保留。
  • r 使用参考档的时间记录,与 –file 的效果一样。
  • d 设定时间与日期,可以使用各种不同的格式。
  • t 设定档案的时间记录,格式与 date 指令相同。
  • –no-create 不会建立新档案。
  • –help 列出指令格式。
  • –version 列出版本讯息。

使用指令”touch”修改文件”testfile”的时间属性为当前系统时间,输入如下命令:

$ touch testfile                #修改文件的时间属性

Shell

首先,使用ls命令查看testfile文件的属性,如下所示:

$ ls -l testfile                #查看文件的时间属性  
#原来文件的修改时间为16:09  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile

Shell

执行指令”touch”修改文件属性以后,并再次查看该文件的时间属性,如下所示:

$ touch testfile                #修改文件时间属性为当前系统时间  
$ ls -l testfile                #查看文件的时间属性  
#修改后文件的时间属性为当前系统时间  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile

Shell

使用指令”touch”时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件”file”,输入如下命令:

$ touch file            #创建一个名为“file”的新的空白文件

Shell

Linux 命令大全

(42) Linux- umask 命令

Linux umask命令

Linux 命令大全

Linux umask命令指定在建立文件时预设的权限掩码。

umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
语法

umask [-S][权限掩码]

Shell

参数说明

-S  以文字的方式来表示权限掩码。

使用指令”umask”查看当前权限掩码,则输入下面的命令:

$ umask                         #获取当前权限掩码

Shell

执行上面的指令后,输出信息如下:

0022

Shell

接下来,使用指令”mkdir”创建一个目录,并使用指令”ls”获取该目录的详细信息,输入命令如下:

$ mkdir test1                       #创建目录  
$ ls –d –l test1/                   #显示目录的详细信息

Shell

执行上面的命令后,将显示新创建目录的详细信息,如下所示:

drwxr-xr-x 2 rootlocal rootlocal 4096 2011-9-19 21:46 test1/

Shell

注意:在上面的输出信息中,”drwxr-xr-x”=”777-022=755″。

Linux 命令大全

(43) Linux- which 命令

Linux which命令

Linux 命令大全

Linux which命令用于查找文件。

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法

which [文件...]

Shell

参数

  • -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
  • -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
  • -w  指定输出时栏位的宽度。
  • -V  显示版本信息。

使用指令”which”查看指令”bash”的绝对路径,输入如下命令:

$ which bash

Shell

上面的指令执行后,输出信息如下所示:

/bin/bash                   #bash可执行程序的绝对路径

Shell

Linux 命令大全

(44) Linux- cp 命令

Linux cp命令

Linux 命令大全

Linux cp命令主要用于复制文件或目录。
语法

cp [options] source dest

Shell

cp [options] source... directory

Shell

参数说明

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

使用指令”cp”将当前目录”test/”下的所有文件复制到新目录”newtest”下,输入如下命令:

$ cp –r test/ newtest

Shell

注意:用户使用该指令复制目录时,必须使用参数”-r”或者”-R”。

Linux 命令大全

(45) Linux- whereis 命令

Linux whereis命令

Linux 命令大全

Linux whereis命令用于查找文件。

该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

语法

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

Shell

参数

-b  只查找二进制文件。

-B<目录>  只在设置的目录下查找二进制文件。

-f  不显示文件名前的路径名称。

-m  只查找说明文件。

-M<目录>  只在设置的目录下查找说明文件。

-s  只查找原始代码文件。

-S<目录>  只在设置的目录下查找原始代码文件。

-u  查找不包含指定类型的文件。

使用指令”whereis”查看指令”bash”的位置,输入如下命令:

$ whereis bash

Shell

上面的指令执行后,输出信息如下所示:

bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz

Shell

注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。

如果用户需要单独查询二进制文件或帮助文件,可使用如下命令:

$ whereis -b bash 
$ whereis -m bash

Shell

输出信息如下:

$ whereis -b bash               #显示bash 命令的二进制程序  
bash: /bin/bash /etc/bash.bashrc /usr/share/bash    # bash命令的二进制程序的地址  
$ whereis -m bash               #显示bash 命令的帮助文件  
bash: /usr/share/man/man1/bash.1.gz  #bash命令的帮助文件地址

Shell

Linux 命令大全

(46) Linux- mcopy 命令

Linux mcopy命令

Linux 命令大全

Linux mcopy命令用来复制 MSDOS 格式文件到 Linux 中,或是由 Linux 中复制 MSDOS 文件到磁片上。

mcopy 可复制单一的文件到所指定的文件名称,或是复制数个文件到所指定的目录之中。来源与目的文件可为 MSDOS 或是 Linux 文件。

mcopy指令是一种mtools工具指令,可以在DOS系统中复制文件或者在DOS与Linux操作系统之间进行文件复制。
语法

mcopy [-bnmpQt/][源文件][目标文件或目录]

Shell

参数

  • b 批处理模式。这是为大量的文件复制进行最佳化的选项,但是当在复制文件过程中产生 crash 时,会有安全性的问题产生。/ 递回的复制。包含目录所含文件与其下所有子目录中的文件。
  • -n 覆盖其他文件时,不需要进行确认而直接覆盖
  • m 将源文件修改时间设置为目标文件的修改时间。
  • p 将源文件的属性设置为目标文件的属性。
  • Q 当复制多个文件产生错误时,尽快结束程序。
  • t 转换为文本文件。
  • o 在覆盖 MSDOS 文件时不会出现警示讯息。

将 A 盘根目录中的 autoexec.bat 复制到目前工作目录之下:

mcopy a:autoexec.bat .

Shell

当复制的内容包括子目录和文件时,必须使用参数”-/”递归操作,因此该命令为:

mcopy -/ A:\*

Shell

执行该命令前先使用mdir 命令查看原来的目录结构,执行mcopy 之后可使用ls 命令查看复制之后Linux系统中的文件结构,结果如下:

cmd@cmd-desktop:~$ mdir -/ a:\* #查看A 盘中的文件  
Volume in drive A has no label #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:/ #以下为目录信息  
#文件名目录大小 修改时间  
./TEST <DIR> 2009-09-23 16:59  
AUTORUN.INF 265 2009-09-23 16:53  
AUTORUN.BAT 43 2009-09-23 16:56  
3 files 308 bytes #统计总大小  
724 325 bytes free #剩余空间  
cmd@cmd-desktop:~$ mcopy -/ A:\* #将A盘上的所有文件复制到当前工作目录  
cmd@cmd-desktop:~$ls  
TEST AUTORUN.INF AUTORUN.BAT #A盘中的内容复制到Linux文件系统结构中

Shell

Linux 命令大全

(47) Linux- mshowfat 命令

Linux mshowfat命令

Linux 命令大全

Linux mshowfat命令用于显示MS-DOS文件在FAT中的记录。

mshowfat为mtools工具指令,可显示MS-DOS文件在FAT中的记录编号。
语法

mshowfat [文件...]

Shell

参数说明:

[文件…]:
执行操作的文件相对路径或者绝对路径

使用指令mshowfat查看文件”autorun.bat”的FAT信息,输入如下命令:
>

$ mshowfat autorun.bat

Shell

以上命令执行后,文件”autorun.bat”的FAT相关信息将会被显示出来。

注意:执行操作的文件必须是DOS文件系统下的文件。

Linux 命令大全

(48) Linux- rhmask 命令

Linux rhmask命令

Linux rhmask命令
Linux 命令大全

Linux rhmask命令用于对文件进行加密和解密操作。

执行rhmask指令可制作加密过的文件,方便用户在公开的网络上传输该文件,而不至于被任意盗用。
语法

rhmask [加密文件][输出文件] 或 rhmask [-d][加密文件][源文件][输出文件]

Shell

参数

  • -d  产生加密过的文件。

使用指令”rhmask”将加密文件”code.txt”进行加密后,另存为输出文件”demo.txt”,输入如下命令:

$ rhmask code.txt demo.txt

Shell

以上命令执行后,文件”code.txt”将被加密后,另存为已经加密的文件”demo.txt”。

注意:该指令有两种语法,用户可以有选择性地进行使用即可。

Linux 命令大全

(49) Linux- scp 命令

Linux scp命令

Linux 命令大全

Linux scp 命令用于 Linux 之间复制文件和目录。

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2

Shell

简易写法:

scp [可选参数] file_source file_target

Shell

参数说明:

  • -1:
    强制scp命令使用协议ssh1
  • -2:
    强制scp命令使用协议ssh2
  • -4:
    强制scp命令只使用IPv4寻址
  • -6:
    强制scp命令只使用IPv6寻址
  • -B:
    使用批处理模式(传输过程中不询问传输口令或短语)
  • -C:
    允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q:
    不显示传输进度条。
  • -r:
    递归复制整个目录。
  • -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
  • -c cipher:
    以cipher将数据传输进行加密,这个选项将直接传递给ssh。
  • -F ssh_config:
    指定一个替代的ssh配置文件,此参数直接传递给ssh。
  • -i identity_file:
    从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
  • -l limit:
    限定用户所能使用的带宽,以Kbit/s为单位。
  • -o ssh_option:
    如果习惯于使用ssh_config(5)中的参数传递方式,
  • -P port:注意是大写的P, port是指定数据传输用到的端口号
  • -S program:
    指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

1、从本地复制到远程
命令格式:

scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file

Shell

  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
  • 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

应用实例:

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music 
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3 
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music 
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3

Shell

复制目录命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder 
或者 
scp -r local_folder remote_ip:remote_folder

Shell

  • 第1个指定了用户名,命令执行后需要再输入密码;
  • 第2个没有指定用户名,命令执行后需要输入用户名和密码;

应用实例:

scp -r /home/space/music/ [email protected]:/home/root/others/ 
scp -r /home/space/music/ www.runoob.com:/home/root/others/

Shell

上面命令将本地 music 目录复制到远程 others 目录下。
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例

应用实例:

scp [email protected]:/home/root/others/music /home/space/music/1.mp3 
scp -r www.runoob.com:/home/root/others/ /home/space/music/

Shell

说明
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:

#scp 命令使用端口号 4588
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator

Shell

2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

Linux 命令大全

(50) Linux- awk 命令

Linux awk 命令

Linux 命令大全

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
语法

awk [选项参数] 'script' var=value file(s)awk [选项参数] -f scriptfile var=value file(s)

Shell

选项参数说明:

  • -F fs or –field-separator fs
    指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
  • -v var=value or –asign var=value
    赋值一个用户定义变量。
  • -f scripfile or –file scriptfile
    从脚本文件中读取awk命令。
  • -mf nnn and -mr nnn
    对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
  • -W compact or –compat, -W traditional or –traditional
    在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。
  • -W copyleft or –copyleft, -W copyright or –copyright
    打印简短的版权信息。
  • -W help or –help, -W usage or –usage
    打印全部awk选项和每个选项的简短说明。
  • -W lint or –lint
    打印不能向传统unix平台移植的结构的警告。
  • -W lint-old or –lint-old
    打印关于不能向传统unix平台移植的结构的警告。
  • -W posix
    打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符=不能代替=;fflush无效。
  • -W re-interval or –re-inerval
    允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。
  • -W source program-text or –source program-text
    使用program-text作为源代码,可与-f命令混用。
  • -W version or –version
    打印bug报告信息的版本。

文章目录

1 基本用法
2 运算符
3 内建变量
4 使用正则,字符串匹配
5 忽略大小写
6 模式取反
7 awk脚本
8 另外一些实例
1 基本用法

log.txt文本内容如下:

2 this is a test
3 Are you like awk
This's a test
10 There are orange,apple,mongo

Shell

用法一:

awk '{[pattern] action}' {
     filenames}   # 行匹配语句 awk '' 只能用单引号

Shell

实例:

# 每行按空格或TAB分割,输出文本中的1、4项
 $ awk '{print $1,$4}' log.txt
 ---------------------------------------------
 2 a
 3 like
 This's
 10 orange,apple,mongo
 # 格式化输出
 $ awk '{
     printf "%-8s %-10s\n",$1,$4}' log.txt
 ---------------------------------------------
 2        a
 3        like
 This's
 10       orange,apple,mongo

Shell

用法二:

awk -F  #-F相当于内置变量FS, 指定分割字符

Shell

实例:

# 使用","分割
 $  awk -F, '{print $1,$2}'   log.txt
 ---------------------------------------------
 2 this is a test
 3 Are you like awk
 This's a test
 10 There are orange apple
 # 或者使用内建变量
 $ awk 'BEGIN{
     FS=","} {
     print $1,$2}'     log.txt
 ---------------------------------------------
 2 this is a test
 3 Are you like awk
 This's a test
 10 There are orange apple
 # 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
 $ awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt
 ---------------------------------------------
 2 this test
 3 Are awk
 This's a
 10 There apple

Shell

用法三:

awk -v  # 设置变量

Shell

实例:

$ awk -va=1 '{print $1,$1+a}' log.txt
 ---------------------------------------------
 2 3
 3 4
 This's 1
 10 11
 $ awk -va=1 -vb=s '{
     print $1,$1+a,$1b}' log.txt
 ---------------------------------------------
 2 3 2s
 3 4 3s
 This's 1 This'ss
 10 11 10s

Shell

用法四:

awk -f {
     awk脚本} {
     文件名}

Shell

实例:

$ awk -f cal.awk log.txt

Shell


2 运算符
运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ 和 !~ 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ – 加,减
* / % 乘,除与求余
+ – ! 一元加,减和逻辑非
^ *** 求幂
++ — 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员

过滤第一列大于2的行

$ awk '$1>2' log.txt    #命令
#输出
3 Are you like awk
This's a test
10 There are orange,apple,mongo

Shell

过滤第一列等于2的行

$ awk '$1==2 {print $1,$3}' log.txt    #命令
#输出
2 is

Shell

过滤第一列大于2并且第二列等于’Are’的行

$ awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt    #命令
#输出
3 Are you

Shell


3 内建变量
变量 描述
$n 当前记录的第n个字段,字段间由FS分隔
$0 完整的输入记录
ARGC 命令行参数的数目
ARGIND 命令行中当前文件的位置(从0开始算)
ARGV 包含命令行参数的数组
CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组
ERRNO 最后一个系统错误的描述
FIELDWIDTHS 字段宽度列表(用空格键分隔)
FILENAME 当前文件名
FNR 各文件分别计数的行号
FS 字段分隔符(默认是任何空格)
IGNORECASE 如果为真,则进行忽略大小写的匹配
NF 一条记录的字段的数目
NR 已经读出的记录数,就是行号,从1开始
OFMT 数字的输出格式(默认值是%.6g)
OFS 输出记录分隔符(输出换行符),输出时用指定的符号代替换行符
ORS 输出记录分隔符(默认值是一个换行符)
RLENGTH 由match函数所匹配的字符串的长度
RS 记录分隔符(默认是一个换行符)
RSTART 由match函数所匹配的字符串的第一个位置
SUBSEP 数组下标分隔符(默认值是/034)
$ awk 'BEGIN{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";printf "---------------------------------------------\n"} {printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}'  log.txt
FILENAME ARGC  FNR   FS   NF   NR  OFS  ORS   RS
---------------------------------------------
log.txt    2    1         5    1
log.txt    2    2         5    2
log.txt    2    3         3    3
log.txt    2    4         4    4
$ awk -F\' 'BEGIN{
     printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";printf "---------------------------------------------\n"} {
     printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}'  log.txt
FILENAME ARGC  FNR   FS   NF   NR  OFS  ORS   RS
---------------------------------------------
log.txt    2    1    '    1    1
log.txt    2    2    '    1    2
log.txt    2    3    '    2    3
log.txt    2    4    '    1    4
# 输出顺序号 NR, 匹配文本行号
$ awk '{
     print NR,FNR,$1,$2,$3}' log.txt
---------------------------------------------
1 1 2 this is
2 2 3 Are you
3 3 This's a test
4 4 10 There are
# 指定输出分割符
$  awk '{print $1,$2,$5}' OFS=" $ "  log.txt
---------------------------------------------
2 $ this $ test
3 $ Are $ awk
This's $ a $
10 $ There $

Shell


4 使用正则,字符串匹配
# 输出第二列包含 "th",并打印第二列与第四列
$ awk '$2 ~ /th/ {print $2,$4}' log.txt
---------------------------------------------
this a

Shell

~ 表示模式开始。// 中是模式。

# 输出包含"re" 的行
$ awk '/re/ ' log.txt
---------------------------------------------
3 Are you like awk
10 There are orange,apple,mongo

Shell


5 忽略大小写
$ awk 'BEGIN{IGNORECASE=1} /this/' log.txt
---------------------------------------------
2 this is a test
This's a test

Shell


6 模式取反
$ awk '$2 !~ /th/ {print $2,$4}' log.txt
---------------------------------------------
Are like
a
There orange,apple,mongo
$ awk '!/th/ {print $2,$4}' log.txt
---------------------------------------------
Are like
a
There orange,apple,mongo

Shell


7 awk脚本

关于awk脚本,我们需要注意两个关键词BEGIN和END。

  • BEGIN{ 这里面放的是执行前的语句 }
  • END {这里面放的是处理完所有的行后要执行的语句 }
  • {这里面放的是处理每一行时要执行的语句}

假设有这么一个文件(学生成绩表):

$ cat score.txt
Marry   2143 78 84 77
Jack    2321 66 78 45
Tom     2122 48 77 71
Mike    2537 87 97 95
Bob     2415 40 57 62

Shell

我们的awk脚本如下:

$ cat cal.awk
#!/bin/awk -f
#运行前
BEGIN {
     
    math = 0
    english = 0
    computer = 0
 
    printf "NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL\n"
    printf "---------------------------------------------\n"
}
#运行中
{
     
    math+=$3
    english+=$4
    computer+=$5
    printf "%-6s %-6s %4d %8d %8d %8d\n", $1, $2, $3,$4,$5, $3+$4+$5
}
#运行后
END {
     
    printf "---------------------------------------------\n"
    printf "  TOTAL:%10d %8d %8d \n", math, english, computer
    printf "AVERAGE:%10.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR
}

Shell

我们来看一下执行结果:

$ awk -f cal.awk score.txt
NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL
---------------------------------------------
Marry  2143     78       84       77      239
Jack   2321     66       78       45      189
Tom    2122     48       77       71      196
Mike   2537     87       97       95      279
Bob    2415     40       57       62      159
---------------------------------------------
  TOTAL:       319      393      350
AVERAGE:     63.80    78.60    70.00

Shell


8 另外一些实例

AWK的hello world程序为:

BEGIN {
      print "Hello, world!" }

Shell

计算文件大小

$ ls -l *.txt | awk '{sum+=$6} END {print sum}'
--------------------------------------------------
666581

Shell

从文件中找出长度大于80的行

awk 'length>80' log.txt

Shell

打印九九乘法表

seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

Shell

更多内容:

  • AWK 工作原理

  • AWK 数组

  • AWK 条件语句与循环

  • AWK 用户自定义函数

  • AWK 内置函数

  • 8 个有力的 Awk 内建变量

  • AWK 官方手册

Linux 命令大全

(51) Linux- read 命令

Linux read 命令
Linux 命令大全

Linux read命令用于从标准输入读取数值。

read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
语法

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

Shell

参数说明:

  • -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
  • -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
  • -p 后面跟提示信息,即在输入前打印提示信息。
  • -e 在输入的时候可以使用命令补全功能。
  • -n 后跟一个数字,定义输入文本的长度,很实用。
  • -r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
  • -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
  • -t 后面跟秒数,定义输入字符的等待时间。
  • -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

1、简单读取

#!/bin/bash

#这里默认会换行  
echo "输入网站名: "  
#读取从键盘的输入  
read website  
echo "你输入的网站名是 $website"  
exit 0  #退出

Shell

测试结果为:

输入网站名: 
www.runoob.com
你输入的网站名是 www.runoob.com

Shell

2、-p 参数,允许在 read 命令行中直接指定一个提示。

#!/bin/bash

read -p "输入网站名:" website
echo "你输入的网站名是 $website" 
exit 0

Shell

测试结果为:

输入网站名:www.runoob.com
你输入的网站名是 www.runoob.com

Shell

3、-t 参数指定 read 命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态。

#!/bin/bash

if read -t 5 -p "输入网站名:" website
then
    echo "你输入的网站名是 $website"
else
    echo "\n抱歉,你输入超时了。"
fi
exit 0

Shell

执行程序不输入,等待 5 秒后:

输入网站名:
抱歉,你输入超时了

Shell

4、除了输入时间计时,还可以使用 -n 参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

#!/bin/bash

read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
      echo "fine ,continue";;
N | n)
      echo "ok,good bye";;
*)
     echo "error choice";;

esac
exit 0

Shell

该例子使用了-n 选项,后接数值 1,指示 read 命令只要接受到一个字符就退出。只要按下一个字符进行回答,read 命令立即接受输入并将其传给变量,无需按回车键。

只接收 2 个输入就退出:

#!/bin/bash

read -n2 -p "请随便输入两个字符: " any
echo "\n您输入的两个字符是:$any"
exit 0

Shell

执行程序输入两个字符:

请随便输入两个字符: 12
您输入的两个字符是:12

Shell

5、-s 选项能够使 read 命令中输入的数据不显示在命令终端上(实际上,数据是显示的,只是 read 命令将文本颜色设置成与背景相同的颜色)。输入密码常用这个选项。

#!/bin/bash

read  -s  -p "请输入您的密码:" pass
echo "\n您输入的密码是 $pass"
exit 0

Shell

执行程序输入密码后是不显示的:

请输入您的密码:
您输入的密码是 runoob

Shell

6.读取文件

每次调用 read 命令都会读取文件中的 “一行” 文本。当文件没有可读的行时,read 命令将以非零状态退出。

通过什么样的方法将文件中的数据传给 read 呢?使用 cat 命令并通过管道将结果直接传送给包含 read 命令的 while 命令。

测试文件 test.txt 内容如下:

123
456
runoob

Shell

测试代码:

#!/bin/bash
  
count=1    # 赋值语句,不加空格
cat test.txt | while read line      # cat 命令的输出作为read命令的输入,read读到>的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          # 注意中括号中的空格。
done
echo "finish"
exit 0

Shell

执行结果为:

Line 1:123
Line 2:456
Line 3:runoob
finish

Shell

使用 -e 参数,以下实例输入字符 a 后按下 Tab 键就会输出相关的文件名(该目录存在的):

$ read -e -p "输入文件名:" str 
输入文件名:a
a.out    a.py     a.pyc    abc.txt  
输入文件名:a

Linux 命令大全

(52) Linux- updatedb 命令

Linux updatedb 命令
Linux 命令大全

updatedb 命令用来创建或更新 slocate/locate 命令所必需的数据库文件。

updatedb 命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。

**注意:**slocate 本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
语法

updatedb(选项)

Shell

参数

  • -o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
  • -U<目录>:更新指定目录的slocate数据库;
  • -v:显示执行的详细过程。

以下实例检测一个未存在的文件 runoob.txt:

# locate runoob.txt   # 检索 runoob.txt,没有任何输出,表示没有该文件
# touch ./runoob.txt  # 添加文件 runoob.txt
# locate runoob.txt   # 再次检索 runoob.txt,依然没有该文件
# updatedb            # 更新 locate.db 数据库
# locate runoob.txt   # 再次数据库检索 runoob.txt,找到该文件
/root/runoob/runoob.txt

Shell

使用 -U 选项可以指定要更新 slocate 数据库的目录。

updatedb -U /root/runoob/

Linux 命令大全

(53) Linux- col 命令

Linux col命令
Linux 命令大全

Linux col命令用于过滤控制字符。

在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符”>”和”>>”,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
语法

col [-bfx][-l<缓冲区列数>]

Shell

参数

  • -b 过滤掉所有的控制字符,包括RLF和HRLF。
  • -f 滤除RLF字符,但允许将HRLF字符呈现出来。
  • -x 以多个空格字符来表示跳格字符。
  • -l<缓冲区列数> 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。

下面以 man 命令帮助文档为例,讲解col 命令的使用。

将man 命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符。在终端中使用如下命令:

man man | col-b > man_help

Shell

**注:**其中”|”用于建立管道,把man命令的输出结果转为col命令的输入数据。

Linux 命令大全

(54) Linux- colrm 命令

Linux colrm命令
Linux 命令大全

Linux colrm命令用于滤掉指定的行。

colrm指令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则该指令不会过滤任何一行。
语法

colrm [开始行数编号<结束行数编号>]

Shell

参数说明:

  • 开始行数编号: 指定要删除的列的起始编号。
  • 结束行数编号: 指定要删除的列的结束编号,有时候这个参数可以省略。

不带任何参数时该命令不会删除任何列:

colrm

Shell

按回车键后,光标将在第一行闪烁,等待标准输入,此时输入字符,如”Hello Linux!”,再按回车键后第二行将出现与第一行相同内容,此时按Ctrl+C组合键可以退出。终端中显示的内容如下所示:

cmd@hdd-desktop:~$ colrm  
Hello Linux! #输入Hello Linux!字符串  
Hello Linux! #输出刚才输入的字符串Hello Linux!

Shell

如想要删除第4 列之后的所有内容,可以使用如下命令:

colrm 4

Shell

类似于上例,此时标准输入等待输入,用户输入字符串按回车键后,将输出如下结果:

cmd@hdd-desktop:~$ colrm 4  
Hello Linux! #输入Hello Linux!字符串  
Hel #输出删除了第4列以后所有内容的字符串

Shell

删除指定列的内容。如删除第4列到第6列的内容,可使用如下命令:

colrm 4 6

Shell

输出的结果如下:

cmd@hdd-desktop:~$ colrm 4 6  
Hello Linux! #输入Hello Linux!字符串  
HelLinux! #输出删除了从第4列到第6列字符的字符串

Linux 命令大全

(55) Linux- comm 命令

Linux comm命令
Linux 命令大全

Linux comm 命令用于比较两个已排过序的文件。

这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成 3 列显示:第 1 列仅是在第 1 个文件中出现过的列,第 2 列是仅在第 2 个文件中出现过的列,第 3 列则是在第 1 与第 2 个文件里都出现过的列。若给予的文件名称为 – ,则 comm 指令会从标准输入设备读取数据。
语法

comm [-123][--help][--version][第1个文件][第2个文件]

Shell

参数

  • -1 不显示只在第 1 个文件里出现过的列。
  • -2 不显示只在第 2 个文件里出现过的列。
  • -3 不显示只在第 1 和第 2 个文件里出现过的列。
  • –help 在线帮助。
  • –version 显示版本信息。

aaa.txt 与 bbb.txt 的文件内容如下:

[root@localhost text]# cat aaa.txt 
aaa 
bbb 
ccc 
ddd 
eee 
111 
222
[root@localhost text]# cat bbb.txt
bbb 
ccc 
aaa 
hhh 
ttt 
jjj

Shell

执行 comm 命令输出结果如下:

[root@localhost text]# comm aaa.txt bbb.txt 
aaa
                bbb
                ccc
        aaa
ddd
eee
111
222
        hhh
        ttt
        jjj
第一列  第二列  第三列

Shell

输出的第一列只包含在 aaa.txt 中出现的列,第二列包含在 bbb.txt 中出现的列,第三列包含在 aaa.txt 和 bbb.txt 中都包含的列。各列是以制表符 \t 作为定界符。

Linux 命令大全

(56) Linux- csplit 命令

Linux csplit命令
Linux 命令大全

Linux csplit命令用于分割文件。

将文件依照指定的范本样式予以切割后,分别保存成名称为xx00,xx01,xx02…的文件。若给予的文件名称为”-“,则csplit指令会从标准输入设备读取数据。
语法

csplit [-kqsz][-b<输出格式>][-f<输出字首字符串>]
[-n<输出文件名位数>][--help][--version][文件][范本样式...]

Shell

参数

  • -b<输出格式>或–suffix-format=<输出格式> 预设的输出格式其文件名称为xx00,xx01…等,您可以通过改变<输出格式>来改变输出的文件名。
  • -f<输出字首字符串>或–prefix=<输出字首字符串> 预设的输出字首字符串其文件名为xx00,xx01…等,如果你指定输出字首字符串为”hello”,则输出的文件名称会变成hello00,hello01…等。
  • -k或–keep-files 保留文件,就算发生错误或中断执行,也不能删除已经输出保存的文件。
  • -n<输出文件名位数>或–digits=<输出文件名位数> 预设的输出文件名位数其文件名称为xx00,xx01…等,如果你指定输出文件名位数为”3″,则输出的文件名称会变成xx000,xx001…等。
  • -q或-s或–quiet或–silent 不显示指令执行过程。
  • -z或–elide-empty-files 删除长度为0 Byte文件。
  • –help 在线帮助。
  • –version 显示版本信息。

将文本文件testfile以第 2 行为分界点切割成两份,使用如下命令:

csplit testfile 2

Shell

testfile文件中的内容如下:

$ cat testfile #查看testfile 文件内容  
hello Linux!  
Linux is a free Unix-type operating system.  
This is a Linux testfile!  
Linux

Shell

使用csplit命令,输出结果如下:

$ csplit testfile 2  
13 #xx00文件字符个数  
76 #xx01文件字符个数

Shell

其中第1 行是第一个文件xx00的字符个数,同样,第2 行为第二个文件xx01的字符个数。同时,在testfile 的同目录下将生成两个文件,文件名分别为xx00、xx01,xx00 中的内容为:

$ cat xx00 #查看分割后的xx00文件内容  
hello Linux! #testfile文件第1行的内容

Shell

xx01 中的内容为:

$ cat xx01 #查看分割后的xx01文件内容  
Linux is a free Unix-type operating system. #testfile文件第2行以后的内容  
This is a Linux testfile!  
Linux

Linux 命令大全

(57) Linux- ed 命令

Linux ed命令
Linux 命令大全

Linux ed命令是文本编辑器,用于文本编辑。

ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。

ed命令并不是一个常用的命令,一般使用比较多的是vi 指令。但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。
语法

ed [-][-Gs][-p<字符串>][--help][--version][文件]

Shell

参数

  • -G或–traditional 提供回兼容的功能。
  • -p<字符串> 指定ed在command mode的提示字符。
  • -s,-,–quiet或–silent 不执行开启文件时的检查功能。
  • –help 显示帮助。
  • –version 显示版本信息。

以下是一个 Linux ed 完整实例解析:

$ ed              <- 激活 ed 命令 
a                 <- 告诉 ed 我要编辑新文件 
My name is Titan. <- 输入第一行内容 
And I love Perl very much. <- 输入第二行内容 
.                 <- 返回 ed 的命令行状态 
i                 <- 告诉 ed 我要在最后一行之前插入内容 
I am 24.          <- 将“I am 24.”插入“My name is Titan.”和“And I love Perl very much.”之间 
.                 <- 返回 ed 的命令行状态 
c                 <- 告诉 ed 我要替换最后一行输入内容 
I am 24 years old. <- 将“I am 24.”替换成“I am 24 years old.”(注意:这里替换的是最后输的内容) 
.                 <- 返回 ed 的命令行状态 
w readme.text     <- 将文件命名为“readme.text”并保存(注意:如果是编辑已经存在的文件,只需要敲入 w 即可) 
q                 <- 完全退出 ed 编辑器

Shell

这是文件的内容是:

$ cat readme.text 
My name is Titan. 
I am 24 years old. 
And I love Perl vrey much.

Linux 命令大全

(58) Linux- egrep 命令

Linux egrep命令
Linux 命令大全

Linux egrep命令用于在文件内查找指定的字符串。

egrep执行效果与”grep-E”相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。

egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。
语法

egrep [范本模式] [文件或目录]

Shell

参数说明:

  • [范本模式] :查找的字符串规则。
  • [文件或目录] :查找的目标文件或目录。

显示文件中符合条件的字符。例如,查找当前目录下所有文件中包含字符串”Linux”的文件,可以使用如下命令:

egrep Linux *

Shell

结果如下所示:

$ egrep Linux * #查找当前目录下包含字符串“Linux”的文件  
testfile:hello Linux! #以下五行为testfile 中包含Linux字符的行  
testfile:Linux is a free Unix-type operating system.  
testfile:This is a Linux testfile!  
testfile:Linux  
testfile:Linux  
testfile1:helLinux! #以下两行为testfile1中含Linux字符的行  
testfile1:This a Linux testfile!  
#以下两行为testfile_2 中包含Linux字符的行  
testfile_2:Linux is a free unix-type opterating system.  
testfile_2:Linux test  
xx00:hello Linux! #xx00包含Linux字符的行  
xx01:Linux is a free Unix-type operating system. #以下三行为xx01包含Linux字符的行  
xx01:This is a Linux testfile!  
xx01:Linux

Linux 命令大全

(59) Linux- ex 命令

Linux ex命令
Linux 命令大全

Linux ex命令用于在Ex模式下启动vim文本编辑器。

ex执行效果如同vi -E,使用语法及参数可参照vi指令,如要从Ex模式回到普通模式,则在vim中输入”:vi”或”:visual”指令即可。
语法

ex [选项][参数]

Shell

参数说明:

  • +数字:从文件指定的数字行开始显示

  • -b:使用二进制模式编辑文件

  • -c 指令:编辑完第一个文件后执行指定的指令

  • -d :编辑多个文件时,显示差异部分

  • -m :不允许修改文件

  • -n :不使用缓存

  • -oN:其中 N 为数字

  • -r :列出缓存,并显示恢复信息

  • -R :以只读的方式打开文件

  • -s :不显示任何错误信息

  • -V :显示指令的详细执行过程

  • –help :显示帮助信息

  • –version :显示版本信息

在ex 指令后输入文件名按回车键后,即可进入ex 编辑模式,如编辑testfile文件,使用的命令格式如下:

ex testfile

Shell

输出的信息如下:

"testfile" 5L, 95C

Shell

“testfile”表示文件名,5L表示5 行,95 表示字节数

进入ex 模式。输入”visual”回到正常模式

它的操作与vim 中是一样的,此时如果在”:”后输入”visual”后按回车键,将进入到vi 指令全屏界面;如果输入”q”,则退出编辑器。

Linux 命令大全

(60) Linux- fgrep 命令

Linux fgrep命令
Linux 命令大全

本指令相当于执行grep指令加上参数”-F”,详见grep命令说明。

Linux fgrep命令用于查找文件里符合条件的字符串。
语法

fgrep [范本样式][文件或目录...]

Shell

具体使用实例请参考grep命令。

Linux 命令大全

(61) Linux- fmt 命令

Linux fmt命令
Linux 命令大全

Linux fmt命令用于编排文本文件。

fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为”-“,则fmt指令会从标准输入设备读取数据。
语法

fmt [-cstu][-p<列起始字符串>][-w<每列字符数>][--help][--version][文件...]

Shell

参数说明

  • -c或–crown-margin 每段前两列缩排。
  • -p<列起始字符串>或-prefix=<列起始字符串> 仅合并含有指定字符串的列,通常运用在程序语言的注解方面。
  • -s或–split-only 只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列。
  • -t或–tagged-paragraph 每列前两列缩排,但第1列和第2列的缩排格式不同。
  • -u或–uniform-spacing 每个字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔。
  • -w<每列字符数>或–width=<每列字符数>或-<每列字符数> 设置每列的最大字符数。
  • –help 在线帮助。
  • –version 显示版本信息。

重排指定文件。如文件testfile共5 行文字,可以通过命令对该文件格式进行重排,其命令为:

fmt testfile

Shell

输出结果如下:

$ fmt testfile #重排testfile 文件  
hello Linux! Linux is a free Unix-type operating system. This is a  
Linux testfile! Linux Linux

Shell

将文件testfile重新排成85 个字符一行,并在标准输出设备上输出,其命令应该为:

fmt -w 85 testfile

Shell

为了对比,先使用cat 命令查看文件内容:

$ cat testfile #查看testfile 文件的内容  
hello Linux!  
Linux is a free Unix-type operating system.  
This is a Linux testfile!  
Linux  
Linux

Shell

使用fmt命令重排之后,输出结果如下:

$ fmt -w 85 testfile #指定重排宽度为85个字符  
hello Linux! Linux is a free Unix-type operating system. This is a Linux testfile!  
Linux Linux

Linux 命令大全

(62) Linux- fold 命令

Linux fold命令
Linux 命令大全

Linux fold命令用于限制文件列宽。

fold指令会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备。若不指定任何文件名称,或是所给予的文件名为”-“,则fold指令会从标准输入设备读取数据。
语法

fold [-bs][-w<每列行数>][--help][--version][文件...]

Shell

参数

  • -b或–bytes 以Byte为单位计算列宽,而非采用行数编号为单位。
  • -s或–spaces 以空格字符作为换列点。
  • -w<每列行数>或–width<每列行数> 设置每列的最大行数。
  • –help 在线帮助。
  • –version 显示版本信息。

将一个名为testfile 的文件的行折叠成宽度为30,可使用如下命令:

fold -w 30 testfile

Shell

为了对比,先将testfile文件输出如下:

$ cat testfile #查看testfile 中的内容  
Linux networks are becoming more and more common, but 
security is often an overlooked  
issue. Unfortunately, in today’s environment all networks 
are potential hacker targets,  
from top-secret military research networks to small home LANs.  
Linux Network Security focuses on securing Linux in a 
networked environment, where the  
security of the entire network needs to be considered 
rather than just isolated machines.  
It uses a mix of theory and practical techniques to 
teach administrators how to install and  
use security applications, as well as how the 
applications work and why they are necessary.

Shell

然后使用fold命令折叠显示:

$ fold -w 30 testfile #行折叠成宽度为30,显示testfile 文件  
Linux networks are becoming mo  
re and more common, but securi  
ty is often an overlooked issu  
e. Unfortunately, in today’s  
environment all networks are  
potential hacker targets, from  
top-secret military research  
networks to small home LANs.  
Linux Network Security focuses  
on securing Linux in a networ  
ked environment, where the sec  
urity of the entire network ne  
eds to be considered rather th  
an just isolated machines. It  
uses a mix of theory and pract  
ical techniques to teach admin  
istrators how to install and u  
se security applications, as w  
ell as how the applications wo  
rk and why they are necessary

Linux 命令大全

(63) Linux- grep 命令

Linux grep 命令
Linux 命令大全

Linux grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

Shell

参数

  • -a 或 –text : 不要忽略二进制的数据。
  • -A<显示行数> 或 –after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -b 或 –byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  • -B<显示行数> 或 –before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -c 或 –count : 计算符合样式的列数。
  • -C<显示行数> 或 –context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -d <动作> 或 –directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  • -e<范本样式> 或 –regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  • -E 或 –extended-regexp : 将样式为延伸的正则表达式来使用。
  • -f<规则文件> 或 –file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  • -F 或 –fixed-regexp : 将样式视为固定字符串的列表。
  • -G 或 –basic-regexp : 将样式视为普通的表示法来使用。
  • -h 或 –no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  • -H 或 –with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  • -i 或 –ignore-case : 忽略字符大小写的差别。
  • -l 或 –file-with-matches : 列出文件内容符合指定的样式的文件名称。
  • -L 或 –files-without-match : 列出文件内容不符合指定的样式的文件名称。
  • -n 或 –line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  • -o 或 –only-matching : 只显示匹配PATTERN 部分。
  • -q 或 –quiet或–silent : 不显示任何信息。
  • -r 或 –recursive : 此参数的效果和指定”-d recurse”参数相同。
  • -s 或 –no-messages : 不显示错误信息。
  • -v 或 –revert-match : 显示不包含匹配文本的所有行。
  • -V 或 –version : 显示版本信息。
  • -w 或 –word-regexp : 只显示全字符合的列。
  • -x –line-regexp : 只显示全列符合的列。
  • -y : 此参数的效果和指定”-i”参数相同。

Linux 命令大全

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *file

Shell

结果如下所示:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行

Shell

2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串”update”的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi

Shell

输出结果如下:

$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”  
#下包含“update”的文件  
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  
IO.) Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update

Shell

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过”-v”参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*

Shell

结果如下所示:

$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.

Linux 命令大全

(64) Linux- ispell 命令

Linux ispell命令
Linux 命令大全

Linux ispell命令用于拼写检查程序。

ispell预设会使用/usr/lib/ispell/english.hash字典文件来检查文本文件。若在检查的文件中找到字典没有的词汇,ispell会建议使用的词汇,或是让你将新的词汇加入个人字典。
语法

ispell [-aAbBClmMnNPStVx][-d<字典文件>][-L<行数>][-p<字典文件>][-w<非字母字符>][-W<字符串长度>][要检查的文件]

Shell

参数

  • -a 当其他程序输出送到ispell时,必须使用此参数。
  • -A 读取到”&Include File&”字符串时,就去检查字符串后所指定文件的内容。
  • -b 产生备份文件,文件名为.bak。
  • -B 检查连字错误。
  • -C 不检查连字错误。
  • -d<字典文件> 指定字典文件。
  • -l 从标准输入设备读取字符串,结束后显示拼错的词汇。
  • -L<行数> 指定内文显示的行数。
  • -m 自动考虑字尾的变化。
  • -M 进入ispell后,在画面下方显示指令的按键。
  • -n 检查的文件为noff或troff的格式。
  • -N 进入ispell后,在画面下方不显示指令的按键。
  • -p<字典文件> 指定个人字典文件。
  • -P 不考虑字尾变化的情形。
  • -S 不排序建议取代的词汇。
  • -t 检查的文件为TeX或LaTeX的格式。
  • -V 非ANSI标准的字符会以”M-^”的方式来显示。
  • -w<非字母字符> 检查时,特别挑出含有指定的字符。
  • -W<字符串长度> 不检查指定长度的词汇。
  • -x 不要产生备份文件。

检查文件的拼写。例如,检查testfile文件,可使用如下命令:

ispell testfile

Shell

如果文件中出现可疑词汇,则第一个出现的可疑词汇以高亮显示,并在屏幕下方给出词汇的修改意见,以及ispell的操作命令。如下所示:

netwrks File: testfile  
Linux netwrks are becoming more and more common, but security is often an overlooked  
issue. Unfortunately  
0: networks  
[SP] <number> R)epl A)ccept I)nsert L)ookup U)ncap Q)uit e(X)it or ? for help

Shell

本例中,检查出netwrks 错误,并提示纠正信息,此时输入”0″,即使用networks 来纠正错误,同时继续显示下一个错误,直到所有的错误显示完毕。

通过以上实例我们可以发现,文件testfile中有拼写错误,对该文件进行修改后需备份文件。此时使用如下命令:

ispell-b testfile    #检查拼写错误的同时,备份文件

Shell

如果文件已经无拼写错误,则不显示任何信息,通过ls命令我们也可以查看到当前文件目录下产生了文件testfile的备份文件testfile.bak。查看结果如下所示:

$ ls #以列表的形式查看当前目录下的文件  
examples.desktop testfile_1 testfile.bak xx01 模板图片 音乐  
testfile testfile1 testfile_2 xx00 公共的视频文档桌面

Shell

其中,testfile.bak 文件就是刚才命令生成的备份文件,内容与原来的testfile 文件内容是一样的。

Linux 命令大全

(65) Linux- jed 命令

Linux jed命令
Linux 命令大全

Linux jed命令用于编辑文本文件。

Jed是以Slang所写成的程序,适合用来编辑程序原始代码。
语法

jed [-2n][-batch][-f<函数>][-g<行数>][-i<文件>][-I<文件>][-s<字符串>][文件]

Shell

参数

  • -2 显示上下两个编辑区。
  • -batch 以批处理模式来执行。
  • -f<函数> 执行Slang函数。
  • -g<行数> 移到缓冲区中指定的行数。
  • -i<文件> 将指定的文件载入缓冲区。
  • -n 不要载入jed.rc配置文件。
  • -s<字符串> 查找并移到指定的字符串。

jed主要用于编辑程序的源码,编辑源码时将以彩色高亮的方式显示程序的语法。例如使用jed编辑一个C语言的源代码文件,可使用如下命令:

jed main.c       #用jed编辑器打开main.c 文件

Shell

输出结果如下:

F10 key ==> File Edit Mode Search Buffers Windows System Help #编辑器菜单  
/*-*- linux-c-*-*/ #编辑区  
#include  
#include  
#include  
static struct list_head *  
net_ctl_header_lookup(struct ctl_table_root *root, struct nsproxy *namespaces)  
{
       
return &namespaces->net_ns->sysctl_table_headers;  
}  
static struct ctl_table_root net_sysctl_root = {
       
.lookup = net_ctl_header_lookup,  
};  
static int sysctl_net_init(struct net *net)  
{
       
INIT_LIST_HEAD(&net->sysctl_table_headers);  
return 0;  
}  
-----+(Jed 0.99.18U) Emacs: main.c (C) All 6:06pm-----------------------------  
#从左到右分别为jed版本编号、当前是模拟emacs编辑器、打开的文件名、现在的时间  
loading /usr/share/jed/lib/modeinfo.slc

Linux 命令大全

(66) Linux- joe 命令

Linux joe命令
Linux 命令大全

Linux joe命令用于编辑文本文件。

Joe是一个功能强大的全屏幕文本编辑程序。操作的复杂度要比Pico高一点,但是功能较为齐全。Joe一次可开启多个文件,每个文件各放在一个编辑区内,并可在文件之间执行剪贴的动作。
语法

joe [-asis][-beep][-csmode][-dopadding][-exask][-force][-help][-keepup][-lightoff][-arking][-mid][-nobackups][-nonotice][-nosta][-noxon][-orphan][-backpath<目录>][-columns<栏位>][-lines<行数>][-pg<行数>][-skiptop<行数>][-autoindent crlf linums overwrite rdonly wordwrap][+<行数>][-indentc<缩排字符>][-istep<缩排字符数>][-keymap<按键配置文件>][-lmargin<栏数>][-rmargin<栏数>][-tab<栏数>][要编辑的文件]</p>

Shell

参数

以下为程序参数

-asis 字符码超过127的字符不做任何处理。

-backpath<目录> 指定备份文件的目录。

-beep 编辑时,若有错误即发出哗声。

  • -columns<栏位> 设置栏数。
  • -csmode 可执行连续查找模式。
  • -dopadding 是程序跟tty间存在缓冲区。
  • -exask 在程序中,执行”Ctrl+k+x”时,会先确认是否要保存文件。
  • -force 强制在最后一行的结尾处加上换行符号。
  • -help 执行程序时一并显示帮助。
  • -keepup 在进入程序后,画面上方为状态列。
  • -lightoff 选取的区块在执行完区块命令后,就会回复成原来的状态。
  • -lines<行数> 设置行数。
  • -marking 在选取区块时,反白区块会随着光标移动。
  • -mid 当光标移出画面时,即自动卷页,使光标回到中央。
  • -nobackups 不建立备份文件。
  • -nonotice 程序执行时,不显示版权信息。
  • -nosta 程序执行时,不显示状态列。
  • -noxon 尝试取消”Ctrl+s”与”Ctrl+q”键的功能。
  • -orphan 若同时开启一个以上的文件,则其他文件会置于独立的缓冲区,而不会另外开启编辑区。
  • -pg<行数> 按”PageUp”或”PageDown”换页时,所要保留前一页的行数。
  • -skiptop<行数> 不使用屏幕上方指定的行数。
  • 以下为文件参数
  • +<行数> 指定开启文件时,光标所在的行数。
  • -autoindent 自动缩排。
  • -crlf 在换行时,使用CR-LF字符。
  • -indentc<缩排字符> 执行缩排时,实际插入的字符。
  • -istep<缩排字符数> 每次执行缩排时,所移动的缩排字符数。
  • -keymap<按键配置文件> 使用不同的按键配置文件。
  • -linums 在每行前面加上行号。
  • -lmargin<栏数> 设置左侧边界。
  • -overwrite 设置覆盖模式。
  • -rmargin<栏数> 设置右侧边界。
  • -tab<栏数> 设置tab的宽度。
  • -rdonly 以只读的方式开启文件-wordwrap编辑时若超过右侧边界,则自动换行。

利用joe命令编辑文本文件。例如利用joe编辑C 语言源代码main.c,使用如下命令:

joe main.c

Shell

与jed类似,joe编辑器中C语言的语法也以彩色的方式显示。效果如下:

I A main.c (c) Row 1 Col 1 12:28 Ctrl-K H for help  
#上排从左至右分别为打开的文件名、光标所在行列数、现在时间、显示操作说明  
/*-*- linux-c-*-*/ #编辑区  
#include  
#include  
#include  
static struct list_head *  
net_ctl_header_lookup(struct ctl_table_root *root, struct nsproxy *namespaces)  
{
       
return &namespaces->net_ns->sysctl_table_headers;  
}  
static struct ctl_table_root net_sysctl_root = {
       
.lookup = net_ctl_header_lookup,  
};  
static int sysctl_net_init(struct net *net)  
{
       
INIT_LIST_HEAD(&net->sysctl_table_headers);  
return 0;  
}  
** Joe's Own Editor v3.5 ** (utf-8) ** Copyright . 2006 ** #joe编辑区的版本及版权信息

Shell

joe编辑器有一些常用的组合键,例如可以通过Ctrl+K+H 寻求联机帮助,首先按Ctrl+K组合键,再输入字母H,即可调出帮助菜单,通过该帮助信息可以方便地获知如何对joe 编辑器进行操作。

Linux 命令大全

(67) Linux- join 命令

Linux join命令
Linux 命令大全

Linux join命令用于将两个文件中,指定栏位内容相同的行连接起来。

找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
语法

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

Shell

参数

  • -a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
  • -e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
  • -i或–igore-case 比较栏位内容时,忽略大小写的差异。
  • -o<格式> 按照指定的格式来显示结果。
  • -t<字符> 使用栏位的分隔字符。
  • -v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
  • -1<栏位> 连接[文件1]指定的栏位。
  • -2<栏位> 连接[文件2]指定的栏位。
  • –help 显示帮助。
  • –version 显示版本信息。

连接两个文件。

为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和
testfile_2 的内容。

然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:

join testfile_1 testfile_2

Shell

首先查看testfile_1、testfile_2 中的文件内容:

$ cat testfile_1 #testfile_1文件中的内容  
Hello 95 #例如,本例中第一列为姓名,第二列为数额  
Linux 85  
test 30  
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容  
Hello 2005 #例如,本例中第一列为姓名,第二列为年份  
Linux 2009  
test 2006

Shell

然后使用join命令,将两个文件连接,结果如下:

$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容  
Hello 95 2005 #连接后显示的内容  
Linux 85 2009  
test 30 2006

Shell

文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:

join testfile_2 testfile_1

Shell

最终在标准输出的输出结果将发生变化,如下所示:

$ join testfile_2 testfile_1 #改变文件顺序连接两个文件  
Hello 2005 95 #连接后显示的内容  
Linux 2009 85  
test 2006 30

Linux 命令大全

(68) Linux- look 命令

Linux look命令
Linux 命令大全

Linux look命令用于查询单词。

look指令用于英文单字的查询。您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。
语法

look [-adf][-t<字尾字符串>][字首字符串][字典文件]

Shell

参数说明

  • -a 使用另一个字典文件web2,该文件也位于/usr/dict目录下。
  • -d 只对比英文字母和数字,其余一慨忽略不予比对。
  • -f 忽略字符大小写差别。
  • -t<字尾字符串> 设置字尾字符串。

为了查找在testfile文件中以字母L开头的所有的行,可以输入如下命令:

look L testfile

Shell

原文件testfile中的内容如下:

$ cat testfile #查看testfile 文件内容  
HELLO LINUX!  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test

Shell

在testfile文件中使用look命令查找以”L”开头的单词,结果如下:

$ look L testfile                              #查找以“L”开头的单词  
Linux is a free unix-type opterating system.   #第二行以“L”开头,列出全句  
Linux test                                     #第四行以“L”开头,列出全句

Linux 命令大全

(69) Linux- mtype 命令

Linux mtype命令
Linux 命令大全

mtype为mtools工具指令,模拟MS-DOS的type指令,可显示MS-DOS文件的内容。
语法

mtype [-st][文件]

Shell

参数说明

  • -s 去除8位字符码集的第一个位,使它兼容于7位的ASCII。
  • -t 将MS-DOS文本文件中的”换行+光标移至行首”字符转换成Linux的换行字符。

打开名为dos.txt 的MS-DOS文件可使用如下命令:

mtype dos.txt         #打开MS-DOS 文件

Shell

显示结果如下:

$ mtype dos.txt #打开MS-DOS 文件  
Linux networks are becoming more and more common, but security is often an overlooked  
issue. Unfortunately, in today’s environment all networks are potential hacker targets,  
from top-secret military research networks to small home LANs.  
Linux Network Securty focuses on securing Linux in a networked environment, where the  
security of the entire network needs to be considered rather than just isolated machines.  
It uses a mix of theory and practicl techniques to teach administrators how to install and  
use security applications, as well as how the applcations work and why they are necessary.

Shell

        

Linux 命令大全

(70) Linux- pico 命令

Linux pico命令
Linux 命令大全

Linux pico命令用于编辑文字文件。

pico是个简单易用、以显示导向为主的文字编辑程序,它伴随着处理电子邮件和新闻组的程序pine而来。
语法

pico [-bdefghjkmqtvwxz][-n<间隔秒数>][-o<工作目录>][-r<编辑页宽>][-s<拼字检查器>][+<列数编号>][文件]

Shell

参数说明

  • -b 开启置换的功能。
  • -d 开启删除的功能。
  • -e 使用完整的文件名称。
  • -f 支持键盘上的F1、F2…等功能键。
  • -g 显示光标。
  • -h 在线帮助。
  • -j 开启切换的功能。
  • -k 预设pico在使用剪下命令时,会把光标所在的列的内容全部删除。
  • -m 开启鼠标支持的功能,您可用鼠标点选命令列表。
  • -n<间隔秒数> 设置多久检查一次新邮件。
  • -o<工作目录> 设置工作目录。
  • -q 忽略预设值。
  • -r<编辑页宽> 设置编辑文件的页宽。
  • -s<拼字检查器> 另外指定拼字检查器。
  • -t 启动工具模式。
  • -v 启动阅读模式,用户只能观看,无法编辑文件的内容。
  • -w 关闭自动换行,通过这个参数可以编辑内容很长的列。
  • -x 关闭换面下方的命令列表。
  • -z 让pico可被Ctrl+z中断,暂存在后台作业里。
  • +<列数编号> 执行pico指令进入编辑模式时,从指定的列数开始编辑。

使用pico命令来编辑testfile文件,在终端中输入如下命令:

pico testfile

Shell

输出结果如下:

GNU nano 2.0.9 文件: testfile #从左到右分别为编辑器版本号、文件名  
#编辑区  
Linux networks are becoming more and more common, but security is often an over$  
Linux Network Securty focuses on securing Linux in a networked environment, whe$  
[ 已读取3 行] #以下为菜单栏  
^G 求助^O 写入^R 读档^Y 上页^K 剪切文字^C 在标位置  
^X 离开^J 对齐^W 搜寻^V 下页^U 还原剪切^T 拼写检查

Linux 命令大全

(71) Linux- rgrep 命令

Linux rgrep命令
Linux 命令大全

Linux rgrep命令用于递归查找文件里符合条件的字符串。

rgrep指令的功能和grep指令类似,可查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设rgrep指令会把含有范本样式的那一列显示出来。
语法

rgrep [-?BcDFhHilnNrv][-R<范本样式>][-W<列长度>][-x<扩展名>][--help][--version][范本样式][文件或目录...]

Shell

参说明数

  • -? 显示范本样式与范例的说明。
  • -B 忽略二进制的数据。
  • -c 计算符合范本样式的列数。
  • -D 排错模式,只列出指令搜寻的目录清单,而不会读取文件内容。
  • -F 当遇到符号连接时,rgrep预设是忽略不予处理,加上本参数后,rgrep指令就会读取该连接所指向的原始文件的内容。
  • -h 特别将符合范本样式的字符串标示出来。
  • -H 只列出符合范本样式的字符串,而非显示整列的内容。
  • -i 忽略字符大小写的差别。
  • -l 列出文件内容符合指定的范本样式的文件名称。
  • -n 在显示符合坊本样式的那一列之前,标示出该列的列数编号。
  • -N 不要递归处理。
  • -r 递归处理,将指定目录下的所有文件及子目录一并处理。
  • -R<范本样式> 此参数的效果和指定”-r”参数类似,但只主力符合范本样式文件名称的文件。
  • -v 反转查找。
  • -W<列长度> 限制符合范本样式的字符串所在列,必须拥有的字符数。
  • -x<扩展名> 只处理符合指定扩展名的文件名称的文件。
  • –help 在线帮助。
  • –version 显示版本信息。

在当前目录下查找句子中包含”Hello”字符串的文件,可使用如下命令:

rgrep Hello *

Shell

其搜索结果如下:

$ rgrep Hello *             #在当前目录下查找句子中包含“Hello”字符串的文件  
testfile_1:Hello 95         #testfile_1中包含“Hello”字符串的句子  
testfile_2:Hello 2005       #testfile_2中包含“Hello”字符串的句子

Linux 命令大全

(72) Linux- sed 命令

Linux sed 命令
Linux 命令大全

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

Shell

参数说明

  • -e

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

在testfile文件的第四行后添加一行,并将结果输出到标准输出,在命令行提示符下输入如下命令:

sed -e 4a\newLine testfile

Shell

首先查看testfile中的内容如下:

$ cat testfile #查看testfile 中的内容  
HELLO LINUX!  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test

Shell

使用sed命令后,输出结果如下:

$ sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串  
HELLO LINUX! #testfile文件原有的内容  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test  
newline

Shell

以行为单位的新增/删除
将 /etc/passwd 的内容列出并且列印行号,同时,请将第 2~5 行删除!

[root@www ~]# nl /etc/passwd | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
.....(后面省略).....

Shell

sed 的动作为 ‘2,5d’ ,那个 d 就是删除!因为 2-5 行给他删除了,所以显示的数据就没有 2-5 行罗~ 另外,注意一下,原本应该是要下达 sed -e 才对,没有 -e 也行啦!同时也要注意的是, sed 后面接的动作,请务必以 ” 两个单引号括住喔!

只要删除第 2 行

nl /etc/passwd | sed '2d'

Shell

要删除第 3 到最后一行

nl /etc/passwd | sed '3,$d'

Shell

在第二行后(亦即是加在第三行)加上『drink tea?』字样!

[root@www ~]# nl /etc/passwd | sed '2a drink tea'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
drink tea
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(后面省略).....

Shell

那如果是要在第二行前

nl /etc/passwd | sed '2i drink tea'

Shell

如果是要增加两行以上,在第二行后面加入两行字,例如 Drink tea or ……drink beer?

[root@www ~]# nl /etc/passwd | sed '2a Drink tea or ......\
> drink beer ?'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
Drink tea or ......
drink beer ?
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(后面省略).....

Shell

每一行之间都必须要以反斜杠『 \ 』来进行新行的添加喔!所以,上面的例子中,我们可以发现在第一行的最后面就有 \ 存在。
以行为单位的替换与显示
将第2-5行的内容取代成为『No 2-5 number』呢?

[root@www ~]# nl /etc/passwd | sed '2,5c No 2-5 number'
1 root:x:0:0:root:/root:/bin/bash
No 2-5 number
6 sync:x:5:0:sync:/sbin:/bin/sync
.....(后面省略).....

Shell

透过这个方法我们就能够将数据整行取代了!

仅列出 /etc/passwd 文件内的第 5-7 行

[root@www ~]# nl /etc/passwd | sed -n '5,7p'
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

Shell

可以透过这个 sed 的以行为单位的显示功能, 就能够将某一个文件内的某些行号选择出来显示。
数据的搜寻并显示
搜索 /etc/passwd有root关键字的行

nl /etc/passwd | sed '/root/p'
1  root:x:0:0:root:/root:/bin/bash
1  root:x:0:0:root:/root:/bin/bash
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3  bin:x:2:2:bin:/bin:/bin/sh
4  sys:x:3:3:sys:/dev:/bin/sh
5  sync:x:4:65534:sync:/bin:/bin/sync
....下面忽略

Shell

如果root找到,除了输出所有行,还会输出匹配行。

使用-n的时候将只打印包含模板的行。

nl /etc/passwd | sed -n '/root/p'
1  root:x:0:0:root:/root:/bin/bash

Shell

数据的搜寻并删除
删除/etc/passwd所有包含root的行,其他行输出

nl /etc/passwd | sed  '/root/d'
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3  bin:x:2:2:bin:/bin:/bin/sh
....下面忽略
#第一行的匹配root已经删除了

Shell

数据的搜寻并执行命令
搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行:

nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}'    
1  root:x:0:0:root:/root:/bin/blueshell

Shell

最后的q是退出。
数据的搜寻并替换
除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代。基本上 sed 的搜寻与替代的与 vi 相当的类似!他有点像这样:

sed 's/要被取代的字串/新的字串/g'

Shell

先观察原始信息,利用 /sbin/ifconfig 查询 IP

[root@www ~]# /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:90:CC:A6:34:84
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::290:ccff:fea6:3484/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
.....(以下省略).....

Shell

本机的ip是192.168.1.100。

将 IP 前面的部分予以删除

[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'
192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

Shell

接下来则是删除后续的部分,亦即: 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

将 IP 后面的部分予以删除

[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'
192.168.1.100

Shell

多点编辑
一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell

nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
1  root:x:0:0:root:/root:/bin/blueshell
2  daemon:x:1:1:daemon:/usr/sbin:/bin/sh

Shell

-e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。
直接修改文件内容(危险动作)
sed 可以直接修改文件的内容,不必使用管道命令或数据流重导向! 不过,由於这个动作会直接修改到原始的文件,所以请你千万不要随便拿系统配置来测试! 我们还是使用文件 regular_express.txt 文件来测试看看吧!

regular_express.txt 文件内容如下:

[root@www ~]# cat regular_express.txt 
runoob.
google.
taobao.
facebook.
zhihu-
weibo-

Shell

利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !

[root@www ~]# sed -i 's/\.$/\!/g' regular_express.txt
[root@www ~]# cat regular_express.txt 
runoob!
google!
taobao!
facebook!
zhihu-
weibo-

Shell

:q:q
利用 sed 直接在 regular_express.txt 最后一行加入 # This is a test:

[root@www ~]# sed -i '$a # This is a test' regular_express.txt
[root@www ~]# cat regular_express.txt 
runoob!
google!
taobao!
facebook!
zhihu-
weibo-
# This is a test

Shell

由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增 # This is a test

sed 的 -i 选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!

Linux 命令大全

(73) Linux- sort 命令

Linux sort命令
Linux 命令大全

Linux sort命令用于将文本文件内容加以排序。

sort可针对文本文件的内容,以行为单位来排序。
语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数说明

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f 排序时,将小写字母视为大写字母。
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序。
  • -u 意味着是唯一的(unique),输出的结果是去完重了的。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。
  • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  • –help 显示帮助。
  • –version 显示版本信息。

在使用sort命令以默认的式对文件的行进行排序,使用的命令如下:

sort testfile

sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。

使用 cat命令显示testfile文件可知其原有的排序如下:

$ cat testfile      #testfile文件原有排序  
test 30  
Hello 95  
Linux 85

使用sort命令重排后的结果如下:

$ sort testfile #重排结果  
Hello 95  
Linux 85  
test 30

Linux 命令大全

(74) Linux- spell 命令

Linux spell命令
Linux 命令大全

Linux spell命令可建立拼写检查程序。

spell可从标准输入设备读取字符串,结束后显示拼错的词汇。
语法

spell

Shell

检查文件testfile是否有拼写错误,在命令行提示符下输入如下命令:

spell testfile

Shell

如果文件中有单词拼写错误,则输出如下信息:

$ spell testfile   #检查testfile 拼写错误  
scurity            #以下为有错误的单词  
tp  
LANs  
Securty  
practicl  
applcations  
necesary

Shell

如果所检查的文件没有单词拼写错误,那么,命令运行后不会给出任何信息。

检查从标准输入读取的字符串。例如在命令行中输入如下命令:

spell

Shell

按回车键后,输入一串字符串,然后按Ctrl+D 组合键退出spell,屏幕上将显示拼写有错误的单词。如下所示:

$ spell #检查标准输入的字符串的拼写错误  
hell,this is a linx sustem! #拼写错误的字符串  
linx #以下为有拼写错误的单词  
sustem

Linux 命令大全

(75) Linux- tr 命令

Linux tr命令
Linux 命令大全

Linux tr 命令用于转换或删除文件中的字符。

tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
语法

tr [-cdst][--help][--version][第一字符集][第二字符集]  
tr [OPTION]…SET1[SET2]

Shell

参数说明:

  • -c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
  • -d, –delete:删除指令字符
  • -s, –squeeze-repeats:缩减连续重复的字符成指定的单个字符
  • -t, –truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
  • –help:显示程序用法信息
  • –version:显示程序本身的版本信息

字符集合的范围:

  • \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)

  • \ 反斜杠

  • \a Ctrl-G 铃声

  • \b Ctrl-H 退格符

  • \f Ctrl-L 走行换页

  • \n Ctrl-J 新行

  • \r Ctrl-M 回车

  • \t Ctrl-I tab键

  • \v Ctrl-X 水平制表符

  • CHAR1-CHAR2

    :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。

  • [CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止

  • [CHAR*REPEAT]

    :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)

  • [:alnum:] :所有字母字符与数字

  • [:alpha:] :所有字母字符

  • [:blank:] :所有水平空格

  • [:cntrl:] :所有控制字符

  • [:digit:] :所有数字

  • [:graph:] :所有可打印的字符(不包含空格符)

  • [:lower:] :所有小写字母

  • [:print:] :所有可打印的字符(包含空格符)

  • [:punct:] :所有标点字符

  • [:space:] :所有水平与垂直空格符

  • [:upper:] :所有大写字母

  • [:xdigit:] :所有 16 进位制的数字

  • [=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

将文件testfile中的小写字母全部转换成大写字母,此时,可使用如下命令:

cat testfile |tr a-z A-Z

Shell

testfile文件中的内容如下:

$ cat testfile         #testfile原来的内容  
Linux networks are becoming more and more common, 
but scurity is often an overlooked  
issue. Unfortunately, in today’s environment all networks 
are potential hacker targets,  
fro0m tp-secret military research networks to small home LANs.  
Linux Network Securty focuses on securing Linux in a 
networked environment, where the  
security of the entire network needs to be considered
rather than just isolated machines.  
It uses a mix of theory and practicl techniques to 
teach administrators how to install and  
use security applications, as well as how the 
applcations work and why they are necesary.

Shell

使用 tr 命令大小写转换后,得到如下输出结果:

$ cat testfile | tr a-z A-Z #转换后的输出  
LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED  
ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS,  
FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS.  
LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE  
SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES.  
IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND  
USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY.

Shell

大小写转换,也可以通过[:lower][:upper]参数来实现。例如使用如下命令:

cat testfile |tr [:lower:] [:upper:]

Shell

输出结果如下:

$ cat testfile | tr [:lower:] [:upper:] #转换后的输出  
LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED  
ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS,  
FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS.  
LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE  
SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES.  
IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND  
USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY.

Linux 命令大全

(76) Linux- expr 命令

Linux expr命令
Linux 命令大全

expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
语法

expr 表达式

Shell

表达式说明:

  • 用空格隔开每个项;
  • 用 / (反斜杠) 放在 shell 特定的字符前面;
  • 对包含空格和其他特殊字符的字符串要用引号括起来

1、计算字串长度

> expr length “this is a test”
 14

Shell

2、抓取字串

> expr substr “this is a test” 3 5
is is

Shell

3、抓取第一个字符数字串出现的位置

> expr index "sarasara"  a
 2

Shell

4、整数运算

> expr 14 % 9
 5
 > expr 10 + 10
 20
 > expr 1000 + 900
 1900
 > expr 30 / 3 / 2
 5
 > expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
 90
 > expr 30 * 3
 expr: Syntax error

Linux 命令大全

(77) Linux- uniq 命令

Linux uniq 命令
Linux 命令大全

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。
语法

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

Shell

参数

  • -c或–count 在每列旁边显示该行重复出现的次数。
  • -d或–repeated 仅显示重复出现的行列。
  • -f<栏位>或–skip-fields=<栏位> 忽略比较指定的栏位。
  • -s<字符位置>或–skip-chars=<字符位置> 忽略比较指定的字符。
  • -u或–unique 仅显示出一次的行列。
  • -w<字符位置>或–check-chars=<字符位置> 指定要比较的字符。
  • –help 显示帮助。
  • –version 显示版本信息。
  • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
  • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:

uniq testfile

Shell

testfile中的原有内容为:

$ cat testfile      #原有内容  
test 30  
test 30  
test 30  
Hello 95  
Hello 95  
Hello 95  
Hello 95  
Linux 85  
Linux 85

Shell

使用uniq 命令删除重复的行后,有如下输出结果:

$ uniq testfile     #删除重复行后的内容  
test 30  
Hello 95  
Linux 85

Shell

检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

uniq -c testfile

Shell

结果输出如下:

$ uniq -c testfile      #删除重复行后的内容  
3 test 30             #前面的数字的意义为该行共出现了3次  
4 Hello 95            #前面的数字的意义为该行共出现了4次  
2 Linux 85            #前面的数字的意义为该行共出现了2次

Shell

当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

$ cat testfile1      # 原有内容 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85

Shell

这时我们就可以使用 sort:

$ sort  testfile1 | uniq
Hello 95  
Linux 85 
test 30

Shell

统计各行在文件中出现的次数:

$ sort testfile1 | uniq -c
   3 Hello 95  
   3 Linux 85 
   3 test 30

Shell

在文件中找出重复的行:

$ sort testfile1 | uniq -d
Hello 95  
Linux 85 
test 30

Linux 命令大全

(78) Linux- wc 命令

Linux wc命令
Linux 命令大全

Linux wc命令用于计算字数。

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为”-“,则wc指令会从标准输入设备读取数据。
语法

wc [-clw][--help][--version][文件...]

Shell

参数

  • -c或–bytes或–chars 只显示Bytes数。
  • -l或–lines 只显示行数。
  • -w或–words 只显示字数。
  • –help 在线帮助。
  • –version 显示版本信息。

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

wc testfile

Shell

先查看testfile文件的内容,可以看到:

$ cat testfile  
Linux networks are becoming more and more common, but scurity is often an overlooked  
issue. Unfortunately, in today’s environment all networks are potential hacker targets,  
fro0m tp-secret military research networks to small home LANs.  
Linux Network Securty focuses on securing Linux in a networked environment, where the  
security of the entire network needs to be considered rather than just isolated machines.  
It uses a mix of theory and practicl techniques to teach administrators how to install and  
use security applications, as well as how the applcations work and why they are necesary.

Shell

使用 wc统计,结果如下:

$ wc testfile           # testfile文件的统计信息  
3 92 598 testfile       # testfile文件的行数为3、单词数92、字节数598

Shell

其中,3 个数字分别表示testfile文件的行数、单词数,以及该文件的字节数。

如果想同时统计多个文件的信息,例如同时统计testfile、testfile_1、testfile_2,可使用如下命令:

wc testfile testfile_1 testfile_2   #统计三个文件的信息

Shell

输出结果如下:

$ wc testfile testfile_1 testfile_2  #统计三个文件的信息  
3 92 598 testfile                    #第一个文件行数为3、单词数92、字节数598  
9 18 78 testfile_1                   #第二个文件的行数为9、单词数18、字节数78  
3 6 32 testfile_2                    #第三个文件的行数为3、单词数6、字节数32  
15 116 708 总用量                    #三个文件总共的行数为15、单词数116、字节数708

Linux 命令大全

(79) Linux- let 命令

Linux let 命令
Linux 命令大全

1 命令:let

let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。
语法格式

let arg [arg ...]

Shell

参数说明:
arg:要执行的表达式
实例:
自加操作:let no++

自减操作:let no–

简写形式 let no+=10,let no-=20,分别等同于 let no=no+10,let no=no-20

以下实例计算 a 和 b 两个表达式,并输出结果:

#!/bin/bash

let a=5+4
let b=9-3 
echo $a $b

Shell

以上实例执行结果为:

9 6

Linux 命令大全

(80) Linux- lprm 命令

Linux lprm命令
Linux 命令大全

Linux lprm命令用于将一个工作由打印机贮列中移除

尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将常未送到打印机的工作取消。由于每一个打印机都有一个独立的贮列,你可以用 -P 这个命令设定想要作用的印列机。如果没有设定的话,会使用系统预设的打印机。

这个命令会检查使用者是否有足够的权限删除指定的档案,一般而言,只有档案的拥有者或是系统管理员才有这个权限。
语法

/usr/bin/lprm [P] [file...]

Shell

将打印机 hpprinter 中的第 1123 号工作移除

lprm -Phpprinter 1123

Shell

将第 1011 号工作由预设印表机中移除

lprm 1011

Linux 命令大全

(81) Linux- lpr 命令

Linux lpr命令
Linux 命令大全

lpr(line printer,按行打印)实用程序用来将一个或多个文件放入打印队列等待打印。

lpr 可以用来将料资送给本地或是远端的主机来处理。
语法

lpr [ -P printer ]

Shell

参数

  • -p Printer: 将资料送至指定的打印机 Printer,预设值为 lp。

下面的命令行将在名为mailroom的打印机上打印report文件:

$ lpr -P mailroom report

Shell

使用一条打印命令可打印多个文件,下面的命令行在名为laser1的打印机上打印3个文件:

$ lpr -P laser1 05.txt 108.txt 12.txt

Linux 命令大全

(82) Linux- lpq 命令

Linux lpq命令
Linux 命令大全

Linux lpq命令用于查看一个打印队列的状态,该程序可以查看打印机队列状态及其所包含的打印任务。
语法
lpq [l] [P] [user]

参数说明:

  • -P 指定一个打印机,否则使用默认打印机或环境变量PRINTER指定的打印机
  • -l 打印组成作业的所有文件的信息。。

为系统默认的打印机printer的一个空队列。

$ lpq  
printer is ready  
no entries

Shell

如果事先并未指定打印机(使用-P选项),系统便会显示默认的打印机。如果向打印机发送打印任务,然后查看打印队列,便会看到如下列表。

$ ls *.txt | pr -3 | lp  
request id is printer-603 (1 file(s))  
[me@linuxbox ~]$ lpq  
printer is ready and printing  
Rank    Owner   Job     File(s)                         Total Size  
active  me      603     (stdin)

Linux 命令大全

(83) Linux- lpd 命令

Linux lpd命令
Linux 命令大全

Linux lpd命令 是一个常驻的打印机管理程序,它会根据 /etc/printcap 的内容来管理本地或远端的打印机。

/etc/printcap 中定义的每一个打印机必须在 /var/lpd 中有一个相对应的目录,目录中以 cf 开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由 lpr 所产生。

lpr 和 lpd 组成了一个可以离线工作的系统,当你使用 lpr 时,打印机不需要能立即可用,甚至不用存在。

lpd 会自动监视打印机的状况,当打印机上线后,便立即将档案送交处理。这个得所有的应用程序不必等待打印机完成前一工作。
语法

lpd [-l] [#port]

Shell

参数说明

  • -l: 将一些除错讯息显示在标准输出上。
  • #port: 一般而言,lpd 会使用 getservbyname 取得适当的 TCP/IP port,你可以使用这个参数强迫 lpd 使用指定的 port。

这个程序通常是由 /etc/rc.d 中的程序在系统启始阶段执行。

Linux 命令大全

(84) Linux- bye 命令

Linux bye命令
Linux 命令大全

Linux bye命令用于中断FTP连线并结束程序。

在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。
语法

bye

Linux 命令大全

(85) Linux- ftp 命令

Linux ftp命令
Linux 命令大全

Linux ftp命令设置文件系统相关功能。

FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。
语法

ftp [-dignv][主机名称或IP地址]

Shell

参数

  • -d 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -i 关闭互动模式,不询问任何问题。
  • -g 关闭本地主机文件名称支持特殊字符的扩充特性。
  • -n 不使用自动登陆。
  • -v 显示指令执行过程。

例如使用ftp命令匿名登录ftp.kernel.org服务器,该服务是Linux 内核的官方服务器,可以使用如下命令:

ftp ftp.kernel.org #发起链接请求

Linux 命令大全

(86) Linux- uuto 命令

Linux uuto命令
Linux 命令大全

Linux uuto命令将文件传送到远端的UUCP主机。

uuto为script文件,它实际上会执行uucp,用来将文件传送到远端UUCP主机,并在完成工作后,以邮件通知远端主机上的用户。
语法

uuto [文件][目的]

Shell

参数

相关参数请参考 uucp指令。

将文件传送到远程UUCP主机localhost的tmp 目录,在命令提示符中直接输入如下命令:

uuto./testfile localhost/tmp #将文件传送到远程UUCP 主机localhost的tmp目录

Shell

该命令通常没有输出。

Linux 命令大全

(87) Linux- uupick 命令

Linux uupick命令
Linux 命令大全

Linux uupick命令处理传送进来的文件。

当其他主机通过UUCP将文件传送进来时,可利用uupick指令取出这些文件。
语法

uupick [-v][-I<配置文件>][-s<主机>][-x<层级>][--help]

Shell

参数

  • -I<配置文件>或–config<配置文件> 指定配置文件。
  • -s<主机>或–system<主机> 处理由指定主机传送过来的文件。
  • -v或–version 显示版本信息。
  • –help 显示帮助。

处理由主机localhost传送过来的文件。在命令行直接输入如下命令:

uupick-s localhost

Shell

该命令通常没有输出。

Linux 命令大全

(88) Linux- uucp 命令

Linux uucp命令
Linux 命令大全

Linux uucp命令用于在Unix系统之间传送文件。

UUCP为Unix系统之间,通过序列线来连线的协议。uucp使用UUCP协议,主要的功能为传送文件。
语法

uucp [-cCdfjmrRtvW][-g<等级>][-I<配置文件>][-n<用户>][-x<类型>][--help][...来源][目的]

Shell

参数说明

  • -c或–nocopy 不用将文件复制到缓冲区。
  • -C或–copy 将文件复制到缓冲区。
  • -d或–directiories 在传送文件时,自动在[目的]建立必要的目录。
  • -f或–nodirectiories 在传送文件时,若需要在[目的]建立目录,则放弃执行该作业。
  • -g<等级>或–grade<等级> 指定文件传送作业的优先顺序。
  • -I<配置文件>或–config<配置文件> 指定uucp配置文件。
  • -j或–jobid 显示作业编号。
  • -m或–mail 作业结束后,以电子邮件报告作业是否顺利完成。
  • -n<用户>或–notify<用户> 作业结束后,以电子邮件向指定的用户报告作业是否顺利完成。
  • -r或–nouucico 不要立即启动uucico服务程序,仅将作业送到队列中,待稍后再执行。
  • -R或–recursive 若[来源]为目录,则将整个目录包含子目录复制到[目的]。
  • -t或–uuto 将最后一个参数视为”主机名!用户”。
  • -v或–version 显示版本信息。
  • -W或–noexpand 不要将目前所在的目录加入路径。
  • -x<类型>或–debug<类型>启动指定的排错模式。
  • –help 显示帮助。
  • [源…] 指定源文件或路径。
  • [目的] 指定目标文件或路径。

将temp/目录下所有文件传送到远程主机localhost的uucp公共目录下的Public/目录下。在命令行中输入如下命令:

uucp-d-R temp localhost ~/Public/

Shell

该命令通常没有输出

Linux 命令大全

(89) Linux- uucico 命令

Linux uucico命令
Linux 命令大全

Linux uucico命令UUCP文件传输服务程序。

uucico是用来处理uucp或uux送到队列的文件传输工具。uucico有两种工作模式:主动模式和附属模式。当在主动模式下时,uucico会调用远端主机;在附属模式下时,uucico则接受远端主机的调用。
语法

uucico [-cCDefqvwz][-i<类型>][-I<文件>][-p<连接端口号码>][-][-rl][-s<主机>][-S<主机>][-u<用户>][-x<类型>][--help]

Shell

参数说明

  • -c或–quiet 当不执行任何工作时,不要更改记录文件的内容及更新目前的状态。
  • -C或–ifwork 当有工作要执行时,才调用-s或-S参数所指定主机。
  • -D或–nodetach 不要与控制终端机离线。
  • -e或–loop 在附属模式下执行,并且出现要求登入的提示画面。
  • -f或–force 当执行错误时,不等待任何时间即重新调用主机。
  • -i<类型>或–stdin<类型> 当使用到标准输入设备时,指定连接端口的类型。
  • -I<文件>–config<文件> 指定使用的配置文件。
  • -l或–prompt 出现要求登入的提示画面。
  • -p<连接端口号码>或-port<连接端口号码> 指定连接端口号码。
  • -q或–quiet 不要启动uuxqt服务程序。
  • -r0或–slave 以附属模式启动。
  • -s<主机>或–system<主机> 调用指定的主机。
  • -u<用户>或–login<用户> 指定登入的用户帐号,而不允许输入任意的登入帐号。
  • -v或–version 显示版本信息,并且结束程序。
  • -w或–wait 在主动模式下,当执行调用动作时,则出现要求登入的提示画面。
  • -x<类型>或-X<类型>或outgoing-debug<类型> 启动指定的排错模式。
  • -z或–try-next 当执行不成功时,尝试下一个选择而不结束程序。
  • –help 显示帮助,并且结束程序。

使用主动模式启动uucico服务。在命令提示符下直接输入如下命令:

uucico-r1

Shell

提示:该命令一般没有输出。

Linux 命令大全

(90) Linux- tftp 命令

Linux tftp命令
Linux 命令大全

Linux tftp命令用于传输文件。

FTP让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。tftp是简单的文字模式ftp程序,它所使用的指令和FTP类似。
语法

tftp [主机名称或IP地址]

Shell

操作说明:

  • connect:连接到远程tftp服务器
  • mode:文件传输模式
  • put:上传文件
  • get:下载文件
  • quit:退出
  • verbose:显示详细的处理信息
  • trace:显示包路径
  • status:显示当前状态信息
  • binary:二进制传输模式
  • ascii:ascii 传送模式
  • rexmt:设置包传输的超时时间
  • timeout:设置重传的超时时间
  • help:帮助信息
  • ? :帮助信息

连接远程服务器”218.28.188.288″,然后使用put 命令下载其中根目录下的文件”README”,可使用命令如下:

tftp 218.28.188.288 #连接远程服务器

Shell

连接服务器之后可进行相应的操作,具体如下:

$ tftp 218.28.188.228                      #连接远程服务器  
tftp> ?                                    #使用?,参考帮助  
Commands may be abbreviated. Commands are: #帮助命令列表  
connect connect to remote tftp  
mode set file transfer mode  
put send file  
get receive file  
quit exit tftp  
verbose toggle verbose mode  
trace toggle packet tracing  
status show current status  
binary set mode to octet  
ascii set mode to netascii  
rexmt set per-packet retransmission timeout  
timeout set total retransmission timeout  
? print help information  
tftp>get README                             #远程下载README文件  
getting from 218.28.188.288 to /home/cmd  
Recived 168236 bytes in 1.5 seconds[112157 bit/s]  
tftp>quit                                   #离开tftp

Shell

Linux 命令大全

(91) Linux- ncftp 命令

Linux ncftp命令
Linux 命令大全

Linux ncftp命令用于传输文件。

FTP让用户得以下载存放于服务器主机的文件,也能将文件上传到远端主机放置。

NcFTP是文字模式FTP程序的佼佼者,它具备多样特色, 包括显示传输速率,下载进度,自动续传,标住书签,可通过防火墙和代理服务器等。

当不指定用户名时,ncftp 命令会自动尝试使用匿名账户anonymous 去连接远程FTP 服

务器,不需要用户输入账号和密码。
语法

ncftp [主机或IP地址]

Shell

参数说明:

  • -u<用户名> 指定登录FTP服务器的用户名
  • -p<密码> 设置用户密码
  • -P<端口号> 指定FTP端口号,默认为21
  • -j<账号> 指定账号
  • -h 帮助信息
  • -v 版本信息

实例
使用ncftp命令匿名连接FTP服务器。

例如想匿名连接ftp.kernel.org服务器,同时不想输入anonymous等匿名用户名,可直接使用ncftp命令:

ncftp ftp.kernel.org

Shell

得到如下信息:

$ ncftp ftp.kernel.org #匿名连接ftp.kernel.org服务器  
NcFTP 3.2.1 (Jul 29, 2007) by Mike Gleason (http://www.NcFTP.com/contact/).  
#ncftp版权、版本等信息  
Copyright (c) 1992-2005 by Mike Gleason.  
All rights reserved.  
Connecting to 149.20.20.133... #连接服务器  
Welcome to ftp.kernel.org.  
Logging in... #匿名登录  
Welcome to the #欢迎信息  
LINUX KERNEL ARCHIVES  
ftp.kernel.org  
"Much more than just kernels"  
IF YOU'RE ACCESSING THIS SITE VIA A WEB BROWSER  
PLEASE USE THE HTTP URL BELOW INSTEAD!  
----> If you are looking for mirror sites, please go <---- 
----> to mirrors.kernel.org instead <---- 
This site is provided as a public service by the Linux Kernel  
Organization, a California nonprofit corporation. Bandwidth is  
provided by The Internet Software Consortium, Inc. Our servers are  
located in San Francisco and Palo Alto, California; Corvallis, Oregon;  
Amsterdam, Netherlands and Ume., Sweden; use in violation of any  
applicable laws strictly prohibited.  
Due to U.S. Exports Regulations, all cryptographic software on this  
site is subject to the following legal notice:  
This site includes publicly available encryption source code  
which, together with object code resulting from the compiling of  
publicly available source code, may be exported from the United  
States under License Exception "TSU" pursuant to 15 C.F.R. Section  
740.13(e).  
This legal notice applies to cryptographic software only. Please see  
the Bureau of Industry and Security (http://www.bis.doc.gov/) for more  
information about current U.S. regulations.  
Neither the Linux Kernel Organization, nor its sponsors make any  
guarantees, explicit or implicit, about the contents of this site.  
Use at your own risk.  
This site is accessible via the following mechanisms:  
FTP ftp://ftp.kernel.org/pub/  
HTTP http://www.kernel.org/pub/  
RSYNC rsync://rsync.kernel.org/pub/  
NFS and SMB/CIFS are no longer available.  
For comments on this site, please contact <[email protected]>.  
Please do not use this address for questions that are not related to  
the operation of this site. Please see our homepage at  
http://www.kernel.org/ for links to Linux documentation resources.  
Login successful.  
Logged in to ftp.kernel.org.  
ncftp / >

Shell

提示:ncftp的命令提示符为”ncftp / >”,而不是ftp中的”ftp / >”。

使用ncftp命令操作、下载文件。

ncftp的命令基本上与ftp相同,例如可以使用”cd”命令切换在FTP服务器中的当前目录,使用”ls”命令列出当前目录内容,使用”get”命令下载”/pub”目录下的README文件、使用”quit”离开ncftp等。操作结果如下:

ncftp / > pwd               #查看当前路径  
ftp://ftp.kernel.org        #当前路径为根目录  
ncftp / > ls                #查看当前目录列表  
bin/ for_mirrors_only/ pub/  
dev/ lib/ usr@  
etc/ lost+found/ welcome.msg@  
ncftp / > cd pub            #切换目录到pub 子目录  
Directory successfully changed.  
ncftp /pub > ls             #查看pub 的目录列表  
dist/ media/ scm/  
index.html RCS/ site/  
linux/ README software/  
lost+found/ README_ABOUT_BZ2_FILES tools/  
ncftp /pub > get README     #下载README 文件  
README: 1.87 KB 10.39 KB/s  
ncftp /pub > quit           #离开ncftp

Shell

与ftp不同的是,ncftp此时会提示用户是否将FTP服务器保存为书签,以便于下次登录,用户可以进行自定义书签名等操作,如下所示:

You have not saved a bookmark for this site.  #离开提示信息  
Would you like to save a bookmark to:  
ftp://ftp.kernel.org/pub/  
Save? (yes/no) yes                            #确认是否保存  
Enter a name for this bookmark, or hit enter for "kernel": kernel #输入书签名  
Bookmark "kernel" saved.

Linux 命令大全

(92) Linux- ftpshut 命令

Linux ftpshut命令
Linux 命令大全

Linux ftpshut命令在指定的时间关闭FTP服务器。

本指令提供系统管理者在设置的时间关闭FTP服务器,且能在关闭之前发出警告信息通知用户。关闭时间若设置后为”none”,则会马上关闭服务器。如果采用”+30″的方式来设置表示服务器在30分钟之后关闭。依次类推,假设使用”1130″的格式则代表服务器会在每日的11时30分关闭,时间格式为24小时制。FTP服务器关闭后,在/etc目录下会产生一个名称为shutmsg的文件,把它删除后即可再度启动FTP服务器的功能。
语法

ftpshut [-d<分钟>][-l<分钟>][关闭时间]["警告信息"]

Shell

参数

  • -d<分钟> 切断所有FTP连线时间。
  • -l<分钟> 停止接受FTP登入的时间。

在晚上11:00 关闭FTP服务器,并在关闭前5 分钟拒绝新的FTP登录,前3 分钟关闭所有ftp的链接,且给出警告信息,可使用如下命令:

ftpshut-d 3 -1 5 1100 "Server will be shutdown at 23:00:00"

Linux 命令大全

(93) Linux- ftpwho 命令

Linux ftpwho命令
Linux 命令大全

Linux ftpwho命令用于显示目前所有以FTP登入的用户信息。

执行这项指令可得知目前用FTP登入系统的用户有那些人,以及他们正在进行的操作。
语法

ftpwho

Shell

参数说明:

  • -v 显示版本信息

查询当前有哪些用户正在登录FTP服务器,可直接使用如下命令:

ftpwho

Shell

该命令有如下输出结果:

$ ftpwho              #查询当前正在登录FTP 服务器的用户  
standalone FTP daemon[2085]:  
3547 wyw [1m20s] 1m25s(idle)  
Service class - 1 user #当前有一个用户登录FTP服务器

Linux 命令大全

(94) Linux- ftpcount 命令

Linux ftpcount命令
Linux 命令大全

Linux ftpcount命令用于显示目前以FTP登入的用户人数。

执行这项指令可得知目前用FTP登入系统的人数以及FTP登入人数的上限。
语法

ftpcount

Shell

参数说明:

  • -f<设定文件> : 指定设定文件的路径。
  • -h,–help :显示帮助信息。

ftpcount 可以直接查询FTP服务器上用户的人数,可直接使用如下命令:

ftpcount              #查询当前FTP用户的人数

Shell

该命令有如下输出结果:

$ ftpcount             #查询当前FTP用户的人数  
Master proftpd process 2085:  
Service class - 6 user #当前共6个用户登录到服务器

Linux 命令大全

(95) Linux- cd 命令

Linux cd命令
Linux 命令大全

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,”~” 也表示为 home 目录 的意思,”.” 则是表示目前所在的目录,”…” 则表示目前目录位置的上一层目录。
语法

cd [dirName]

Shell

  • dirName:要切换的目标目录。

跳到 /usr/bin/ :

cd /usr/bin

Shell

跳到自己的 home 目录 :

cd ~

Shell

跳到目前目录的上上两层 :

cd ../..

Linux 命令大全

(96) Linux- df 命令

Linux df命令
Linux 命令大全

Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。
语法

df [选项]... [FILE]...

Shell

  • 文件-a, –all 包含所有的具有 0 Blocks 的文件系统
  • 文件–block-size={SIZE} 使用 {SIZE} 大小的 Blocks
  • 文件-h, –human-readable 使用人类可读的格式(预设值是不加这个选项的…)
  • 文件-H, –si 很像 -h, 但是用 1000 为单位而不是用 1024
  • 文件-i, –inodes 列出 inode 资讯,不列出已使用 block
  • 文件-k, –kilobytes 就像是 –block-size=1024
  • 文件-l, –local 限制列出的文件结构
  • 文件-m, –megabytes 就像 –block-size=1048576
  • 文件–no-sync 取得资讯前不 sync (预设值)
  • 文件-P, –portability 使用 POSIX 输出格式
  • 文件–sync 在取得资讯前 sync
  • 文件-t, –type=TYPE 限制列出文件系统的 TYPE
  • 文件-T, –print-type 显示文件系统的形式
  • 文件-x, –exclude-type=TYPE 限制列出文件系统不要显示 TYPE
  • 文件-v (忽略)
  • 文件–help 显示这个帮手并且离开
  • 文件–version 输出版本资讯并且离开

显示文件系统的磁盘使用情况统计:

# df 
Filesystem     1K-blocks    Used     Available Use% Mounted on 
/dev/sda6       29640780 4320704     23814388  16%     / 
udev             1536756       4     1536752    1%     /dev 
tmpfs             617620     888     616732     1%     /run 
none                5120       0     5120       0%     /run/lock 
none             1544044     156     1543888    1%     /run/shm

Shell

第一列指定文件系统的名称,第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。

使用列指定使用的内存的百分比,而最后一栏”安装在”指定的文件系统的挂载点。

df也可以显示磁盘使用的文件系统信息:

# df test 
Filesystem     1K-blocks    Used      Available Use% Mounted on 
/dev/sda6       29640780    4320600   23814492  16%       /

Shell

用一个-i选项的df命令的输出显示inode信息而非块使用量。

df -i 
Filesystem      Inodes    IUsed    IFree     IUse% Mounted on 
/dev/sda6      1884160    261964   1622196   14%        / 
udev           212748     560      212188    1%         /dev 
tmpfs          216392     477      215915    1%         /run 
none           216392     3        216389    1%         /run/lock 
none           216392     8        216384    1%         /run/shm

Shell

显示所有的信息:

# df --total 
Filesystem     1K-blocks    Used    Available Use% Mounted on 
/dev/sda6       29640780 4320720    23814372  16%     / 
udev             1536756       4    1536752   1%      /dev 
tmpfs             617620     892    616728    1%      /run 
none                5120       0    5120      0%      /run/lock 
none             1544044     156    1543888   1%      /run/shm 
total           33344320 4321772    27516860  14%

Shell

我们看到输出的末尾,包含一个额外的行,显示总的每一列。

-h选项,通过它可以产生可读的格式df命令的输出:

# df -h 
Filesystem      Size  Used   Avail Use% Mounted on 
/dev/sda6       29G   4.2G   23G   16%     / 
udev            1.5G  4.0K   1.5G   1%     /dev 
tmpfs           604M  892K   603M   1%     /run 
none            5.0M     0   5.0M   0%     /run/lock 
none            1.5G  156K   1.5G   1%     /run/shm

Shell

我们可以看到输出显示的数字形式的’G’(千兆字节),”M”(兆字节)和”K”(千字节)。

这使输出容易阅读和理解,从而使显示可读的。请注意,第二列的名称也发生了变化,为了使显示可读的”大小”。

Linux 命令大全

(97) Linux- dirs 命令

Linux dirs命令
Linux 命令大全

Linux dirs命令用于显示目录记录。

显示目录堆叠中的记录。
语法

dirs [+/-n -l]

Shell

参数

  • +n 显示从左边算起第n笔的目录。
  • -n 显示从右边算起第n笔的目录。
  • -l 显示目录完整的记录。

列出”/home/cc/Ruijie”里所有内容的详细信息。可用如下命令。

dir -l /home/cc/Ruijie

Shell

下面是显示的内容:

$ dir -l /home/cc/Ruijie

总计2168

-rwxr-xr-x 1 cc cc  112876 2008-06-26 libpcap.so.0.6.2 -rwxr-xr-x 1 cc cc  737192 2008-06-26 libstdc++.so.5 -rwxr-xr-x 1 cc cc1938 2004-04-23 readme.txt

-rwxr-xr-x 1 cc cc 1350772 2005-08-31 xrgsu

Linux 命令大全

(98) Linux- du 命令

Linux du命令
Linux 命令大全

Linux du命令用于显示目录或文件的大小。

du会显示指定的目录或文件所占用的磁盘空间。
语法

du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

Shell

参数说明

  • -a或-all 显示目录中个别文件的大小。
  • -b或-bytes 显示目录或文件大小时,以byte为单位。
  • -c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -D或–dereference-args 显示指定符号连接的源文件大小。
  • -h或–human-readable 以K,M,G为单位,提高信息的可读性。
  • -H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
  • -k或–kilobytes 以1024 bytes为单位。
  • -l或–count-links 重复计算硬件连接的文件。
  • -L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  • -m或–megabytes 以1MB为单位。
  • -s或–summarize 仅显示总计。
  • -S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  • -x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  • -X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
  • –exclude=<目录或文件> 略过指定的目录或文件。
  • –max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  • –help 显示帮助。
  • –version 显示版本信息。

显示目录或者文件所占空间:

# du
608     ./test6
308     ./test4
4       ./scf/lib
4       ./scf/service/deploy/product
4       ./scf/service/deploy/info
12      ./scf/service/deploy
16      ./scf/service
4       ./scf/doc
4       ./scf/bin
32      ./scf
8       ./test3
1288    .

Shell

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小

显示指定文件所占空间

# du log2012.log 
300     log2012.log

Shell

方便阅读的格式显示test目录所占空间情况:

# du -h test
608K    test/test6
308K    test/test4
4.0K    test/scf/lib
4.0K    test/scf/service/deploy/product
4.0K    test/scf/service/deploy/info
12K     test/scf/service/deploy
16K     test/scf/service
4.0K    test/scf/doc
4.0K    test/scf/bin
32K     test/scf
8.0K    test/test3
1.3M    test

Linux 命令大全

(99) Linux- edquota 命令

Linux edquota命令
Linux 命令大全

Linux edquota命令用于编辑用户或群组的磁盘配额。

edquota预设会使用vi来编辑使用者或群组的磁盘配额设置。
语法

edquota [-p <源用户名称>][-ug][用户或群组名称...]

Shell

edquota [-ug] -t

Shell

参数

  • -u 设置用户的磁盘配额,这是预设的参数。
  • -g 设置群组的磁盘配额。
  • -p<源用户名称> 将源用户的磁盘配额设置套用至其他用户或群组。
  • -t 设置宽限期限。

Linux 命令大全

(100) Linux- eject 命令

Linux eject命令
Linux 命令大全

Linux eject命令用于退出抽取式设备。

若设备已挂入,则eject会先将该设备卸除再退出。
语法

eject [-dfhnqrstv][-a <开关>][-c <光驱编号>][设备]

Shell

参数说明

  • [设备] 设备可以是驱动程序名称,也可以是挂入点。
  • -a<开关>或–auto<开关> 控制设备的自动退出功能。
  • -c<光驱编号>或–changerslut<光驱编号> 选择光驱柜中的光驱。
  • -d或–default 显示预设的设备,而不是实际执行动作。
  • -f或–floppy 退出抽取式磁盘。
  • -h或–help 显示帮助。
  • -n或–noop 显示指定的设备。
  • -q或–tape 退出磁带。
  • -r或–cdrom 退出光盘。
  • -s或–scsi 以SCSI指令来退出设备。
  • -t或–trayclose 关闭光盘的托盘。
  • -v或–verbose 执行时,显示详细的说明。
# eject //不加参数默认弹出
# eject -r /dev/cdrom //指定设备

Linux 命令大全

(101) Linux- mcd 命令

Linux mcd命令
Linux 命令大全

Linux mcd为mtools工具指令,可在MS-DOS文件系统中切换工作目录。若不加任何参数,则显示目前所在的磁盘与工作目录。
语法

mcd [msdosdirectory]

Shell

变更目前工作目录到 a: emp 中。

mcd a: emp

Shell

传回目前工作目录。

mcd

Linux 命令大全

(102) Linux- mdeltree 命令

Linux mdeltree命令
Linux 命令大全

Linux mdeltree命令可用来删除 MSDOS 格式档案及目录。

mdeltree 会将所指定的目录与目录之下的所有档案与目录都删除掉。如果所指定的档案或目录不存在,则会传回错误讯息。
语法

mdeltree [-v] msdosdirectory [msdosdirectories...]

Shell

参数说明

  • -v 显示更多的信息。

将 A 磁盘根目录中的 msdosdir 目录以下的档案与目录都删除掉。

mcopy a:msdosdir

Linux 命令大全

(103) Linux- mdu 命令

Linux mdu命令
Linux 命令大全

Linux mdu命令用于显示MS-DOS目录所占用的磁盘空间。

mdu为mstools工具指令,可显示MS-DOS文件系统中目录所占用的磁盘空间。
语法

mdu [-as][目录]

Shell

参数说明

  • -a 显示每个文件及整个目录所占用的空间。
  • -s 仅显示整个目录所占用的空间。

Linux 命令大全

(104) Linux- mkdir 命令

Linux mkdir命令
Linux 命令大全

Linux mkdir命令用于建立名称为 dirName 之子目录。
语法

mkdir [-p] dirName

Shell

参数说明

  • -p 确保目录名称存在,不存在的就建一个。

在工作目录下,建立一个名为 AAA 的子目录 :

mkdir AAA

Shell

在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。
若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

mkdir -p BBB/Test

Linux 命令大全

(105) Linux- mlabel 命令

Linux mlabel命令
Linux 命令大全

Linux mlabel命令用于设定磁盘的标签 (Label)。

如果磁盘上设定过标签,mlabel 会将他显示给使用者。如果没有指定新标签并且没有指定 c 或 s 选项,mlabel 会提示使用者输入新的标签。如果直接按下 Enter ,就会将原本的标签删除。
语法

mlabel [-vcs] drive:[new_label]

Shell

参数说明

  • -v 更多的讯息。
  • -c 清除原有的标签,不出现提示讯息。
  • -s 显示目前的标签,不出现提示讯息。

将 A 盘的标签更改为 newlabel。

mlabel a:newlabel

Linux 命令大全

(106) Linux- mmd 命令

Linux mmd命令
Linux 命令大全

Linux mmd命令用于在MS-DOS文件系统中建立目录。

mmd为mtools工具指令,模拟MS-DOS的md指令,可在MS-DOS的文件系统中建立目录。
语法

mmd [目录...]

Linux 命令大全

(107) Linux- mrd 命令

Linux mrd命令
Linux 命令大全

Linux mrd命令用于删除MS-DOS文件系统中的目录。

mrd为mtools工具指令,模拟MS-DOS的rd指令,可删除MS-DOS的目录。
语法

mrd [目录...]

Linux 命令大全

(108) Linux- mzip 命令

Linux mzip命令
Linux 命令大全

Linux mzip命令是Zip/Jaz磁盘驱动器控制指令。

mzip为mtools工具指令,可设置Zip或Jaz磁盘驱动区的保护模式以及执行退出磁盘的动作。
语法

mzip [-efpqruwx]

Shell

参数

  • -e 退出磁盘。
  • -f 与-e参数一并使用,不管是否已经挂入磁盘中的文件系统,一律强制退出磁盘。
  • -p 设置磁盘的写入密码。
  • -q 显示目前的状态。
  • -r 将磁盘设为防写状态。
  • -u 退出磁盘以前,暂时解除磁盘的保护状态。
  • -w 将磁盘设为可写入状态。
  • -x 设置磁盘的密码。

Linux 命令大全

(109) Linux- pwd 命令

Linux pwd命令
Linux 命令大全

Linux pwd命令用于显示工作目录。

执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
语法

pwd [--help][--version]

Shell

参数说明:

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

查看当前所在目录:

# pwd
/root/test           #输出结果

Linux 命令大全

(110) Linux- quota 命令

Linux quota命令
Linux 命令大全

Linux quota命令用于显示磁盘已使用的空间与限制。

执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间。
语法

quota [-quvV][用户名称...]quota [-gqvV][群组名称...]

Shell

参数说明

  • -g 列出群组的磁盘空间限制。
  • -q 简明列表,只列出超过限制的部分。
  • -u 列出用户的磁盘空间限制。
  • -v 显示该用户或群组,在所有挂入系统的存储设备的空间限制。
  • -V 显示版本信息。
# quota -guvs    <==显示目前执行者(就是 root )的 quota 值 
# quota -uvs test <==显示 test 这个使用者的 quota 值

Linux 命令大全

(111) Linux- mount 命令

Linux mount命令
Linux 命令大全

Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。
语法

mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir

Shell

参数说明:

  • -V:显示程序版本
  • -h:显示辅助讯息
  • -v:显示较讯息,通常和 -f 用来除错。
  • -a:将 /etc/fstab 中定义的所有档案系统挂上。
  • -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
  • -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
  • -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
  • -s-r:等于 -o ro
  • -w:等于 -o rw
  • -L:将含有特定标签的硬盘分割挂上。
  • -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
  • -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
  • -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
  • -o sync:在同步模式下执行。
  • -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
  • -o auto、-o noauto:打开/关闭自动挂上模式。
  • -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
  • -o dev、-o nodev-o exec、-o noexec允许执行档被执行。
  • -o suid、-o nosuid:
  • 允许执行档在 root 权限下执行。
  • -o user、-o nouser:使用者可以执行 mount/umount 的动作。
  • -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
  • -o ro:用唯读模式挂上。
  • -o rw:用可读写模式挂上。
  • -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。

将 /dev/hda1 挂在 /mnt 之下。

#mount /dev/hda1 /mnt

Shell

将 /dev/hda1 用唯读模式挂在 /mnt 之下。

#mount -o ro /dev/hda1 /mnt

Shell

将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。

#mount -o loop /tmp/image.iso /mnt/cdrom

Linux 命令大全

(112) Linux- mmount 命令

Linux mmount命令
Linux 命令大全

Linux mmount命令用于挂入MS-DOS文件系统。

mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内容挂入到Linux目录中。
语法

mmount [驱动器代号][mount参数]

Shell

参数

  • [mount参数]的用法请参考 mount指令。

Linux 命令大全

(113) Linux- rmdir 命令

Linux rmdir命令
Linux 命令大全

Linux rmdir命令删除空的目录。
语法

rmdir [-p] dirName

Shell

参数

  • -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
  • 将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA

Shell

在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。

rmdir -p BBB/Test

Linux 命令大全

(114) Linux- rmt 命令

Linux rmt命令
Linux 命令大全

Linux rmt命令通过进程间通信远程控制磁带机。

通过rmt指令,用户可通过IPC连线,远端操控磁带机的倾倒和还原操作。
语法

rmt

Linux 命令大全

(115) Linux- stat 命令

Linux stat命令
Linux 命令大全

Linux stat命令用于显示inode内容。

stat以文字的格式来显示inode的内容。
语法

stat [文件或目录]

Shell

查看 testfile 文件的inode内容内容,可以用以下命令:

1 stat testfile

执行以上命令输出结果:

# stat testfile                #输入命令
  File: `testfile'
  Size: 102             Blocks: 8          IO Block: 4096   regular file
Device: 807h/2055d      Inode: 1265161     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-08-13 14:07:20.000000000 +0800
Modify: 2014-08-13 14:07:07.000000000 +0800
Change: 2014-08-13 14:07:07.000000000 +0800

Linux 命令大全

(116) Linux- tree 命令

Linux tree命令
Linux 命令大全

Linux tree命令用于以树状图列出目录的内容。

执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
语法

tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]

Shell

参数说明

  • -a 显示所有文件和目录。
  • -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
  • -C 在文件和目录清单加上色彩,便于区分各种类型。
  • -d 显示目录名称而非内容。
  • -D 列出文件或目录的更改时间。
  • -f 在每个文件或目录之前,显示完整的相对路径名称。
  • -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”=”,”@”,”|”号。
  • -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
  • -i 不以阶梯状列出文件或目录名称。
  • -L level 限制目录显示层级。
  • -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
  • -n 不在文件和目录清单加上色彩。
  • -N 直接列出文件和目录名称,包括控制字符。
  • -p 列出权限标示。
  • -P<范本样式> 只显示符合范本样式的文件或目录名称。
  • -q 用”?”号取代控制字符,列出文件和目录名称。
  • -s 列出文件或目录大小。
  • -t 用文件和目录的更改时间排序。
  • -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
  • -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

以树状图列出当前目录结构。可直接使用如下命令:

tree

Shell

该命令有如下输出结果:

# tree                   #以树状图列出当前目录结构  
.                        #当前目录结构  
|-- README  
|-- examples.desktop  
|-- file  
|-- file.new  
|-- index.htm  
|-- test  
| |-- README  
| |-- file  
| |-- testfile  
| |-- testfile1  
| |-- xaa  
| |-- xab  
| |-- xac  
| |-- xad  
| |-- xae  
| |-- xaf  
| |-- xag  
| |-- xah  
| `-- xai  
|-- test.tar.gz  
|-- test.zip  
|-- testfile  
|-- testfile.new  
|-- testfile.patch  
|-- testfile1  
|-- testfile2  
|-- testfile3  

Linux 命令大全

(117) Linux- umount 命令

Linux umount命令
Linux 命令大全

Linux umount命令用于卸除文件系统。

umount可卸除目前挂在Linux目录中的文件系统。
语法

umount [-ahnrvV][-t <文件系统类型>][文件系统]

Shell

参数

  • -a 卸除/etc/mtab中记录的所有文件系统。
  • -h 显示帮助。
  • -n 卸除时不要将信息存入/etc/mtab文件中。
  • -r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
  • -t<文件系统类型> 仅卸除选项中所指定的文件系统。
  • -v 执行时显示详细的信息。
  • -V 显示版本信息。
  • [文件系统] 除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。

下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:

# umount -v /dev/sda1          通过设备名卸载  
/dev/sda1 umounted  
# umount -v /mnt/mymount/      通过挂载点卸载  
/tmp/diskboot.img umounted

Shell

如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:

# umount -v /mnt/mymount/  
umount: /mnt/mymount: device is busy  
umount: /mnt/mymount: device is busy

Linux 命令大全

(118) Linux- ls 命令

Linux ls命令
Linux 命令大全

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法

ls [-alrtAFR] [name...]

Shell

参数 :

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下之文件亦皆依序列出

列出根目录()下的所有目录:

# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var

Shell

列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :

ls -ltr s*

Shell

将 /bin 目录以下所有目录及文件详细资料列出 :

ls -lR /bin

Shell

列出目前工作目录下所有文件及目录;目录于名称后加 “/”, 可执行档于名称后加 “*” :

ls -AF

Linux 命令大全

(119) Linux- quotacheck 命令

Linux quotacheck命令
Linux 命令大全

Linux quotacheck命令用于检查磁盘的使用空间与限制。

执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。
语法

quotacheck [-adgRuv][文件系统...]

Shell

参数

  • -a 扫描在/etc/fstab文件里,有加入quota设置的分区。
  • -d 详细显示指令执行过程,便于排错或了解程序执行的情形。
  • -g 扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目。
  • -R 排除根目录所在的分区。
  • -u 扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目。
  • -v 显示指令执行过程。

Linux 命令大全

(120) Linux- quotaoff 命令

Linux quotaoff命令
Linux 命令大全

Linux quotaoff命令关闭磁盘空间限制。

执行quotaoff指令可关闭用户和群组的磁盘空间限制。
语法

quotaoff [-aguv][文件系统...]

Shell

参数说明

  • -a 关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制。
  • -g 关闭群组的磁盘空间限制。
  • -u 关闭用户的磁盘空间限制。
  • -v 显示指令执行过程。

关闭配额限制:

# quotaoff -a

Linux 命令大全

(121) Linux- lndir 命令

Linux lndir命令
Linux 命令大全

Linux lndir命令用于连接目录内容。

执行lndir指令,可一口气把源目录底下的文件和子目录统统建立起相互对应的符号连接。
语法

lndir [-ignorelinks][-silent][源目录][目的目录]

Shell

参数

  • -ignorelinks 直接建立符号连接的符号连接。
  • -silent 不显示指令执行过程。

给目录下所有的文件或者子文件目录建立链接:

lndir /home/uptech abc

Linux 命令大全

(122) Linux- repquota 命令

Linux repquota命令
Linux 命令大全

Linux repquota命令用于检查磁盘空间限制的状态。

执行repquota指令,可报告磁盘空间限制的状况,清楚得知每位用户或每个群组已使用多少空间。
语法

repquota [-aguv][文件系统...]

Shell

参数说明

  • -a 列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组。
  • -g 列出所有群组的磁盘空间限制。
  • -u 列出所有用户的磁盘空间限制。
  • -v 显示该用户或群组的所有空间限制。

Linux 命令大全

(123) Linux- quotaon 命令

Linux quotaon命令
Linux 命令大全

Linux quotaon命令用于开启磁盘空间限制。

执行quotaon指令可开启用户和群组的才磅秒年空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。
语法

quotaon [-aguv][文件系统...]

Shell

参数说明

  • -a 开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
  • -g 开启群组的磁盘空间限制。
  • -u 开启用户的磁盘空间限制。
  • -v 显示指令指令执行过程。

Linux 命令大全

(124) Linux- badblocks 命令

Linux badblocks命令
Linux 命令大全

Linux badblocks命令用于检查磁盘装置中损坏的区块。

执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。
语法

badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数][启始区块]

Shell

参数说明

  • -b<区块大小> 指定磁盘的区块大小,单位为字节。
  • -o<输出文件> 将检查的结果写入指定的输出文件。
  • -s 在检查时显示进度。
  • -v 执行时显示详细的信息。
  • -w 在检查时,执行写入测试。
  • [磁盘装置] 指定要检查的磁盘装置。
  • [磁盘区块数] 指定磁盘装置的区块总数。
  • [启始区块] 指定要从哪个区块开始检查。

查看系统当前硬盘信息。

# fdisk -l

Shell

例如,显示信息如下:

Disk /dev/sda: 298.9 GB, 298999349248 bytes
255 heads, 63 sectors/track, 36351 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         262     2104483+  82  Linux swap / Solaris
/dev/sda2   *         263       32898   262148670   83  Linux
/dev/sda3           32899       36351    27736222+  83  Linux

Disk /dev/sdb: 42.9 GB, 42949672960 bytes
64 heads, 32 sectors/track, 40960 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Shell

通过命令扫描硬盘。

# badblocks -s -v /dev/sdnx

Shell

其中n表示硬盘设备名,x表示硬盘对应的分区号。例如需要检查”/dev/sda2″,执行命令如下:

# badblocks -s -v /dev/sda2

Checking blocks 0 to 30681000
Checking for bad blocks (read-only test): 306809600674112/ 306810000000
30680964
30680965
30680966
30680967
30680968
30680969
30680970
30680971
30680972
30680973
...
done
Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。

Linux 命令大全

(125) Linux- cfdisk 命令

Linux cfdisk命令
Linux 命令大全

Linux cfdisk命令用于磁盘分区。

cfdisk是用来磁盘分区的程序,它十分类似DOS的fdisk,具有互动式操作界面而非传统fdisk的问答式界面,您可以轻易地利用方向键来操控分区操作。
语法

cfdisk [-avz][-c <柱面数目>-h <磁头数目>-s <盘区数目>][-P <r,s,t>][外围设备代号]

Shell

参数说明:

  • -a 在程序里不用反白代表选取,而以箭头表示。
  • -c<柱面数目> 忽略BIOS的数值,直接指定磁盘的柱面数目。
  • -h<磁头数目> 忽略BIOS的数值,直接指定磁盘的磁头数目。
  • -P 显示分区表的内容,附加参数”r”会显示整个分区表的详细资料,附加参数”s”会依照磁区的顺序显示相关信息,附加参数”t”则会以磁头,磁区,柱面的方式来显示资料。
  • -s<磁区数目> 忽略BIOS的数值,直接指定磁盘的磁区数目。
  • -v 显示版本信息。
  • -z 不读取现有的分区,直接当作没有分区的新磁盘使用。

进行磁盘分区:

# cfsik

Shell

进行磁盘分区,使用箭头进行操作,而不使用反白表示:

# cfsik -a

Shell

进行磁盘分区,使用箭头进行操作,而不使用反白表示:

# cfsik -s 3

Linux 命令大全

(126) Linux- dd 命令

Linux dd命令
Linux 命令大全

Linux dd命令用于读取、转换并输出数据。

dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

参数说明:

  • if=文件名:输入文件名,默认为标准输入。即指定源文件。

  • of=文件名:输出文件名,默认为标准输出。即指定目的文件。

  • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

    bs=bytes:同时设置读入/输出的块大小为bytes个字节。

  • cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

  • skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

  • seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

  • count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

  • conv=<关键字>,关键字可以有以下11种:

    • conversion:用指定的参数转换文件。
    • ascii:转换ebcdic为ascii
    • ebcdic:转换ascii为ebcdic
    • ibm:转换ascii为alternate ebcdic
    • block:把每一行转换为长度为cbs,不足部分用空格填充
    • unblock:使每一行的长度都为cbs,不足部分用空格填充
    • lcase:把大写字符转换为小写字符
    • ucase:把小写字符转换为大写字符
    • swab:交换输入的每对字节
    • noerror:出错时不停止
    • notrunc:不截短输出文件
    • sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
  • –help:显示帮助信息

  • –version:显示版本信息

在Linux 下制作启动盘,可使用如下命令:

dd if=boot.img of=/dev/fd0 bs=1440k

Shell

将testfile文件中的所有英文字母转换为大写,然后转成为testfile_1文件,在命令提示符中使用如下命令:

dd if=testfile_2 of=testfile_1 conv=ucase

Shell

其中testfile_2 的内容为:

$ cat testfile_2 #testfile_2的内容  
HELLO LINUX!  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test

Shell

转换完成后,testfile_1 的内容如下:

$ dd if=testfile_2 of=testfile_1 conv=ucase #使用dd 命令,大小写转换记录了0+1 的读入  
记录了0+1 的写出  
95字节(95 B)已复制,0.000131446 秒,723 KB/s  
cmd@hdd-desktop:~$ cat testfile_1 #查看转换后的testfile_1文件内容  
HELLO LINUX!  
LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
THIS IS A LINUX TESTFILE!  
LINUX TEST #testfile_2中的所有字符都变成了大写字母

Shell

由标准输入设备读入字符串,并将字符串转换成大写后,再输出到标准输出设备,使用的命令为:

dd conv=ucase

Shell

输入以上命令后按回车键,输入字符串,再按回车键,按组合键Ctrl+D 退出,出现以下结果:

$ dd conv=ucase 
Hello Linux! #输入字符串后按回车键  
HELLO LINUX! #按组合键Ctrl+D退出,转换成大写结果  
记录了0+1 的读入  
记录了0+1 的写出  
13字节(13 B)已复制,12.1558 秒,0.0 KB/s

Linux 命令大全

(127) Linux- e2fsck 命令

Linux e2fsck命令
Linux 命令大全

Linux e2fsck命令用于检查使用 Linux ext2 档案系统的 partition 是否正常工作。
语法

e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] device

Shell

参数说明

  • device : 预备检查的硬盘 partition,例如:/dev/sda1
  • -a : 对 partition 做检查,若有问题便自动修复,等同 -p 的功能
  • -b : 设定存放 superblock 的位置
  • -B : 设定单位 block 的大小
  • -c : 检查该partition 是否有坏轨
  • -C file : 将检查的结果存到 file 中以便查看
  • -d : 列印 e2fsck 的 debug 结果
  • -f : 强制检查
  • -F : 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
  • -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
  • -L bad_blocks_file : 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
  • -n : 将档案系统以[唯读]方式开启
  • -p : 对 partition 做检查,若有问题便自动修复
  • -v : 详细显示模式
  • -V : 显示出目前 e2fsck 的版本
  • -y : 预先设定所有检查时的问题均回答[是]

检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :

e2fsck -a -y /dev/hda5

Shell

注意 :

大部份使用 e2fsck 来检查硬盘 partition 的情况时,通常都是情形特殊,因此最好先将该 partition umount,然后再执行 e2fsck 来做检查,若是要非要检查 / 时,则请进入 singal user mode 再执行。

Linux 命令大全

(128) Linux- ext2ed 命令

Linux ext2ed命令
Linux 命令大全

Linux ext2ed命令是ext2文件系统编辑程序。

ext2ed可直接处理硬盘分区上的数据,这指令只有Red Hat Linux才提供。
语法

ext2ed

Shell

一般指令:

  • setdevice[设备名称] 指定要处理的设备。
  • disablewrite 将ext2ed设为只读的状态。
  • enablewrite 将ext2ed设为可读写的状态。
  • help[指令] 显示个别指令的帮助。
  • next 移至下一个单位,单位会依目前所在的模式而异。
  • prev 移至前一个单位,单位会依目前所在的模式而异。
  • pgup 移至下一页。
  • pgdn 移至上一页。
  • set 修改目前的数据,参数会依目前所在的模式而异。
  • writedata 在执行此指令之后,才会实际修改分区中的数据。
  • ext2进入3种模式的指令
  • super 进入main superblock,即Superblock模式。
  • group<编号> 进入指定的group,即Group模式。
  • cd<目录或文件> 在inode模式下,进入指定的目录或文件,即Inode模式。
  • Superblock模式
  • gocopy<备份编号> 进入指定的superblock备份。
  • setactivecopy 将目前所在的superblock,复制到main superblock。
  • Group模式
  • blockbitmap 显示目前groupo的区块图。
  • inode 进入目前group的第一个inode。
  • inodebitmap 显示目前group的inode二进制码。
  • Inode模式
  • dir 进入目录模式。
  • file 进入文件模式。

Linux 命令大全

(129) Linux- fsck 命令

Linux fsck命令
Linux 命令大全

Linux fsck命令用于 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统。
语法

fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]

Shell

参数

  • filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)
  • -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
  • -s : 依序一个一个地执行 fsck 的指令来检查
  • -A : 对/etc/fstab 中所有列出来的 partition 做检查
  • -C : 显示完整的检查进度
  • -d : 列印 e2fsck 的 debug 结果
  • -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
  • -R : 同时有 -A 条件时,省略 / 不检查
  • -V : 详细显示模式
  • -a : 如果检查有错则自动修复
  • -r : 如果检查有错则由使用者回答是否修复

检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :

fsck -t msdos -a /dev/hda5

Shell

注意 此指令可与 /etc/fstab 相互参考操作来加以了解。

Linux 命令大全

(130) Linux- fsck.minix 命令

Linux fsck.minix命令
Linux 命令大全

Linux fsck.minix命令用于检查文件系统并尝试修复错误。

当minix文件系统发生错误时,可用fsck.minix指令尝试加以参考。
语法

fsck.minix [-aflmrsv][外围设备代号]

Shell

参数

  • -a 自动修复文件系统,不询问任何问题。
  • -f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
  • -l 列出所有文件名称。
  • -m 使用类似MINIX操作系统的警告信息。
  • -r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
  • -s 显示该分区第一个磁区的相关信息。
  • -v 显示指令执行过程。

Linux 命令大全

(131) Linux- fsconf 命令

Linux fsconf命令
Linux 命令大全

Linux fsconf命令用于设置文件系统相关功能。

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

fsconf [--check]

Shell

参数

  • –chedk 检查特定文件的权限。

Linux 命令大全

(132) Linux- fdformat 命令

Linux fdformat命令
Linux 命令大全

Linux fdformat命令用于对指定的软碟机装置进行低阶格式化。

使用这个指令对软碟格式化的时候,最好指定像是下面的装置:

  • /dev/fd0d360 磁碟机 A: ,磁片为 360KB 磁碟
  • /dev/fd0h1440 磁碟机 A: ,磁片为 1.4MB 磁碟
  • /dev/fd1h1200 磁碟机 B: ,磁片为 1.2MB 磁碟

如果使用像是 /dev/fd0 之类的装置,如果里面的磁碟不是标准容量,格式化可能会失败。在这种情况之下,使用者可以用 setfdprm 指令先行指定必要参数。
语法

fdformat [-n] device

Shell

参数

  • -n 关闭确认功能。这个选项会关闭格式化之后的确认步骤。
fdformat -n /dev/fd0h1440

Shell

将磁碟机 A 的磁片格式化成 1.4MB 的磁片。并且省略确认的步骤。

Linux 命令大全

(133) Linux- hdparm 命令

Linux hdparm命令
Linux 命令大全

Linux hdparm命令用于显示与设定硬盘的参数。

hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
语法

hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c <I/O模式>][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p <PIO模式>][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]

Shell

参数说明

  • -a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
  • -A<0或1> 启动或关闭读取文件时的快取功能。
  • -c 设定IDE32位I/O模式。
  • -C 检测IDE硬盘的电源管理模式。
  • -d<0或1> 设定磁盘的DMA模式。
  • -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
  • -g 显示硬盘的磁轨,磁头,磁区等参数。
  • -h 显示帮助。
  • -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
  • -I 直接读取硬盘所提供的硬件规格信息。
  • -k<0或1> 重设硬盘时,保留-dmu参数的设定。
  • -K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
  • -m<磁区数> 设定硬盘多重分区存取的分区数。
  • -n<0或1> 忽略硬盘写入时所发生的错误。
  • -p 设定硬盘的PIO模式。
  • -P<磁区数> 设定硬盘内部快取的分区数。
  • -q 在执行后续的参数时,不在屏幕上显示任何信息。
  • -r<0或1> 设定硬盘的读写模式。
  • -S<时间> 设定硬盘进入省电模式前的等待时间。
  • -t 评估硬盘的读取效率。
  • -T 评估硬盘快取的读取效率。
  • -u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
  • -v 显示硬盘的相关设定。
  • -W<0或1> 设定硬盘的写入快取。
  • -X<传输模式> 设定硬盘的传输模式。
  • -y 使IDE硬盘进入省电模式。
  • -Y 使IDE硬盘进入睡眠模式。
  • -Z 关闭某些Seagate硬盘的自动省电功能。

显示硬盘的相关设置:

# hdparm /dev/sda
 /dev/sda:
 IO_support = 0 (default 16-bit)
 readonly = 0 (off)
 readahead = 256 (on)
 geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]

Shell

显示硬盘的柱面、磁头、扇区数

# hdparm -g /dev/sda
 /dev/sda:
 geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]

Shell

评估硬盘的读取效率

hdparm -t /dev/sda
 /dev/sda:
 Timing buffered disk reads: 166 MB in 3.03 seconds = 54.85 MB/sec
 [[email protected] ~]# hdparm -t /dev/sda
 /dev/sda:
 Timing buffered disk reads: 160 MB in 3.01 seconds = 53.11 MB/sec
 [[email protected] ~]# hdparm -t /dev/sda
 /dev/sda:
 Timing buffered disk reads: 166 MB in 3.00 seconds = 55.31 MB/sec

Linux 命令大全

(134) Linux- mformat 命令

Linux mformat命令
Linux 命令大全

Linux mformat命令用于对MS-DOS文件系统的磁盘进行格式化。

在已经做过低阶格式化的磁片上建立 DOS 档案系统。如果在编程 mtools 的时候把 USE_2M 的参数打开,部分与 2M 格式相关的参数就会发生作用。否则这些参数(像是 S,2,1,M)不会发生作用。
语法

mformat [-t cylinders] [-h heads] [-s sectors] [-l volume_label] [-F] [-I fsVer-sion] [-S sizecode] [-2 sectors_on_track_0] [-M software_sector_size] [-a] [-X] [-C] [-H hidden_sectors] [-r root_sectors] [-B boot_sector] [-0 rate_on_track_0] [-A rate_on_other_tracks] [-1] [-k] drive:

Shell

参数

  • -t 磁柱(synlider)数
  • -h 磁头(head)数
  • -s 每一磁轨的磁区数
  • -l 标签
  • -F 将磁碟格式化为 FAT32 格式,不过这个参数还在实验中。
  • -I 设定 FAT32 中的版本号。这当然也还在实验中。
  • -S 磁区大小代码,计算方式为 sector = 2^(大小代码+7)
  • -c 磁丛(cluster)的磁区数。如果所给定的数字会导致磁丛数超过 FAT 表的限制,mformat 会自动放大磁区数。
  • -s
  • -M 软件磁区大小。这个数字就是系统回报的磁区大小。通常是和实际的大小相同。
  • -a 如果加上这个参数,mformat 会产生一组 Atari 系统的序号给这块软碟。
  • -X 将软碟格式化成 XDF 格式。使用前必须先用 xdfcopy 指令对软碟作低阶格式化的动作。
  • -C 产生一个可以安装 MS-DOS 档案系统的磁碟影像档(disk image)。当然对一个实体磁碟机下这个参数是没有意义的。
  • -H 隐藏磁区的数目。这通常适用在格式化硬盘的分割区时,因为通常一个分割区的前面还有分割表。这个参数未经测试,能不用就不用。
  • -n 磁碟序号
  • -r 根目录的大小,单位是磁区数。这个参数只对 FAT12 和 FAT16 有效。
  • -B 使用所指定的档案或是设备的开机磁区做为这片磁片或分割区的开机磁区。当然当中的硬件参数会随之更动。
  • -k 尽量保持原有的开机磁区。
  • -0 第 0 轨的资料传输率
  • -A 第 0 轨以外的资料传输率
  • -2 使用 2m 格式
  • -1 不使用 2m 格式

用预设值把 a: (就是 /dev/fd0)里的磁碟片格式化。

mformat a:

Linux 命令大全

(135) Linux- mkbootdisk 命令

Linux mkbootdisk命令
Linux 命令大全

Linux mkbootdisk命令用于建立目前系统的启动盘。

mkbootdisk可建立目前系统的启动盘。
语法

mkbootdisk [--noprompt][--verbose][--version][--device <设备>][--mkinitrdargs <参数>][kernel 版本]

Shell

参数

  • –device<设备> 指定设备。
  • –mkinitrdargs<参数> 设置mkinitrd的参数。
  • –noprompt 不会提示用户插入磁盘。
  • –verbose 执行时显示详细的信息。
  • –version 显示版本信息。

Linux 命令大全

(136) Linux- mkdosfs 命令

Linux mkdosfs命令
Linux 命令大全

Linux mkdosfs命令用于建立DOS文件系统。

device 指你想要建立 DOS 档案系统的装置代号。像是 /dev/hda1 等等。 block_count 则是你希望配置的区块数。如果 block_count 没有指定则系统会自动替你计算符合该装置大小的区块数。

mkdosfs [ -c | -l filename ]
   [ -f number_of_FATs ]
   [ -F FAT_size ]
   [ -i volume_id ]
   [ -m message_file ]
   [ -n volume_name ]
   [ -r root_dir_entry ]
   [ -s sector_per_cluster ]
   [ -v ]
   device
   [ block_count ]

Shell

参数

  • -c 建立档案系统之前先检查是否有坏轨。
  • -l 从得定的档案中读取坏轨记录。
  • -f 指定档案配置表(FAT , File Allocation Table)的数量。预设值为 2 。目前 Linux 的 FAT 档案系统不支援超过 2 个 FAT 表。通常这个不需要改。
  • -F 指定 FAT 表的大小,通常是 12 或是 16 个位元组。12 位元组通常用于磁碟片,16 位元组用于一般硬盘的分割区,也就是所谓的 FAT16 格式。这个值通常系统会自己选定适当的值。在磁碟片上用 FAT16 通常不会发生作用,反之在硬盘上用 FAT12 亦然。
  • -i 指定 Volume ID。一般是一个 4 个位元组的数字,像是 2e203a47 。如果不给系统会自己产生。
  • -m 当使用者试图用这片磁片或是分割区开机,而上面没有操作系统时,系统会给使用者一段警告讯息。这个参数就是用来变更这个讯息的。你可以先用档案编辑好,然后用这个参数指定,或是用
  • -m –
  • 这样系统会要求你直接输入这段文字。要特别注意的是,档案里的字串长度不要超过 418 个字,包括展开的跳栏符号(TAB)和换行符号(换行符号在 DOS 底下算两个字元!)
  • -n 指定 Volume Name,就是磁碟标签。如同在 DOS 底下的 format 指令一样,给不给都可以。没有预设值。
  • -r 指定根目录底下的最大档案数。这里所谓的档案数包括目录。预设值是在软碟上是 112 或是 224 ,在硬盘上是 512。没事不要改这个数字。
  • -s 每一个磁丛(cluster)的磁区数。必须是 2 的次方数。不过除非你知道你在作什么,这个值不要乱给。
  • -v 提供额外的讯息

将 A 槽里的磁碟片格式化为 DOS 格式,并将标签设为 Tester

mkdosfs -n Tester /dev/fd0

Linux 命令大全

(137) Linux- mke2fs 命令

Linux mke2fs命令
Linux 命令大全

Linux mke2fs命令用于建立ext2文件系统。
语法

mke2fs [-cFMqrSvV][-b <区块大小>][-f <不连续区段大小>][-i <字节>][-N <inode数>][-l <文件>][-L <标签>][-m <百分比值>][-R=<区块数>][ 设备名称][区块数]

Shell

参数

  • -b<区块大小> 指定区块大小,单位为字节。
  • -c 检查是否有损坏的区块。
  • -f<不连续区段大小> 指定不连续区段的大小,单位为字节。
  • -F 不管指定的设备为何,强制执行mke2fs。
  • -i<字节> 指定”字节/inode”的比例。
  • -N 指定要建立的inode数目。
  • -l<文件> 从指定的文件中,读取文件西中损坏区块的信息。
  • -L<标签> 设置文件系统的标签名称。
  • -m<百分比值> 指定给管理员保留区块的比例,预设为5%。
  • -M 记录最后一次挂入的目录。
  • -q 执行时不显示任何信息。
  • -r 指定要建立的ext2文件系统版本。
  • -R=<区块数> 设置磁盘阵列参数。
  • -S 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。
  • -v 执行时显示详细信息。
  • -V 显示版本信息。

Linux 命令大全

(138) Linux- mkfs.ext2 命令

Linux mkfs.ext2命令
Linux 命令大全

功能说明:与 mke2fs命令 相同

Linux 命令大全

(139) Linux- mkfs.msdos 命令

Linux mkfs.msdos命令
Linux 命令大全

功能说明:与 mkdosfs 命令 相同。

Linux 命令大全

(140) Linux- mkinitrd 命令

Linux mkinitrd命令
Linux 命令大全

Linux mkinitrd命令用于建立要载入ramdisk的映像文件。

mkinitrd可建立映像文件,以供Linux开机时载入ramdisk。
语法

mkinitrd [-fv][--omit-scsi-modules][--version][--preload=<模块名称>][--with=<模块名称>][映像文件][Kernel 版本]

Shell

参数

  • -f 若指定的映像问家名称与现有文件重复,则覆盖现有的文件。
  • -v执行时显示详细的信息。
  • –omit-scsi-modules 不要载入SCSI模块。
  • –preload=<模块名称> 指定要载入的模块。
  • –with=<模块名称> 指定要载入的模块。
  • –version 显示版本信息。

Linux 命令大全

(141) Linux- mkisofs 命令

Linux mkisofs命令
Linux 命令大全

Linux mkisofs命令用于建立ISO 9660映像文件。

mkisofs可将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。
语法

mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A <应用程序ID>][-abstract <摘要文件>][-b <开机映像文件>][-biblio <ISBN文件>][-c <开机文件名称>][-C <盘区编号,磁区编号>][-copyright <版权信息文件>][-hide <目录或文件名>][-hide-joliet <文件或目录名>][-log-file <记录文件>][-m <目录或文件名>][-M <开机映像文件>][-o <映像文件>][-p <数据处理人>][-P <光盘发行人>][-sysid <系统ID >][-V <光盘ID >][-volset <卷册集ID>][-volset-size <光盘总数>][-volset-seqno <卷册序号>][-x <目录>][目录或文件]

Shell

参数

  • -a或–all mkisofs通常不处理备份文件。使用此参数可以把备份文件加到映像文件中。
  • -A<应用程序ID>或-appid<应用程序ID> 指定光盘的应用程序ID。
  • -abstract<摘要文件> 指定摘要文件的文件名。
  • -b<开机映像文件>或-eltorito-boot<开机映像文件> 指定在制作可开机光盘时所需的开机映像文件。
  • -biblio 指定ISBN文件的文件名,ISBN文件位于光盘根目录下,记录光盘的ISBN。
  • -c<开机文件名称> 制作可开机光盘时,mkisofs会将开机映像文件中的全-eltorito-catalog<开机文件名称>全部内容作成一个文件。
  • -C<盘区编号,盘区编号> 将许多节区合成一个映像文件时,必须使用此参数。
  • -copyright<版权信息文件> 指定版权信息文件的文件名。
  • -d或-omit-period 省略文件后的句号。
  • -D或-disable-deep-relocation ISO 9660最多只能处理8层的目录,超过8层的部分,RRIP会自动将它们设置成ISO 9660兼容的格式。使用-D参数可关闭此功能。
  • -f或-follow-links 忽略符号连接。
  • -h 显示帮助。
  • -hide<目录或文件名> 使指定的目录或文件在ISO 9660或Rock RidgeExtensions的系统中隐藏。
  • -hide-joliet<目录或文件名> 使指定的目录或文件在Joliet系统中隐藏。
  • -J或-joliet 使用Joliet格式的目录与文件名称。
  • -l或-full-iso9660-filenames 使用ISO 9660 32字符长度的文件名。
  • -L或-allow-leading-dots 允许文件名的第一个字符为句号。
  • -log-file<记录文件> 在执行过程中若有错误信息,预设会显示在屏幕上。
  • -m<目录或文件名>或-exclude<目录或文件名> 指定的目录或文件名将不会房入映像文件中。
  • -M<映像文件>或-prev-session<映像文件> 与指定的映像文件合并。
  • -N或-omit-version-number 省略ISO 9660文件中的版本信息。
  • -o<映像文件>或-output<映像文件> 指定映像文件的名称。
  • -p<数据处理人>或-preparer<数据处理人> 记录光盘的数据处理人。
  • -print-size 显示预估的文件系统大小。
  • -quiet 执行时不显示任何信息。
  • -r或-rational-rock 使用Rock Ridge Extensions,并开放全部文件的读取权限。
  • -R或-rock 使用Rock Ridge Extensions。
  • -sysid<系统ID> 指定光盘的系统ID。
  • -T或-translation-table 建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统上。
  • -v或-verbose 执行时显示详细的信息。
  • -V<光盘ID>或-volid<光盘ID> 指定光盘的卷册集ID。
  • -volset-size<光盘总数> 指定卷册集所包含的光盘张数。
  • -volset-seqno<卷册序号> 指定光盘片在卷册集中的编号。
  • -x<目录> 指定的目录将不会放入映像文件中。
  • -z 建立通透性压缩文件的SUSP记录,此记录目前只在Alpha机器上的Linux有效。

Linux 命令大全

(142) Linux- mkswap 命令

Linux mkswap命令
Linux 命令大全

Linux mkswap命令用于设置交换区(swap area)。

mkswap可将磁盘分区或文件设为Linux的交换区。
语法

mkswap [-cf][-v0][-v1][设备名称或文件][交换区大小]

Shell

参数

  • -c 建立交换区前,先检查是否有损坏的区块。
  • -f 在SPARC电脑上建立交换区时,要加上此参数。
  • -v0 建立旧式交换区,此为预设值。
  • -v1 建立新式交换区。
  • [交换区大小] 指定交换区的大小,单位为1024字节。

Linux 命令大全

(143) Linux- mpartition 命令

Linux mpartition命令
Linux 命令大全

Linux mpartition命令用于建立或删除MS-DOS的分区。

mpartition为mtools工具指令,可建立或删除磁盘分区。
语法

mpartition [-acdfIprv][-b <磁区数>][-h <磁头数>][l <磁区数>][-s <磁区数>][-t <柱面数>][驱动器代号]

Shell

参数

  • -a 将分区设置为可开机分区。
  • -b<磁区数> 建立分区时,指定要从第几个磁区开始建立分区。
  • -c 建立分区。
  • -d 将分区设置为无法开机的分区。
  • -f 强制地修改分区而不管检查时发生的错误信息。
  • -h<磁头数> 建立分区时,指定分区的磁头数。
  • -I 删除全部的分区。
  • -l<磁区数> 建立分区时,指定分区的容量大小,单位为磁区数。
  • -p 当要重新建立分区时,显示命令列。
  • -r 删除分区。
  • -s<磁区数> 建立分区时,指定每个磁轨的磁区数。
  • -t<柱面数> 建立分区时,指定分区的柱面数。
  • -v 与-p参数一并使用,若没有同时下达修改分区的命令,则显示目前分区的状态。

Linux 命令大全

(144) Linux- swapon 命令

Linux swapon命令
Linux 命令大全

Linux swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存。
语法

/sbin/swapon -a [-v]
/sbin/swapon [-v] [-p priority] specialfile ...
/sbin/swapon [-s]

Shell

参数说明:

  • -h 请帮帮我
  • -V 显示版本讯息
  • -s 显示简短的装置讯息
  • -a 自动启动所有SWAP装置
  • -p 设定优先权,你可以在0到32767中间选一个数字给他。或是在 /etc/fstab 里面加上 pri=[value] ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用 swapon -a 来启动他们,而且有优先权设定。

swapon 是开启swap.

相对的,便有一个关闭swap的指令,swapoff.

Linux 命令大全

(145) Linux- symlinks 命令

Linux symlinks命令
Linux 命令大全

Linux symlinks命令用于维护符号连接的工具程序。

symlinks可检查目录中的符号连接,并显示符号连接类型。以下为symlinks可判断的符号连接类型:

  • absolute:符号连接使用了绝对路径。
  • dangling:原始文件已经不存在。
  • lengthy:符号连接的路径中包含了多余的”…/”。
  • messy:符号连接的路径中包含了多余的”/”。
  • other_fs:原始文件位于其他文件系统中。
  • relative:符号连接使用了相对路径。

语法

symlinks [-cdrstv][目录]

Shell

参数

  • -c 将使用绝对路径的符号连接转换为相对路径。
  • -d 移除dangling类型的符号连接。
  • -r 检查目录下所有子目录中的符号连接。
  • -s 检查lengthy类型的符号连接。
  • -t 与-c一并使用时,会显示如何将绝对路径的符号连接转换为相对路径,但不会实际转换。
  • -v 显示所有类型的符号连接。

Linux 命令大全

(146) Linux- sync 命令

Linux sync命令
Linux 命令大全

Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。

Linux 系统中欲写入硬盘的资料有的时候会了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。
语法

sync

Linux 命令大全

(147) Linux- mbadblocks 命令

Linux mbadblocks命令
Linux 命令大全

Linux mbadblocks命令用于检查MS-DOS文件系统的磁盘是否有损坏的磁区。

mbadblocks为mtools工具指令,可用来扫描MS-DOS文件系统的磁盘驱动器,并标示出损坏的磁区。
语法

mbadblocks [驱动器代号]

Linux 命令大全

(148) Linux- mkfs.minix 命令

Linux mkfs.minix命令
Linux 命令大全

Linux mkfs.minix命令用于建立Minix文件系统。

mkfs.minix可建立Minix文件系统。
语法

mkfs.minix [-cv][-i <inode数目>][-l <文件>][-n <文件名长度>][设备名称][区块数]

Shell

参数

  • -c 检查是否有损坏的区块。
  • -i 指定文件系统的inode总数。
  • -l<文件> 从指定的文件中,读取文件系统中损坏区块的信息。
  • -n<文件名长度> 指定文件名称长度的上限。
  • -v 建立第2版的Minix文件系统。

Linux 命令大全

(149) Linux- fsck.ext2 命令

Linux fsck.ext2命令
Linux 命令大全

Linux fsck.ext2命令用于检查文件系统并尝试修复错误。

当ext2文件系统发生错误时,可用fsck.ext2指令尝试加以修复。
语法

fsck.ext2 [-acdfFnprsStvVy][-b <分区第一个磁区地址>][-B <区块大小>][-C <反叙述器>][-I <inode缓冲区块数>][-l/L <损坏区块文件>][-P <处理inode大小>][外围设备代号]

Shell

参数

  • -a 自动修复文件系统,不询问任何问题。
  • -b<分区第一个磁区地址> 指定分区的第一个磁区的起始地址,也就是Super Block。
  • -B<区块大小> 设置该分区每个区块的大小。
  • -c 检查指定的文件系统内,是否存在有损坏的区块。
  • -C<反叙述器> 指定反叙述器,fsck.ext2指令会把全部的执行过程,都交由其逆向叙述,便于排错或监控程序执行的情形。
  • -d 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
  • -F 检查文件系统之前,先清理该保存设备块区内的数据。
  • -I 设置欲检查的文件系统,其inode缓冲区的区块数目。
  • -l<损坏区块文件> 把文件中所列出的区块,视为损坏区块并将其标示出来,避免应用程序使用该区块。
  • -L<损坏区块文件> 此参数的效果和指定”-l”参数类似,但在参考损坏区块文件标示损坏区块之前,会先将原来标示成损坏区块者统统清楚,即全部重新设置,而非仅是加入新的损坏区块标示。
  • -n 把欲检查的文件系统设成只读,并关闭互动模式,否决所有询问的问题。
  • -p 此参数的效果和指定”-a”参数相同。
  • -P<处理inode大小> 设置fsck.ext2指令所能处理的inode大小为多少。
  • -r 此参数将忽略不予处理,仅负责解决兼容性的问题。
  • -s 检查文件系统时,交换每对字节的内容。
  • -S 此参数的效果和指定”-s”参数类似,但不论该文件系统是否已是标准位顺序,一律交换每对字节的内容。
  • -t 显示fsck.ext2指令的时序信息。
  • -v 详细显示指令执行过程。
  • -V 显示版本信息。
  • -y 关闭互动模式,且同意所有询问的问题。

Linux 命令大全

(150) Linux- fdisk 命令

Linux fdisk命令
Linux 命令大全

Linux fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。
语法

fdisk [必要参数][选择参数]

Shell

必要参数:

  • -l 列出素所有分区表
  • -u 与”-l”搭配使用,显示分区数目

选择参数:

  • -s 指定分区
  • -v 版本信息

菜单操作说明

  • m :显示菜单和帮助信息
  • a :活动分区标记/引导分区
  • d :删除分区
  • l :显示分区类型
  • n :新建分区
  • p :显示分区信息
  • q :退出不保存
  • t :设置分区号
  • v :进行分区检查
  • w :保存修改
  • x :扩展应用,高级功能

显示当前分区情况:

# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot   Start     End   Blocks  Id System
/dev/sda1  *      1     13   104391  83 Linux
/dev/sda2       14    1305  10377990  8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Shell

显示SCSI硬盘的每个分区情况

# fdisk -lu  

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes

  Device Boot   Start     End   Blocks  Id System
/dev/sda1  *     63   208844   104391  83 Linux
/dev/sda2     208845  20964824  10377990  8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

Disk /dev/sdb doesn't contain a valid partition table

Linux 命令大全

(151) Linux- losetup 命令

Linux losetup命令
Linux 命令大全

Linux losetup命令用于设置循环设备。

循环设备可把文件虚拟成区块设备,籍以模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。
语法

losetup [-d][-e <加密方式>][-o <平移数目>][循环设备代号][文件]

Shell

参数

  • -d 卸除设备。
  • -e<加密方式> 启动加密编码。
  • -o<平移数目> 设置数据平移的数目。

(1)创建空的磁盘镜像文件,这里创建一个1.44M的软盘

$ dd if=/dev/zero of=floppy.img bs=512 count=2880

Shell

(2)使用 losetup将磁盘镜像文件虚拟成块设备

$ losetup /dev/loop1 floppy.img

Shell

(3)挂载块设备

$ mount /dev/loop0 /tmp

Shell

经过上面的三步之后,我们就可以通过/tmp目录,像访问真实快设备一样来访问磁盘镜像文件floppy.img。

(4) 卸载loop设备

$ umount /tmp
$ losetup -d /dev/loop1

Shell

一个完整测试实例

  1. 首先创建一个 1G 大小的空文件:
# dd if=/dev/zero of=loopfile.img bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 69.3471 s, 15.5 MB/s

Shell

  1. 对该文件格式化为 ext4 格式:
# mkfs.ext4 loopfile.img
。。。。

Shell

  1. 用 file 命令查看下格式化后的文件类型:
# file loopfile.img
loopfile.img: Linux rev 1.0 ext4 filesystem data, UUID=a9dfb4a0-6653-4407-ae05-7044d92c1159 (extents) (large files) (huge files)

Shell

  1. 准备将上面的文件挂载起来:
# mkdir /mnt/loopback
# mount -o loop loopfile.img /mnt/loopback

Shell

mount 命令的 -o loop 选项可以将任意一个 loopback 文件系统挂载。

上面的 mount 命令实际等价于下面两条命令:

# losetup /dev/loop0 loopfile.img
# mount /dev/loop0 /mnt/loopback

Shell

因此实际上,mount -o loop 在内部已经默认的将文件和 /dev/loop0 挂载起来了。

然而对于第一种方法(mount -o loop)并不能适用于所有的场景。比如,我们想创建一个硬盘文件,然后对该文件进行分区,接着挂载其中一个子分区,这时就不能用 -o loop 这种方法了。因此必须如下做:

# losetup /dev/loop1 loopfile.img
# fdisk /dev/loop1

Shell

  1. 卸载挂载点:
# umount /mnt/loopback

Linux 命令大全

(152) Linux- mkfs 命令

Linux mkfs命令
Linux 命令大全

使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

Linux mkfs命令用于在特定的分区上建立 linux 文件系统

参数

  • device : 预备检查的硬盘分区,例如:/dev/sda1
  • -V : 详细显示模式
  • -t : 给定档案系统的型式,Linux 的预设值为 ext2
  • -c : 在制做档案系统前,检查该partition 是否有坏轨
  • -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
  • block : 给定 block 的大小

在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来 :

mkfs -V -t msdos -c /dev/hda5

Shell

将sda6分区格式化为ext3格式

mfks -t ext3 /dev/sda6

Shell

注意:这里的文件系统是要指定的,比如 ext3 ;reiserfs ;ext2 ;fat32 ;msdos 等。

Linux 命令大全

(153) Linux- sfdisk 命令

Linux sfdisk命令
Linux 命令大全

Linux sfdisk命令是硬盘分区工具程序。

sfdisk为硬盘分区工具程序,可显示分区的设置信息,并检查分区是否正常。
语法

sfdisk [-?Tvx][-d <硬盘>][-g <硬盘>][-l <硬盘>][-s <分区>][-V <硬盘>]

Shell

参数

  • -?或–help 显示帮助。
  • -d<硬盘> 显示硬盘分区的设置。
  • -g<硬盘>或–show-geometry<硬盘> 显示硬盘的CHS参数。
  • -l<硬盘> 显示后硬盘分区的相关设置。
  • -s<分区> 显示分区的大小,单位为区块。
  • -T或–list-types 显示所有sfdisk能辨识的文件系统ID。
  • -v或–version 显示版本信息。
  • -V<硬盘>或–verify<硬盘> 检查硬盘分区是否正常。
  • -x或–show-extend 显示扩展分区中的逻辑分区。

显示分区信息:

# sfdisk -l

Disk /dev/sda: 1305 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 12 13- 104391 83 Linux
/dev/sda2 13 1304 1292 10377990 8e Linux LVM
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty

Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition
No partitions found

Linux 命令大全

(154) Linux- swapoff 命令

Linux swapoff命令
Linux 命令大全

Linux swapoff命令用于关闭系统交换区(swap area)。

swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。
语法

swapoff [设备]

Shell

**
参数:**

  • -a 将/etc/fstab文件中所有设置为swap的设备关闭
  • -h 帮助信息
  • -V 版本信息

显示分区信息:

# sfdisk -l //显示分区信息

Disk /dev/sda: 1305 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

  Device Boot Start   End  #cyls  #blocks  Id System
/dev/sda1  *   0+   12   13-  104391  83 Linux
/dev/sda2     13  1304  1292  10377990  8e Linux LVM
/dev/sda3     0    -    0     0  0 Empty
/dev/sda4     0    -    0     0  0 Empty

Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition
No partitions found

Shell

关闭交换分区。

# swapoff /dev/sda2 // 关闭交换分区

Linux 命令大全

(155) Linux- apachectl 命令

Linux apachectl命令
Linux 命令大全

Linux apachectl命令可用来控制Apache HTTP服务器的程序。

apachectl是slackware内附Apache HTTP服务器的script文件,可供管理员控制服务器,但在其他Linux的Apache HTTP服务器不一定有这个文件。
语法

apachectl [configtest][fullstatus][graceful][help][restart][start][status][stop]

Shell

参数

  • configtest 检查设置文件中的语法是否正确。
  • fullstatus 显示服务器完整的状态信息。
  • graceful 重新启动Apache服务器,但不会中断原有的连接。
  • help 显示帮助信息。
  • restart 重新启动Apache服务器。
  • start 启动Apache服务器。
  • status 显示服务器摘要的状态信息。
  • stop 停止Apache服务器。

Linux 命令大全

(156) Linux- arpwatch 命令

Linux arpwatch命令
Linux 命令大全

Linux arpwatch命令用于监听网络上ARP的记录。

ARP(Address Resolution Protocol)是用来解析IP与网络装置硬件地址的协议。

arpwatch可监听区域网络中的ARP数据包并记录,同时将监听到的变化通过E-mail来报告。
语法

arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件>]

Shell

参数

  • -d 启动排错模式。
  • -f<记录文件> 设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat。
  • -i<接口> 指定监听ARP的接口,预设的接口为eth0。
  • -r<记录文件> 从指定的文件中读取ARP记录,而不是从网络上监听。
  • -n 指定附加的本地网络
  • -u 指定用户和用户组
  • -e 发送邮件给指定用户,非默认的root用户
  • -s 指定用户名作为返回地址,而不是默认的用户root

监听网卡eth0的ARP信息

arpwatch -i eth0

Shell

监听ARP的信息,将相关信息记录到相应的文件

# arpwatch -i eth0 -f a.log //将信息记录到a.log中

Linux 命令大全

(157) Linux- dip 命令

Linux dip命令
Linux 命令大全

Linux dip命令用于IP拨号连接。

dip可控制调制解调器,以拨号IP的方式建立对外的双向连接。
语法

dip [-aikltv][-m<MTU数目>][-p<协议>][拨号script文件]

Shell

参数说明

  • -a 询问用户名称与密码。
  • -i 启动拨号服务器功能。
  • -k 删除执行中的dip程序。
  • -l 指定要删除的连线,必须配合-k参数一起使用。
  • -m 设置最大传输单位,预设值为296。
  • -p<协议> 设置通信协议。
  • -t 进入dip的指令模式。
  • -v 执行时显示详细的信息。

建立拨号连接

$ dip -t

Linux 命令大全

(158) Linux- getty 命令

Linux getty命令
Linux 命令大全

Linux getty命令用于设置终端机模式,连线速率和管制线路。

getty指令是UNIX之类操作系统启动时所必须的3个步骤之一。
语法

getty [-h][-d<组态配置文件>][-r<延迟秒数>][-t<超时秒数>][-w<等待字符串>][终端机编号][连线速率<终端机类型><管制线路>] 或 getty [-c<定义配置文件>]

Shell

参数

  • -c<定义配置文件> 指定定义配置文件,预设为/etc/gettydefs。
  • -d<组态配置文件> 指定组态配置文件,预设为/etc/conf.getty。
  • -h 当传输速率为0时就强制断线。
  • -r<延迟秒数> 设置延迟时间。
  • -t<超时秒数> 设置等待登入的时间。
  • -w<等待字符串> 设置等待回应的字符串。

开启终端:

# getty tty7

Linux 命令大全

(159) Linux- mingetty 命令

Linux mingetty命令
Linux 命令大全

Linux mingetty命令是精简版的getty。

mingetty适用于本机上的登入程序。
语法

mingetty [--long-hostname][--noclear][tty]

Shell

参数说明

  • –long-hostname 显示完整的主机名称。
  • –noclear 在询问登入的用户名称之前不要清楚屏幕画面。

Linux 命令大全

(160) Linux- uux 命令

Linux uux命令
Linux 命令大全

Linux uux命令用于在远端的UUCP主机上执行指令。

uux可在远端的UUCP主机上执行指令或是执行本机上的指令,但在执行时会使用远端电脑的文件。
语法

uux [-bcCIjlnrvz][-a<地址>][-g<等级>][-s<文件>][-x<层级>][--help][指令]

Shell

参数说明

  • -或-p或–stdin 直接从键盘读取要执行的指令。
  • -a<地址>或–requestor<地址> 执行邮件地址,以便寄送状态信息。
  • -b或–erturn-stdin 在屏幕上显示状态信息。
  • -c或–nocopy 不用将文件复制到缓冲区。
  • -C或–copy 将文件复制到缓冲区。
  • -g<等级>或–grade<等级> 指定文件传送作业的优先顺序。
  • -I或–config file 指定uux配置文件。
  • -j或–jobid 显示作业编号。
  • -l或–link 将本机上的文件连接到缓冲区。
  • -n或–notification=no 无论发生任何状态,都不寄邮件通知用户。
  • -r或–nouucico 不要立即启动uucico服务程序,仅将作业送到队列中,然后再执行。
  • -s<文件>或–status<文件> 将完成状态保存为指定的文件。
  • -v或–version 显示版本信息。
  • -x<层级>或–debug<层级> 指定排错层级。
  • -z或–notification=error 若发生错误,则以邮件来通知用户。
  • –help 显示帮助。

在远程主机 uucp 执行命令

# uux hnlinux! date  /// 在远程主机 指定date命令查看系统时间

Linux 命令大全

(161) Linux- telnet 命令

Linux telnet命令
Linux 命令大全

Linux telnet命令用于远端登入。

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

telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]

Shell

参数说明

  • -8 允许使用8位字符资料,包括输入与输出。
  • -a 尝试自动登入远端系统。
  • -b<主机别名> 使用别名指定远端主机名称。
  • -c 不读取用户专属目录里的.telnetrc文件。
  • -d 启动排错模式。
  • -e<脱离字符> 设置脱离字符。
  • -E 滤除脱离字符。
  • -f 此参数的效果和指定”-F”参数相同。
  • -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
  • -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
  • -K 不自动登入远端主机。
  • -l<用户名称> 指定要登入远端主机的用户名称。
  • -L 允许输出8位字符资料。
  • -n<记录文件> 指定文件记录相关信息。
  • -r 使用类似rlogin指令的用户界面。
  • -S<服务类型> 设置telnet连线所需的IP TOS信息。
  • -x 假设主机有支持数据加密的功能,就使用它。
  • -X<认证形态> 关闭指定的认证形态。

登录远程主机

# telnet 192.168.0.5 

//登录IP为 192.168.0.5 的远程主机

Linux 命令大全

(162) Linux- uulog 命令

Linux uulog命令
Linux 命令大全

Linux uulog命令用于显示UUCP记录文件。

uulog可用来显示UUCP记录文件中记录。
语法

uulog [-DFISv][-<行数>][-f<主机>][-I<配置文件>][-n<行数>][-s<主机>][-u<用户>][-X<层级>][--help]

Shell

参数说明

  • -D或–debuglog 显示排错记录。
  • -f<主机>或–follow<主机> 与-F参数类似,但仅显示与指定主机相关的记录。
  • -I<配置文件>或–config<配置文件> 指定程序的配置文件。
  • -<行数>,-n<行数>或–lines<行数> 显示记录文件中,从最后算起指定行数的数值。
  • -s<主机> 仅显示记录文件中,与指定文件相关的记录。
  • -S或–statslog 显示统计记录。
  • -u<用户>或–suer<用户> 仅显示记录文件中,与指定用户相关的记录。
  • -v或–version 显示版本信息。
  • -X<层级>或–debug<层级> 设定排错层级。
  • –help 显示帮助。

显示uucp log信息

# uulog

Linux 命令大全

(163) Linux- uustat 命令

Linux uustat命令
Linux 命令大全

Linux uustat命令用于显示UUCP目前的状况。

执行uucp与uux指令后,会先将工作送到队列,再由uucico来执行工作。uustat可显示,删除或启动队列中等待执行的工作。
语法

uustat [-aeiKmMNpqQRv][-B<行数>][-c<指令>][-C<指令>][-I<配置文件>][-k<工作>][-o<小时>][-r<工作>][-s<主机>][-S<主机>][-u<用户>][-U<用户>][-W<附注>][-y<小时>][-x<层级>][--help]

Shell

参数说明

  • -a或-all 显示全部的UUCP工作。
  • -B<行数>或–mail-lines<行数> 与-M或-N参数一并使用,用来指定邮件中要包含多少行的信息。
  • -c<指令>或–command<指令> 显示与<指令>有关的工作。
  • -C<指令>或–not-command<指令> 显示与<指令>无关的工作。
  • -e或–executions 仅显示待执行的工作。
  • -i或–prompt 针对队列中的每项工作,询问使用是否要删除工作。
  • -I<配置文件>或–config<配置文件> 指定配置文件。
  • -k<工作>或–kill<工作> 删除指定的工作。
  • -m或–status 删除全部的工作。
  • -M或-mail 将状态信息邮寄给UUCP管理员。
  • -N或–notify 将状态信息分别邮寄给提出该项工作的用户。
  • -o<小时>或–older-than<小时> 显示超过指定时数的工作。
  • -p或–ps 显示负责UUCP锁定的程序。
  • -q或–list 显示每台远端主机上所要执行工作的状态。
  • -Q或–no-list 不显示工作。
  • -r<工作>或–rejuvenate<工作> 重新启动指定的工作。
  • -R或–rejuvenate-all 重新启动全部的工作。
  • -s<主机>或–system<主机> 显示与<主机>有关的工作。
  • -S<主机>或–not-system<主机> 显示与<主机>无关的工作。
  • -v或–version 显示版本信息。
  • -u<用户>或–user<用户> 显示与<用户>有关的工作。
  • -U<用户>或–not-user<用户> 显示与<用户>无关的工作。
  • -W<附注>或–comment<附注> 要放在邮件信息中的附注。
  • -y<小时>或–younger-than<小时> 显示低于指定时数的工作。
  • -x<层级>或–debug<层级> 指定排错层级。
  • –help 显示帮助。

显示所有任务

# uustat -a

Shell

显示等待的任务

# uustat -e

Linux 命令大全

(164) Linux- ppp-off 命令

Linux ppp-off命令
Linux 命令大全

Linux ppp命令用于关闭ppp连线。

这是Slackware发行版内附的程序,让用户切断PPP的网络连线。
语法

ppp-off

Shell

关闭ppp连线

# ppp-off

Linux 命令大全

(165) Linux- netconfig 命令

Linux netconfig命令
Linux 命令大全

Linux netconfig命令用于设置网络环境。

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

netconfig

Linux 命令大全

(166) Linux- nc 命令

Linux nc命令
Linux 命令大全

Linux nc命令用于设置路由器。

执行本指令可设置路由器的相关参数。
语法

nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

Shell

参数说明

  • -g<网关> 设置路由器跃程通信网关,最多可设置8个。
  • -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
  • -h 在线帮助。
  • -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
  • -l 使用监听模式,管控传入的资料。
  • -n 直接使用IP地址,而不通过域名服务器。
  • -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
  • -p<通信端口> 设置本地主机使用的通信端口。
  • -r 乱数指定本地与远端主机的通信端口。
  • -s<来源位址> 设置本地主机送出数据包的IP地址。
  • -u 使用UDP传输协议。
  • -v 显示指令执行过程。
  • -w<超时秒数> 设置等待连线的时间。
  • -z 使用0输入/输出模式,只在扫描通信端口时使用。

TCP端口扫描

# nc -v -z -w2 192.168.0.3 1-100 
192.168.0.3: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.0.3] 80 (http) open
(UNKNOWN) [192.168.0.3] 23 (telnet) open
(UNKNOWN) [192.168.0.3] 22 (ssh) open

Shell

扫描192.168.0.3 的端口 范围是 1-100

扫描UDP端口

# nc -u -z -w2 192.168.0.1 1-1000 //扫描192.168.0.3 的端口 范围是 1-1000

Shell

扫描指定端口

# nc -nvv 192.168.0.1 80 //扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
y  //用户输入

Linux 命令大全

(167) Linux- httpd 命令

Linux httpd命令
Linux 命令大全

Linux httpd命令是Apache HTTP服务器程序。

httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。
语法

httpd [-hlLStvVX][-c<httpd指令>][-C<httpd指令>][-d<服务器根目录>][-D<设定文件参数>][-f<设定文件>]

Shell

参数说明

  • -c 在读取配置文件前,先执行选项中的指令。
  • -C 在读取配置文件后,再执行选项中的指令。
  • -d<服务器根目录> 指定服务器的根目录。
  • -D<设定文件参数> 指定要传入配置文件的参数。
  • -f<设定文件> 指定配置文件。
  • -h 显示帮助。
  • -l 显示服务器编译时所包含的模块。
  • -L 显示httpd指令的说明。
  • -S 显示配置文件中的设定。
  • -t 测试配置文件的语法是否正确。
  • -v 显示版本信息。
  • -V 显示版本信息以及建立环境。
  • -X 以单一程序的方式来启动服务器。

检查配置文件语法错误

# httpd -t
httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

Shell

启动httpd

httpd
httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Shell

显示编译模块

# httpd -l 
Compiled in modules:
 core.c
 prefork.c
 http_core.c
 mod_so.c

Shell

显示配置文件

# httpd -L>1.log|tail -n 20 1.log
Maximum number of children alive at the same time
Allowed in *.conf only outside , or 
ServerLimit (prefork.c)
Maximum value of MaxClients for this run of Apache
Allowed in *.conf only outside , or 
KeepAliveTimeout (http_core.c)
Keep-Alive timeout duration (sec)
Allowed in *.conf only outside , or 
MaxKeepAliveRequests (http_core.c)
Maximum number of Keep-Alive requests per connection, or 0 for infinite
Allowed in *.conf only outside , or 
KeepAlive (http_core.c)
Whether persistent connections should be On or Off
Allowed in *.conf only outside , or 
LoadModule (mod_so.c)
a module name and the name of a shared object file to load it from
Allowed in *.conf only outside , or 
LoadFile (mod_so.c)
shared object file or library to load into the server at runtime
Allowed in *.conf only outside , or

Linux 命令大全

(168) Linux- ifconfig 命令

Linux ifconfig命令
Linux 命令大全

Linux ifconfig命令用于显示或设置网络设备。

ifconfig可设置网络设备的状态,或是显示目前的设置。
语法

ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

Shell

参数说明

  • add<地址> 设置网络设备IPv6的IP地址。
  • del<地址> 删除网络设备IPv6的IP地址。
  • down 关闭指定的网络设备。
  • <硬件地址> 设置网络设备的类型与硬件地址。
  • io_addr 设置网络设备的I/O地址。
  • irq 设置网络设备的IRQ。
  • media<网络媒介类型> 设置网络设备的媒介类型。
  • mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
  • metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
  • mtu<字节> 设置网络设备的MTU。
  • netmask<子网掩码> 设置网络设备的子网掩码。
  • tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
  • up 启动指定的网络设备。
  • -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
  • -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
  • -promisc 关闭或启动指定网络设备的promiscuous模式。
  • [IP地址] 指定网络设备的IP地址。
  • [网络设备] 指定网络设备的名称。

显示网络设备信息

# ifconfig        
eth0   Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C 
     inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
     inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:172220 errors:0 dropped:0 overruns:0 frame:0
     TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
     Interrupt:185 Base address:0x2024 

lo    Link encap:Local Loopback 
     inet addr:127.0.0.1 Mask:255.0.0.0
     inet6 addr: ::1/128 Scope:Host
     UP LOOPBACK RUNNING MTU:16436 Metric:1
     RX packets:2022 errors:0 dropped:0 overruns:0 frame:0
     TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0 
     RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)

Shell

启动关闭指定网卡

# ifconfig eth0 down
# ifconfig eth0 up

Shell

为网卡配置和删除IPv6地址

# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址

# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

Shell

用ifconfig修改MAC地址

# ifconfig eth0 down //关闭网卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //启动网卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址 
# ifconfig eth1 up //启动网卡

Shell

配置IP地址

# ifconfig eth0 192.168.1.56 
//给eth0网卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 
// 给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址

Shell

启用和关闭ARP协议

# ifconfig eth0 arp  //开启
# ifconfig eth0 -arp  //关闭

Shell

设置最大传输单元

# ifconfig eth0 mtu 1500 
//设置能通过的最大数据包大小为 1500 bytes

Linux 命令大全

(169) Linux- minicom 命令

Linux minicom命令
Linux 命令大全

Linux minicom命令用于调制解调器通信程序。

minicom是一个相当受欢迎的PPP拨号连线程序。
语法

minicom [-8lmMostz][-a<on或0ff>][-c<on或off>][-C<取文件>][-d<编号>][-p<模拟终端机>][-S<script文件>][配置文件]

Shell

参数说明

  • -8 不要修改任何8位编码的字符。
  • -a 设置终端机属性。
  • -c 设置彩色模式。
  • -C<取文件> 指定取文件,并在启动时开启取功能。
  • -d<编号> 启动或直接拨号。
  • -l 不会将所有的字符都转成ASCII码。
  • -m 以Alt或Meta键作为指令键。
  • -M 与-m参数类似。
  • -o 不要初始化调制解调器。
  • -p <模拟终端机> 使用模拟终端机。
  • -s 开启程序设置画面。
  • -S 在启动时,执行指定的script文件。
  • -t 设置终端机的类型。
  • -z 在终端机上显示状态列。
  • [配置文件] 指定minicom配置文件。

Linux 命令大全

(170) Linux- mesg 命令

Linux mesg命令
Linux 命令大全

Linux mesg命令用于设置终端机的写入权限。

将mesg设置y时,其他用户可利用write指令将信息直接显示在您的屏幕上。
语法

mesg [ny]

Shell

参数

  • n 不允许其他用户将信息直接显示在你的屏幕上。
  • y 允许其他用户将信息直接显示在你的屏幕上。

允许其他用户发信息到当前终端。

root 的终端

# mesg y //在这个终端设置允许发送消息

Shell

其他普通用户的终端:

$ write root pts/4 
hello
hello
EOF //Ctrl+D 结束输入

Shell

root 的终端 终端显示

# 
Message from [email protected] (as hnlinux) on pts/5 at 14:48 ...
hello
EOF

Linux 命令大全

(171) Linux- dnsconf 命令

Linux dnsconf命令
Linux 命令大全

Linux dnsconf命令用于设置DNS服务器组态。

dnsconf实际上为linuxconf的符号连接,提供图形截面的操作方式,供管理员管理DNS服务器。
语法

dnsconf [--deldomain<>][--delsecondary<>][--newdomain<>][--set<主机><IP>][--setcname<CNAME><主机>][--setmx<><主机>][--setns<><主机>][--unset<主机>]

Shell

参数说明

  • –deldomain<域> 删除域。
  • –delsecondary<域> 删除次级域。
  • –newdomain<域> 新增域。
  • –set<主机> 新增主机记录。
  • –setcname<主机> 设置。
  • –setmx<域><主机> 指定域的邮件主机。
  • –setns<域><主机> 指定域的DNS服务器。
  • –unset<主机> 删除DNS中某台主机的记录。

Linux 命令大全

(172) Linux- wall 命令

Linux wall命令
Linux 命令大全

Linux wall命令会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)。

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

wall [ message ]

Shell

传讯息”hi” 给每一个使用者

wall hi

Shell

广播消息

# wall Ilove

Broadcast message from root (pts/4) (Thu May 27 16:41:09 2014):

Ilove

Linux 命令大全

(173) Linux- netstat 命令

Linux netstat命令
Linux 命令大全

Linux netstat命令用于显示网络状态。

利用netstat指令可让你得知整个Linux系统的网络情况。
语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

Shell

参数说明

  • -a或–all 显示所有连线中的Socket。
  • -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
  • -c或–continuous 持续列出网络状态。
  • -C或–cache 显示路由器配置的快取信息。
  • -e或–extend 显示网络其他相关信息。
  • -F或–fib 显示FIB。
  • -g或–groups 显示多重广播功能群组组员名单。
  • -h或–help 在线帮助。
  • -i或–interfaces 显示网络界面信息表单。
  • -l或–listening 显示监控中的服务器的Socket。
  • -M或–masquerade 显示伪装的网络连线。
  • -n或–numeric 直接使用IP地址,而不通过域名服务器。
  • -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
  • -o或–timers 显示计时器。
  • -p或–programs 显示正在使用Socket的程序识别码和程序名称。
  • -r或–route 显示Routing Table。
  • -s或–statistice 显示网络工作信息统计表。
  • -t或–tcp 显示TCP传输协议的连线状况。
  • -u或–udp 显示UDP传输协议的连线状况。
  • -v或–verbose 显示指令执行过程。
  • -V或–version 显示版本信息。
  • -w或–raw 显示RAW传输协议的连线状况。
  • -x或–unix 此参数的效果和指定”-A unix”参数相同。
  • –ip或–inet 此参数的效果和指定”-A inet”参数相同。

显示详细的网络状况

# netstat -a

Shell

显示当前户籍UDP连接状况

# netstat -nu

Shell

显示UDP端口号的使用情况

# netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address        Foreign Address       State    PID/Program name  
udp    0   0 *:32768           *:*                   -          
udp    0   0 *:nfs            *:*                   -          
udp    0   0 *:641            *:*                   3006/rpc.statd   
udp    0   0 192.168.0.3:netbios-ns   *:*                   3537/nmbd      
udp    0   0 *:netbios-ns        *:*                   3537/nmbd      
udp    0   0 192.168.0.3:netbios-dgm   *:*                   3537/nmbd      
udp    0   0 *:netbios-dgm        *:*                   3537/nmbd      
udp    0   0 *:tftp           *:*                   3346/xinetd     
udp    0   0 *:999            *:*                   3366/rpc.rquotad  
udp    0   0 *:sunrpc          *:*                   2986/portmap    
udp    0   0 *:ipp            *:*                   6938/cupsd     
udp    0   0 *:1022           *:*                   3392/rpc.mountd   
udp    0   0 *:638            *:*                   3006/rpc.statd

Shell

显示网卡列表

# netstat -i
Kernel Interface table
Iface    MTU Met  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0    1500  0  181864   0   0   0  141278   0   0   0 BMRU
lo    16436  0   3362   0   0   0   3362   0   0   0 LRU

Shell

显示组播组的关系

# netstat -g
IPv6/IPv4 Group Memberships
Interface    RefCnt Group
--------------- ------ ---------------------
lo       1   ALL-SYSTEMS.MCAST.NET
eth0      1   ALL-SYSTEMS.MCAST.NET
lo       1   ff02::1
eth0      1   ff02::1:ff0a:b0c
eth0      1   ff02::1

Shell

显示网络统计信息

# netstat -s
Ip:
  184695 total packets received
  0 forwarded
  0 incoming packets discarded
  184687 incoming packets delivered
  143917 requests sent out
  32 outgoing packets dropped
  30 dropped because of missing route
Icmp:
  676 ICMP messages received
  5 input ICMP message failed.
  ICMP input histogram:
    destination unreachable: 44
    echo requests: 287
    echo replies: 345
  304 ICMP messages sent
  0 ICMP messages failed
  ICMP output histogram:
    destination unreachable: 17
    echo replies: 287
Tcp:
  473 active connections openings
  28 passive connection openings
  4 failed connection attempts
  11 connection resets received
  1 connections established
  178253 segments received
  137936 segments send out
  29 segments retransmited
  0 bad segments received.
  336 resets sent
Udp:
  5714 packets received
  8 packets to unknown port received.
  0 packet receive errors
  5419 packets sent
TcpExt:
  1 resets received for embryonic SYN_RECV sockets
  ArpFilter: 0
  12 TCP sockets finished time wait in fast timer
  572 delayed acks sent
  3 delayed acks further delayed because of locked socket
  13766 packets directly queued to recvmsg prequeue.
  1101482 packets directly received from backlog
  19599861 packets directly received from prequeue
  46860 packets header predicted
  14541 packets header predicted and directly queued to user
  TCPPureAcks: 12259
  TCPHPAcks: 9119
  TCPRenoRecovery: 0
  TCPSackRecovery: 0
  TCPSACKReneging: 0
  TCPFACKReorder: 0
  TCPSACKReorder: 0
  TCPRenoReorder: 0
  TCPTSReorder: 0
  TCPFullUndo: 0
  TCPPartialUndo: 0
  TCPDSACKUndo: 0
  TCPLossUndo: 0
  TCPLoss: 0
  TCPLostRetransmit: 0
  TCPRenoFailures: 0
  TCPSackFailures: 0
  TCPLossFailures: 0
  TCPFastRetrans: 0
  TCPForwardRetrans: 0
  TCPSlowStartRetrans: 0
  TCPTimeouts: 29
  TCPRenoRecoveryFail: 0
  TCPSackRecoveryFail: 0
  TCPSchedulerFailed: 0
  TCPRcvCollapsed: 0
  TCPDSACKOldSent: 0
  TCPDSACKOfoSent: 0
  TCPDSACKRecv: 0
  TCPDSACKOfoRecv: 0
  TCPAbortOnSyn: 0
  TCPAbortOnData: 1
  TCPAbortOnClose: 0
  TCPAbortOnMemory: 0
  TCPAbortOnTimeout: 3
  TCPAbortOnLinger: 0
  TCPAbortFailed: 3
  TCPMemoryPressures: 0

Shell

显示监听的套接口

# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address        Foreign Address       State   
tcp    0   0 *:32769           *:*             LISTEN   
tcp    0   0 *:nfs            *:*             LISTEN   
tcp    0   0 *:644            *:*             LISTEN   
tcp    0   0 *:1002           *:*             LISTEN   
tcp    0   0 *:netbios-ssn        *:*             LISTEN   
tcp    0   0 *:sunrpc          *:*             LISTEN   
tcp    0   0 vm-dev:ipp         *:*             LISTEN   
tcp    0   0 *:telnet          *:*             LISTEN   
tcp    0   0 *:601            *:*             LISTEN   
tcp    0   0 *:microsoft-ds       *:*             LISTEN   
tcp    0   0 *:http           *:*             LISTEN   
tcp    0   0 *:ssh            *:*             LISTEN   
tcp    0   0 *:https           *:*             LISTEN   
udp    0   0 *:32768           *:*                   
udp    0   0 *:nfs            *:*                   
udp    0   0 *:641            *:*                   
udp    0   0 192.168.0.3:netbios-ns   *:*                   
udp    0   0 *:netbios-ns        *:*                   
udp    0   0 192.168.0.3:netbios-dgm   *:*                   
udp    0   0 *:netbios-dgm        *:*                   
udp    0   0 *:tftp           *:*                   
udp    0   0 *:999            *:*                   
udp    0   0 *:sunrpc          *:*                   
udp    0   0 *:ipp            *:*                   
udp    0   0 *:1022           *:*                   
udp    0   0 *:638            *:*                   
Active UNIX domain sockets (only servers)
Proto RefCnt Flags    Type    State     I-Node Path
unix 2   [ ACC ]   STREAM   LISTENING   10621 @/tmp/fam-root-
unix 2   [ ACC ]   STREAM   LISTENING   7096  /var/run/acpid.socket
unix 2   [ ACC ]   STREAM   LISTENING   9792  /tmp/.gdm_socket
unix 2   [ ACC ]   STREAM   LISTENING   9927  /tmp/.X11-unix/X0
unix 2   [ ACC ]   STREAM   LISTENING   10489 /tmp/ssh-lbUnUf4552/agent.4552
unix 2   [ ACC ]   STREAM   LISTENING   10558 /tmp/ksocket-root/kdeinit__0
unix 2   [ ACC ]   STREAM   LISTENING   10560 /tmp/ksocket-root/kdeinit-:0
unix 2   [ ACC ]   STREAM   LISTENING   10570 /tmp/.ICE-unix/dcop4664-1270815442
unix 2   [ ACC ]   STREAM   LISTENING   10843 /tmp/.ICE-unix/4735
unix 2   [ ACC ]   STREAM   LISTENING   10591 /tmp/ksocket-root/klauncherah3arc.slave-socket
unix 2   [ ACC ]   STREAM   LISTENING   7763  /var/run/iiim/.iiimp-unix/9010
unix 2   [ ACC ]   STREAM   LISTENING   11047 /tmp/orbit-root/linc-1291-0-1e92c8082411
unix 2   [ ACC ]   STREAM   LISTENING   11053 /tmp/orbit-root/linc-128e-0-dc070659cbb3
unix 2   [ ACC ]   STREAM   LISTENING   8020  /var/run/dbus/system_bus_socket
unix 2   [ ACC ]   STREAM   LISTENING   58927 /tmp/mcop-root/vm-dev-2c28-4beba75f
unix 2   [ ACC ]   STREAM   LISTENING   7860  /tmp/.font-unix/fs7100
unix 2   [ ACC ]   STREAM   LISTENING   7658  /dev/gpmctl
unix 2   [ ACC ]   STREAM   LISTENING   10498 @/tmp/dbus-s2MLJGO5Ci

Shell

Linux 命令大全

(174) Linux- ping 命令

Linux ping命令
Linux 命令大全

Linux ping命令用于检测主机。

执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法

ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

Shell

参数说明

  • -d 使用Socket的SO_DEBUG功能。
  • -c<完成次数> 设置完成要求回应的次数。
  • -f 极限检测。
  • -i<间隔秒数> 指定收发信息的间隔时间。
  • -I<网络界面> 使用指定的网络接口送出数据包。
  • -l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
  • -n 只输出数值。
  • -p<范本样式> 设置填满数据包的范本样式。
  • -q 不显示指令执行过程,开头和结尾的相关信息除外。
  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
  • -R 记录路由过程。
  • -s<数据包大小> 设置数据包的大小。
  • -t<存活数值> 设置存活数值TTL的大小。
  • -v 详细显示指令的执行过程。

检测是否与主机连通

# ping www.w3cschool.cc //ping主机
PING aries.m.alikunlun.com (114.80.174.110) 56(84) bytes of data.
64 bytes from 114.80.174.110: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 114.80.174.110: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from 114.80.174.110: icmp_seq=3 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=4 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=5 ttl=64 time=0.028 ms
64 bytes from 114.80.174.110: icmp_seq=6 ttl=64 time=0.028 ms
64 bytes from 114.80.174.110: icmp_seq=7 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=8 ttl=64 time=0.034 ms
64 bytes from 114.80.174.110: icmp_seq=9 ttl=64 time=0.036 ms
64 bytes from 114.80.174.110: icmp_seq=10 ttl=64 time=0.041 ms

--- aries.m.alikunlun.com ping statistics ---
10 packets transmitted, 30 received, 0% packet loss, time 29246ms
rtt min/avg/max/mdev = 0.021/0.035/0.078/0.011 ms

//需要手动终止Ctrl+C

Shell

指定接收包的次数

# ping -c 2 www.w3cschool.cc
PING aries.m.alikunlun.com (114.80.174.120) 56(84) bytes of data.
64 bytes from 114.80.174.120: icmp_seq=1 ttl=54 time=6.18 ms
64 bytes from 114.80.174.120: icmp_seq=2 ttl=54 time=15.4 ms

--- aries.m.alikunlun.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1016ms
rtt min/avg/max/mdev = 6.185/10.824/15.464/4.640 ms

//收到两次包后,自动退出

Shell

多参数使用

# ping -i 3 -s 1024 -t 255 g.cn //ping主机
PING g.cn (203.208.37.104) 1024(1052) bytes of data.
1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=0 ttl=243 time=62.5 ms
1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=1 ttl=243 time=63.9 ms
1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=2 ttl=243 time=61.9 ms

--- g.cn ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6001ms
rtt min/avg/max/mdev = 61.959/62.843/63.984/0.894 ms, pipe 2
[root@linux ~]# 

//-i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255

Linux 命令大全

(175) Linux- pppstats 命令

Linux pppstats命令
Linux 命令大全

Linux pppstats命令用于显示PPP连线状态。

利用pppstats(point to point protocol status)指令可让你得知PPP连接网络的相关信息。
语法

pppstats [-adrv][-c<执行次数>][-w<间隔秒数>][网络界面]

Shell

参数说明

  • -a 显示绝对统计值。
  • -c<执行次数> 设置回报状况的次数。
  • -d 显示相对统计值。
  • -r 显示数据包压缩比率的统计值。
  • -v 显示VJTCP文件头的压缩效率统计值。
  • -w<间隔秒数> 设置显示统计信息的间隔时间。

显示ppp的了连接状态

# pppstats

Linux 命令大全

(176) Linux- samba 命令

Linux samba命令
Linux 命令大全

Linux samba命令用于Samba服务器控制。

samba为script文件,可启动,停止Samba服务器或回报目前的状态。
语法

samba [start][stop][status][restart]

Shell

参数说明

  • start 启动Samba服务器的服务。
  • stop 停止Samba服务器的服务。
  • status 显示Samba服务器目前的状态。
  • restart 重新启动Samba服务器。

启动Samba

# samba start

Linux 命令大全

(177) Linux- setserial 命令

Linux setserial命令
Linux 命令大全

Linux setserial命令用于设置或显示串口的相关信息。

setserial可用来设置串口或显示目前的设置。
语法

setserial [-abgGqvVz][设备][串口参数]

Shell

参数说明

  • -a 显示详细信息。
  • -b 显示摘要信息。
  • -g 显示串口的相关信息。
  • -G 以指令列表的格式来显示信息。
  • -q 执行时显示较少的信息。
  • -v 执行时显示较多的信息。
  • -V 显示版本信息。
  • -z 设置前,先将所有的标记归零。

显示串口信息

# setserial -g /dev/ttyS2 
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4

Linux 命令大全

(178) Linux- talk 命令

Linux talk命令
Linux 命令大全

Linux talk命令用于与其他使用者对谈。

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

talk person [ttyname]

Shell

参数说明

  • person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入 [email protected]
  • ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息

与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线

talk Rollaend

Shell

接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 talk jzlee即可开始对谈,结束请按 ctrl+c

与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈

talk [email protected] pts/2

Shell

接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 talk [email protected]即可开始对谈,结束请按 ctrl+c

**注意:**若萤幕的字会出现不正常的字元,试著按 ctrl+l 更新萤幕画面。

Linux 命令大全

(179) Linux- traceroute 命令

Linux traceroute命令
Linux 命令大全

Linux traceroute命令用于显示数据包到主机间的路径。

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
语法

traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

Shell

参数说明

  • -d 使用Socket层级的排错功能。
  • -f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
  • -F 设置勿离断位。
  • -g<网关> 设置来源路由网关,最多可设置8个。
  • -i<网络界面> 使用指定的网络界面送出数据包。
  • -I 使用ICMP回应取代UDP资料信息。
  • -m<存活数值> 设置检测数据包的最大存活数值TTL的大小。
  • -n 直接使用IP地址而非主机名称。
  • -p<通信端口> 设置UDP传输协议的通信端口。
  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
  • -s<来源地址> 设置本地主机送出数据包的IP地址。
  • -t<服务类型> 设置检测数据包的TOS数值。
  • -v 详细显示指令的执行过程。
  • -w<超时秒数> 设置等待远端主机回报的时间。
  • -x 开启或关闭数据包的正确性检验。

显示到达目的地的数据包路由

# traceroute www.google.com
traceroute: Warning: www.google.com has multiple addresses; using 66.249.89.99
traceroute to www.l.google.com (66.249.89.99), 30 hops max, 38 byte packets
1 192.168.0.1 (192.168.0.1) 0.653 ms 0.846 ms 0.200 ms
2 118.250.4.1 (118.250.4.1) 36.610 ms 58.438 ms 55.146 ms
3 222.247.28.177 (222.247.28.177) 54.809 ms 39.879 ms 19.186 ms
4 61.187.255.253 (61.187.255.253) 18.033 ms 49.699 ms 72.147 ms
5 61.137.2.177 (61.137.2.177) 32.912 ms 72.947 ms 41.809 ms
6 202.97.46.5 (202.97.46.5) 60.436 ms 25.527 ms 40.023 ms
7 202.97.35.69 (202.97.35.69) 40.049 ms 66.091 ms 44.358 ms
8 202.97.35.110 (202.97.35.110) 42.140 ms 70.913 ms 41.144 ms
9 202.97.35.14 (202.97.35.14) 116.929 ms 57.081 ms 60.336 ms
10 202.97.60.34 (202.97.60.34) 54.871 ms 69.302 ms 64.353 ms
11 * * *
12 209.85.255.80 (209.85.255.80) 95.954 ms 79.844 ms 76.052 ms
   MPLS Label=385825 CoS=5 TTL=1 S=0
13 209.85.249.195 (209.85.249.195) 118.687 ms 120.905 ms 113.936 ms
14 72.14.236.126 (72.14.236.126) 115.843 ms 137.109 ms 186.491 ms
15 nrt04s01-in-f99.1e100.net (66.249.89.99) 168.024 ms 140.551 ms 161.127 ms

Shell

Linux 命令大全

(180) Linux- tty 命令

Linux tty命令
Linux 命令大全

Linux tty命令用于显示终端机连接标准输入设备的文件名称。

在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。
语法

tty [-s][--help][--version]

Shell

参数说明

  • -s或–silent或–quiet 不显示任何信息,只回传状态代码。
  • –help 在线帮助。
  • –version 显示版本信息。

显示当前终端

# tty
/dev/pts/4

Linux 命令大全

未完续接:三、Linux 教程-基础命令(181~完)

你可能感兴趣的:(笔记,Python教程资料,1024程序员节,linux,ubuntu,运维)