全网最全Linux命令大全,全覆盖,8万字总结,简单易懂~
2021/8/8 7:08:05
本文主要是介绍全网最全Linux命令大全,全覆盖,8万字总结,简单易懂~,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
海风就是大众,万字总结纯手打,路过给个赞叭~
目录
文件管理 1
文档编辑 26
文件传输 45
磁盘管理 51
磁盘维护 61
网络通讯 77
系统管理 92
系统设置 121
备份压缩 142
设备管理 150
文件管理
1.cat
用于连接文件并打印到标准输出设备上
Cat [-AbeEnstTuv] filename
-n:对所有输出的行数编号
-b:和-n相似,只不过对于空白行不编号
-s:遇到有连续两行的空白行就替换为一行
-v:使用^和M-符号,除了LFD和TAB之外
-E:在每行结束处显示$
-T:将TAB字符显示为^|
-A:-vET
-e:等价于“-vE”
-t:等价于”-vT”
例如:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
清空/etc/test.txt文档内容:
cat /dev/null > /etc/test.txt
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
把 image file 写到软盘:
cat IMG_FILE > /dev/fd0
2.chattr
用于更改文件属性
chattr [-RV] [-v<版本编号>][+/-/=<属性>][文件或目录…]
a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防意外删除。
例如:
用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf
让某个文件只能往里面加数据,但不能删除:
chattr +a /var/log/messages
3.chgrp
用于变更文件或目录的所属群组
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
实例1:改变文件的群组属性:
chgrp -v bin log2012.log
4.chmod
控制用户对权限的文件的命令
chmod [-cfvR] [--help] [--version] mode file...
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更
chmod abc file
其中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。
将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
为 ex1.py 文件拥有者增加可执行权限:
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
5.chown
用于设置文件所有者和文件关联组的命令
chown [-cfhvR] [--help] [--version] user[:group] file...
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob
6.cmp
用于比较两个文件是否有差异
cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
-c或--print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或--ignore-initial=<字符数目> 指定一个数目。
-l或--verbose 标示出所有不一样的地方。
-s或--quiet或--silent 不显示错误信息。
-v或--version 显示版本信息。
要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
7.diff
用于比较文件的差异
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
实例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
上面的"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
说明:
"|"表示前后2个文件内容有不同
"<"表示后面文件比前面文件少了1行内容
">"表示后面文件比前面文件多了1行内容
diffstat:根据diff的比较结果,显示统计数字
8.file
用于辨识文件的类型
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容
显示文件类型:
[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
显示符号链接的文件类型
[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'
9.find
用来在指定目录下查找文件
find path -option [ -print ] [ -exec -ok command ] {} \;
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
# find . -name "*.c"
将当前目录及其子目录中的所有文件列出:
# find . -type f
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
# find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
# find /var/log -type f -mtime +7 -ok rm {} \;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
# find . -type f -perm 644 -exec ls -l {} \;
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} \;
10.git
文字模式下的文件管理员
git
操作说明:
F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。
F2 :执行cat指令,列出文件内容。
F3 :执行gitview指令,观看文件内容。
F4 :执行vi指令,编辑文件内容。
F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。
F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。
F7 :执行mkdir指令,建立目录。
F8 :执行rm指令,删除文件或目录。
F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。
F10 :离开git文件管理员。
11.gitview
用于观看文件的内容
gitview [-bchilv][文件]
-b 单色模式,不使用ANSI控制码显示彩色。
-c 彩色模式,使用ANSI控制码显示色彩。
-i 显示存放gitview程序的所在位置。
-l 不使用先前的显示字符。
使用指令gitview以彩色模式观看文件"/home/ rootlocal/demo.txt"中的内容,输入如下命令:
$ gitview -c /home/rootlocal/demo.txt #使用gitview指令观看指定文件内容
12.indent
用于调整C原始代码文件的格式
indent [参数][源文件] 或 indent [参数][源文件][-o 目标文件
13.cut
用于显示每行从开头算起的num1到num2的文字
cut [-bn] [file]
cut [-c] [file]
cut [-df] [file
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。
14.ln
为某一个文件在另外一个位置建立一个同步的链接
ln [参数][源文件或目录][目标文件或目录]
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013
给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
ln log2013.log ln2013
15.less
less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
less [参数] 文件
1、查看文件
less log2013.log
2、ps查看进程信息并通过less分页显示
ps -ef |less
3、查看命令历史使用记录并通过less分页显示
[root@localhost test]# history | less
22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
23 cd ..
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
26 ls
……省略……
4、浏览多个文件
less log2013.log log2014.log
16.locate
用于查找符合条件的文档
locate [-d ][--help][--version][范本样式...]
查找 passwd 文件,输入以下命令:
locate passwd
搜索 etc 目录下所有以 sh 开头的文件 :
locate /etc/sh
忽略大小写搜索当前用户目录下所有以 r 开头的文件 :
locate -i ~/r
17.lsattr
用于显示文件属性
lsattr [-adlRvV][文件或目录...]
-a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。
-d 显示,目录名称,而非其内容。
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
18.mattrib
用来变更或显示MS-DOS文件的属性。
mattrib [-a|+a] [-h|+h] [-r|+r] [-s|+s] [-/] [-X] msdosfile [ msdosfiles ... ]
-a/+a 除去/设定备份属性。
-h/+h 除去/设定隐藏属性。
-r/+r 除去/设定唯读属性。
-s/+s 除去/设定系统属性。
-/ 递回的处理包含所有子目录下的档案。
-X 以较短的格式输出结果。
列出 A 槽 MSDOS 格式磁片上所有文件的属性。
mattrib a:
除去 A 槽磁片上 msdos.sys 档案的隐藏、系统与唯读属性。
mattrib -h -s -r a:msdos.sys
19.mc
用于提供一个菜单式的文件管理程序
20.mdel
用来删除 MSDOS 格式的档案
mdel [-v] msdosfile [ msdosfiles ... ]
将 A 槽磁片根目录中的 autoexec.bat 删除。
mdel a:autoexec.bat .
21.mdir
用于显示MS-DOS目录。
mdir [-afwx/][目录]
显示a盘中的内容
$ mdir -/ a:\*
22.mktemp
用于建立暂存文件
mktemp [-qu][文件名参数]
23.more
类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
从第 20 行开始显示 testfile 之文档内容。
more +20 testfile
24.mmove
用于在MS-DOS文件系统中,移动文件或目录,或更改名称
mmove [源文件或目录...][目标文件或目录]
使用指令mmove将文件"autorun.bat"移动到目录"test"中,输入如下命令:
$ mmove autorun.bat test #移动文件到目录test中
25.mread
用于将MS-DOS文件复制到Linux/Unix的目录中
mread [MS-DOS文件...][Linux文件或目录]
使用指令mread将盘"a:\"中的所有内容复制到当前工作目录下,输入如下命令:
$ mread a:\* ./ #将a盘上的所有文件复制到当前工作目录
26.mren
用于更改MS-DOS文件或目录的名称,或是移动文件或目录
mren [源文件或目录...][目标文件或目录]
使用指令mren将a盘下的文件"autorun.bat"的文件名修改为"auto.bat",输入如下命令:
$ mren a:\autorun.bat auto.bat
#将文件autorun.bat重命名为auto.bat
27.mtools
用于显示mtools支持的指令
28.mtoolstest
mtoolstest命令用于测试并显示mtools的相关设置。
mtoolstest为mtools工具指令,可读取与分析mtools的配置文件,并在屏幕上显示结果
mv
mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作
将文件 aaa 改名为 bbb :
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/runoob/* .
29.od
od命令用于输出文件内容,并将其内容以八进制字码呈现出来
od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]
创建 tmp 文件:
$ echo abcdef g > tmp
$ cat tmp
abcdef g
使用 od 命令:
$ od -b tmp
0000000 141 142 143 144 145 146 040 147 012
0000011
使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节:
$ od -c tmp
0000000 a b c d e f g \n
0000011
30.paste
用于合并文件的列
paste [-s][-d <间隔字符>][--help][--version][文件...]
使用paste指令将文件"file"、"testfile"、"testfile1"进行合并,输入如下命令:
paste file testfile testfile1 #合并指定文件的内容
31.patch
patch命令用于修补文件
使用patch指令将文件"testfile1"升级,其升级补丁文件为"testfile.patch",输入如下命令:
$ patch -p0 testfile1 testfile.patch #使用补丁程序升级文件
32.rcp
用于复制远程文件或命令
rcp [-pr][源文件或目录][目标文件或目录]
设本地主机当前账户为rootlocal,远程主机账户为root,要将远程主机(218.6.132.5)主目录下的文件"testfile"复制到本地目录"test"中,则输入如下命令:
rcp root@218.6.132.5:./testfile testfile #复制远程文件到本地
rcp root@218.6.132.5:home/rootlocal/testfile testfile
#要求当前登录账户cmd 登录到远程主机
rcp 218.6.132.5:./testfile testfile
33.rm
用于删除一个文件或目录
rm [options] name...
-i:删除前询问确认
-f:直接删除
-r:将目录及以下档案逐一删除
# rm test.txt
rm:是否删除 一般文件 "test.txt"? y
# rm homework
rm: 无法删除目录"homework": 是一个目录
# rm -r homework
rm:是否删除 目录 "homework"? y
34.slocate
查找文件或命令
slocate [-u][--help][--version][-d <目录>][查找的文件]
使用指令"slocate"显示文件名中含有关键字"fdisk"的文件路径信息,输入如下命令:
$ slocate fdisk #显示文件名中含有fdisk关键字的文件的路径信息
35.split
用于将一个文件分割成数个
split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
-行:每多少行切成一个小文件
-b:每多少字节切成一个小文件
-c:维持每行的完整性
使用指令"split"将文件"README"每6行切割成一个文件,输入如下命令:
$ split -6 README #将README文件每六行分割成一个文件
36.tee
用于读取标准输入的数据,并将其内容输出成文件
tee [-ai][--help][--version][文件...]
-a:附加到既有文件的后面
-i:忽略中断信号
使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令:
$ tee file1 file2 #在两个文件中复制内容
37.tmpwatch
用于删除暂存文件
tmpwatch [-afqv][--test][超期时间][目录...]
-a:删除任何类型的文件
-f:强制删除文件或目录
-q:不显示指令执行过程
-v:详细显示指令执行过程
-test:仅作测试
$ tmpwatch 24 /tmp/ #删除/tmp目录中超过一天未使用的文件
38.touch
用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls -l 可以显示档案的时间记录。
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
-a:改变档案的读取时间记录
-m:改变档案的修改时间记录
-c:假如目的档案不存在,不会建立新的档案
-r:使用参考档的时间记录
-t:设定档案的时间记录
使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令:
$ touch testfile #修改文件的时间属性
39.umask
指定在建立文件时预设的权限掩码
umask [-s][权限掩码]
使用指令"umask"查看当前权限掩码,则输入下面的命令:
$ umask #获取当前权限掩码
40.which
用于查找文件
which【文件…】
-n:指定文件名长度
-p:与-n相同,但此处的文件名长度包括了文件的路径
-w:指定输出时栏位的宽度
使用指令"which"查看指令"bash"的绝对路径,输入如下命令:
$ which bash
41.cp
主要用于复制文件或目录
cp [options] source dest
使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
$ cp –r test/ newtest
-a:此选项通常在复制目录时使用
-d:复制时保留链接
-f:覆盖已经存在的目标文件而不给出提示
-i:覆盖之前给出提示
-p:修改时间和访问权限也复制过去
-r:复制该目录下所有的子目录和文件
42.whereis
用于查找文件
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
-b:只查找二进制文件
-B:只在设置的目录下查找二进制文件
-f:不显示文件名前的路径名称
-m:只查找说明文件
-M:只在设置的目录下查找说明文件
-s:只查找原始代码文件
-S:只在设置的目录下查找原始代码文件
-u:查找不包含指定类型的文件
使用指令"whereis"查看指令"bash"的位置,输入如下命令:
$ whereis bash
43.mcopy
用来复制MSDOS格式文件到Linux中,或是由Linux中复制到MSDOS文件到磁片上。
mcopy [-bnmpQt/][源文件][目标文件或目录
b:批处理模式
-n:覆盖其它文件时,直接覆盖
m:将源文件修改时间设置为目标文件的修改时间
p:将源文件的属性设置为目标文件的属性
Q:当复制多个文件产生错误时,尽快结束程序
t转换为文本文件
将 A 盘根目录中的 autoexec.bat 复制到目前工作目录之下:
mcopy a:autoexec.bat .
44.mshowfat
用于显示MS-DOS文件在FAT中的记录
mshowfat [文件...]
使用指令mshowfat查看文件"autorun.bat"的FAT信息,输入如下命令:
$ mshowfat autorun.bat
45.rhmask
用于对文件进行加密和解密操作
rhmask [加密文件][输出文件] 或 rhmask [-d][加密文件][源文件][输出文件]
-d:产生加密过的文件
使用指令"rhmask"将加密文件"code.txt"进行加密后,另存为输出文件"demo.txt",输入如下命令:
$ rhmask code.txt demo.txt
46.scp
scp 命令用于 Linux 之间复制文件和目录
scp [可选参数] file_source file_target
从本地复制到远程
命令格式:
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
47.awk
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
48.read
用于从标准输入读取数值
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-p 后面跟提示信息,即在输入前打印提示信息。
-e 在输入的时候可以使用命令补全功能。
-n 后跟一个数字,定义输入文本的长度,很实用。
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
-t 后面跟秒数,定义输入字符的等待时间。
-u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
简单读取
#!/bin/bash
#这里默认会换行
echo "输入网站名: "
#读取从键盘的输入
read website
echo "你输入的网站名是 $website"
exit 0 #退出
测试结果为:
输入网站名:
www.runoob.com
你输入的网站名是 www.runoob.com
2、-p 参数,允许在 read 命令行中直接指定一个提示。
#!/bin/bash
read -p "输入网站名:" website
echo "你输入的网站名是 $website"
exit 0
测试结果为:
输入网站名:www.runoob.com
你输入的网站名是 www.runoob.com
49.updatedb
用来创建或更新slocate/locate命令所必须的数据库文件。
updatedb(选项)
-o:忽略默认的数据库文件
-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
使用 -U 选项可以指定要更新 slocate 数据库的目录。
updatedb -U /root/runoob
文档编辑
1.col
用于过滤控制字符
col [-bfx][-l<缓冲区列数>]
-b:过滤掉所有的控制字符
-f:滤除RLF字符
-x:以多个空格字符来表示跳格字符
-l:预设的内存缓冲区有128列
将man 命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符。在终端中使用如下命令:
man man | col-b > man_help
2.colrm
用于滤掉指定的行
colrm [开始行数编号<结束行数编号>]
类似于上例,此时标准输入等待输入,用户输入字符串按回车键后,将输出如下结果:
cmd@hdd-desktop:~$ colrm 4
Hello Linux! #输入Hello Linux!字符串
Hel #输出删除了第4列以后所有内容的字符串
删除指定列的内容。如删除第4列到第6列的内容,可使用如下命令:
colrm 4 6
输出的结果如下:
cmd@hdd-desktop:~$ colrm 4 6
Hello Linux! #输入Hello Linux!字符串
HelLinux! #输出删除了从第4列到第6列字符的字符串
3.comm
用于比较两个已排过序的文件
comm [-123][--help][--version][第1个文件][第2个文件]
-1:不显示只在第一个文件里出现过的列
-2:不显示只在第二个文件里出现过的列
-3:不显示只在第一和第二个文件里出现过的列
[root@localhost text]# comm aaa.txt bbb.txt
aaa
bbb
ccc
aaa
ddd
eee
111
222
hhh
ttt
jjj
第一列 第二列 第三列
第一列仅是第一个文件里出现过的列
第二列仅是第二个文件里出现过的列
第三列是第一和第二都出现过的列
4.csplit
用于分割文件,切割后,分别保存成名称为xx00,xx01,xx02…的文件
csplit [-kqsz][-b<输出格式>][-f<输出字首字符串>]
[-n<输出文件名位数>][--help][--version][文件][范本样式...]
例:将文本文件testfile以第 2 行为分界点切割成两份,使用如下命令:
csplit testfile 2
testfile文件中的内容如下:
$ cat testfile #查看testfile 文件内容
hello Linux!
Linux is a free Unix-type operating system.
This is a Linux testfile!
Linux
使用csplit命令,输出结果如下:
$ csplit testfile 2
13 #xx00文件字符个数
76 #xx01文件字符个数
其中第1 行是第一个文件xx00的字符个数,同样,第2 行为第二个文件xx01的字符个数。同时,在testfile 的同目录下将生成两个文件,文件名分别为xx00、xx01,xx00 中的内容为:
$ cat xx00 #查看分割后的xx00文件内容
hello Linux! #testfile文件第1行的内容
xx01 中的内容为:
$ cat xx01 #查看分割后的xx01文件内容
Linux is a free Unix-type operating system. #testfile文件第2行以后的内容
This is a Linux testfile!
Linux
截图:
5.ed
ed是文本编辑器,用于文本编辑
ed [-][-Gs][-p<字符串>][--help][--version][文件]
-G:提供回兼容的功能
-p:指定ed在command mode的提示字符
-s:不执行开启文件时的检查功能
以下是一个 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 编辑器
这是文件的内容是:
$ cat readme.text
My name is Titan.
I am 24 years old.
And I love Perl vrey much.
6.egrep
用于在文件内查找指定的字符串
egrep [范本模式] [文件或目录]
【范本模式】查找的字符串规则
【文件或目录】查找的目标文件或目录
例:显示文件中符合条件的字符。例如,查找当前目录下所有文件中包含字符串"Linux"的文件,可以使用如下命令:
egrep Linux *
截图:
7.ex
在ex模式下启动文本编辑器
ex [选项][参数]
-b:使用二进制模式编辑文件
-c:编辑完第一个文件后执行指定的指令
-d:编辑多个文件时,显示差异部分
-m:不允许修改文件
-n:不使用缓存
例:
在ex 指令后输入文件名按回车键后,即可进入ex 编辑模式,如编辑testfile文件,使用的命令格式如下:
ex testfile
输出的信息如下:
"testfile" 5L, 95C
"testfile"表示文件名,5L表示5 行,95 表示字节数
进入ex 模式。输入"visual"回到正常模式
它的操作与vim 中是一样的,此时如果在":"后输入"visual"后按回车键,将进入到vi 指令全屏界面;如果输入"q",则退出编辑器。
截图:
8.fgrep
用于查找文件里符合条件的字符串
9.fmt
用于编排文本文件
fmt [-cstu][-p<列起始字符串>][-w<每列字符数>][--help][--version][文件...]
-c:每段前两列缩排
-p:仅合并含有指定字符串的列
-s:只拆开每列超过字符数的列,不合并字数不足每列字符数的列
-t:每段前两列缩排
-u:每个字符之间都以一个空格字符间隔
-w:设置每列的最大字符数
例:
重排指定文件。如文件testfile共5 行文字,可以通过命令对该文件格式进行重排,其命令为:
fmt testfile
输出结果如下:
$ fmt testfile #重排testfile 文件
hello Linux! Linux is a free Unix-type operating system. This is a
Linux testfile! Linux Linux
将文件testfile重新排成85 个字符一行,并在标准输出设备上输出,其命令应该为:
fmt -w 85 testfile
10.fold
用于限制文件列宽
fold [-bs][-w<每列行数>][--help][--version][文件...]
-b或--bytes 以Byte为单位计算列宽,而非采用行数编号为单位。
-s或--spaces 以空格字符作为换列点。
-w<每列行数>或--width<每列行数> 设置每列的最大行数。
例:
将一个名为testfile 的文件的行折叠成宽度为30,可使用如下命令:
fold -w 30 testfile
截图:
grep
用于查找文件里符合条件的字符串
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
-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 或 --invert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。
例:
1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
grep test *file
2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
grep -r update /etc/acpi
3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
grep -v test *test*
截图:
11.ispell
用于拼写检查程序
ispell [-aAbBClmMnNPStVx][-d<字典文件>][-L<行数>][-p<字典文件>][-w<非字母字符>][-W<字符串长度>][要检查的文件]
-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
如果文件中出现可疑词汇,则第一个出现的可疑词汇以高亮显示,并在屏幕下方给出词汇的修改意见,以及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
本例中,检查出netwrks 错误,并提示纠正信息,此时输入"0",即使用networks 来纠正错误,同时继续显示下一个错误,直到所有的错误显示完毕。
通过以上实例我们可以发现,文件testfile中有拼写错误,对该文件进行修改后需备份文件。此时使用如下命令:
ispell-b testfile #检查拼写错误的同时,备份文件
12.jed
用于编辑文本文件,适合用来编辑程序原始代码
jed [-2n][-batch][-f<函数>][-g<行数>][-i<文件>][-I<文件>][-s<字符串>][文件]
-2:显示上下两个编辑区
-bath:以批处理模式来执行
-f:执行slang函数
-g:移到缓冲区中指定的行数
-i:将指定的文件载入缓冲区
-n:不要载入jed.rc配置文件
-s:查找并移到指定的字符串
例:
jed主要用于编辑程序的源码,编辑源码时将以彩色高亮的方式显示程序的语法。例如使用jed编辑一个C语言的源代码文件,可使用如下命令:
jed main.c #用jed编辑器打开main.c 文件
13.joe
用于编辑文本文件。是一个功能强大的全屏幕文本编辑程序。
14.join
用于将两个文件中,指定栏位内容相同的行连接起来
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
-a:除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行
-e:若找不到指定的栏位,则在输出中填入选项中的字符串
-i:忽略大小写的差异
-o:按照指定格式来显示结果
-t:使用栏位的分隔字符
-v:只显示没有相同栏位的行
例:
连接两个文件。
为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:
join testfile_1 testfile_2
首先查看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
然后使用join命令,将两个文件连接,结果如下:
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容
Hello 95 2005 #连接后显示的内容
Linux 85 2009
test 30 2006
15.look
用于查询单词
look [-adf][-t<字尾字符串>][字首字符串][字典文件]
-a:使用另一个字典文件Web2
-d:只对比英文字母和数字
-f:忽略字符大小写差别
-t:设置字尾字符串
例:
为了查找在testfile文件中以字母L开头的所有的行,可以输入如下命令:
look L testfile
在testfile文件中使用look命令查找以"L"开头的单词,结果如下:
$ look L testfile #查找以“L”开头的单词
Linux is a free unix-type opterating system. #第二行以“L”开头,列出全句
Linux test #第四行以“L”开头,列出全句
16.mtype
可以显示MS-DOS文件的内容
mtype [-st][文件]
打开名为dos.txt 的MS-DOS文件可使用如下命令:
mtype dos.txt #打开MS-DOS 文件
17.pico
用于编辑文字文件,以显示导向为主的文字编辑程序
pico [-bdefghjkmqtvwxz][-n<间隔秒数>][-o<工作目录>][-r<编辑页宽>][-s<拼字检查器>][+<列数编号>][文件]
一个用来编辑文件的文字编辑程序
18.rgrep
用于递归查找文里符合条件的字符串
rgrep [-?BcDFhHilnNrv][-R<范本样式>][-W<列长度>][-x<扩展名>][--help][--version][范本样式][文件或目录...]
例:
在当前目录下查找句子中包含"Hello"字符串的文件,可使用如下命令:
rgrep Hello *
其搜索结果如下:
$ rgrep Hello * #在当前目录下查找句子中包含“Hello”字符串的文件
testfile_1:Hello 95 #testfile_1中包含“Hello”字符串的句子
testfile_2:Hello 2005 #testfile_2中包含“Hello”字符串的句子
19.sed
利用脚本来处理文本文件
sed [-hnV][-e<script>][-f<script文件>][文本文件]
-e:以选项中指定的script来处理输入的文本文件
-f:以选项中指定的script文件来处理输入的文本文件
-n:仅显示script处理后的结果
动作说明:
a:新增
c:取代
d:删除
i:插入
p:打印
s:可以直接进行取代的工作里
例:
在testfile文件的第四行后添加一行,并将结果输出到标准输出,在命令行提示符下输入如下命令:
sed -e 4a\newLine testfile
截图如下:
19.sort
用于将文本文件内容进行排序
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]]
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
[-k field1[,field2]] 按指定的列进行排序。
例:
在使用 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
使用 -k 参数设置对第二列的值进行重排,结果如下:
$ sort testfile -k 2
test 30
Linux 85
Hello 95
截图工具:
20.spell
可建立拼写检查程序
spell
例:
检查文件testfile是否有拼写错误,在命令行提示符下输入如下命令:
spell testfile
如果文件中有单词拼写错误,则输出如下信息:
$ spell testfile #检查testfile 拼写错误
scurity #以下为有错误的单词
tp
LANs
Securty
practicl
applcations
necesary
21.tr
用于转换或删除文件中的字符
tr [-cdst][--help][--version][第一字符集][第二字符集]
tr [OPTION]…SET1[SET2]
-c:反选设定字符
-d:删除指令字符
-s:缩减连续重复的字符成指定的单个字符
-t:削减SET1指定范围,使之与SET2设定长度相等
例:
将文件testfile中的小写字母全部转换成大写字母,此时,可使用如下命令:
cat testfile |tr a-z A-Z
截图:
22.expr
是一个手工命令行计数器(一般用于整数值,也可用于字符串)
expr 表达式
例:
1、计算字串长度
> expr length “this is a test”
14
2、抓取字串
> expr substr “this is a test” 3 5
is is
3、抓取第一个字符数字串出现的位置
> expr index "sarasara" a
2
4、整数运算
> expr 14 % 9
5
> expr 10 + 10
20
截图:
23.uniq
用于检查及删除文本文件中重复出现的行列
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
例:文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:
uniq testfile
testfile中的原有内容为:
$ cat testfile #原有内容
test 30
test 30
test 30
Hello 95
Hello 95
Hello 95
Hello 95
Linux 85
Linux 85
使用uniq 命令删除重复的行后,有如下输出结果:
$ uniq testfile #删除重复行后的内容
test 30
Hello 95
Linux 85
检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:
uniq -c testfile
结果输出如下:
$ uniq -c testfile #删除重复行后的内容
3 test 30 #前面的数字的意义为该行共出现了3次
4 Hello 95 #前面的数字的意义为该行共出现了4次
2 Linux 85 #前面的数字的意义为该行共出现了2次
24.wc
用于计算字数
wc [-clw][--help][--version][文件...]
-c:只显示Bytes数
-l:只显示行数
-w:只显示字数
例:
在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:
$ wc testfile # testfile文件的统计信息
3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
截图:
25.let
let命令是BASH中用于 计算的工具,用于执行一个或多个表达式
let arg [arg ...]
自加操作:let no++
自减操作:let no—
截图:
文件传输
1.lprm
用于将一个工作由打印机储列中移除,每一个打印机都有一个独立的贮列,你可以用 -P 这个命令设定想要作用的印列机
/usr/bin/lprm [P] [file...]
例:
将打印机 hpprinter 中的第 1123 号工作移除
lprm -Phpprinter 1123
将第 1011 号工作由预设印表机中移除
lprm 1011
2.lpr
用来将一个或多个文件放入打印队列等待打印
lpr [ -P printer ]
例:
下面的命令行将在名为mailroom的打印机上打印report文件:
$ lpr -P mailroom report
使用一条打印命令可打印多个文件,下面的命令行在名为laser1的打印机上打印3个文件:
$ lpr -P laser1 05.txt 108.txt 12.txt
3.lpq
用于查看一个打印队列的状态
lpq [l] [P] [user]
例:
为系统默认的打印机printer的一个空队列。
$ lpq
printer is ready
no entries
4.lpd
是一个常驻的打印机管理程序。
5.bye
用于中断FTP连线并结束进程。
在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。
6.ftp
设置文件系统相关功能
ftp [-dignv][主机名称或IP地址]
-d:详细显示指令执行过程
-i:关闭互动模式
-g:关闭本地主机文件名称支持特殊字符的扩充特性
-n:不使用自动登陆
-v:显示指令执行过程
例:
例如使用ftp命令匿名登录ftp.kernel.org服务器,该服务是Linux 内核的官方服务器,可以使用如下命令:
ftp ftp.kernel.org #发起链接请求
7.uuto
将文件传送到远端的UUCP主机
uuto [文件][目的]
例:将文件传送到远程UUCP主机localhost的tmp 目录,在命令提示符中直接输入如下命令:
uuto./testfile localhost/tmp #将文件传送到远程UUCP 主机localhost的tmp目录
该命令通常没有输出。
8.uupick
uupick处理传送进来的文件
当其它主机通过UUCP传送进来的时候,可利用uupick指令指出这些文件
uupick [-v][-I<配置文件>][-s<主机>][-x<层级>][--help]
-l:指定配置文件
-s:处理由指定主机传送过来的文件
例:
uupick-s localhost
通常没有输出
9.uucp
用于在Unix系统之间传送文件。
uucp [-cCdfjmrRtvW][-g<等级>][-I<配置文件>][-n<用户>][-x<类型>][--help][...来源][目的]
-c:不用将文件复制到缓冲区
-C:将文件复制到缓冲区
-d:在传送时,自动建立必要的目录
-f:在传送时,若需要建立目录,则放弃执行该作业
-g:指定文件传送作业的优先顺序
-l:指定uucp配置文件
-j:显示作业编号
-m:以电子邮件报告作业是否顺利完成
-n: 以电子邮件向指定的用户报告作业是否顺利完成
例:
将temp/目录下所有文件传送到远程主机localhost的uucp公共目录下的Public/目录下。在命令行中输入如下命令:
uucp-d-R temp localhost ~/Public/
10.uucico
uucp文件传输服务程序
uucico是用来处理uucp或uux送到队列的文件传输工具。
两种工作模式:主动模式和附属模式
主动模式下,uucico会调用远程主机;附属模式下,uucico则接受远端主机调用
uucico [-cCDefqvwz][-i<类型>][-I<文件>][-p<连接端口号码>][-][-rl][-s<主机>][-S<主机>][-u<用户>][-x<类型>][--help]
-c:不执行工作时,不要修改记录文件的内容及状态
-C:当有工作要执行时,才调用-s所指的主机
-D:不要与控制终端机离线
-e:附属模式下执行,并且出现要求登入的提示画面
-f:执行错误时,直接重新调用主机
-i:指定连接端口的类型
-l:指定使用的配置文件
-p:指定连接端口的类型
-q:不要启动uuxqt服务程序
-r0:以附属模式启动
-s:调用指定的主机
-u:指定登入的用户账号
-w:出现要求登入的提示画面
-x:启动指定的排错模式
-z:执行不成功时,尝试下一个选择而不结束程序
例:
使用主动模式启动uucico服务。在命令提示符下直接输入如下命令:
uucico-r1
11.tftp
tftp命令用于传输文件
FTP让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。
tftp [主机名称或IP地址]
connect:连接到远程tftp服务器
mode:文件传输模式
put:上传文件
get:下载文件
quit:退出
verbose:显示详细的处理信息
trace:显示包路径
status:显示当前状态信息
binary:二进制传输模式
ascli:ascli传送模式
rexmt:设置包传输的超时时间
timeout:设置重传的超时时间
例:
连接远程服务器"218.28.188.288",然后使用get命令下载其中根目录下的文件"README",可使用命令如下:
tftp 218.28.188.288 #连接远程服务器
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
12.ncftp
用于传输文件
当不指定用户名时,ncftp命令会自动尝试使用匿名账户anonymous去连接远程FTP服务器,
不需要用户输入账号和密码
ncftp [主机或IP地址]
-u:指定登录FTP服务器的用户名
-p:设置用户密码
-P:指定FTP端口号,默认为21
-j:指定账号
例:
使用ncftp命令匿名连接FTP服务器。
例如想匿名连接ftp.kernel.org服务器,同时不想输入anonymous等匿名用户名,可直接使用ncftp命令:
ncftp ftp.kernel.org
13.ftpshut
在指定的时间关闭FTP服务器
ftpshut [-d<分钟>][-l<分钟>][关闭时间]["警告信息"]
-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"
ftpshut -d 3 -l 5 1100 ”Server will be shutdown at 23:00:00”
14.ftpwho
用于显示目前所有以FTP登入的用户信息
可知道登入系统的有哪些人,他们正在进行的操作
ftpwho
例:
查询当前有哪些用户正在登录FTP服务器,可直接使用如下命令:
ftpwho
该命令有如下输出结果:
$ ftpwho #查询当前正在登录FTP 服务器的用户
standalone FTP daemon[2085]:
3547 wyw [1m20s] 1m25s(idle)
Service class - 1 user #当前有一个用户登录FTP服务器
15.ftpcount
用于显示目前以FTP登入的用户人数
ftpcount
-f:指定设定文件的路径
-h:帮助
例:
ftpcount 可以直接查询FTP服务器上用户的人数,可直接使用如下命令:
ftpcount #查询当前FTP用户的人数
该命令有如下输出结果:
$ ftpcount #查询当前FTP用户的人数
Master proftpd process 2085:
Service class - 6 user #当前共6个用户登录到服务器
磁盘管理
1.cd
用于切换当前工作目录
~表示home目录,. 表示目前所在目录,.. 表示目前上一层的目录
cd [dirName]
dirName:要切换的目标目录。
例:
跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home 目录 :
cd ~
截图:
2.df
显示目前在Linux系统上的文件系统磁盘使用情况统计
df [选项]... [FILE]...
-a:包含所有的具有0 Blocks的文件系统
-h:使用人类可读的格式
-l:限制列出的文件结构
-t:限制列出文件系统的TYPE
-i:显示inode信息而非使用量
截图:
3.dirs
用于显示目录记录
dirs [+/-n -l]
+n:显示从左边算起第n笔的目录
-n:显示从右边算起第n笔的目录
-l:显示目录完整的记录
例:
列出"/home/cc/Ruijie"里所有内容的详细信息。可用如下命令。
dir -l /home/cc/Ruijie
截图:
4.du
用于显示目录或文件的大小
显示指定的目录或文件所占用的磁盘空间
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
-a:显示目录中个别文件的大小
-b:显示目录或文件大小时,以byte为单位
-c:除了显示个别目录或文件的大小外,同时显示所有目录或文件的总和
-D:显示指定符号连接的源文件大小
截图:
5.edquota
用于编辑用户或群组的磁盘配额
edquota [-p <源用户名称>][-ug][用户或群组名称...]
-u:设置用户的磁盘配额
-g: 设置群组的磁盘配额
-p: 将源用户的磁盘配额设置套用至其他用户或群组
-t: 设置宽限期限
6.eject
用于退出抽取式设备
eject [-dfhnqrstv][-a <开关>][-c <光驱编号>][设备]
-a:控制设备的自动退出功能
-c:选择光驱
-d:显示预设的设备,而不是实际执行动作
-f:退出抽取式磁盘
-n:显示指定的设备
-q:退出磁带
-r:退出光盘
-s:以SCSI指令来退出设备
-t:关闭光盘的托盘
7.mcd
可在MS-DOS文件系统中切换工作目录
mcd [msdosdirectory]
例:
变更目前工作目录到 a: emp 中。
mcd a: emp
8.mdeltree
用来删除MSDOS格式档案及目录
mdeltree [-v] msdosdirectory [msdosdirectories...]
例:
将 A 磁盘根目录中的 msdosdir 目录以下的档案与目录都删除掉。
mcopy a:msdosdir
9.mdu
用于显示MS-DOS所占用的磁盘空间
例:
mdu [-as][目录]
-a:显示每个文件及整个目录所占用的空间
-s:仅显示整个目录所占用的空间
10.mkdir
用于创建目录
mkdir [-p] dirName
截图:
11.mlabel
用于设定磁盘的标签
mlabel [-vcs] drive:[new_label]
-v:更多的讯息
-c:清除原有的标签
-s:显示目前的标签
例:将 A 盘的标签更改为 newlabel。
mlabel a:newlabe
12.mmd
用于在MS-DOS文件系统中建立目录
mmd [目录...]
13.mrd
用于删除MS-DOS文件系统中的目录
mrd [目录...]
14.mzip
是Zip/Jaz磁盘驱动器控制指令
mzip [-efpqruwx]
-e:退出磁盘
-p:设置磁盘的写入密码
-q: 显示目前的状态
-r: 将磁盘设为防写状态
-u: 退出磁盘以前,暂时解除磁盘的保护状态
-w:将磁盘设为可写入状态
-x: 设置磁盘的密码
15.pwd
用于显示工作目录
pwd [--help][--version]
截图:
16.quota
用于显示磁盘已使用的空间与限制
quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...]
-g:列出群组的磁盘空间限制
-q:简明列表,只列出超过限制的部分
-u:列出用户的磁盘空间限制
例:
# quota -guvs <==显示目前执行者(就是 root )的 quota 值
# quota -uvs test <==显示 test 这个使用者的 quota 值
17.mount
用于挂载Linux系统外的文件
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
例:
将 /dev/hda1 挂在 /mnt 之下。
#mount /dev/hda1 /mnt
将 /dev/hda1 用唯读模式挂在 /mnt 之下。
#mount -o ro /dev/hda1 /mnt
截图:
18.mmount
用于挂入MS-DOS文件系统
mmount [驱动器代号][mount参数]
19.rmdir
删除空的目录
rmdir [-p] dirName
-p:当子目录被删除后使它也成为空目录的话,顺便一并删除
例:将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA
截图:
20.rmt
通过进程间通信远程控制磁带机
rmt
21.stat
用于显示inode内容
stat [文件或目录]
例:
stat testfile
截图:
22.tree
用于以树状图列出目录的内容
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
截图:
23.umount
用于卸除文件系统
umount [-ahnrvV][-t <文件系统类型>][文件系统]
-a:卸除/etc/mtab中记录的所有文件系统
-h:帮助
-n:卸除时不要将信息存入/etc/mtab文件中
-r:若无法卸除,尝试以只读的方式重新挂入文件系统
-t:仅卸除选项中指定的文件系统
-v:执行时显示详细信息
例:
下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:
# umount -v /dev/sda1 通过设备名卸载
/dev/sda1 umounted
# umount -v /mnt/mymount/ 通过挂载点卸载
/tmp/diskboot.img umounted
24.ls
显示指定工作目录下的内容
ls [-alrtAFR] [name...]
-a:显示所有文件及目录
-l:详细列出
-r:将文件以相反次序显示
-t:将文件建立时间先后次序列出
-A同-a,但不列出.及..
-F:在列出的文件名称后加一符号
-R:若目录下有文件,则以下文件皆依序列出
截图:
25.quotacheck
用于检查磁盘的使用空间与限制
quotacheck [-adgRuv][文件系统...]
-a:扫描在/etc/fstab文件里,有加入quota设置的分区
-d:详细显示指令执行过程
-g:扫描磁盘空间时,计算每个群组所占用的目录文件数目
-R:扫描根目录所在的分区
-u:扫描磁盘空间时,计算每个用户所占用的目录文件数目
-v:显示指令执行过程
26.quotaoff
关闭磁盘空间限制
quotaoff [-aguv][文件系统...]
-a:关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制
-g:关闭群组的磁盘空间限制
-u:关闭用户的磁盘空间限制
-v:显示指令执行过程
27.lndir
用于连接目录内容
lndir [-ignorelinks][-silent][源目录][目的目录]
例:
给目录下所有的文件或者子文件目录建立链接:
lndir /home/uptech abc
28.repquota
用于检查磁盘空间限制的状态
repquota [-aguv][文件系统...]
-a:列出在/etc/fstab文件里,又加入quota设置的分区的使用状况,包括用户和群组
-g:列出所有群组的磁盘空间限制
-u:列出所有用户的磁盘空间限制
-v:显示该用户或群组的所有空间限制
29.quotaon
用于开启磁盘空间限制
quotaon [-aguv][文件系统...]
-a:开启在/etc/fstab文件里,有加入quota设置的分区的空间限制
-g:开启群组的磁盘空间限制
-u:开启用户的磁盘空间限制
-v:显示指令执行过程
磁盘维护
1.badblocks
用于检查磁盘装置中损坏的区块
执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数
badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数][启始区块]
-b:指定磁盘的区块大小
-o:将检查的结果写入指定的输出文件
-s:在检查时显示进度
-v:显示详细信息
-w:在检查时,执行写入测试
例:
查看系统当前硬盘信息。
# fdisk -l
例如,显示信息如下:
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
通过命令扫描硬盘。
# badblocks -s -v /dev/sdnx
截图如下:
2.cfdisk
用于磁盘分区
cfdisk [-avz][-c <柱面数目>-h <磁头数目>-s <盘区数目>][-P <r,s,t>][外围设备代号]
-a:在程序里不用反白代表选取,而以箭头表示
-c:直接指定磁盘的柱面数目
-h:直接指定磁盘的磁头数目
-P:显示分区表的内容
-s:直接指定磁盘的磁区数目
-z:不读取现有的分区,直接当作没有分区的新磁盘使用
例:
进行磁盘分区:
# cfdisk
进行磁盘分区,使用箭头进行操作,而不使用反白表示:
# cfdisk -a
3.dd
用于读取,转换并输出数据
例:
在Linux 下制作启动盘,可使用如下命令:
dd if=boot.img of=/dev/fd0 bs=1440k
将testfile文件中的所有英文字母转换为大写,然后转成为testfile_1文件,在命令提示符中使用如下命令:
dd if=testfile_2 of=testfile_1 conv=ucase
其中testfile_2 的内容为:
$ cat testfile_2 #testfile_2的内容
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
转换完成后,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中的所有字符都变成了大写字母
4.e2fsck
用于检查使用Linux ext2档案系统的partition
e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] device
-a:对partition做检查,若有问题便自动修复(-p)
-b:设定存放superblock的位置
-B:设定单位block的大小
-c:检查该partition是否有坏轨
-C file:将检查的结果存到file中以便查看
-d:列印e2fsck的debug结果
-f:强制检查
-F:在开始检查前,将device的buffer cache清空,避免有错误发生
-n:将档案系统以唯读方式开启
-y:预先设定所有检查时的问题均回答【是】
例:
检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :
e2fsck -a -y /dev/hda5
截图:
5.ext2ed
是ex2文件系统编辑程序
ext2ed
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 进入文件模式。
6.fsck
用于检查与修复Linux档案系统。
fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]
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
7.fsck.minix
用于检查系统并尝试修复错误
fsck.minix [-aflmrsv][外围设备代号]
-a:自动修复文件系统
-f:强制对该系统进行完整检查
-l:列出所有文件名称
-m:使用类似MINIX操作系统的警告信息
-r:采用互动模式
-s:显示该分区第一个磁区的相关信息
-v:显示指令执行过程
8.fsconf
用于设置文件系统相关功能
fsconf [--check]
9.fdformat
用于对指定的软碟机装置进行低阶格式化
fdformat [-n] device
例:
fdformat -n /dev/fd0h1440
10.hdparm
用于显示与设定硬盘的参数
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 <传输模式>][设备]
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c<I/O模式> 设定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模式> 设定硬盘的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[起始扇区数]
显示硬盘的柱面、磁头、扇区数
# hdparm -g /dev/sda
/dev/sda:
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]
截图:
11.mformat
对MS-DOS文件系统的磁盘进行格式化
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:
-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:
12.mkbootdisk
用于建立目前系统的启动盘
mkbootdisk [--noprompt][--verbose][--version][--device <设备>][--mkinitrdargs <参数>][kernel 版本]
--device 指定设备
--mkinitrdargs设置mkinitrd的参数
--noprompt 不会提示用户插入磁盘
--verbose执行时显示详细的信息
13.mkdosfs
用于建立DOS文件系统
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 ]
-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
14.mke2fs
用于建立ext2文件系统
mke2fs [-cFMqrSvV][-b <区块大小>][-f <不连续区段大小>][-i <字节>][-N <inode数>][-l <文件>][-L <标签>][-m <百分比值>][-R=<区块数>][ 设备名称][区块数]
-b<区块大小> 指定区块大小,单位为字节。
-c 检查是否有损坏的区块。
-f<不连续区段大小> 指定不连续区段的大小,单位为字节。
-F 不管指定的设备为何,强制执行mke2fs。
-i<字节> 指定"字节/inode"的比例。-N<inode数> 指定要建立的inode数目。
-l<文件> 从指定的文件中,读取文件西中损坏区块的信息。
-L<标签> 设置文件系统的标签名称。
-m<百分比值> 指定给管理员保留区块的比例,预设为5%。
-M 记录最后一次挂入的目录。
-q 执行时不显示任何信息。
-r 指定要建立的ext2文件系统版本。
-R=<区块数> 设置磁盘阵列参数。
-S 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。
-v 执行时显示详细信息。
-V 显示版本信息。
15.mkfa.ext2
与mke2fs命令相同
16.mkfs.msdos
与mkdosfs相同
17.mkinitrd
用于建立要载入ramdisk的映像文件
mkinitrd [-fv][--omit-scsi-modules][--version][--preload=<模块名称>][--with=<模块名称>][映像文件][Kernel 版本]
-f:若指定的映像名称与现有文件重复,则覆盖
-v:显示详细信息
18.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 <目录>][目录或文件]
19.mkswap
用于设置交换区
mkswap [-cf][-v0][-v1][设备名称或文件][交换区大小]
-c:建立交换区之前,先检查是否有损坏的区块
-f:在SPARC电脑上建立交换区时,要加上此参数
-v0:建立旧式交换区
-v1:建立新式交换区
20.mpartition
用于建立或删除MS-DOS的分区
mpartition [-acdfIprv][-b <磁区数>][-h <磁头数>][l <磁区数>][-s <磁区数>][-t <柱面数>][驱动器代号]
-a 将分区设置为可开机分区。
-b<磁区数> 建立分区时,指定要从第几个磁区开始建立分区。
-c 建立分区。
-d 将分区设置为无法开机的分区。
-f 强制地修改分区而不管检查时发生的错误信息。
-h<磁头数> 建立分区时,指定分区的磁头数。
-I 删除全部的分区。-l<磁区数> 建立分区时,指定分区的容量大小,单位为磁区数。
-p 当要重新建立分区时,显示命令列。
-r 删除分区。
-s<磁区数> 建立分区时,指定每个磁轨的磁区数。
-t<柱面数> 建立分区时,指定分区的柱面数。
-v 与-p参数一并使用,若没有同时下达修改分区的命令,则显示目前分区的状态。
21.swapon
用于激活linux系统中的交换空间
/sbin/swapon -a [-v]
/sbin/swapon [-v] [-p priority] specialfile ...
/sbin/swapon [-s
-s 显示简短的装置讯息
-a 自动启动所有SWAP装置
22.symlinks
用于维护符号连接的工具程序
symlinks [-cdrstv][目录]
-c 将使用绝对路径的符号连接转换为相对路径。
-d 移除dangling类型的符号连接。
-r 检查目录下所有子目录中的符号连接。
-s 检查lengthy类型的符号连接。
-t 与-c一并使用时,会显示如何将绝对路径的符号连接转换为相对路径,但不会实际转换。
-v 显示所有类型的符号连接。
23.sync
用于数据同步,sync命令是在关闭Linux系统时使用的
24.mbadblocks
用于检查MS-DOS文件系统的磁盘是否有损坏的磁区
mbadblocks [驱动器代号]
25.mkfs.minix
用于建立Minix文件系统
mkfs.minix [-cv][-i <inode数目>][-l <文件>][-n <文件名长度>][设备名称][区块数]
-c 检查是否有损坏的区块。
-i<inode数目> 指定文件系统的inode总数。
-l<文件> 从指定的文件中,读取文件系统中损坏区块的信息。
-n<文件名长度> 指定文件名称长度的上限。
26.fsck.ext2
用于检查文件系统并尝试修复错误
fsck.ext2 [-acdfFnprsStvVy][-b <分区第一个磁区地址>][-B <区块大小>][-C <反叙述器>][-I <inode缓冲区块数>][-l/L <损坏区块文件>][-P <处理inode大小>][外围设备代号]
-a 自动修复文件系统,不询问任何问题。
-b<分区第一个磁区地址> 指定分区的第一个磁区的起始地址,也就是Super Block。
-B<区块大小> 设置该分区每个区块的大小。
-c 检查指定的文件系统内,是否存在有损坏的区块。
-C<反叙述器> 指定反叙述器,fsck.ext2指令会把全部的执行过程,都交由其逆向叙述,便于排错或监控程序执行的情形。
-d 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
-F 检查文件系统之前,先清理该保存设备块区内的数据。
-I<inode缓冲区块数> 设置欲检查的文件系统,其inode缓冲区的区块数目。
-l<损坏区块文件> 把文件中所列出的区块,视为损坏区块并将其标示出来,避免应用程序使用该区块。
-L<损坏区块文件> 此参数的效果和指定"-l"参数类似,但在参考损坏区块文件标示损坏区块之前,会先将原来标示成损坏区块者统统清楚,即全部重新设置,而非仅是加入新的损坏区块标示。
-n 把欲检查的文件系统设成只读,并关闭互动模式,否决所有询问的问题。
-p 此参数的效果和指定"-a"参数相同。
-P<处理inode大小> 设置fsck.ext2指令所能处理的inode大小为多少。
-r 此参数将忽略不予处理,仅负责解决兼容性的问题。
-s 检查文件系统时,交换每对字节的内容。
-S 此参数的效果和指定"-s"参数类似,但不论该文件系统是否已是标准位顺序,一律交换每对字节的内容。
-t 显示fsck.ext2指令的时序信息。
-v 详细显示指令执行过程。
-V 显示版本信息。
-y 关闭互动模式,且同意所有询问的问题。
27.fdisk
是一个创建和维护分区表的程序
fdisk [必要参数][选择参数]
-m:显示菜单和帮助信息
-a:活动分区标记/引导分区
-d:删除分区
-l:显示分区内容
n:新建分区
p:显示分区信息
q:退出不保存
t:设置分区号
v:进行分区检查
w:保存修改
x:扩展应用
例:
显示当前分区情况:
# fdisk -l
28.losetup
用于设置循环设备
losetup [-d][-e <加密方式>][-o <平移数目>][循环设备代号][文件]
-d:卸除设备
-e: 启动加密编程
-o: 设置数据平移的数目
29.mkfs
用于在特定的分区上建立linux文件系统
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
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
30.sfdisk
是硬盘分区工具程序
sfdisk [-?Tvx][-d <硬盘>][-g <硬盘>][-l <硬盘>][-s <分区>][-V <硬盘>]
-d<硬盘> 显示硬盘分区的设置。
-g<硬盘>或--show-geometry<硬盘> 显示硬盘的CHS参数。
-l<硬盘> 显示后硬盘分区的相关设置。
-s<分区> 显示分区的大小,单位为区块。
-T或--list-types 显示所有sfdisk能辨识的文件系统ID
例:显示分区信息:
# sfdisk -l
31.swapoff
用于关闭系统交换区
swapoff [设备]
-a:将/etc/fstab文件中所有设置未swap的设备关闭
-h:帮助文件
例:
# swapoff /dev/sda2 // 关闭交换分区
网络通讯
1.apachectl
用来控制Apache HTTP服务器的程序
apachectl [configtest][fullstatus][graceful][help][restart][start][status][stop]
configtest 检查设置文件中的语法是否正确。
fullstatus 显示服务器完整的状态信息。
graceful 重新启动Apache服务器,但不会中断原有的连接。
help 显示帮助信息。
restart 重新启动Apache服务器。
start 启动Apache服务器。
status 显示服务器摘要的状态信息。
stop 停止Apache服务器。
2.arpwatch
用于监听网络上ARP的记录
arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件>]
-d 启动排错模式。
-f<记录文件> 设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat。
-i<接口> 指定监听ARP的接口,预设的接口为eth0。
-r<记录文件> 从指定的文件中读取ARP记录,而不是从网络上监听。
-n 指定附加的本地网络
-u 指定用户和用户组
-e 发送邮件给指定用户,非默认的root用户
-s 指定用户名作为返回地址,而不是默认的用户root
例:
监听网卡eth0的ARP信息
arpwatch -i eth0
3.dip
用于IP拨号连接
dip [-aikltv][-m<MTU数目>][-p<协议>][拨号script文件]
-a:询问用户名称与密码
-i:启动拨号服务器功能
-k:删除执行中的dip程序
-l:指定要删除的连线,必须配合-k一起使用
-p:设置通信协议
-t:进入dip的指令模式
-v:详细信息
例:
建立拨号连接
$ dip -t
4.getty
用于设置终端机模式,连线速率和管制线路
getty [-h][-d<组态配置文件>][-r<延迟秒数>][-t<超时秒数>][-w<等待字符串>][终端机编号][连线速率<终端机类型><管制线路>] 或 getty [-c<定义配置文件>]
-c<定义配置文件> 指定定义配置文件,预设为/etc/gettydefs。
-d<组态配置文件> 指定组态配置文件,预设为/etc/conf.getty。
-h 当传输速率为0时就强制断线。
-r<延迟秒数> 设置延迟时间。
-t<超时秒数> 设置等待登入的时间。
-w<等待字符串> 设置等待回应的字符串。
例:
开启终端:
# getty tty7
5.mingetty
mingetty命令是精简版的getty
mingetty适用于本机上的登入程序
mingetty [--long-hostname][--noclear][tty]
--long-hostname 显示完整的主机名称。
--noclear 在询问登入的用户名称之前不要清楚屏幕画面
6.uux
用于在远端的UUCP主机上执行指令
uux [-bcCIjlnrvz][-a<地址>][-g<等级>][-s<文件>][-x<层级>][--help][指令]
-或-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 若发生错误,则以邮件来通知用户
例:
在远程主机 uucp 执行命令
# uux hnlinux! date /// 在远程主机 指定date命令查看系统时间
7.telnet
用于远端登入
telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]
例:
登录远程主机
# telnet 192.168.0.5
8.uulog
用于显示UUCP记录文件
uulog [-DFISv][-<行数>][-f<主机>][-I<配置文件>][-n<行数>][-s<主机>][-u<用户>][-X<层级>][--help]
例:
显示uucp log信息
# uulog
9.uustat
用于显示UUCP目前的状态
uustat [-aeiKmMNpqQRv][-B<行数>][-c<指令>][-C<指令>][-I<配置文件>][-k<工作>][-o<小时>][-r<工作>][-s<主机>][-S<主机>][-u<用户>][-U<用户>][-W<附注>][-y<小时>][-x<层级>][--help]
例:
显示所有任务
# uustat -a
显示等待的任务
# uustat -e
10.ppp-off
用于关闭ppp连线
11.netconfig
netconfig
12.nc
用于设置路由器,可设置路由器的相关参数
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
-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
13.httpd
Httpd为Apache HTTP 服务器程序,直接执行程序可启动服务器的服务
httpd [-hlLStvVX][-c<httpd指令>][-C<httpd指令>][-d<服务器根目录>][-D<设定文件参数>][-f<设定文件>]
-c<httpd指令> 在读取配置文件前,先执行选项中的指令。
-C<httpd指令> 在读取配置文件后,再执行选项中的指令。
-d<服务器根目录> 指定服务器的根目录。
-D<设定文件参数> 指定要传入配置文件的参数。
-f<设定文件> 指定配置文件。
-h 显示帮助。
-l 显示服务器编译时所包含的模块。
-L 显示httpd指令的说明。
-S 显示配置文件中的设定。
-t 测试配置文件的语法是否正确。
-v 显示版本信息。
-V 显示版本信息以及建立环境。
-X 以单一程序的方式来启动服务器
例:检查配置文件语法错误
# httpd -t
启动httpd
httpd
显示编译模块
# httpd -l
截图如下:
14.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地址]
15.minicom
用于调制解调器通信程序
Minicom是一个相当受欢迎的ppp拨号连线程序
minicom [-8lmMostz][-a<on或0ff>][-c<on或off>][-C<取文件>][-d<编号>][-p<模拟终端机>][-S<script文件>][配置文件]
-8 不要修改任何8位编码的字符。
-a<on或0ff> 设置终端机属性。
-c<on或off> 设置彩色模式。
-C<取文件> 指定取文件,并在启动时开启取功能。
-d<编号> 启动或直接拨号。
-l 不会将所有的字符都转成ASCII码。
-m 以Alt或Meta键作为指令键。
-M 与-m参数类似。
-o 不要初始化调制解调器。
-p <模拟终端机> 使用模拟终端机。
-s 开启程序设置画面。
-S<script文件> 在启动时,执行指定的script文件。
-t 设置终端机的类型。
-z 在终端机上显示状态列。
16.mesg
用于设置终端机的写入权限
mesg [ny]
n:不允许其他用户将信息显示在你的屏幕上
y:允许其他用户将信息直接显示在你的屏幕上
例:
允许其他用户发信息到当前终端。
root 的终端
# mesg y //在这个终端设置允许发送消息
其他普通用户的终端:
$ write root pts/4
hello
hello
EOF //Ctrl+D 结束输入
root 的终端 终端显示
#
Message from root@w3cschool.cc (as hnlinux) on pts/5 at 14:48 ...
hello
EOF
17.dnsconf
用于设置DNS服务器组态
dnsconf [--deldomain<域>][--delsecondary<域>][--newdomain<域>][--set<主机><IP>][--setcname<CNAME><主机>][--setmx<域><主机>][--setns<域><主机>][--unset<主机>]
--deldomain<域> 删除域。
--delsecondary<域> 删除次级域。
--newdomain<域> 新增域。
--set<主机><IP> 新增主机记录。
--setcname<CNAME><主机> 设置<CNAME>。
--setmx<域><主机> 指定域的邮件主机。
--setns<域><主机> 指定域的DNS服务器。
--unset<主机> 删除DNS中某台主机的记录。
18.wall
会将讯息传给每一个mesg设定为yes的上线使用者。
wall [ message ]
例:
传讯息"hi" 给每一个使用者
wall hi
广播消息
# wall Ilove
Broadcast message from root (pts/4) (Thu May 27 16:41:09 2014):
Ilove
截图:
19.netstat
用于显示网络状态
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
例:
显示详细的网络状况
# netstat -a
20.ping
用于检测主机
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
截图:
21.pppstats
用于显示ppp连线状态
pppstats [-adrv][-c<执行次数>][-w<间隔秒数>][网络界面]
例:
显示ppp的了连接状态
# pppstats
22.samba
用于对samba服务器控制
samba [start][stop][status][restart]
start:启动Samba服务器的服务
stop:停止Samba服务器的服务
status:显示Samba服务器目前的状态
restart:重新启动
例:
启动Samba
# samba start
23.setserial
用于设置或显示串口的相关信息
setserial [-abgGqvVz][设备][串口参数]
-a 显示详细信息。
-b 显示摘要信息。
-g 显示串口的相关信息。
-G 以指令列表的格式来显示信息。
-q 执行时显示较少的信息。
-v 执行时显示较多的信息。
-V 显示版本信息。
-z 设置前,先将所有的标记归零。
例:显示串口信息
# setserial -g /dev/ttyS2
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
24.talk
用于与其他使用者对谈
talk person [ttyname]
person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入 person@machine.name
ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
例:
与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线
talk Rollaend
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈
talk Rollaend@linuxfab.cx pts/2
25.traceroute
用于显示数据包到主机间的路径
traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
例:
显示到达目的地的数据包路由
# traceroute www.google.com
26.tty
用于显示终端机连接标准输入设备的文件名称
tty [-s][--help][--version]
-s或--silent或--quiet 不显示任何信息,只回传状态代码
例:
显示当前终端
# tty
/dev/pts/4
截图如下:
27.newaliases
使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者
newaliases
例:
# newaliases
下面命令会做相同的事
# sendmail -bi
28.uuname
用于显示全部的UUCP远端主机
uuname [-alv][-I<配置文件>][--help]
-a:显示别名
-l:指定程序的配置文件
-l:显示本机名称
显示uucp主机名称
# uuname
29.netconf
用于设置各项网络功能
例:
netconf
30.write
用于传讯息给其他使用者
write user [ttyname]
user : 预备传讯息的使用者帐号
ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
例:
传讯息给 Rollaend,此时 Rollaend 只有一个连线
write Rollaend
31.statserial
用于显示串口状态
statserial [-dnx][串口设备名称]
-d 以10进制数字来表示串口的状态。
-n 仅显示一次串口的状态后即结束程序。
-x 与-n参数类似,但是以16进制来表示
例:显示串口状态
# statserial /dev/tty1
只显示一次串口状态
# statserial -n /dev/tty1
32.efax
用于收发传真
efax [-sw][-a<AT指令>][-c<调制解调器属性>][-d<驱动程序>][-f<字体文件>][-g<指令>][-h<传真标题字符串>][-i<AT指令>][-j<AT指令>][-k<AT指令>][-l<识别码>][-o<选项>][-q<错误次数>][-r<文件名>][-v<信息类型>][-x<UUCP锁定文件>][-t<电话号码><传真文件>]
33.pppsetup
用于设置ppp连线
pppsetup
例:
设置ppp拨号
# pppsetup
34.tcpdump
用于倾倒网络传输数据
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
例:
显示TCP包信息
# tcpdump
35.ytalk
用于与其他用户交谈
ytalk [-isxY][-h<主机名称IP地址>][用户名称...]
-h<主机名称IP地址> 指定交谈对象所在的远端主机。
-i 用提醒声响代替显示信息。
-s 在指令提示符号先开启ytalk交谈窗。
-x 关闭图形界面。
-Y 所有必须回应yes或no的问题,都必须用大写英文字母"Y"或"N"回答。
例:
# who //显示当前用户
root :0 Apr 9 20:17
root pts/1 Apr 9 20:17
w3c pts/6 May 27 16:47 (192.168.0.1)
root pts/2 May 27 17:37 (192.168.0.1)
# ytalk w3c //发送消息
hey
36.cu
用于连接另一个系统主机
cu [dehnotv][-a<通信端口>][-c<电话号码>][-E<脱离字符>][-I<设置文件>][-l<外围设备代号>][-s<连线速率>][-x<排错模式>][-z<系统主机>][--help][-nostop][--parity=none][<系统主机>/<电话号码>]
例:
与远程主机连接
# cu -c 0102377765
37. smbd命令用于Samba服务器程序。
smbd为Samba服务器程序,可分享文件与打印机等网络资源供Windows相关的用户端程序存取。
smbd [-aDhoP][-d<排错层级>][-i<范围>][-l<记录文件>][-O<连接槽选项>][-p<连接端口编号>][-s<配置文件>]
-a 所有的连线记录都会加到记录文件中。
-d<排错层级> 指定记录文件所记载事件的详细程度。
-D 使用此参数时,smbd会以服务程序的方式在后台执行。
-h 显示帮助。
-i<范围> 指定NetBIOS名称的范围。
-l<记录文件> 指定记录文件的名称。
-o 每次启动时,会覆盖原有的记录文件。
-O<连接槽选项> 设置连接槽选项。
-p<连接端口编号> 设置连接端口编号。
-P 仅用来测试smbd程序的正确性。
-s<配置文件> 指定smbd的设置文件。
例:
启动Samba服务器
# smbd -D
38.testparm
用于测试Samba的设置是否正确无误
testparm [-s][配置文件][<主机名称><IP地址>]
-s 不显示提示符号等待用户按下Enter键,就直接列出Samba服务定义信息。
39.smbclient
可存取SMB/CIFS服务器的用户端程序
smbclient [网络资源][密码][-EhLN][-B<IP地址>][-d<排错层级>][-i<范围>][-I<IP地址>][-l<记录文件>][-M<NetBIOS名称>][-n<NetBIOS名称>][-O<连接槽选项>][-p<TCP连接端口>][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T<tar选项>][-U<用户名称>][-W<工作群组>]
40.shapecfg
用于管制网络设备的流量
shapecfg attach [流量管制器][网络设备]
或
shapecfg speed [流量管制器][带宽]
attach将流量管制器与实际的网络设备结合
speed 设置流量管制器的对外传输带宽
系统管理
1.adduser
用于新增使用者账号或更新预设的使用者资料
也有删除使用者的指令,userdel
adduser [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] loginid
-c:新使用者位于密码档的注解资料
-d:设定使用者的家目录
-e:设定此账号的使用期限
例:
添加一个一般用户
# useradd kk //添加用户kk
为添加的用户指定相应的用户组
# useradd -g root kk //添加用户kk,并指定用户所在的组为root用户组
创建一个系统用户
# useradd -r kk //创建一个系统用户kk
为新添加的用户指定/home目录
# useradd-d /home/myf kk //新添加用户kk,其home目录为/home/myf
//当用户名kk登录主机时,系统进入的默认目录为/home/myf
截图:
2.chfn
提供使用者更改个人资讯
shell>> chfn
例:
改变finger信息
# chfn
改变账号真实姓名
# chfn -f hnunix
3.useradd用于建立用户账户
使用useradd指令所建立的账号,实际上是保存在/etc/passwd文本文件中
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
或
useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s<shell> 指定用户登入后所使用的shell。
-u<uid> 指定用户ID
例:
添加一般用户
# useradd tt
为添加的用户指定相应的用户组
# useradd -g root tt
创建一个系统用户
# useradd -r tt
为新添加的用户指定home目录
# useradd -d /home/myd tt
4.date
可以用来显示或设定系统的日期与时间
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
-d datestr:显示datestr中所设定的时间
-S datestr:将系统时间设为datestr中所设定的时间
-u: 显示目前的格林威治时间
显示当前时间
# date
三 5月 12 14:08:12 CST 2010
# date '+%c'
2010年05月12日 星期三 14时09分02秒
# date '+%D' //显示完整的时间
05/12/10
# date '+%x' //显示数字日期,年份两位数表示
2010年05月12日
# date '+%T' //显示日期,年份用四位数表示
14:09:31
# date '+%X' //显示24小时的格式
14时09分39秒
截图:
5.exit
用于退出目前的shell
执行exit可使shell以指定的状态值退出,0代表执行成功,其他值代表执行失败
exit [状态值]
6.finger
可以让使用者查询一些其他使用者的资料
finger [options] user[@address]
-l:多行显示
-s:单行显示
列出当前登录用户的相关信息
# finger -l //显示用户信息
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Fri Apr 9 20:17 (CST) on :0 (messages off)
On since Fri Apr 9 20:17 (CST) on pts/1 32 days 22 hours idle
On since Fri Apr 9 20:17 (CST) on pts/3 4 hours 5 minutes idle
(messages off)
On since Wed May 12 18:08 (CST) on pts/4 from 192.168.1.10
On since Wed May 12 18:35 (CST) on pts/5 from 192.168.1.10
7 minutes 54 seconds idle
On since Wed May 12 14:37 (CST) on pts/2 from 192.168.1.10
3 hours 14 minutes idle
On since Wed May 12 14:53 (CST) on pts/7 34 minutes 25 seconds idle
(messages off)
On since Wed May 12 16:53 (CST) on pts/8 from 192.168.1.10
30 minutes 18 seconds idle
Mail last read Mon Mar 31 04:02 2008 (CST)
No Plan.
显示指定用户信息
# finger -m hnlinux
显示远程用户信息
# finger -m root@192.168.1.13
截图:
7.fwhios
用于查找并显示用户信息
本指令的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别
fwhios [帐号名称]
8.sleep
用来将目前动作延迟一段时间
sleep [--help] [--version] number[smhd]
number : 时间长度,后面可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为小时,d 为日数
例:
休眠5分钟
# sleep 5m
显示目前时间后延迟 1 分钟,之后再次显示时间
date;sleep 1m;date
截图:
9.suspend
用于暂停执行shell
suspend [-f]
-f 若目前执行的shell为登入的shell,则suspend预设无法暂停此shell。若要强迫暂停登入的shell,则必须使用-f参数。
例:暂停shell
# suspend
-bash: suspend: 无法挂起一个登录 shell
# suspend -f
10.groupdel
用于删除群组
groupdel [群组名称]
例:删除一个群组
# groupdel hnuser
11.groupmod
用于更改群组识别码或名称
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
-g:群组识别码
-o:重复使用群组识别码
-n:设置欲使用的群组名称
例:修改组名
[root@runoob.com ~]# groupadd linuxso
[root@runoob.com ~]# tail -1 /etc/group
linuxso:x:500:
[root@runoob.com ~]# tail -1 /etc/group
linuxso:x:500:
[root@runoob.com ~]# groupmod -n linux linuxso
[root@runoob.com ~]# tail -1 /etc/group
linux:x:500:
12.halt
若系统的runlevel为0或6,则Linux halt命令关闭系统,否则以shutdown指令来取代
halt [-n] [-w] [-d] [-f] [-i] [-p]
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 文件里
-d : 不把记录写到 /var/log/wtmp 文件里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置先停止
-p : 当关机的时候,顺便做关闭电源(poweroff)的动作
例:
关闭系统
# halt
关闭系统并关闭电源
# halt -p
关闭系统,但不留下纪录
# halt -d
13.kill
用于删除执行中的程序或工作
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
-l:列出全部的信息名称
-s:指定要送出的信息
最常用的信号是:
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。
例:
杀死进程
# kill 12345
强制杀死进程
# kill -KILL 123456
发送SIGHUP信号,可以使用一下信号
# kill -HUP pid
彻底杀死进程
# kill -9 123456
14.last
用于显示用户最近登录的信息
shell>> last [options]
-R:省略hostname的栏位
-num:展示前num个
username:展示username的登入讯息
tty:限制登入讯息包含终端机代号
例:
一般显示方法
# last
简略显示,并指定显示的个数
# last -n 5 -R
root pts/4 Thu May 13 17:25 still logged in
root pts/2 Thu May 13 17:23 - 17:25 (00:02)
root pts/1 Thu May 13 16:46 still logged in
root pts/7 Thu May 13 15:36 still logged in
root pts/9 Thu May 13 15:35 still logged in
wtmp begins Thu May 13 18:55:40 2014
截图:
15.lastb
用于列出登入系统失败的用户相关信息
单独执行lastb指令,它会读取位于/var/log目录下,名称为btmp的文件
lastb [-adRx][-f <记录文件>][-n <显示列数>][帐号名称...][终端机编号...]
-a:把从何处登入系统的主机名称或ip地址显示在最后一行
-d:将ip地址转换成主机名称
-f:指定记录文件
-n:列出名单的显示列数
-R:不显示登入系统的主机名或ip
-x:显示系统关机,重新开机,以及相关信息
截图如下:
16.login
用于登入系统
login
例:
使用新的身份登录系统
# login
17.logname
用于显示用户名称
logname [--help][--version]
例:
显示登录账号的信息:
# logname
root
18.logout
用于退出系统
logout
例:
退出系统:
[root@runoob.com ~]# logout
19.ps
用于显示当前进程的状态
ps [options] [--help]
-A:列出所有的进程
-w:显示加宽可以显示较多的资讯
-au:显示较详细的咨讯
-aux:显示所有包含其他使用者的行程
例:
查找指定进程格式:
ps -ef | grep 进程关键字
例如显示 php 的进程:
# ps -ef | grep php
root 794 1 0 2020 ? 00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data 951 794 0 2020 ? 00:24:15 php-fpm: pool www
www-data 953 794 0 2020 ? 00:24:14 php-fpm: pool www
www-data 954 794 0 2020 ? 00:24:29 php-fpm: pool www
...
显示进程信息:
# ps -A
20.nice
以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定的 adjustment 为 10,范围为 -20(最高优先序)到 19(最低优先序)
nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
21.procinfo
用于显示系统状态
procinfo [-abdDfhimsSv][-F <输出文件>][-n <间隔秒数>]
-a:显示所有信息
-b: 显示磁盘设备的区块数目
-d: 显示系统信息每秒间的变化差额,而非总和的数值
-D: 效果和指定"-d"参数类似,但内存和交换文件的信息为总和数值
-f: 进入全画面的互动式操作界面
-i: 显示完整的IRP列表。
-m 显示系统模块和外围设备等相关信息。
-n<间隔秒数> 设置全画面互动模式的信息更新速度,单位以秒计算。
-s 显示系统的内存,磁盘空间,IRP和DMA等信息,此为预设值。
-S 搭配参数"-d"或"-D"使用时,每秒都会更新信息,不论是否有使用参数"-n"。
例:
显示系统状态
# procinfo
22.top
用于实时显示 process 的动态
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
例:
显示进程信息
# top
显示完整命令
# top -c
以批处理模式显示程序信息
# top -b
以累积模式显示程序信息
# top -S
截图:
23.pstree
将所有行程以树状图显示
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
或
pstree -V
-a:显示该行程的完整指令及参数,如果是被记忆体置换出去的行程则会加上括号
-c:如果有重覆的行程名,则分开列出
例:
显示进程的关系
pstree
init-+-amd
|-apmd
|-atd
|-httpd---10*[httpd]
%pstree -p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree -c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
| |-httpd
| |-httpd
| |-httpd
....
特别表明在运行的进程
# pstree -apnh //显示进程间的关系
同时显示用户名称
# pstree -u //显示用户名称
24.reboot
用于用来重新启动计算机
若系统的runlevel为0或6,则重新开机,否则以shutdown指令来取代
reboot [-n] [-w] [-d] [-f] [-i]
-n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止
例:
重新启动
# reboot
25.rlogin
用于远端登入
rlogin [-8EL][-e <脱离字符>][-l <用户名称>][主机名称或IP地址]
例:
显示rlogin服务是否开启
# chkconfig --list //检测rlogin服务是否开启
开启rlogin服务
# chkconfig rlogin on //开启rlogin服务
登陆远程主机
# rlogin 192.168.1.88
Password:
Password:
Login incorrect
Login:root
Passwd:
Login incorrect
Login:kk
Passwd:
指定用户名登陆远程主机
# rlogin 192.168.1.88 -l hnlinux
Passord:
Last login:Mon May 28 15:30:25 from 192.168.1.88
#
26.rsh
用于远端登入的shell
rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令]
-d:使用Socket层级的排错功能
-l:指定要登入远端主机的用户名称
-n:把输入的指令号向代号为/dev/null的特殊外围设备
例:
开启rsh服务
# chkconfig --list //检测rlogin服务是否开启
# chkconfig rsh on //开启rsh服务
# chkconfig -list //检测开启的服务
远程命令执行
# rsh -l hnlinux 192.168.1.88 /bin/ls //远程执行ls命令
27.sliplogin
用于将SLIP接口加入标准输入
sliplogin [用户名称]
例:
改变用户的连接方式
# sliplogin kk // 改变用户的连接方式
28.screen
用于多重视窗管理程序
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell> 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
例:
创建 screen 终端
# screen //创建 screen 终端
创建 screen 终端 并执行任务
# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令
离开 screen 终端
# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令
#include
main ()
{
}
"~/mail.c" 0,0-1
在 screen 终端 下 按下 Ctrl+a d键
重新连接离开的 screen 终端
# screen -ls //显示已创建的screen终端
There are screens on:
2433.pts-3.linux (2013年10月20日 16时48分59秒) (Detached)
2428.pts-3.linux (2013年10月20日 16时48分05秒) (Detached)
2284.pts-3.linux (2013年10月20日 16时14分55秒) (Detached)
2276.pts-3.linux (2013年10月20日 16时13分18秒) (Detached)
4 Sockets in /var/run/screen/S-root.
# screen -r 2276 //连接 screen_id 为 2276 的 screen终端
29.shutdown
用来进行关机程序
shutdown [-t seconds] [-rkhncfF] time [message]
-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。
例:
立即关机
# shutdown -h now
指定 10 分钟后关机
# shutdown -h 10
重新启动计算机
# shutdown -r now
30.rwho
用于查看系统用户
rwho指令的效果类似who指令,但它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令
rwho [-a]
-a 列出所有的用户,包括闲置时间超过1个小时以上的用户。
例:
显示本地局域网内的所有用户
# rwho
root snail-hnlinux:pts/2 May 14 17:42
31.sudo
以系统管理者的身份执行指令
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
例:
sudo命令使用
$ sudo ls
[sudo] password for hnlinux:
hnlinux is not in the sudoers file. This incident will be reported.
指定用户执行命令
# sudo -u userb ls -l
显示sudo设置
$ sudo -L //显示sudo设置
以root权限执行上一条命令
$ sudo !!
以特定用户身份进行编辑文本
$ sudo -u uggc vi ~www/index.html
//以 uggc 用户身份编辑 home 目录下www目录中的 index.html 文件
列出目前的权限
sudo -l
列出 sudo 的版本资讯
sudo -V
32.gitps
用于报告程序状况
gitps [acefgjlnrsSTuvwxX][p <程序识别码>][t <终端机编号>][U <帐号名称>]
例:
显示指定用户信息
# gitps hnlinux
33.swatch
用于系统监控程序
swatch [-A <分隔字符>][-c <设置文件>][-f <记录文件>][-I <分隔字符>][-P <分隔字符>][-r <时间>][-t <记录文件>]
例:
开启系统监视
# swatch
34.tload
用于显示系统负载状况
tload [-V][-d <间隔秒数>][-s <刻度大小>][终端机编号]
-d<间隔秒数> 设置tload检测系统负载的间隔时间,单位以秒计算。
-s<刻度大小> 设置图表的垂直刻度大小,单位以列计算。
例:
显示系统负载
# tload
35.logrotate
用于管理记录文件
logrotate [-?dfv][-s <状态文件>][--usage][配置文件]
-d或--debug 详细显示指令执行过程,便于排错或了解程序执行的情况。
-f或--force 强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然。
-s<状态文件>或--state=<状态文件> 使用指定的状态文件。
-v或--version 显示指令执行过程。
-usage 显示指令基本用法。
例:指定记录文件
# logrotate /root/log.config
36.uname
用于显示系统信息
uname [-amnrsv][--help][--version]
-a或--all 显示全部的信息。
-m或--machine 显示电脑类型。
-n或--nodename 显示在网络上的主机名称。
-r或--release 显示操作系统的发行编号。
-s或--sysname 显示操作系统名称。
-v 显示操作系统的版本。
例:
显示系统信息:
# uname -a
Linux iZbp19byk2t6khuqj437q6Z 4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
显示计算机类型:
# uname -m
x86_64
显示计算机名:
# uname -n
runoob-linux
显示操作系统发行编号:
# uname -r
4.11.0-14-generic
显示操作系统名称:
# uname -s
Linux
显示系统版本与时间:
# uname -v
#20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017
37.chsh
用于更改使用者shell设定
shell>> chsh
例:
shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的 shell]
[del]
shell>> chsh -l ### 展示 /etc/shells 档案内容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
38.userconf
用于用户账号设置程序
实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称><shell>][--delgroup <群组>][--deluser <用户ID>][--help]
--addgroup<群组> 新增群组。
--adduser<用户ID><群组><用户名称><shell> 新增用户帐号。
--delgroup<群组> 删除群组。
--deluser<用户ID> 删除用户帐号。
例:
新增用户
# userconf --adduser 666 tt lord /bin/bash //新增用户账号
39.userdel
用于删除用户账号
userdel [-r][用户帐号]
-r 删除用户登入目录以及目录中所有文件。
例:
删除用户账号
# userdel hnlinux
40.usermod
用于修改用户账号
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
例:
更改登录目录
# usermod -d /home/hnlinux root
改变用户的uid
# usermod -u 777 root
41.vlock
用于锁住虚拟终端
vlock [-achv]
-a或--all 锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
切换终端机的功能一并关闭。
-c或--current 锁住目前的终端阶段作业,此为预设值。
例:
锁定虚拟终端
# vlock
42.who
用于显示系统中哪些使用者正在上面
who - [husfV] [user]
-H 或 --heading:显示各栏位的标题信息列;
-i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q 或--count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
例:
显示当前登录系统的用户
# who //显示当前登录系统的用户
root tty7 2014-05-13 12:12 (:0)
root pts/0 2014-05-14 17:09 (:0.0)
root pts/1 2014-05-14 18:51 (192.168.1.17)
root pts/2 2014-05-14 19:48 (192.168.1.17)
显示标题栏
# who -H
NAME LINE TIME COMMENT
root tty7 2014-05-13 12:12 (:0)
root pts/0 2014-05-14 17:09 (:0.0)
root pts/1 2014-05-14 18:51 (192.168.1.17)
root pts/2 2014-05-14 19:48 (192.168.1.17)
43.whoami
用于显示自身用户名称
whoami [--help][--version]
例:
显示用户名
# whoami
root
截图:
44.whois
用于查找并显示用户信息
whois [帐号名称]
例:
显示指定用户信息
# whois root
//查找root用户信息
45.newgrp
用于登入另一个群组
newgrp [群组名称]
例:
改变群组
# newgrp root
46.renice
用于指定一个或多个行程的优先序
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
-p pid 重新指定行程的 id 为 pid 的行程的优先序
-g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
-u user 重新指定行程拥有者为 user 的行程的优先序
例:
将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1
renice +1 987 -u daemon root -p 32
47.su
用于变更为其他使用者的身份
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
例:
变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root
变更帐号为 root 并传入 -f 参数给新执行的 shell
su root -f
变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
su - clsung
48.skill
skill命令送个讯号给正在执行的程序,预设的讯息为 TERM (中断),较常使用的讯息为 HUP、INT、KILL、STOP、CONT 和 0。
讯息有三种写法:分别为 -9、-SIGKILL、-KILL,可以使用 -l 或 -L 已列出可使用的讯息。
skill [signal to send] [options] 选择程序的规则
例:
停止所有在 PTY 装置上的程序
skill -KILL -v pts/*
停止三个使用者 user1、user2、user3
skill -STOP user1 user2 user3
49.w
用于显示目前登入系统的用户信息
w [-fhlsuV][用户名称]
-f 开启或关闭显示用户从何处登入系统。
-h 不显示各栏位的标题信息列。
-l 使用详细格式列表,此为预设值。
-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。
例:
显示当前用户
# w // 显示当前用户登录信息及执行的命令
19:50:14 up 9:27, 4 users, load average: 0.31, 0.26, 0.18
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty7 :0 Thu12 31:39m 10:10 0.60s gnome-session
root pts/0 :0.0 17:09 2:18m 15.26s 0.15s bash
root pts/1 192.168.1.17 18:51 1.00s 1.24s 0.14s -bash
root pts/2 192.168.1.17 19:48 60.00s 0.05s 0.05s -bash
不显示登录位置
w -f
19:53:59 up 9:31, 4 users, load average: 0.05, 0.16, 0.15
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root tty7 Thu12 31:43m 10:10 0.60s gnome-session
root pts/0 17:09 2:21m 15.26s 0.15s bash
root pts/1 18:51 0.00s 1.04s 0.14s -bash
root pts/2 19:48 4:45 0.05s 0.05s -bash
以精简模式显示
w -s
19:54:37 up 9:31, 4 users, load average: 0.24, 0.19, 0.16
USER TTY FROM IDLE WHAT
root tty7 :0 31:43m gnome-session
root pts/0 :0.0 2:22m bash
root pts/1 192.168.1.17 0.00s -bash
root pts/2 192.168.1.17 5:23 -bash
截图:
50.id
用于显示用户的ID,以及所属群组
id [-gGnru][--help][--version][用户名称]
-g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
例:
显示当前用户信息
# id //显示当前用户ID
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t
显示用户群组的ID
# id -g
0
截图:
51.groupadd
用于创建一个新的工作组,新工作组的信息将被添加到系统文件中
groupadd [-g gid [-o]] [-r] [-f] group
-g:指定新建工作组的 id;
-r:创建系统工作组,系统工作组的组ID小于 500;
-K:覆盖配置文件 "/ect/login.defs";
-o:允许添加组 ID 号不唯一的工作组。
-f,--force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。
例:
创建一个新的组,并添加组 ID。
#groupadd -g 344 runoob
52.free
用于显示内存状态
free [-bkmotV][-s <间隔秒数>]
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列
例:
显示内存使用情况
# free //显示内存使用信息
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164
以总和的形式显示内存的使用信息
# free -t //以总和的形式查询内存的使用信息
total used free shared buffers cached
Mem: 254772 184868 69904 0 5936 89908
-/+ buffers/cache: 89024 165748
Swap: 524280 65116 459164
Total: 779052 249984 529068
截图:
系统设置
1.reset
和tset是同一个命令,用途是设定终端机的命令
tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]
-p 将终端机类别显示在屏幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别。
-e ch 将 erase 字元设成 ch
-i ch 将中断字元设成 ch
-k ch 将删除一行的字元设成 ch
-I 不要做设定的动作,如果没有使用选项 -Q 的话,erase、中断及删除字元的目前值依然会送到屏幕上。
-Q 不要显示 erase、中断及删除字元的值到屏幕上。
-r 将终端机类别印在屏幕上。
-s 将设定 TERM 用的命令用字串的型式送到终端机中,通常在 .login 或 .profile 中用。
例:
让使用者输入一个终端机型别并将终端机设到该型别的预设状态
# reset ?
将 erase 字元设定 control-h
# reset -e ^B
2.clear
用于清除屏幕
3.alias
用于设置指令的别名
alias[别名]=[指令名称]
例:
给命令设置别名
# alias lx=ls
# lx
anaconda-ks.cfg Desktop install.log install.log.syslog qte
4.dircolors
用于设置ls指令在显示目录或文件时所用的色彩
dircolors [色彩配置文件]
-b或--sh或--bourne-shell 显示在Boume shell中,将LS_COLORS设为目前预设置的shell指令。
-c或--csh或--c-shell 显示在C shell中,将LS_COLORS设为目前预设置的shell指令。
-p或--print-database 显示预设置
例:
显示默认值
# dircolors -p //显示默认值
5.aumix
用于设置音效装置
aumix [-123bcilmoprstvwWx][(+/-)强度][PqR][-dfhILqS]
例:设置音效设备
# aumix
6.bind
用于显示或设置键盘按键与其相关功能
bind [-dlv][-f <按键配置文件>][-m <按键配置>][-q <功能>]
例:
显示按键组合的所有功能
# bind -l //显示按键组合的内容
7.chroot
用于改变根目录
chroot [--help][--version][目的目录][执行指令...]
例:
改变根目录
# chroot /mnt/ls //改变根目录
8.clock
Linux clock命令用于调整 RTC 时间。
RTC 是电脑内建的硬件时间
clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="<日期时间>"][--setepoch --epoch=< >][--show][--systohc][--test][--utc][--version]
例:
获取当前的时间
# clock //获取当前的时间
显示UTC时间
# clock -utc //显示UTC时间
截图:
9.crontab
用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crontab [ -u user ] file
或
crontab [ -u user ] { -l | -r | -e }
例:
每一分钟执行一次 /bin/ls:
* * * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:
0 6-12/3 * 12 * /usr/bin/backup
10.declare
用于声明shell变量
declare [+/-][rxi][变量名称=设置值] 或 declare -f
+/- "-"可用来指定变量的属性,"+"则是取消变量所设的属性。
-f 仅显示函数。
r 将变量设置为只读。
x 指定的变量会成为环境变量,可供shell以外的程序来使用。
i [设置值]可以是数值,字符串或运算式。
例:
声明整数型变量
# declare -i ab //声明整数型变量
# ab=56 //改变变量内容
# echo $ab //显示变量内容
56
改变变量属性
# declare -i ef //声明整数型变量
# ef=1 //变量赋值(整数值)
# echo $ef //显示变量内容
1
# ef="wer" //变量赋值(文本值)
# echo $ef
0
# declare +i ef //取消变量属性
# ef="wer"
# echo $ef
wer
11.depmod
用于分析可载入模块的相依性
depmod [-adeisvV][-m <文件>][--help][模块名称]
a或--all 分析所有可用的模块。
-d或debug 执行排错模式。
-e 输出无法参照的符号。
-i 不检查符号表的版本。
-m<文件>或system-map<文件> 使用指定的符号表文件。
-s或--system-log 在系统记录中记录错误。
-v或--verbose 执行时显示详细的信息。
例:
显示可用模块
# depmod -a //显示可用模块
12.dmesg
用于显示开机信息
dmesg [-cn][-s <缓冲区大小>]
-c 显示信息后,清除 ring buffer 中的内容。
-s<缓冲区大小> 预设置为 8196,刚好等于 ring buffer 的大小。
-n 设置记录信息的层级。
显示开机信息
#pwd //查看当前所在目录
/home/hnlinux/
# dmesg > boot.msg //将开机信息保存到 boot.msg文件中
#ls //显示当前目录文件
boot.msg
显示开机信息
# dmesg |less
截图:
13.enable
用于启动或关闭shell内建指令
enable [-n][-all][内建指令]
-n:关闭指定的shell内建指令
-all:显示shell所有关闭与启动的指令
例:
显示shell内置命令
# enable //显示shell命令
截图如下:
14.eval
用于重新运算求出参数的内容
eval [参数]
例:
连接多个命令
# eval enable;ls //连接多个命令
15.export
用于设置或显示环境变量
export [-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
例:列出当前所有的环境变量
# export -p //列出当前的环境变量值
截图:
16.pwunconv
用于关闭用户的投影密码
执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。
例:
关闭用户的投影密码
# pwunconv
17.grpconv
用于开启群组的投影密码
grpconv
18.rpm
用于管理套件
rpm [-acdhilqRsv][-b<完成阶段><套间档>+][-e<套件挡>][-f<文件>+][-i<套件档>][-p<套件档>+][-U<套件档>][-vv][--addsign<套件档>+][--allfiles][--allmatches][--badreloc][--buildroot<根目录>][--changelog][--checksig<套件档>+][--clean][--dbpath<数据库目录>][--dump][--excludedocs][--excludepath<排除目录>][--force][--ftpproxy<主机名称或IP地址>][--ftpport<通信端口>][--help][--httpproxy<主机名称或IP地址>][--httpport<通信端口>][--ignorearch][--ignoreos][--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp][--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe<执行指令>][--prefix<目的目录>][--provides][--queryformat<档头格式>][--querytags][--rcfile<配置档>][--rebulid<套件档>][--rebuliddb][--recompile<套件档>][--relocate<原目录>=<新目录>][--replacefiles][--replacepkgs][--requires][--resign<套件档>+][--rmsource][--rmsource<文件>][--root<根目录>][--scripts][--setperms][--setugids][--short-circuit][--sign][--target=<安装平台>+][--test][--timecheck<检查秒数>][--triggeredby<套件档>][--triggers][--verify][--version][--whatprovides<功能特性>][--whatrequires<功能特性>]
例:
安装软件
# rpm -hvi dejagnu-1.4.2-10.noarch.rpm
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 签名:NOKEY, key ID db42a60e
准备...
########################################### [100%]
显示软件安装信息
# rpm -qi dejagnu-1.4.2-10.noarch.rpm
【第1次更新 教程、类似命令关联】
19.insmod
用于载入模块
insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 = 符号值]
-f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。
-k 将模块设置为自动卸除。
-m 输出模块的载入信息。
-o<模块名称> 指定模块的名称,可使用模块文件的文件名。
-p 测试模块是否能正确地载入kernel。
-s 将所有信息记录在系统记录文件中。
-v 执行时显示详细的信息。
-x 不要汇出模块的外部符号。
-X 汇出模块所有的外部符号,此为预设置。
例:
# insmod led.o
//向内核加载模块
20.kbdconfig
用于设置键盘类型
kbdconfig [--back][--test]
--back:执行时将预设的Cancel按钮更改为Back按钮
--test:仅作测试,不会实际更改设置
例:键盘设置:
# kdbconfig //设置键盘
21.lilo
用于安装核心载入,开机管理程序
lilo [-clqtV][-b<外围设备代号>][-C<配置文件>][-d<延迟时间>][-D<识别标签>][-f<几何参数文件>][-i<开机磁区文件>][-I<识别标签>][-m<映射文件>][-P<fix/ignore>][-r<根目录>][-R<执行指令>...][-s<备份文件>][-S<备份文件>][-uU<外围设备代号>][-v...]
例:
安装lilo到第一台SCSI硬盘的第三个主要分区,采用3级模式。
# lilo -b /dev/sda3 -v -v -v
指定安装lilo的配置文件和备份文件。
# lilo -C /etc/lilo.conf2 -s /boot/boot. Backup
22.liloconfig
用于设置核心载入,开机管理程序
liloconfig
例:
执行liloconfig命令
# liloconfig
23.lsmod
用于显示已经载入的系统模块
lsmod
例:显示模块信息
# lsmod
Module Size Used by
nfsd 238935 11
lockd 64849 1 nfsd
nfs_acl 2245 1 nfsd
auth_rpcgss 33735 1 nfsd
sunrpc 193181 10 nfsd,lockd,nfs_acl,auth_rpcgss
exportfs 3437 1 nfsd
xt_TCPMSS 2931 1
xt_tcpmss 1197 1
xt_tcpudp 2011 1
iptable_mangle 2771 1
ip_tables 9991 1 iptable_mangle
x_tables 14299 4 xt_TCPMSS,xt_tcpmss,xt_
24.minfo
用于显示MS-DOS文件系统的各项参数
</>minfo [-v][驱动器代号]
-v 除了一般信息外,并显示可开机磁区的内容。
例:
显示DOS系统参数
# minfo -v C: //显示系统参数
25.set
用于设置shell
set [+-abCdefhHklmnpPtuvx]
-a 标示已修改的变量,以供输出至环境变量。
-b 使被中止的后台程序立刻回报执行状态。
-C 转向所产生的文件无法覆盖已存在的文件。
-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
-e 若指令传回值不等于0,则立即退出shell。
-f 取消使用通配符。
-h 自动记录函数的所在位置。
-H Shell 可利用"!"加<指令编号>的方式来执行history中记录的指令。
-k 指令所给的参数都会被视为此指令的环境变量。
-l 记录for循环的变量名称。
-m 使用监视模式。
-n 只读取指令,而不实际执行。
-p 启动优先顺序模式。
-P 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
-t 执行完随后的指令,即退出shell。
-u 当执行时使用到未定义过的变量,则显示错误信息。
-v 显示shell所读取的输入值。
-x 执行指令后,会先显示该指令及所下的参数。
+<参数> 取消某个set曾启动的参数。
例:
显示环境变量
# set
26.modprobe
用于自动处理可载入模块。
modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]
-a或--all 载入全部的模块。
-c或--show-conf 显示所有模块的设置信息。
-d或--debug 使用排错模式。
-l或--list 显示可用的模块。
-r或--remove 模块闲置不用时,即自动卸载模块。
-t或--type 指定模块类型。
-v或--verbose 执行时显示详细的信息。
-V或--version 显示版本信息。
-help 显示帮助。
例:
安装软驱模块:
[root@w3cschool.cc ~]# modprobe -v floppy
卸载软驱模块:
[root@w3cschool.cc ~]# modprobe -v -r floppy
27.ntsysv
用于设置系统的各种服务
ntsysv [--back][--level <等级代号>]
--back在互动式界面里,显示Back钮,而非Cancel钮
--level <等级代号> 在指定的执行等级中,决定要开启或关闭哪些系统服务。
28.mouseconfig
用于设置鼠标相关参数
mouseconfig [--back][--emulthree][--help][--expert][--kickstart][--noprobe][--test][--device <连接端口>][鼠标类型]
--back 在设置画面上显示Back按钮,而取代预设的Cancel按钮。
--device<连接端口> 指定硬件连接端口。可用的选项有ttyS0,ttyS1,ttyS2,ttyS3与orpsaux。
--emulthree 将二钮鼠标模拟成三钮鼠标。
--help 显示帮助以及所有支持的鼠标类型。
--expert 程序预设可自动判断部分设置值。若要自行设置,请使用--expert参数。
--kickstart 让程序自动检测并保存所有的鼠标设置。
--noprobe 不要检测鼠标设备。
--test 测试模式,不会改变任何设置。
例:
以交互模式配置鼠标:
# mouseconfig -text
29.passwd
用来更改使用者的密码
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-g 修改群组密码
指定口令最短存活期
-i 口令过期后多少天停用账户
例:
修改用户密码
# passwd runoob //设置runoob用户的密码
Enter new UNIX password: //输入新密码,输入的密码无回显
Retype new UNIX password: //确认密码
passwd: password updated successfully
#
显示账号密码信息
# passwd -S runoob
runoob P 05/13/2010 0 99999 7 -1
删除用户密码
# passwd -d lx138
passwd: password expiry information changed.
30.pwconv
用于开启用户的投影密码
pwconv
例:
开启用户的投影密码
# pwconv
31.rdate
用于显示其他主机的日期与时间
rdate [-ps][主机名称或IP地址...]
-p 显示远端主机的日期与时间。
-s 把从远端主机收到的日期和时间,回存到本地主机的系统时间。
-u 传输协议使用UDP协议
-l 使用syslog显示错误信息
-t<时间> 设置超时时间
32.resize
用于设置终端机视窗的大小
resize [-cu][-s <列数> <行数>]
-c 就算用户环境并非C Shell,也用C Shell指令改变视窗大小。
-s <列数> <行数> 设置终端机视窗的垂直高度和水平宽度。
-u 就算用户环境并非Bourne Shell,也用Bourne Shell指令改变视窗大小
例:
设置指定大小
[root@hnlinux runoob]# resize -s 80 160
33.rmmod
用于删除模块
rmmod [-as][模块名称...]
-a:删除所有目前不需要的模块
-s:把信息输出至syslog常驻服务,而非终端机界面
例:
卸载模块
# rmmod -v pppoe //卸载模块pppoe
Checking ppoe for persistent data
安装模块
# insmod -v pppoe >1.log //安装模块
~# tail -b 30 1.log //显示文件信息
34.grpunconv
用于关闭群组的投影密码
grpunconv
例:
未关闭的情况
cat /etc/gshadow | grep cdy
cdy:123456::
关闭影子密码
cat /etc/gshadow
cat: /etc/gshadow: 没有那个文件或目录
查看密码已经复制到 /etc/group 中了。
cat /etc/group | grep cdy
cdy:123456:1000:
35.modinfo
用于显示kernel模块的信息。
modinfo [-adhpV][模块文件]
-a或--author 显示模块开发人员。
-d或--description 显示模块的说明。
-h或--help 显示modinfo的参数使用方法。
-p或--parameters 显示模块所支持的参数。
-V或--version 显示版本信息。
例:
显示sg模块的信息。
# modinfo sg
36.time
在于量测特定指令执行时所需消耗的时间及系统资源等资讯
time [options] COMMAND [arguments]
实例
1. # time date
2. Sun Mar 26 22:45:34 GMT-8 2006
3.
4. real 0m0.136s
5. user 0m0.010s
6. sys 0m0.070s
7. #
37.setup
设置公用程序,是一个启动图形设置系统的命令。
setup
setup是一个设置公用程序,提供图形界面的操作方式。在setup中可设置7类的选项:
1.登陆认证方式
2.键盘组态设置
3.鼠标组态设置
4.开机时所要启动的系统服务
5.声卡组态设置
6.时区设置
7.X Windows组态设置
38.sndconfig
用于设置声卡
39.setenv
setenv命令用于查询或显示环境变量。
setenv为tsch中查询或设置环境变量的指令。
40.setconsole
用于设置系统终端
setconsole [serial][ttya][ttyb]
例:
设置终端
# setconsole ttyS0
41.timeconfig
用于设置时区
timeconfig [--arc][--back][--test][--utc][时区名称]
例:
# timeconfig //设置时区
42.ulimit
用于控制shell程序的资源
ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
-a 显示目前资源限制的设定。
-c <core文件上限> 设定core文件的最大值,单位为区块。
-d <数据节区大小> 程序数据节区的最大值,单位为KB。
-f <文件大小> shell所能建立的最大文件,单位为区块。
-H 设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小> 指定可使用内存的上限,单位为KB。
-n <文件数目> 指定同一时间最多可开启的文件数。
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。
-s <堆叠大小> 指定堆叠的上限,单位为KB。
-S 设定资源的弹性限制。
-t <CPU时间> 指定CPU使用时间的上限,单位为秒。
-u <程序数目> 用户最多可开启的程序数目。
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB。
例:
显示系统资源的设置
[root@runoob ~]# ulimit -a
43.unset
命令用于删除变量或函数。
unset为shell内建指令,可删除变量或函数
unset [-fv][变量或函数名称]
-f 仅删除函数。
-v 仅删除变量。
例:
[root@runoob.com ~]# set //查看当前的环境变量
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
……省略部分内容
PROMPT_COMMAND='echo -ne "33]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}07"'
PS1='[u@h W]$ '
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt-3.3
SHELL=/bin/bash
SSH_TTY=/dev/pts/4
SUPPORTED=zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en
SYSFONT=latarcyrheb-sun16
TERM=xterm
UID=0
USER=root
_=-lh
lx='ls -lh'
[root@runoob.com ~]# unset lx //删除环境变量
44.chkconfig
用于检查设置系统的各种服务
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
--add 增加所指定的系统服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--del 删除所指定的系统服务,不再由 chkconfig 指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。
例:
列出c hkconfig 所知道的所有命令。
# chkconfig --list
开启服务。
# chkconfig telnet on //开启 Telnet 服务
# chkconfig --list //列出 chkconfig 所知道的所有的服务的情况
关闭服务
# chkconfig telnet off // 关闭 Telnet 服务
# chkconfig --list // 列出 chkconfig 所知道的所有的服务的情况
45.apmd
用于进阶电源管理服务程序。
apmd负责BIOS进阶电源管理(APM)相关的记录,警告与管理工作。
apmd [-u v V W][-p <百分比变化量>][-w <百分比值>]
例:
记录所有的电源管理事件
# apmd -v
设置BIOS时钟
# apmd -utc //设置BIOS时钟为UTC
46.hwclock
用于显示与设定硬件时钟。
hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<日期与时间>]
例:
显示当前时间
# hwclock
2010年05月27日 星期四 18时04分31秒 -0.704214 seconds
查看版本信息
# hwclock -v
hwclock from util-linux-2.12a
截图:
47.mkkickstart
用于建立安装的组态文件
mkkickstart [--bootp][--dhcp][--nonet][--nox][--version][--nfs <远端电脑:路径>]
例:
构建一个安装组态文件:
# mkkickstart --nonet -bootp
48.fbset
用于设置景框缓冲区
fbset [-ahinsvVx][-db <信息文件>][-fb <外围设备代号>][--test][显示模式]
例:
设置画面分辨率 和桌面分辨率
# fbset -g 800 688 1024 768//画面分辨率为800*600 桌面分辨率为1024*768
启动硬件文本加速
# fbset -accel true // 启动硬件文本加速
启动广播功能
# fbset -bcast true //启动广播功能
49.unalias
用于删除别名。
unalias为shell内建指令,可删除别名设置
unalias [-a][别名]
-a 删除全部的别名。
50.SVGATextMode
用于加强文字模式的显示画面。
SVGATextMode可用来设置文字模式下的显示画面,包括分辨率,字体和更新频率等。
SVGATextMode [-acdfhmnrsv][-t <配置文件>][模式]
51.gpasswd
用于将一个用户添加到组或者从组中删除
gpasswd [可选项] 组名
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
备份压缩
1.ar
用于建立或修改备存文件,或是从备存文件中抽取文件
ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][备存文件][成员文件]
-d 删除备存文件中的成员文件。
-m 变更成员文件在备存文件中的次序。
-p 显示备存文件中的成员文件内容。
-q 将文件附加在备存文件末端。
-r 将文件插入备存文件中。
-t 显示备存文件中所包含的文件。
-x 自备存文件中取出成员文件。
例:
打包文件
[root@runoob.com ~]# ls //显示当前目录文件
a.c b.c d.c install.log qte
anaconda-ks.cfg c.c Desktop
[root@runoob.com ~]# ar rv one.bak a.c b.c //打包 a.c b.c文件
ar: 正在创建 one.bak
a - a.c
a - b.c
[root@runoob.com ~]#
2.bunzip2
时bz2文件的解压缩程序
例:
解压.bz2文件
# bunzip2 -v temp.bz2 //解压文件显示详细处理信息
3.bzip2
bzip2命令是.bz2文件的压缩程序。
bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 压缩等级][要压缩的文件]
-c或--stdout 将压缩与解压缩的结果送到标准输出。
-d或--decompress 执行解压缩。
-f或--force bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
-h或--help 显示帮助。
-k或--keep bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
-s或--small 降低程序执行时内存的使用量。
-t或--test 测试.bz2压缩文件的完整性。
-v或--verbose 压缩或解压缩文件时,显示详细的信息。
-z或--compress 强制执行压缩。
例:解压.bz2文件
[root@w3cschool.cc ~]# bzip2 -v temp.bz2 //解压文件显示详细处理信息
压缩文件
[root@w3cschool.cc ~]# bzip2 -c a.c b.c c.c
检查文件完整性
[root@w3cschool.cc ~]# bzip2 -t temp.bz2
4.bzip2recover
用来修复损坏的.bz2文件
bzip2recover [.bz2 压缩文件]
例:
修复.bz2文件
# bzip2recover col.bz2
5.gunzip
用于解压文件
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...] 或 gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把解压后的文件输出到标准输出设备。
-f或-force 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-h或--help 在线帮助。
-k或--keep 保留原始压缩文件。
-l或--list 列出压缩文件的相关信息。
-L或--license 显示版本与版权信息。
-n或--no-name 解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理。
-N或--name 解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
-q或--quiet 不显示警告信息。
-r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或--suffix<压缩字尾字符串> 更改压缩字尾字符串。
-t或--test 测试压缩文件是否正确无误。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
例:
<p>解压文件
</p>
<pre>
# gunzip ab.gz
6.unarj
用于解压缩.arj文件
unarj [eltx][.arj压缩文件]
e 解压缩.arj文件。
l 显示压缩文件内所包含的文件。
t 检查压缩文件是否正确。
x 解压缩时保留原有的路径。
例:
解压.arj文件
# unarj e test.arj
7.cpio
用于备份文件。
cpio 是用来建立,还原备份档的工具程序,它可以加入,解开 cpio 或 tar 备份档内的文件
cpio [-0aABckLovV][-C <输入/输出大小>][-F <备份档>][-H <备份格式>][-O <备份档>][--block-size=<区块大小>][--force-local][--help][--quiet][--version] 或 cpio [-bBcdfikmnrsStuvV][-C <输入/输出大小>][-E <范本文件>][-F <备份档>][-H <备份格式>][-I <备份档>][-M <回传信息>][-R <拥有者><:/.><所属群组>][--block-size=<区块大小>][--force-local][--help][--no-absolute-filenames][--no-preserve-owner][--only-verify-crc][--quiet][--sparse][--version][范本样式...] 或 cpio [-0adkiLmpuvV][-R <拥有者><:/.><所属群组>][--help][--no-preserve-owner][--quiet][--sparse][--version][目的目]
例:
解压备份文件
[root@runoob.com var]# ls | cpio -i -l 123.cpio
解压缩备份文件,并列出详细信息
[root@runoob.com var]# cpio -t -I 123.cpio
123.cpio
a.c
b.c
c.c
……省略部分结果
强制解压缩
[root@runoob.com var]# cpio -i -u -I 123.cpio
解压缩时进行反向匹配,指定不解压的文件
[root@runoob.com var]# cpio -i -I 123.cpio -f *.c
//不解压.c结尾的文件
8.dump
用于备份文件系统
dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件
dump [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f <设备名称>][-h <层级>][-s <磁带长度>][-T <日期>][目录或文件系统] 或 dump [-wW]
-0123456789 备份的层级。
-b<区块大小> 指定区块的大小,单位为KB。
-B<区块数目> 指定备份卷册的区块数目。
-c 修改备份磁带预设的密度与容量。
-d<密度> 设置磁带的密度。单位为BPI。
-f<设备名称> 指定备份设备。
例:
备份文件到磁带
# dump -0 -u /dev/tape /home/
9.uuencode
用于将uuencode编码后的档案还原
compress[必要参数][选择参数][目录或者文件]
例:
还原档案
# uuencode test.uud
10.gzexe
用于压缩执行文件
gzexe [-d][执行文件...]
-d 解开压缩文件。
例:
压缩可执行文件
# gzexe abc
11.gzip
用于压缩文件
例:
压缩文件
[root@runoob.com a]# ls //显示当前目录文件
a.c b.h d.cpp
[root@runoob.com a]# gzip * //压缩目录下的所有文件
[root@runoob.com a]# ls //显示当前目录文件
a.c.gz b.h.gz d.cpp.gz
[root@runoob.com a]#
接范例1, 列出详细的信息
[root@runoob.com a]# gzip -dv * //解压文件,并列出详细信息
a.c.gz: 0.0% -- replaced with a.c
b.h.gz: 0.0% -- replaced with b.h
d.cpp.gz: 0.0% -- replaced with d.cpp
[root@runoob.com a]#
接范例1,显示压缩文件的信息
[root@runoob.com a]# gzip -l *
compressed uncompressed ratio uncompressed_name
24 0 0.0% a.c
24 0 0.0% b.h
26 0 0.0% d.cpp
12.lha
用于压缩或解压缩文件
lha是从lharc演变而来的压缩程序,文件经它压缩后,会另外产生具有".lzh"扩展名的压缩文件
lha [-acdfglmnpqtuvx][-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][文件...] 或 lha [-acdfglmnpqtuvx][-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][目录...]
例:
缩文件
# lha -a abc.lhz a.b //压缩a.b文件,压缩后生成 abc.lhz文件
压缩目录
# lha -a abc2 /home/hnlinux
解压文件到当前目录
# lha -xiw=agis abc //解压文件abc
13.restore
用来还原由dump操作所备份下来的文件或整个文件系统(一个分区)。
restore 指令所进行的操作
和dump指令相反,dump操作可用来备份文件,而restore操作则是写回这些已备份的文件
14.tar
用于备份文件
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]
例:
压缩文件 非打包
# touch a.c
# tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
a.c
列出压缩文件内容
# tar -tzvf test.tar.gz
-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c
解压文件
# tar -xzvf test.tar.gz
a.c
15.uudecode
将 uuencode 编码后的档案还原, uudecode 只会将 begin 与 end 标记之间的编码资料还原
16.unzip
用于解压缩zip文件
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
例:
查看压缩文件中包含的文件:
# unzip -l abc.zip
Archive: abc.zip
Length Date Time Name
-------- ---- ---- ----
94618 05-21-10 20:44 a11.jpg
202001 05-21-10 20:44 a22.jpg
16 05-22-10 15:01 11.txt
46468 05-23-10 10:30 w456.JPG
140085 03-14-10 21:49 my.asp
-------- -------
483188 5 files
17.zip
用于压缩文件
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
例:
将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/html
如果在我们在 /home/html 目录下,可以执行以下命令:
zip -q -r html.zip *
从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c
18.zipinfo
用于列出压缩文件信息。
执行zipinfo指令可得知zip压缩文件的详细信息
zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>]
例:
显示压缩文件信息
[root@w3cschool.cc a]# zipinfo cp.zip
Archive: cp.zip 486 bytes 4 files
-rw-r--r-- 2.3 unx 0 bx stor 24-May-10 18:54 a.c
-rw-r--r-- 2.3 unx 0 bx stor 24-May-10 18:54 b.c
-rw-r--r-- 2.3 unx 0 bx stor 24-May-10 18:54 c.c
-rw-r--r-- 2.3 unx 0 bx stor 24-May-10 18:54 e.c
4 files, 0 bytes uncompressed, 0 bytes compressed: 0.0%
[root@w3cschool.cc a]#
设备管理
1.setleds
用来设定键盘上方三个 LED 的状态
setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll]
-F:预设的选项,设定虚拟主控台的状态。
-D:除了改变虚拟主控台的状态外,还改变预设的状态。
-L:不改变虚拟主控台的状态,但直接改变 LED 显示的状态。这会使得 LDE 显示和目前虚拟主控台的状态不符合。我们可以在稍后用 -L 且不含其它选项的 setleds 命令回复正常状态。
-num +num:将数字键打开或关闭。
-caps +caps:把大小写键打开或关闭。
-scroll +scroll:把选项键打开或关闭。
例:
将数字键打开,其馀二个灯关闭。
# setleds +num -caps -scroll
2.loadkeys
可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程
loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ]...] [ -m --mktable ] [ -c --clearcompose ] [ -s --clearstrings ] [ filename... ]
-v --verbose:印出详细的资料,你可以重复以增加详细度。
-q --quiet:不要显示任何讯息。
-c --clearcompose:清除所有 composite 定义。
-s --clearstrings:将定串定义表清除。
3.rdev
可以用来查询/设置内核映像文件的根设备,RAM 磁盘大小或视频模式
rdev [-rsvh ] [-o offset ] [ image [value [ offset ] ] ]</p>
-r: 使得 rdev 作为 ramsize 运行。
-R: 使得 rdev 作为 rootflags 运行。
-v: 使得 rdev 作为 vidmode 运行。
-h: 提供帮助。
4.dumpkeys
用于显示键盘映射表,输出的内容可以被loadkeys命令识别,改变映射关系
dumpkey[选择参数]
-i 驱动信息(键码范围、数量、状态键)
-l 详细驱动信息
-n 十六进制显示
-f 显示全部信息
-1 分行显示按键组合
-S 设定输出格式(0:预设 1:完整 2:分行 3简单)
--funcs-only 功能键信息
--keys-only 键组合信息
--compose-only 普通键信息
例:
显示功能键信息
# dumpkeys --funcs-only
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string Macro = "\033[M"
string Pause = "\033[P"
root@snail-hnlinux:~#
5.MAKEDEV
用于新增 /dev/ 下的装置档案,多数分区已经将所有的档案都产生,故一般而言不太会需要用到这个命令
MAKEDEV -V
MAKEDEV [ -n ] [ -v ] update
MAKEDEV [ -n ] [ -v ] [ -d ] device ...
6.poweroff
用于关闭计算器并切断电源
使用权限:系统管理者
语法:poweroff [-n] [-w] [-d] [-f] [-i] [-h]
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 文件里
-i : 在关机之前先把所有网络相关的装置先停止
-p : 关闭操作系统之前将系统中所有的硬件设置为备用模式。
例子:
关闭系统
# poweroff
这篇关于全网最全Linux命令大全,全覆盖,8万字总结,简单易懂~的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南