linux文件与目录基本操作2
reboot
reboot命令用来重新启动正在运行的Linux操作系统。
reboot(选项)
选项
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
实例
reboot //重开机。 reboot -w //做个重开机的模拟(只有纪录并不会真的重开机)。
halt命令
halt命令用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
halt(选项)
选项
-d:不要在wtmp中记录;
-f:不论目前的runlevel为何,不调用shutdown即强制关闭系统;
-i:在halt之前,关闭全部的网络界面;
-n:halt前,不用先执行sync;
-p:halt之后,执行poweroff;
-w:仅在wtmp中记录,而不实际结束系统。
实例
halt -p //关闭系统后关闭电源。 halt -d //关闭系统,但不留下纪录。
man
man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
man(选项)(参数)
选项
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
实例
我们输入man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,
我们输man ifconfig它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。
man是按照手册的章节号的顺序进行搜索的,比如:
man sleep
只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:
man 3 sleep
help
help命令用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。
help(选项)(参数)
选项
-s:输出短格式的帮助信息。仅包括命令格式。
实例
使用help命令显示shell内部shopt命令的帮助信息,输入如下命令:
help shopt #获取shopt命令的帮助信息
shopt: shopt [-pqsu] [-o long-option] optname [optname...]
Toggle the values of variables controlling optional behavior.
The -s flag means to enable (set) each OPTNAME; the -u flag
unsets each OPTNAME. The -q flag suppresses output; the exit
status indicates whether each OPTNAME is set or unset. The -o
option restricts the OPTNAMEs to those defined for use with
`set -o'. With no options, or with the -p option, a list of all
settable options is displayed, with an indication of whether or
not each is set.
date
date命令是显示或设置系统时间与日期。
date(选项)(参数)
选项
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
日期格式字符串列表
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
实例
格式化输出:
date +"%Y-%m-%d" 2009-12-07
输出昨天日期:
date -d "1 day ago" +"%Y-%m-%d" 2012-11-19
2秒后输出:
date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2012-11-20 14:21.31
cal
cal(选项)(参数)
选项
-l:显示单月输出; -3:显示临近三个月的日历; -s:将星期日作为月的第一天; -m:将星期一作为月的第一天; -j:显示“julian”日期; -y:显示当前年的日历。
实例
单独执行cal命令会打印出日历:
[root@localhost ~]# cal
十二月 2013
日 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
whatis
whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。
语法
whatis
实例
[root@localhost ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
[root@localhost ~]# whatis cp
cp (1) - copy files and directories
cp (1p) - copy files
[root@localhost ~]# whatis chown
chown (1) - change file owner and group
chown (1p) - change the file ownership
chown (2) - change ownership of a file
chown (3p) - change owner and group of a file
whereis
whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis(选项)(参数)
选项
-b:只查找二进制文件; -B<目录>:只在设置的目录下查找二进制文件; -f:不显示文件名前的路径名称; -m:只查找说明文件; -M<目录>:只在设置的目录下查找说明文件; -s:只查找原始代码文件; -S<目录>只在设置的目录下查找原始代码文件; -u:查找不包含指定类型的文件。
实例
将相关的文件都查找出来
[root@localhost ~]# whereis tomcat tomcat: [root@localhost ~]# whereis svn svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
alias
alias(选项)(参数)
选项
-p:打印已经设置的命令别名。
alias 的基本使用方法为:
alias 新的命令='原命令 -选项/参数'
例如:alias l=‘ls -lsh'将重新定义ls命令,现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
要删除一个别名,可以使用 unalias 命令,如 unalias l。
unalias
unalias命令用来取消命令别名,是为shell内建命令。如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。
如果使用-a
unalias(选项)(参数)
实例
使用unalias命令将已经设置的命令别名"cc"取消,输入如下命令:
unalias cc #取消已经设置的命令别名
上面的命令执行后,系统会将指定的命令别名取消掉。如果用户再使用该命令别名时,系统将提示如下信息:
cc:no input files
du
du [选项][文件]
选项
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
实例
查看指定目录的所占空间:
[root@localhost test]# du scf 4 scf/lib 4 scf/service/deploy/product 4 scf/service/deploy/info 12 scf/service/deploy 16 scf/service 4 scf/doc 4 scf/bin 32 scf
uniq
uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。
uniq(选项)(参数)
选项
-c或——count:在每列旁边显示该行重复出现的次数;
-d或--repeated:仅显示重复出现的行列;
-f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位;
-s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符;
-u或——unique:仅显示出一次的行列;
-w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。
实例
删除重复行:
uniq file.txt
sort file.txt | uniq
sort -u file.txt
只显示单一行:
uniq -u file.txt sort file.txt | uniq -u
locate
locate命令和slocate命令都用来查找文件或目录。
locate/slocate(选项)(参数)
选项
-d<目录>或--database=<目录>:指定数据库所在的目录;
-u:更新slocate数据库;
--help:显示帮助;
--version:显示版本信息。
实例
搜索etc目录下所有以sh开头的文件:
locate /etc/sh
搜索用户主目录下,所有以m开头的文件:
locate ~/m
find
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,
则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find(选项)(参数)
选项
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算; -anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录; -atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算; -cmin<分钟>:查找在指定时间之时被更改过的文件或目录; -cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录; -ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间;
实例
列出当前目录及子目录下所有文件和文件夹
find .
在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
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 只输出文件中匹配到的部分。
grep命令常见用法
在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name grep "match_pattern" file_name
在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
dd
生成一个文件,备份一个文件
dd(选项)
选项
bs=<字节数>:将 ibs(输入)与 obs(输出)设成指定的字节数; cbs=<字节数>:转换时,每次只转换指定的字节数; conv=<关键字>:指定文件转换的方式; count=<区块数>:仅读取指定的区块数; ibs=<字节数>:每次读取的字节数; obs=<字节数>:每次输出的字节数; of=<文件>:输出到文件; seek=<区块数>:一开始输出时,跳过指定的区块数; skip=<区块数>:一开始读取时,跳过指定的区块数;
实例
[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
[root@localhost text]# du -sh sun.txt
1.1M sun.txt
该命令创建了一个1M大小的文件sun.txt,其中参数解释:
- if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
- of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
- bs 代表字节为单位的块大小。
- count 代表被复制的块数。
- /dev/zero 是一个字符设备,会不断返回0值字节(\0)。
file(选项)(参数)
选项
-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
In
ln命令
ln(选项)(参数)
选项
-b或--backup:删除,覆盖目标文件之前的备份; -d或-F或——directory:建立目录的硬连接; -f或——force:强行建立文件或目录的连接,不论文件或目录是否存在; -i或——interactive:覆盖既有文件之前先询问用户; -n或--no-dereference:把符号连接的目的目录视为一般文件; -s或——symbolic:对源文件建立符号连接,而非硬连接; -S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备
份字符串是符号“~”,用户可通过“-S”参数来改变它; -v或——verbose:显示指令执行过程; -V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串
不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;
实例
将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c
cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c
在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.c和a2.c
链接起来(注意,二者在物理上是同一文件),利用ls -l命令可以看到链接数的变化。
vi
全屏幕纯文本编辑器
vi(选项)(参数)
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:wq:在命令模式下,执行存盘退出操作;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:q:在命令模式下,执行退出vi操作;
:q!:在命令模式下,执行强制退出vi操作;
选项
+<行号>:从指定行号的行开始先是文本内容;
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”;
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能;
-n:不实用缓存功能;
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件;
-s:安静模式,不现实指令的任何错误信息。

浙公网安备 33010602011771号