1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
linux上处理目录的常用命令:
ls :列出目录
cd :切换目录
pwd:显示当前工作路径
mkdir:创建目录
rm:删除文件或目录
rmdir:删除空文件
mv:剪切、重命名文件、目录
cp:复制文件或目录
touch:创建空文件
ls:= list:查看指定目录下文件和目录;
语法:
ls [选项] [目录名]
选项与参数:
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。ls -l = ll
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列,按照时间顺序排列,从旧到新;
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开
例:
[root@zhao-66 ~]# ls
anaconda-ks.cfg install.log shell test
[root@zhao-66 ~]# ll #ls -l = ll
总用量 76
-rw——-. 1 root root 1106 5月 4 2016 anaconda-ks.cfg
-rw-r–r–. 1 root root 22632 5月 4 2016 install.log
drwxr-xr-x 2 root root 4096 7月 11 13:53 shell
drwxr-xr-x 6 root root 4096 12月 13 14:21 test
[root@zhao-66 ~]# ll -a #显示隐藏文件
总用量 152
dr-xr-x—. 7 root root 4096 9月 22 12:06 .
dr-xr-xr-x. 22 root root 4096 12月 13 14:17 ..
-rw——-. 1 root root 1106 5月 4 2016 anaconda-ks.cfg
-rw——-. 1 root root 9124 10月 1 21:25 .bash_history
-rw-r–r–. 1 root root 18 5月 20 2009 .bash_logout
-rw-r–r– 1 root root 287 7月 5 15:50 .bash_profile
-rw-r–r–. 1 root root 176 9月 23 2004 .bashrc
-rw-r–r–. 1 root root 22632 5月 4 2016 install.log
drwxr-xr-x 2 root root 4096 7月 11 13:53 shell
drwx—— 2 root root 4096 6月 28 14:29 .ssh
drwxr-xr-x 6 root root 4096 12月 13 14:21 test
[root@zhao-66 ~]# ll -rt
总用量 76
-rw-r–r–. 1 root root 22632 5月 4 2016 install.log
-rw——-. 1 root root 1106 5月 4 2016 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 7月 11 13:53 shell
drwxr-xr-x 6 root root 4096 12月 13 14:21 test
cd:Change Directory的缩写,切换目录。
语法:
cd [相对路径或绝对路径]
参数:
-:切换到上一次打开的目录;
~:切换到当前用户家目录,不加参数也是切换到当前用户家目录;
.:当前目录
..:上级目录
例:
[root@master long]# pwd
/root/long
[root@master long]# cd ceshi/
[root@master ceshi]# pwd
/root/long/ceshi
[root@master ceshi]# cd
[root@master ~]# pwd
/root
[root@master ~]# cd –
/root/long/ceshi
[root@master ceshi]# cd –
/root
[root@master ~]# pwd
/root
[root@master ~]#
pwd:显示当前目录的绝对路径:
语法:
pwd [选项]
选项与参数:
一般情况下不带任何参数,如果目录是链接时:
格式:pwd -P 显示出实际路径,而非使用连接(link)路径。
例:
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /etc/init.d
[root@localhost init.d]# pwd
/etc/init.d
[root@localhost init.d]# pwd -P
/etc/rc.d/init.d
[root@localhost init.d]#
mkdir:创建指定名称的目录
语法:
mkdir [选项] 目录
选项与参数:
-m, –mode=模式,直接配置权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p, –parents 递归创建多层目录,即一次可以建立多个目录;
-v, –verbose 显示创建过程
–help 显示此帮助信息并退出
–version 输出版本信息并退出
例:
[root@master ceshi]# mkdir test
[root@master ceshi]# mkdir -pv test1/test2/{test3,test4}
mkdir: 已创建目录 "test1"
mkdir: 已创建目录 "test1/test2"
mkdir: 已创建目录 "test1/test2/test3"
mkdir: 已创建目录 "test1/test2/test4"
[root@master ceshi]# mkdir -m 644 test5
[root@master ceshi]# ll
总用量 12
drwxr-xr-x 2 root root 4096 12月 13 18:14 test
drwxr-xr-x 3 root root 4096 12月 13 18:14 test1
drw-r–r– 2 root root 4096 12月 13 18:15 test5
[root@master ceshi]# tree
.
├── test
├── test1
│ └── test2
│ ├── test3
│ └── test4
└── test5
6 directories, 0 files
[root@master ceshi]#
rm:删除文件、目录;注意:rm是一个危险的命令,使用的时候要特别当心;
语法:
rm [选项] 文件目录…
选项与参数:
-f, –force 忽略不存在的文件,从不给出提示。
-i, –interactive 进行交互式删除
-r, -R, –recursive 指示rm将参数中列出的全部目录和子目录均递归地删除;用于删除目录;
-v, –verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 输出版本信息并退出
例:
[root@master ceshi]# ll
总用量 12
-rw-r–r– 1 root root 0 12月 13 18:23 install.log
-rwxr-xr-x 1 root root 0 12月 13 18:22 scp.sh
drwxr-xr-x 2 root root 4096 12月 13 18:14 test
drwxr-xr-x 3 root root 4096 12月 13 18:14 test1
drw-r–r– 2 root root 4096 12月 13 18:15 test5
[root@master ceshi]# rm install.log
rm:是否删除普通空文件 "install.log"?y
[root@master ceshi]# rm -i scp.sh
rm:是否删除普通空文件 "scp.sh"?y
[root@master ceshi]# rm -rf test
[root@master ceshi]# ll
总用量 8
drwxr-xr-x 3 root root 4096 12月 13 18:14 test1
drw-r–r– 2 root root 4096 12月 13 18:15 test5
[root@master ceshi]# rm -rfv test*
已删除目录:"test1/test2/test3"
已删除目录:"test1/test2/test4"
已删除目录:"test1/test2"
已删除目录:"test1"
已删除目录:"test5"
[root@master ceshi]#
rmdir:删除空目录,一个目录被删除之前必须是空的;删除某目录时也必须具有对父目录的写权限。
语法:
rmdir [选项]… 目录…
选项:
– p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
-v, –verbose 显示指令执行过程;
例:
[root@master ceshi]# mkdir -pv {test,test1/test2/{test3,test4}}
mkdir: 已创建目录 "test"
mkdir: 已创建目录 "test1"
mkdir: 已创建目录 "test1/test2"
mkdir: 已创建目录 "test1/test2/test3"
mkdir: 已创建目录 "test1/test2/test4"
[root@master ceshi]# tree
.
├── test
└── test1
└── test2
├── test3
└── test4
5 directories, 0 files
[root@master ceshi]# ll
总用量 8
drwxr-xr-x 2 root root 4096 12月 13 18:36 test
drwxr-xr-x 3 root root 4096 12月 13 18:36 test1
[root@master ceshi]# rmdir test
[root@master ceshi]# ll
总用量 4
drwxr-xr-x 3 root root 4096 12月 13 18:36 test1
[root@master ceshi]# rmdir -pv test1/test2/test*
rmdir: 正在删除目录 "test1/test2/test3"
rmdir: 正在删除目录 "test1/test2"
rmdir: 删除目录 "test1/test2" 失败: 目录非空
rmdir: 正在删除目录 "test1/test2/test4"
rmdir: 正在删除目录 "test1/test2"
rmdir: 正在删除目录 "test1"
[root@master ceshi]# ll
总用量 0
[root@master ceshi]#
mv:= move,可以用来移动文件或者将文件改名(move (rename) files)
语法:
mv [参数] 源文件或目录 目标文件或目录
选项:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
例:
[root@master URLGenerator]# ll
总用量 28
-rwxr-xr-x 1 root root 329 5月 20 2016 restart.sh
-rwxr-xr-x 1 root root 116 6月 23 20:23 start.sh_bak
-rwxr-xr-x 1 root root 122 5月 20 2016 stop.sh
[root@master URLGenerator]# mv -f restart.sh stop.sh
[root@master URLGenerator]# ll
总用量 24
-rwxr-xr-x 1 root root 116 6月 23 20:23 start.sh_bak
-rwxr-xr-x 1 root root 329 5月 20 2016 stop.sh
[root@master URLGenerator]# mv start.sh_bak stop.sh
mv:是否覆盖"stop.sh"? n
[root@master URLGenerator]# ll
总用量 24
-rwxr-xr-x 1 root root 116 6月 23 20:23 start.sh_bak
-rwxr-xr-x 1 root root 329 5月 20 2016 stop.sh
[root@master URLGenerator]# mv -b start.sh_bak stop.sh
mv:是否覆盖"stop.sh"? n
[root@master URLGenerator]# ll
总用量 24
-rwxr-xr-x 1 root root 116 6月 23 20:23 start.sh_bak
-rwxr-xr-x 1 root root 329 5月 20 2016 stop.sh
[root@master URLGenerator]#
cp:复制文件或目录;将单个或多个源文件复制至目标目录下。
语法:
单源复制:
cp [OPTION]… [-T] SOURCE DEST
选项 源
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件;
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
多源复制:
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:错误;
如果DEST存在:
如果DEST是非目录文件:错误;
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;
选项:
-a :–archive 等于-dR –preserve=all
–backup[=CONTROL] 为每个已存在的目标文件创建备份
-b :类似–backup 但不接受参数
–copy-contents 在递归处理是复制特殊文件内容
-d :等于–no-dereference –preserve=links
-f :–force: 如果目标文件无法打开则将其移除并重试(当 -n 选项
存在时则不需再选此项)
-i : –interactive: 覆盖前询问(使前面的 -n 选项失效)
-H :跟随源文件中的命令行符号链接
-l, –link: 链接文件而不复制
-L, –dereference: 总是跟随符号链接
-n, –no-clobber:不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, –no-dereference :不跟随源文件中的符号链接
-p :等于–preserve=模式,所有权,时间戳
–preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-R, -r, –recursive 复制目录及目录内的所有项目
例:
[root@master URLGenerator]# tree
.
├── config
│ ├── config.xml
│ ├── log4j-config.xml
│ └── private.key
└── lib
├── chardet.jar
├── edtftpj.jar
└── jta.jar
2 directories, 6 files
[root@master URLGenerator]# cp config/config.xml lib/
[root@master URLGenerator]# tree
.
├── config
│ ├── config.xml
│ ├── log4j-config.xml
│ └── private.key
└── lib
├── chardet.jar
├── config.xml
├── edtftpj.jar
└── jta.jar
2 directories, 7 files
[root@master URLGenerator]# ll *
config:
总用量 12
-rw-r–r– 1 root root 2292 8月 23 16:39 config.xml
-rw-r–r– 1 root root 2940 5月 20 2016 log4j-config.xml
-rw-r–r– 1 root root 893 5月 20 2016 private.key
lib:
总用量 200
-rw-r–r– 1 root root 26568 5月 20 2016 chardet.jar
-rw-r–r– 1 root root 2292 12月 13 19:27 config.xml
-rw-r–r– 1 root root 156599 5月 20 2016 edtftpj.jar
-rw-r–r– 1 root root 9719 5月 20 2016 jta.jar
[root@master URLGenerator]# cp -rp config/ lib/
[root@master URLGenerator]# ll *
config:
总用量 12
-rw-r–r– 1 root root 2292 8月 23 16:39 config.xml
-rw-r–r– 1 root root 2940 5月 20 2016 log4j-config.xml
-rw-r–r– 1 root root 893 5月 20 2016 private.key
lib:
总用量 204
-rw-r–r– 1 root root 26568 5月 20 2016 chardet.jar
drwxr-xr-x 2 root root 4096 12月 13 19:25 config
-rw-r–r– 1 root root 2292 12月 13 19:27 config.xml
-rw-r–r– 1 root root 156599 5月 20 2016 edtftpj.jar
-rw-r–r– 1 root root 9719 5月 20 2016 jta.jar
[root@master URLGenerator]#
touch:一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个空文件;
语法:
touch [选项]… 文件名…
选项与参数:
-a 或–time=atime或–time=access或–time=use 只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。[[CC]YY]MMDDhhmm[.SS] ;
CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969–2068之内.MM为月数,DD为天将把年数CCYY限定在1969–2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0–61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。
例:
[root@master ceshi]# touch `date +%F_%T`.csv
[root@master ceshi]# ll
-rw-r–r– 1 root root 0 12月 13 19:42 2016-12-13_19:42:23.csv
touch -t 201610120532.45 ceshi.csv
[root@master ceshi]# ll
-rw-r–r– 1 root root 0 12月 13 19:42 2016-12-13_19:42:40.csv
-rw-r–r– 1 root root 0 10月 12 05:32 ceshi.csv
[root@master ceshi]#
Linux查看文件的常用命令
cat:从第一行显示文件内容;
tac:倒序显示文件内容;
nl:带行号显示文件内容;
more:一页一页的显示文件内容;
less:与 more 类似,但是比 more 更好的是,他可以往前翻页!
head:从文件第一行开始看指定行;从上而下;
tail:从文件尾看指定行;从下而上;
cat:显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
cat主要有三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file
格式:
cat [选项] [文件]…
选项:
-A, –show-all: 等价于 -vET
-b, –number-nonblank :对非空输出行编号
-e :等价于 -vE
-E, –show-ends :在每行结束处显示 $
-n, –number :对输出的所有行编号,由1开始对所有输出的行数编号
-s, –squeeze-blank :有连续两行以上的空白行,就代换为一行的空白行
-t : 与 -vT 等价
-T, –show-tabs :将跳格字符显示为 ^I
-u :(被忽略)
-v, –show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
例:
[root@master ceshi]# cat wenjian.csv
192.168.9.101
192.168.9.102
192.168.9.105
192.168.9.110
192.168.9.250
[root@master ceshi]# cat wenjian*
192.168.9.33
192.168.9.34
192.168.9.35
192.168.9.50
192.168.9.101
192.168.9.102
192.168.9.105
192.168.9.110
192.168.9.250
[root@master ceshi]# cat -n wenjian.csv
1 192.168.9.101
2 192.168.9.102
3 192.168.9.105
4 192.168.9.110
5 192.168.9.250
[root@master ceshi]#
tac :
是将 cat 反写过来,所以他的功能就跟 cat 相反,
cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
例:
[root@master ceshi]# cat wenjian.csv
192.168.9.101
192.168.9.102
192.168.9.105
192.168.9.110
192.168.9.250
[root@master ceshi]# tac wenjian.csv
192.168.9.250
192.168.9.110
192.168.9.105
192.168.9.102
192.168.9.101
[root@master ceshi]#
nl:带行号显示文件内容;
格式:
nl [-bnwp] 文件
选项:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
-p :在逻辑页数切换时不将行号值复位;
例:
[root@master ceshi]# nl wenjian.csv
1 192.168.9.101
2 192.168.9.102
3 192.168.9.105
4 192.168.9.110
5 192.168.9.250
[root@master ceshi]# nl -b a wenjian.csv
1 192.168.9.101
2 192.168.9.102
3 192.168.9.105
4
5 192.168.9.110
6 192.168.9.250
[root@master ceshi]# nl -n rz wenjian.csv
000001 192.168.9.101
000002 192.168.9.102
000003 192.168.9.105
000004 192.168.9.110
000005 192.168.9.250
[root@master ceshi]# nl -w 3 wenjian.csv
1 192.168.9.101
2 192.168.9.102
3 192.168.9.105
4 192.168.9.110
5 192.168.9.250
[root@master ceshi]# nl -w 1 wenjian.csv
1 192.168.9.101
2 192.168.9.102
3 192.168.9.105
4 192.168.9.110
5 192.168.9.250
[root@master ceshi]#
more:从第一行一页一页的显示文件内容
格式:
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ]
选项:(一般很少用)
+n :从笫n行开始显示
-n :定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c :从顶部清屏,然后显示
-d :提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l :忽略Ctrl+l(换页)字符
-p :通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s :把连续的多个空行显示为一行
-u :把文件内容中的下画线去掉
命令:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
b或Ctrl+b 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
例:
[root@master ceshi]# more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
… …
–More–(29%)
less:对文件或其它输出进行分页显示,可以向上和向下;
格式:
less [选项] 文件
选项:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
命令:
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
head:从文件开头查看指定行;默认head命令打印其相应文件的开头10行。
语法:
head [-n number] 文件
选项:
-n:数字,从第一行查看的行数;
例:
head -5 shell/liuliang_1.txt
date: 2016-09-18 16:30:03 192.168.9.105:p6p1 RX = 2725 Mb/s
date: 2016-09-18 17:00:02 192.168.9.105:p6p1 RX = 2795 Mb/s
date: 2016-09-18 17:30:03 192.168.9.105:p6p1 RX = 3419 Mb/s
date: 2016-09-18 18:00:02 192.168.9.105:p6p1 RX = 2666 Mb/s
date: 2016-09-18 18:30:04 192.168.9.105:p6p1 RX = 2823 Mb/s
[root@CMCC105 ~]
head shell/liuliang_*
==> shell/liuliang_1.txt <==
date: 2016-09-18 16:30:03 192.168.9.105:p6p1 RX = 2725 Mb/s
date: 2016-09-18 17:00:02 192.168.9.105:p6p1 RX = 2795 Mb/s
date: 2016-09-18 17:30:03 192.168.9.105:p6p1 RX = 3419 Mb/s
date: 2016-09-18 18:00:02 192.168.9.105:p6p1 RX = 2666 Mb/s
date: 2016-09-18 18:30:04 192.168.9.105:p6p1 RX = 2823 Mb/s
date: 2016-09-18 19:00:02 192.168.9.105:p6p1 RX = 2727 Mb/s
date: 2016-09-18 19:30:03 192.168.9.105:p6p1 RX = 2815 Mb/s
date: 2016-09-18 20:00:02 192.168.9.105:p6p1 RX = 2603 Mb/s
date: 2016-09-18 20:30:03 192.168.9.105:p6p1 RX = 2899 Mb/s
date: 2016-09-18 21:00:02 192.168.9.105:p6p1 RX = 2637 Mb/s
==> shell/liuliang_2.txt <==
date: 2016-09-18 16:30:03 192.168.9.105:p6p2 RX = 2605 Mb/s
date: 2016-09-18 17:00:02 192.168.9.105:p6p2 RX = 2509 Mb/s
date: 2016-09-18 17:30:03 192.168.9.105:p6p2 RX = 2683 Mb/s
date: 2016-09-18 18:00:02 192.168.9.105:p6p2 RX = 2641 Mb/s
date: 2016-09-18 18:30:04 192.168.9.105:p6p2 RX = 2797 Mb/s
date: 2016-09-18 19:00:02 192.168.9.105:p6p2 RX = 2663 Mb/s
date: 2016-09-18 19:30:03 192.168.9.105:p6p2 RX = 2830 Mb/s
date: 2016-09-18 20:00:02 192.168.9.105:p6p2 RX = 2816 Mb/s
date: 2016-09-18 20:30:03 192.168.9.105:p6p2 RX = 2586 Mb/s
date: 2016-09-18 21:00:02 192.168.9.105:p6p2 RX = 2632 Mb/s
[root@CMCC105 ~]
tail:用于显示指定文件末尾内容,常用查看实时日志文件。
语法:
tail [-n number] 文件
选项:
-f :实时读取,常用于查看实时日志文件。
-n <行数>: 显示文件末尾指定行;
例:
[root@CMCC105 /opt/DPIAPP/logsender]
tail nohup.out
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-5] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-3] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-11] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-1] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-7] (FtpFileUploadThread.java:68) – compose 1 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-9] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-8] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-6] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ WARN] [2016-12-13 20:56:30] [DefaultQuartzScheduler_Worker-6] (FtpFileJob.java:38) -SimpleJob says: FtpFile.job_FtpFile is running. Tue Dec 13 20:56:30 CST 2016
[ WARN] [2016-12-13 20:56:40] [DefaultQuartzScheduler_Worker-9] (FtpFileJob.java:38) -SimpleJob says: FtpFile.job_FtpFile is running. Tue Dec 13 20:56:40 CST 2016
[root@CMCC105 /opt/DPIAPP/logsender]
tail -100f nohup.out
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-3] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-11] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-1] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-7] (FtpFileUploadThread.java:68) – compose 1 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-9] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-8] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ INFO] [2016-12-13 20:56:20] [pool-1-thread-6] (FtpFileUploadThread.java:68) – compose 7 files with path /usr/local/ltelog
[ WARN] [2016-12-13 20:56:30] [DefaultQuartzScheduler_Worker-6] (FtpFileJob.java:38) -SimpleJob says: FtpFile.job_FtpFile is running. Tue Dec 13 20:56:30 CST 2016
[ WARN] [2016-12-13 20:56:40] [DefaultQuartzScheduler_Worker-9] (FtpFileJob.java:38) -SimpleJob says: FtpFile.job_FtpFile is running. Tue Dec 13 20:56:40 CST 2016
[ WARN] [2016-12-13 20:56:50] [DefaultQuartzScheduler_Worker-8] (FtpFileJob.java:38) -SimpleJob says: FtpFile.job_FtpFile is running. Tue Dec 13 20:56:50 CST 2016
[ WARN] [2016-12-13 20:57:00] [DefaultQuartzScheduler_Worker-7] (FtpFileJob.java:38) -SimpleJob says: FtpFile.job_FtpFile is running. Tue Dec 13 20:57:00 CST 2016
… …
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
bash的工作特性之命令执行状态返回值
Bash 命令执行后,会对执行状态返回一个值。
如果命令执行成功则返回0,如果执行不成功,就会返回一个1-255的数字,这个返回值保存在特殊变量$?中。
可以使用echo $?查看返回值。
根据命令及其功能不同,结果各不相同;
引用命令的执行结果:
$(COMMAND)
或`COMMAND`
bash的基于特性:引用
强引用:''
弱引用:""
命令引用:“
bash基础特性:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear
例:
[root@master ceshi]# ll
总用量 4
-rwxr-xr-x 1 root root 150 12月 13 14:56 ssh.sh
[root@master ceshi]# ll ssh.sh
-rwxr-xr-x 1 root root 150 12月 13 14:56 ssh.sh
[root@master ceshi]# echo $?
0
[root@master ceshi]# ll abc_ssh.sh
ls: 无法访问abc_ssh.sh: 没有那个文件或目录
[root@master ceshi]# echo $?
2
[root@master ceshi]#
bash的工作基础特性之:命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例:
(1)、/etc/{a,b}
表示 /etc/a和/etc/b
(2)、mkdir -p /tmp/{a,b}{c,d}
新建 /tmp/a/c、/tmp/a/d、/tmp/b/c、/tmp/b/d四个目录
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c,a_d,b_c,b_d
[root@master ~]# mkdir -pv /tmp/{a_c,a_d,b_c,b_d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"
[root@master ~]# tree /tmp/
/tmp/
├── a_c
├── a_d
├── b_c
└── b_d
4 directories, 0 files
[root@master ~]#
(2)、创建/tmp/mylinux目录下的:
[root@master ~]# mkdir -pv /tmp/mylinux/{bin,boot/crub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},\
> lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
mkdir: 已创建目录 "/tmp/mylinux/bin"
mkdir: 已创建目录 "/tmp/mylinux/boot"
mkdir: 已创建目录 "/tmp/mylinux/boot/crub"
mkdir: 已创建目录 "/tmp/mylinux/dev"
mkdir: 已创建目录 "/tmp/mylinux/etc"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"
mkdir: 已创建目录 "/tmp/mylinux/lib"
mkdir: 已创建目录 "/tmp/mylinux/lib/modules"
mkdir: 已创建目录 "/tmp/mylinux/lib64"
mkdir: 已创建目录 "/tmp/mylinux/proc"
mkdir: 已创建目录 "/tmp/mylinux/sbin"
mkdir: 已创建目录 "/tmp/mylinux/sys"
mkdir: 已创建目录 "/tmp/mylinux/tmp"
mkdir: 已创建目录 "/tmp/mylinux/usr"
mkdir: 已创建目录 "/tmp/mylinux/usr/local"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/bin"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"
mkdir: 已创建目录 "/tmp/mylinux/var"
mkdir: 已创建目录 "/tmp/mylinux/var/lock"
mkdir: 已创建目录 "/tmp/mylinux/var/log"
mkdir: 已创建目录 "/tmp/mylinux/var/run"
[root@master ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│ └── crub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
24 directories, 0 files
[root@master ~]#
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
(1)、可以用stat(display file or file system status)来查看文件或文件系统的状态:
文件:两类数据
元数据:metadata
数据: data
例:
[root@master ~]# ll long/
总用量 650452
-rw-r–r– 1 root root 44 10月 28 10:09 20.21.csv
-rw-r–r– 1 root root 597197252 9月 18 17:33 bao.zip
-rw-r–r– 1 root root 575389 5月 20 2016 commons-collections-3.2.1.jar
-rw-r–r– 1 root root 588337 11月 13 2015 commons-collections-3.2.2.jar
-rw-r–r– 1 root root 57162301 8月 8 16:50 CRv6.0.1.zip
-rwxr-xr-x 1 root root 319 10月 27 10:13 scp.sh
-rwxr-xr-x 1 root root 150 10月 27 10:07 ssh.sh
drwxr-xr-x 6 root root 4096 11月 4 15:16 URLGenerator
-rw-r–r– 1 root root 10508344 11月 4 15:20 URLGenerator.tar.gz
[root@master ~]# stat long/scp.sh
File: "long/scp.sh"
Size: 319 Blocks: 8 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 1053603 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-10-27 10:13:42.932292450 +0800
Modify: 2016-10-27 10:13:37.860292321 +0800
Change: 2016-10-27 10:13:37.950292623 +0800
[root@master ~]# stat long/
File: "long/"
Size: 4096 Blocks: 8 IO Block: 4096 目录
Device: 802h/2050d Inode: 1044499 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-13 14:38:56.581484764 +0800
Modify: 2016-11-04 15:20:56.093502642 +0800
Change: 2016-11-04 15:20:56.093502642 +0800
[root@master ~]#
含义:File:文件名;
Blocks:块;IO
Block:IO块;
Device:设备;
Access(第一个):权限;
Uid:创建者id;
Gid:归属组id;
Access(第二个):最近访问;
modify:最近修改;
change:最近改动
(2)、修改文件的时间戳用touch(change file timestamps)
一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;
二是用来创建新的空文件。
touch [OPTION]… FILE…
选项和参数:
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP:使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
例:
[root@master long]# ll
-rwxr-xr-x 1 root root 150 10月 27 10:07 ssh.sh
[root@master long]# touch -t 201611131459 ssh.sh
[root@master long]# ll
-rwxr-xr-x 1 root root 150 11月 13 14:59 ssh.sh
[root@master long]#
5、如何定义一个文件的别名,如何在命令中引用另一个命令的执行结果?
alias:可以用来直接定义命令的别名,有两种方式定义:
一是直接在命令行下执行,仅对当前用户有效,重启系统后无效,
二是在/etc/bashrc 下进行设置,对全局用户有效
获取所有可用别名的定义:
~]# alias
定义别名:
~]# alias NAME='COMMAND'
注意:仅对当前shell进程有效
撤销别名:
~]# unalias NAME
例:
[root@zhao-66 test]# ll
总用量 5044
drwxr-xr-x 3 root root 4096 6月 6 2016 classes
-rw-r–r– 1 root root 230471 6月 6 2016 classes.zip
drwxr-xr-x 7 root root 4096 6月 6 2016 logsender_cp
-rw-r–r– 1 root root 4914834 6月 6 2016 logsender_cp.tai.gz
drwxr-xr-x 5 root root 4096 6月 6 2016 test
drwxr-xr-x 4 root root 4096 6月 6 2016 yasuo
[root@zhao-66 test]# alias show='ll'
[root@zhao-66 test]# show
总用量 5044
drwxr-xr-x 3 root root 4096 6月 6 2016 classes
-rw-r–r– 1 root root 230471 6月 6 2016 classes.zip
drwxr-xr-x 7 root root 4096 6月 6 2016 logsender_cp
-rw-r–r– 1 root root 4914834 6月 6 2016 logsender_cp.tai.gz
drwxr-xr-x 5 root root 4096 6月 6 2016 test
drwxr-xr-x 4 root root 4096 6月 6 2016 yasuo
[root@zhao-66 test]# unalias show
[root@zhao-66 test]# show
-bash: show: command not found
[root@zhao-66 test]#
6、显示var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录。
[root@master ~]# ll -d /var/l*[0-9]*[a-z]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@master ~]# ll -d /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟一个字母以及其他任意长度任意字符的文件或目录。
[root@master ~]# ll -d /etc/[^a-z][a-z]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@master ~]# mkdir -pv /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
mkdir: 已创建目录 "/tmp/tfile-2016-12-08-14-00-06"
[root@master ~]#
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@master ~]# mkdir -pv /tmp/mytest1
mkdir: 已创建目录 "/tmp/mytest1"
[root@master ~]# cp -a /etc/p* /tmp/mytest1/
[root@master ~]# ll !$
ll /tmp/mytest1/
总用量 376
drwxr-xr-x. 2 root root 4096 7月 28 2015 pam.d
drwxr-xr-x 2 root root 4096 5月 5 2015 pam_pkcs11
drwxr-xr-x. 3 root root 4096 4月 20 2015 pango
-rw-r–r– 1 root root 1520 10月 10 14:30 passwd
-rw-r–r–. 1 root root 1477 7月 21 2015 passwd-
drwxr-xr-x. 2 root root 4096 12月 9 2014 pcmcia
-rw-r–r–. 1 root root 2872 8月 21 2010 pinforc
drwxr-xr-x 3 root root 4096 4月 20 2015 pkcs11
drwxr-xr-x. 9 root root 4096 4月 20 2015 pki
drwxr-xr-x. 2 root root 4096 4月 20 2015 plymouth
drwxr-xr-x. 5 root root 4096 12月 9 2014 pm
-rw-r–r– 1 root root 370 10月 15 2014 pm-utils-hd-apm-restore.conf
drwxr-xr-x. 5 root root 4096 10月 15 2014 polkit-1
drwxr-xr-x. 2 root root 4096 8月 21 2010 popt.d
drwxr-xr-x. 2 root root 4096 4月 20 2015 postfix
drwxr-xr-x. 3 root root 4096 5月 5 2015 ppp
-rw-r–r– 1 root root 285120 12月 3 03:14 prelink.cache
-rw-r–r– 1 root root 789 7月 19 2013 prelink.conf
drwxr-xr-x. 2 root root 4096 7月 28 2015 prelink.conf.d
-rw-r–r– 1 root root 233 1月 12 2010 printcap
-rw-r–r– 1 root root 2902 12月 8 10:40 profile
drwxr-xr-x. 2 root root 4096 5月 5 2015 profile.d
-rw-r–r– 1 root root 0 11月 21 17:45 properties
-rw-r–r– 1 root root 6455 1月 12 2010 protocols
drwxr-xr-x. 2 root root 4096 5月 5 2015 pulse
[root@master ~]#
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@master ~]# mkdir -pv /tmp/mytest2;cp -a /etc/*.d /tmp/mytest2/;ll /tmp/mytest2/
mkdir: 已创建目录 "/tmp/mytest2"
总用量 100
drwxr-xr-x. 2 root root 4096 10月 24 10:41 bash_completion.d
drwxr-xr-x 2 root root 4096 10月 18 2014 cgconfig.d
drwxr-xr-x. 2 root root 4096 9月 23 2013 chkconfig.d
drwxr-xr-x. 2 root root 4096 4月 20 2015 cron.d
drwxr-xr-x. 2 root root 4096 4月 20 2015 depmod.d
drwxr-xr-x 2 root root 4096 6月 16 2014 dnsmasq.d
drwxr-xr-x. 2 root root 4096 7月 14 2015 dracut.conf.d
drwxr-xr-x. 2 root root 4096 12月 9 2014 event.d
drwxr-xr-x 2 root root 4096 11月 11 2010 ggz.modules.d
lrwxrwxrwx 1 root root 11 4月 20 2015 init.d -> rc.d/init.d
drwxr-xr-x. 2 root root 4096 10月 10 15:37 ld.so.conf.d
drwxr-xr-x. 2 root root 4096 7月 28 2015 logrotate.d
drwxr-xr-x. 2 root root 4096 12月 9 2014 makedev.d
drwxr-xr-x. 2 root root 4096 5月 5 2015 modprobe.d
drwxr-xr-x. 2 root root 4096 7月 28 2015 pam.d
drwxr-xr-x. 2 root root 4096 8月 21 2010 popt.d
drwxr-xr-x. 2 root root 4096 7月 28 2015 prelink.conf.d
drwxr-xr-x. 2 root root 4096 5月 5 2015 profile.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc0.d -> rc.d/rc0.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc1.d -> rc.d/rc1.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc2.d -> rc.d/rc2.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc3.d -> rc.d/rc3.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc4.d -> rc.d/rc4.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc5.d -> rc.d/rc5.d
lrwxrwxrwx 1 root root 10 4月 20 2015 rc6.d -> rc.d/rc6.d
drwxr-xr-x. 10 root root 4096 10月 10 10:49 rc.d
drwxr-xr-x. 2 root root 4096 12月 17 2014 rsyslog.d
drwxr-xr-x. 2 root root 4096 11月 4 2014 rwtab.d
drwxr-xr-x. 2 root root 4096 4月 20 2015 setuptool.d
drwxr-xr-x. 2 root root 4096 11月 4 2014 statetab.d
drwxr-x—. 2 root root 4096 10月 15 2014 sudoers.d
drwxr-xr-x. 2 root root 4096 4月 20 2015 xinetd.d
drwxr-xr-x. 27 root root 4096 12月 8 14:06 yum.repos.d
[root@master ~]#
12、复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@master ~]# mkdir /tmp/mytest3; find /etc/ -maxdepth 1 -type f -name "[l-n]*.conf"|xargs -I {} cp {} /tmp/mytest3
[root@master ~]# ll !$
ll /tmp/mytest3
总用量 32
-rw-r–r– 1 root root 28 12月 8 17:41 ld.so.conf
-rw-r—– 1 root root 191 12月 8 17:41 libaudit.conf
-rw-r–r– 1 root root 2293 12月 8 17:41 libuser.conf
-rw-r–r– 1 root root 662 12月 8 17:41 logrotate.conf
-rw-r–r– 1 root root 827 12月 8 17:41 mke2fs.conf
-rw-r–r– 1 root root 2620 12月 8 17:41 mtools.conf
-rw-r–r– 1 root root 1688 12月 8 17:41 nsswitch.conf
-rw-r–r– 1 root root 1778 12月 8 17:41 ntp.conf
[root@master ~]#
原创文章,作者:moer,如若转载,请注明出处:http://www.178linux.com/62993