1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cat, tac, head, tail, less, cp,mv,stat
cat [OPTION]... [FILE]...
-n:显示行数
-E:显示行结束符
[root@localhost tmp]# echo "hello word" >> 333 [root@localhost tmp]# cat 333 hello word
tac [OPTION]... [FILE]...
[root@localhost tmp]# tac 333 hello word
head:
head [OPTION]... [FILE]...
-c #:指定获取前#字节
-n #:指定获取前#行
rgqgr[root@localhost tmp]# head 333 hello word wwqdwqdq qwdqdqdq qwdqwddweqdw eewfqfqrrf qfrgqeq qtqtrtqt qfreqgrgeg qgqqrgqegqeg [root@localhost tmp]# head -c 50 333 hello word wwqdwqdq qwdqdqdq qwdqwddweqdw
tail:
tail [OPTION]... [FILE]...
-c #:指定获取后#字节
-n #:指定获取后#行
-f:跟踪显示文件新追加的内容
[root@localhost tmp]# tail 333 qwdqdqdq qwdqwddweqdw eewfqfqrrf qfrgqeq qtqtrtqt qfreqgrgeg qgqqrgqegqeg rgqgrgq qgqgqergeg qrgqgqg
cp
[root@localhost tmp]# cp 333 /var/ [root@localhost tmp]# ls /var/ 333 cache cvs empty gdm local log nis preserve spool www account crash db games lib lock mail opt run tmp yp [root@localhost tmp]# ls 333 orbit-cpl virtual-cpl.grFf4o bin orbit-gdm virtual-cpl.hCmppH x
mv
[root@localhost tmp]# mv 333 /etc/ [root@localhost tmp]# ls 1 mytest1 virtual-cpl.13la23 1.txt mytest2 virtual-cpl.7tcqgK 2 mytest3 virtual-cpl.f57Ji7 [root@localhost tmp]# ls /etc/ 333 hp printcap abrt httpd profile acpi idmapd.conf profile.d
stat
[root@localhost etc]# stat 333 File: "333" Size: 122 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 533803 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-14 01:02:40.350008585 +0800 Modify: 2016-08-14 01:02:12.210008511 +0800 Change: 2016-08-14 01:08:54.439008241 +0800
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
bash使用特殊变量$?保存最近一条命令的执行状态结果
0:成功
1-255:失败
[root@localhost ~]# pwd /root [root@localhost ~]# echo $? 0 [root@localhost ~]# le -bash: le: command not found [root@localhost ~]# echo $? 127
命令行展开
~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径(多项式相乘)
[root@localhost ~]# ls /tmp/{1,2} /tmp/1: /tmp/2:
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost /]# mkdir {a,b}_{c,d}
(2)、创建/tmp/mylinux目录下的:
[root@localhost tmp]# mkdir -pv mylinux/{bin,boot/grb,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: 已创建目录 "mylinux" mkdir: 已创建目录 "mylinux/bin" mkdir: 已创建目录 "mylinux/boot" mkdir: 已创建目录 "mylinux/boot/grb" mkdir: 已创建目录 "mylinux/dev" mkdir: 已创建目录 "mylinux/etc" mkdir: 已创建目录 "mylinux/etc/rc.d" mkdir: 已创建目录 "mylinux/etc/rc.d/init.d" mkdir: 已创建目录 "mylinux/etc/sysconfig" mkdir: 已创建目录 "mylinux/etc/sysconfig/network-scripts" mkdir: 已创建目录 "mylinux/lib" mkdir: 已创建目录 "mylinux/lib/modules" mkdir: 已创建目录 "mylinux/lib64" mkdir: 已创建目录 "mylinux/proc" mkdir: 已创建目录 "mylinux/sbin" mkdir: 已创建目录 "mylinux/sys" mkdir: 已创建目录 "mylinux/tmp" mkdir: 已创建目录 "mylinux/usr" mkdir: 已创建目录 "mylinux/usr/local" mkdir: 已创建目录 "mylinux/usr/local/bin" mkdir: 已创建目录 "mylinux/usr/local/sbin" mkdir: 已创建目录 "mylinux/var" mkdir: 已创建目录 "mylinux/lock" mkdir: 已创建目录 "mylinux/log" mkdir: 已创建目录 "mylinux/run" [root@localhost tmp]# tree mylinux/ mylinux/ ├── bin ├── boot │ └── grb ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib64 ├── lock ├── log ├── proc ├── run ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var 24 directories, 0 files
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件:由元数据和数据组成
元数据:metadate
数据:data
stat:查看指定文件的元数据信息
stat [OPTION]... FILE... -L:支持符号连接 -f:显示文件系统状态而非文件状态 -t:以简洁方式输出信息 [root@localhost tmp]# stat mylinux/ File: "mylinux/" Size: 4096 Blocks: 8 IO Block: 4096 目录 Device: fd00h/64768d Inode: 803023 Links: 17 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-13 17:21:16.000000000 +0800 Modify: 2016-08-13 17:16:42.000000000 +0800 Change: 2016-08-13 17:34:05.984017941 +0800
File:文件名称
Size:文件大小
Blocks:块
IO Blocks:IO块
Device:文件信息
Links:硬链接数
Access:文件权限
Access:最近访问时间
Modify:最近更改时间
Change:最近改动时间
touch命令:
-a:修改访问时间(atime)
-m:修改时间(mtime)
-c:如果文件不存在,则不予创建
三个时间戳:
access time:访问时间,简写为atime,读取文件内容
modify time:修改时间,mtime,改变文件内容(数据)
change time:改变时间,ctime,元数据发生改变
[root@localhost tmp]# touch -a mylinux/ [root@localhost tmp]# stat mylinux/ File: "mylinux/" Size: 4096 Blocks: 8 IO Block: 4096 目录 Device: fd00h/64768d Inode: 803023 Links: 17 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-14 00:43:50.305009878 +0800 Modify: 2016-08-13 17:16:42.000000000 +0800 Change: 2016-08-14 00:43:50.305009878 +0800
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
alias
(1)alias
显示当前shell进程中所有可用的命令别名
(2)alias NAME=‘VALUE’
定义别名的NAME,其相当于执行命令VALUE
注意:
定义之后只对当前shell进程有效,想要永久生效,要定义在配置文件中;编辑后不会离职生效
[root@localhost ~]# alias cdnet=‘cd /tmp‘ [root@localhost ~]# cdnet [root@localhost tmp]#
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@localhost ~]# ls -d /var/l*[0-9]*[[:lower:]]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。
[root@localhost /]# touch tfile-$"(date +%F-%H-%M-%S)"
或者
[root@localhost /]# touch tfile-$(date +%F-%H-%M-%S)
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@localhost /]# mkdir /tmp/mytest1&&cp -a /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@localhost tmp]# mkdir /tmp/mytest2&&cp -a /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@localhost tmp]# mkdir /tmp/mytest3&&cp -a /etc/[l,m,n]*.conf /tmp/mytest3
或者
[root@localhost tmp]# mkdir /tmp/mytest3&&cp -a /etc/[lmn]*.conf /tmp/mytest3
原文地址:http://goudan.blog.51cto.com/10227079/1837756