目录
############################################################
blkid
语法:
blkid -L | -U
blkid [-c ] [-ghlLv] [-o] [-s ][-t ] [-w ] [ …]
blkid -p [-s ] [-O ] [-S ][-o] …
blkid -i [-s ] [-o] …
说明:
在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。
blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。
选项:
-c 指定cache文件(default: /etc/blkid.tab, /dev/null = none)
-d don’t encode non-printing characters
-h 显示帮助信息
-g garbage collect the blkid cache
-o 指定输出格式
-k list all known filesystems/RAIDs and exit
-s 显示指定信息,默认显示所有信息
-t find device with a specific token (NAME=value pair)
-l look up only first device with token specified by
-t -L convert LABEL to device name
-U convert UUID to device name
-v 显示版本信息
-w write cache to different file (/dev/null = no write) specify device(s) to probe (default: all devices) Low-level probing options:
-p low-level superblocks probing (bypass cache)
-i gather information about I/O limits
-S overwrite device size
-O probe at the given offset
-u filter by “usage” (e.g. -u filesystem,raid)
-n filter by filesystem type (e.g. -n vfat,ext3)
范例:
1. blkid #列出当前系统中所有已挂载文件系统的类型
2. blkid -s UUID /dev/sda5 #显示指定设备 UUID
3. blkid -s UUID #显示所有设备 UUID
4. blkid -s LABEL /dev/sda5 #显示指定设备 LABEL
5. blkid -s LABEL #显示所有设备 LABEL
6. blkid -s TYPE #显示所有设备文件系统
7. blkid -o device #显示所有设备
8. blkid -o list #以列表方式查看详细信息
############################################################
chmod
语法:
chmod [-cfvR] [–help] [–version] mode file…
说明:
Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
选项:
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
mode : 权限设定字串,格式如下 : [ugoa…][[±=][rwxX]…][,…],其中
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
范例 :
(1) chmod a+r file1.txt 将档案 file1.txt 设为所有人皆可读取 :
(2) chmod ug+w,o-w file1.txt file2.txt 将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
(3) chmod u+x ex1.py 将 ex1.py 设定为只有该档案拥有者可以执行 :
(4) chmod -R a+r * 将目前目录下的所有档案与子目录皆设为任何人可读取 :
(5) chmod -R 777 file 用数字来表示权限:
############################################################
df
语法:
df [选项] [文件]
说明:
df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。
默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。
选项:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
–no-sync 忽略 sync 命令
-P 输出格式为POSIX
–sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
–block-size=<区块大小> 指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
–help 显示帮助信息
–version 显示版本信息
范例:
1. df 显示磁盘使用情况。
2. df -i 以inode模式来显示磁盘使用情况。
3. df -t ext3 显示指定类型磁盘。
4. df -ia 列出各文件系统的i节点使用情况。
5. df -T 列出文件系统的类型。
6. df -h 以更易读的方式显示目前磁盘空间和使用情况。
############################################################
du
语法:
du [-abcDhHklmsSx] [-L <符号连接>] [–block-size] [–exclude=<目录或文件>] [–max-depth=<目录层数>] [目录或文件]
说明:
du命令用于显示指定文件(夹)在磁盘中所占的空间信息。
假如指定的文件参数实际上是一个目录,就要计算该目录下的所有文件。
假如 没有提供文件参数,执行du命令,显示当前目录内的文件占用空间信息。
选项:
-a: 显示目录中个别文件的大小;
-b: 显示目录或文件大小时,以byte为单位;
-c: 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和;
-D: 显示指定符号连接的源文件大小;
-h: 以K,M,G为单位,提高信息的可读性;
-H: 与-h参数相同,但是K,M,G是以1000为换算单位;
-k: 以1024 bytes为单位;
-l: 重复计算硬链接文件;
-L<符号连接>: 显示选项中所指定符号链接(软链接)的源文件大小;
-m: 以1MB为单位;
-s: 显示总计大小;
-S: 显示个别目录的大小时,并不含其子目录的大小;
-x: 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过;
–exclude=<目录或文件>: 略过指定的目录或文件;
–max-depth=<目录层数>: 超过指定层数的目录后,予以忽略;
范例:
1. du #显示当前目录和所有子目录的大小, 单位为KB。
2. du -sh #显示当前目录总大小,加-h提高信息的可读性。
3. du --max-depth=1 -h #显示当前目录和第一层子目录的大小。
############################################################
dpkg-reconfigure
语法:
dpkg-reconfigure(选项)(参数)
说明:
dpkg-reconfigure命令是Debian Linux中重新配置已经安装过的软件包,可以将一个或者多个已安装的软件包传递给此指令,它将询问软件初次安装后的配置问题。
当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure命令来对指定的软件包进行配置。
选项:
-a:重新配置所有的软件包;
-u或–unseen-only:仅显示未提过的问题;
–default-priority:使用默认优先级,而非“低”级;
–force:强制执行操作,需谨慎使用此选项;
–no-reload:不要轻易的重装模板(使用时请慎重考虑);
-f或–frontend:指定 debconf 前端界面;
-p或–priority:指定要显示的问题的最优先级;
–terse:开启简要模式。
参数:
软件包名:需要重新配置的已安装的软件包。
范例:
1. dpkg-reconfigure locales 用于配置语言。
############################################################
echo
语法:
echo [-ne][字符串]
echo [–help][–version]
说明:
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
选项:
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息
输出颜色:
echo命令改变样式,以输出不同颜色的文本,必须有 -e 选项(开启echo中的转义)。
echo -e “\033[44;37;5m ME\033[0m COOL”
"\033[44;37;5m ME "设置背景为蓝色,前景为白色,闪烁光标,输出字符“ME”;
"\033[0m COOL"重新设置屏幕到缺省设置,输出字符 “COOL”。
“e"是命令echo的一个可选项,它用于激活特殊字符的解析器。
“\033"引导非常规字符序列(即”\033[“表示终端转义字符开始,”\033"即退出键的ASCII码)。
“m"意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是"44;37;5"和"0”。
修改"44;37;5"可以生成不同颜色的组合,数值和编码的前后顺序没有关系。
命令也可以写成echo -e “^[[44;37;5m ME \033[0m COOL”,其中的”^["是先按Ctrl-V,然后再按键产生的。
颜色编码:
编码 颜色/动作
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
30 设置黑色前景
31 设置红色前景
32 设置绿色前景
33 设置黄色前景
34 设置蓝色前景
35 设置紫色前景
36 设置青色前景
37 设置白色(灰色)前景
38 在缺省的前景颜色上设置下划线
39 在缺省的前景颜色上关闭下划线
40 设置黑色背景
41 设置红色背景
42 设置绿色背景
43 设置黄色背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色(灰色)背景
49 设置缺省黑色背景
其它有趣的编码:
\033[2J 清除屏幕
\033[0q 关闭所有的键盘指示灯
\033[1q 设置"滚动锁定"指示灯(Scroll Lock)
\033[2q 设置"数值锁定"指示灯(Num Lock)
\033[3q 设置"大写锁定"指示灯(Caps Lock)
\033[15:40H 把关闭移动到第15行,40列
\007 发蜂鸣生beep
范例:
echo “hscripts Hiox India” 上述命令显示的结果为 hscripts Hiox India
echo -e “hscripts \bHiox \bIndia” 上述命令将删除空格,显示结果为hscriptsHioxIndia
echo -e “hscripts\tHiox\tIndia” 上述命令将输出如下结果 hscripts Hiox India
############################################################
exit
说明
用于退出当前shell
范例
- exit
############################################################
export
语法:
export [-fnp][变量名称]=[变量设置值]
说明:
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
选项:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
范例:
############################################################
fdisk
语法:
fdisk(选项)(参数)
说明:
fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。
它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。
选项:
-b<分区大小>: 指定每个分区的大小;
-l: 列出指定的外围设备的分区表状况;
-s<分区编号>: 将指定的分区大小输出到标准输出上,单位为区块;
-u: 搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v: 显示版本信息。
参数:
设备文件:指定要进行分区或者显示分区的硬盘设备文件。
范例:
1. fdisk -l 列出设备列表
2. fdisk /dev/sdb 对sdb设备进行分区
############################################################
find
语法:
find pathname -options [-print -exec -ok …]
说明:
选项:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-options:
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
范例:
(1) find -atime -2 超找48小时内修改过的文件
(2) find . -name “*.log” 在当前目录查找 以.log结尾的文件。 ". "代表当前目录
(3) find /opt/soft/test/ -perm 777 查找/opt/soft/test/目录下 权限为 777的文件
(4) find . -type d | sort 查找当前所有目录并排序
(5) find . -size +1000c -print 查找当前目录大于1K的文件
############################################################
grep
语法:
grep [-abcEFGhHilLnqrsvVwxy] [–color=auto] ‘搜寻字符串’ filename
说明:
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
在 ~/.bashrc 内加上这行:alias grep='grep --color=auto’然后source ~/.bashrc,这样每次运行grep时都会自动的加上颜色。
选项:
-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 胡列字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同,在当前目录及其子目录下搜索。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
---------------------------------------------
pattern正则表达式主要参数:
\ :忽略正则表达式中特殊字符的原有含义。
^ :匹配正则表达式的开始行。在字符类符号(括号[])之内与之外是不同的! 在 [] 内代表『反向选择』,在 [] 之外则代表定位在行首的意义!
$ : 匹配正则表达式的结束行。
< :从匹配正则表达 式的行开始。
> :到匹配正则表达式的行结束。
[ ] :单个字符,如[A]即A符合要求 。
[ - ] :范围,如[A-Z],即A、B、C一直到Z都符合要求 。
. :所有的单个字符。代表『一定有一个任意字节』的意思。
* :有字符,长度可以为0。代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态。
范例:
1. dmesg | grep -n --color=auto ‘eth’ 用 dmesg 列出核心信息,再以 grep 找出内含 eth 那行,要将捉到的关键字显色,且加上行号来表示。
2. grep -n ‘t[ae]st’ regular_express.txt 如果想要搜寻 test 或 taste 这两个单字时,可以发现到,其实她们有共通的 ‘t?st’ 存在~这个时候,可以这样来搜寻。
3. grep -n ‘[^g]oo’ regular_express.txt 如果想要搜索到有 oo 的行,但不想要 oo 前面有 g。
4. grep -n ‘[^a-z]oo’ regular_express.txt 假设 oo 前面不想要有小写字节。
5. grep -n ‘[a-zA-Z]’ regular_express.txt 不想要开头是英文字母.
6. grep -n ‘g…d’ regular_express.txt 找出 g??d 的字串,亦即共有四个字节, 起头是 g 而结束是 d。
7. grep -n ‘.KaTeX parse error: Can't use function '\)' in math mode at position 68: …意义,所以必须要使用转义字符(\̲)̲来加以解除其特殊意义! 8.…’ regular_express.txt 找出空白行,因为只有行首跟行尾 (^$)。
9. grep -n ‘goo*g’ regular_express.txt 字串开头与结尾都是 g,但是两个 g 之间仅能存在至少一个 o ,亦即是 gog, goog, gooog… 等等。
10.grep -n 'g.g’ regular_express.txt 找出 g 开头与 g 结尾的行,当中的字符可有可无
11.grep -n ‘o{2}’ regular_express.txt 找到两个 o 的字串.
12.grep -n ‘go{2,5}g’ regular_express.txt 找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串.
13.grep -n ‘go{2,}g’ regular_express.txt 找出2 个 o 以上的 goooo…g.
14.grep magic /usr/src/Linux/Doc/ 在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件.
############################################################
ln
语法:
1. ln [OPTION]… [-T] TARGET LINK_NAME
2. ln [OPTION]… TARGET
3. ln [OPTION]… TARGET… DIRECTORY
4. ln [OPTION]… -t DIRECTORY TARGET…
说明:
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),
软连接:
1.软连接以路径的形式存在。类似于Windows操作系统中的快捷方式。
2.软链接可以跨文件系统,硬链接不可以.
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
选项:
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链接自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
范例:
1. ln -s log2013.log link2013 为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
2. ln log2013.log ln2013 为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
############################################################
kill
范例:
- kill -s 9 1827 #其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。
############################################################
mkdir
语法:
mkdir [OPTION]… DIRECTORY…
说明:
用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
选项:
-m, --mode 模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
-v, --verbose 每次创建新目录都显示信息
–help 显示此帮助信息并退出
–version 输出版本信息并退出
范例:
1. mkdir -p test2/test22 递归创建一个新的目录
2. mkdir -m 777 test3 创建一个权限为777的目录
3. mkdir -v test4 创建新目录时输出创建LOG。
############################################################
mkfs
语法:
mkfs [-V] [-t fstype] [fs-options] device [blocks] [-L Lable]
说明:
mkfs是linux格式化磁盘命令,用于建立linux档案系统在特定的partition上。
实际上mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
例如,若在"-t" 参数中指定ext2,则mkfs会调用mke2fs来建立文件系统.使用时如省略指定block参数,mkfs会自动设置适当的块数.
选项:
device : 预备检查的硬盘 partition,例如:/dev/sda1
-V : 详细显示模式
-t : 给定档案系统的型式(如:ext3、ext4、msdos),Linux 的预设值为 ext2
-c : 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
block : 给定 block 的大小
-L: 建立lable
范例:
1. mfks -t ext3 /dev/sdb //将sdb分区格式化为ext3格式,等同于命令mkfs.ext3 /dev/sdb
2. mfks -t ext4 /dev/sdb //将sdb分区格式化为ext4格式,等同于命令mkfs.ext4 /dev/sdb
3. mkfs -V -t msdos -c /dev/hda5 //在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来 :
############################################################
mount
语法:
mount [-afFhnrvVw] [-L] [-o] [-t] [设备名] [加载点]
说明:
mount可将指定设备中指定的文档系统加载到Linux目录下(也就是装载点)。可将经常使用的设备写入文档/etc/fastab,以使系统在每次启动时自动加载。
mount加载设备的信息记录在/etc/mtab文档中。使用umount命令卸载设备时,记录将被清除。
挂载点必须是一个目录。 一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。
光盘是ISO9660;软盘是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。
挂载前要了解linux是否支持所要挂载的文件系统格式。
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto.
选项:
-a 加载文档/etc/fstab中配置的任何设备。
-f 不实际加载设备。可和-v等参数同时使用以查看mount的执行过程。
-F 需和-a参数同时使用。任何在/etc/fstab中配置的设备会被同时加载,可加快执行速度。
-h 显示在线帮助信息。
-L 加载文档系统标签为的设备。
-n 不将加载信息记录在/etc/mtab文档中。
-t 选项:指定设备的文件系统类型。常见的有:
ext2 linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windows NT/2000/XP的文件系统
auto 自动检测文件系统
-o 选项:指定挂载文件系统时的选项,有些也可写到在/etc/fstab中。常用的有:
defaults 使用所有选项的默认值(auto、nouser、rw、suid)
auto/noauto 允许/不允许以 –a选项进行安装
dev/nodev 对/不对文件系统上的特殊设备进行解释
exec/noexec 允许/不允许执行二进制代码
suid/nosuid 确认/不确认suid和sgid位
user /nouser 允许/不允许一般用户挂载
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
remount 重新安装已经安装了的文件系统
loop 挂载回旋设备
范例:
1. mount -t smbfs -o username=admin,password=888888 //192.168.1.2/c$ /mnt/samba #挂载windows文件共享
2. mount -t cifs -o username=xxx,password=xxx //IP/sharename /mnt/dirname #挂载windows文件共享
3. mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www #挂载Linux文件nfs共享
4. mount -o loop -t iso9660 /usr/mydisk.iso /home/ping.bao/cd #挂载ISO镜像
5. mount -t ntfs /dev/sdc1 /root/usb #挂载USB移动硬盘
6. mount /dev/cdrom /home/ping.bao/cd #挂载CDROM
umount /dev/cdrom /home/ping.bao/cd #取消挂载CDROM
7. mount -o remount,rw / #单用户模式重新挂载根分区
8. mount #显示挂载的文件系统
############################################################
passwd
说明
用来修改密码,使用root账户可以修改任何用户的密码
范例
- passwd usrname
############################################################
ps
说明:
查看当前进程
参数
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程。
-e:显示系统内的所有进程信息。
-l:使用长(long)格式显示进程信息。
-f:使用完整的(full)格式显示进程信息。
范例:
- ps aux
- ps -elf
############################################################
rm
语法:
rm [OPTION]… FILE…
说明:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
选项:
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 输出版本信息并退出
范例:
1. rm -rf test2 将 test2 子目录及子目录中所有档案删除,并且不用一一确认
############################################################
scp
语法
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
选项:
-B 采取批量模式(避免询问密码或口令)
-C 启用压缩。通过指明 -C 参数来开启压缩模式。
-c 加密方式
选择在传输过程中用来加密的加密方式 这个选项会被直接传递到 ssh(1)。
-F ssh 配置
给 ssh 指定一个用来替代默认配置的配置文件。这个选项会被直接传递到 ssh(1)。
-l 限速
限制命令使用的带宽,默认单位是 Kbit/s。
-P 端口
指定需要的连接的远程主机的端口。
注意,这个选项使用的是一个大写的“P”,因为小写的“-p”已经用来保留目标文件的时间和模式相关信息。(LCTT 译注:ssh 命令中使用小写的“-p”来指定目标端口。)
-p 保留文件原来的修改时间,访问时间以及权限模式。
-q 静默模式:不显示来自 ssh(1) 命令的进度信息,警告和诊断信息。
-r 递归拷贝整个目录。
注意,scp 命令在树形遍历的时候同样会跟随符号连接,复制所连接的文件。
-v 详细模式。scp 和 ssh(1) 将会打印出处理过程中的调试信息。这可以帮助你调试连接、认证和配置方面的问题。
范例:
- 将本机文件拷贝到远程服务器上:
scp /home/administrator/news.txt root@10.20.21.10:/etc/squid - 将远程服务器上的文件拷贝到本机:
scp remote@www.abc.com:/usr/local/sin.sh /home/administrator - 如果远程服务器防火墙有特殊限制,scp便要走特殊端口:
scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator - 使用-r选项可以递归拷贝整个目录:
scp -r test/ root@10.20.21.10:/root/
############################################################
sh
语法:
sh [-nvx] [scripts.sh]
说明:
参数:
-n :不要运行 script,仅查询语法的问题;
-v :再运行 sccript 前,先将 scripts 的内容输出到萤幕上;
-x :将使用到的 script 内容显示到萤幕上,这是很有用的参数!
范例:
1. sh -n sh16.sh 测试 sh16.sh 有无语法的问题?
2. sh -x sh15.sh 将 sh15.sh 的运行过程全部列出来。
############################################################
ssh
语法:
ssh [-l login_name] [-p port] [user@]hostname
说明:
ssh命令用于远程登录上Linux主机。
配置
SSH 的配置文件在 /etc/ssh/sshd_config 中
范例:
- ssh hostname #使用本机用户名登陆
- ssh user@hostname #登陆:指定用户名和主机名IP
- ssh -p 10022 user@hostname #登陆:SSH 默认连接到目标主机的 22 端口上,可以使用-p选项指定端口号
- ssh user@hostname ls -l #使用ssh在远程主机执行一条命令并显示到本地, 然后继续本地工作
############################################################
su
语法:
su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]
说明:
su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
选项:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
–help 显示说明文件
–version 显示版本资讯
–l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数
范例:
1. su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者
2. su root -f 变更帐号为 root 并传入 -f 参数给新执行的 shell
3. su - userhome 变更帐号为 userhome 并改变工作目录至 userhome 的家目录(home dir)
############################################################
sudo
语法:
sudo [选项] [参数]
说明:
sudo命令用来以其他身份来执行命令,预设的身份为root。
在/etc/sudoers中设置了可执行sudo指令的用户。
若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
选项:
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
参数:
指令:需要运行的指令和对应的参数。
范例:
1. sudo su 切换到root
2. sudo chmod 777 ./ 更改当前目录权限
############################################################
tar
语法:
tar [-cxtzjvfpPN] 文件或目录 …
选项:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
-z 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j 是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v 压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f 使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如:
tar -zcvfP tfile sfile就是错误的写法,
tar -zcvPf tfile sfile才是正确的写法。
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:
1. tar -cvf /tmp/etc.tar /etc 仅打包,不压缩!在参数f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识。
2. tar -zcvf /tmp/etc.tar.gz /etc 打包后,以gzip压缩,如果加z参数,则以 .tar.gz或.tgz来代表gzip压缩过的tar file。
3. tar -jcvf /tmp/etc.tar.bz2 /etc 打包后,以bzip2压缩,如果加j参数,则以.tar.bz2来作为附档名。
4. tar -ztvf /tmp/etc.tar.gz 查阅上述/tmp/etc.tar.gz 文件内有哪些文件,由於我们使用 gzip 压缩,就得要加上 z 这个参数。
5. tar -zxvf /tmp/etc.tar.gz 将/tmp/etc.tar.gz文件解压缩在当前目录下。
6. tar -zxvf /tmp/etc.tar.gz etc/passwd 在/tmp底下,我只想要将/tmp/etc.tar.gz内的etc/passwd解开而已,注意!etc.tar.gz内的根目录/是被拿掉了!
7. tar -zxvpf /tmp/etc.tar.gz /etc 将/etc/内的所有文件备份下来,并且保存其权限!
8. tar -N ‘2005/06/01’ -zcvf home.tar.gz /home 在/home当中,比2005/06/01新的文件才备份。
9. tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc 我要备份 /home, /etc ,但不要 /home/dmtsai。
10.tar -cvf - /etc | tar -xvf - 将/etc/打包后直接解开在当前目录下,而不产生文件!
############################################################
touch
语法:
touch [options] file-list
说明:
创建文件或修改文件时间
最常用用法:touch fileA
如果fileA存在,使用touch指令可更改这个文件或目录的日期时间,包括存取时间和更改时间;
如果fileA不存在,touch指令会在当前目录下新建一个空白文件fileA。
选项:
file-list file-list是touch将要创建或更新的文件路径名
-a或–time=atime或–time=access或–time=use 只更改存取时间。
-c或–no-create 不建立任何文件。
-d<时间日期> 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m或–time=mtime或–time=modify 只更改变动时间。
-r<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
-t<日期时间> 使用指定的日期时间,而非现在的时间。
–help 在线帮助。
–version 显示版本信息。
范例:
1. touch demo.c 创建文件demo.c,如果demo.c存在,那么会更新文件的修改时间及访问时间。
2. touch -at 01081010 demo.c 使用参数更新访问时间
3. touch -m demo.c 只更新修改时间
############################################################
umask
语法:
umask [选项] [掩码]
说明:
预设权限(权限掩码),要注意的是,umask 的分数指的是该默认值需要减掉的权限。
选项:
-S:显示当前的掩码。
范例:
1. umask 查看umask默认值。
2. umask 0022 设置权限掩码为0022,对于档案来说也就是, 实际权限是0644.
############################################################
unmount
语法:
umount [-ahnrvV][-t <文件系统类型>][文件系统]
说明:
使用umount命令可以卸载文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
选项:
-a 卸除/etc/mtab中记录的所有文件系统。
-h 显示帮助。
-n 卸除时不要将信息存入/etc/mtab文件中。
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t<文件系统类型> 仅卸除选项中所指定的文件系统。
-v 执行时显示详细的信息。
-V 显示版本信息。
范例:
1. umount -v /dev/sda1 #通过设备名卸载
2. umount -v /mnt/mymount/ #通过挂载点卸载
############################################################
useradd
语法
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
说明
用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。
参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-D:变更预设值。
-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
范例
- useradd username #直接创建账户
- useradd -u 123-d /usr/username -g users -m username #建立一个新用户账户username,并设置UID为123,主目录为/usr/username,属于users组,-m 如果主目录不存在则自动创建
############################################################
wc
语法:
wc [选项]文件…
说明:
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
该命令统计指定文件中的字节数、字数、行数。
如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。
选项:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
–version 显示版本信息
范例:
1. find . -name ‘*.c’ | xargs wc -l {};
############################################################
xargs
语法:
somecommand |xargs -item command
不带command ,默认的使用echo 输出.
说明:
由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令.
xargs与管道符的区别:
(1) 管道|是实现“将前面的标准输出作为后面的标准输入”,管道符后不加xargs相当于先将xargs后面的命令回车执行一下,再从键盘里输入管道符前面命令执行的结果内容.
(2) xargs是实现“将标准输入作为命令的参数”,加上xargs 相当于直接从键盘输入管道符前面命令执行的结果内容再回车
总结一下,就是回车的先后顺序不太一样。
参数:
-0 当sdtin含有特殊字符的时候,将其当成一般字符。
-a file 从文件中读入作为sdtin。
-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
-p 当每次执行一个argument的时候询问一次用户。
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
-t 表示先打印命令,然后再执行。
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替。
-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
-s num 命令行的最好字符数,指的是xargs后面那个命令的最大命令行字符数。
-L num Use at most max-lines nonblank input lines per command line.-s是含有空格的。
-l 同-L
-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
-x exit的意思,主要是配合-s使用。
-P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。
范例:
(1) ~/test#echo “//”|xargs -0 echo
(2) ~/test#xargs -a test echo
(3) ~/test#cat txt|xargs -E ‘shou’ echo
(4) ~/test#cat txt|xargs -p echo
(5) ~/test#cat txt|xargs -n1 echo
(6) ~/test#cat txt|xargs -t echo
(7) ls | xargs -t -i mv {} {}.bak
(8) ~/test#echo “”|xargs -t -r mv