第一题:Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。
文件管理类的命令有:
cd,ls,touch,mldir,cp,mv,rm,rmdir,pwd,tree
使用方法
(1),cd命令用来切换工作目录至dirname。其中dirName表示法可为绝对路径或相对路径。
常用格式:
cd #进入用户家目录 cd~ #进入用户家目录 cd- #返回进入此目录之前的目录 cd.. #返回上级目录 cd../.. #返回上两级目录
(2),ls:
ls命令就是list的缩写,缺省下ls用来显示出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls
命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
ls #显示目录下的文件
[root@localhost tmp]# ls / bin dev home lib64 mnt proc run srv test usr boot etc lib media opt root sbin sys tmp var [root@localhost tmp]# -a #显示目录下的隐藏文件 [root@localhost ~]# ls [root@localhost ~]# ls -a . .bash_history .bash_profile .cache .cshrc .tcshrc .. .bash_logout .bashrc .config .local .viminfo [root@localhost ~]# -A #同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录) [root@localhost ~]# ls -a . .bash_history .bash_profile .cache .cshrc .tcshrc .. .bash_logout .bashrc .config .local .viminfo [root@localhost ~]# ls -A .bash_history .bash_profile .cache .cshrc .tcshrc .bash_logout .bashrc .config .local .viminfo [root@localhost ~]#
-l #长格式显示文件,显示文件的详细属性信息,属主、属组、文件大小、权限等
[root@localhost ~]# ls -l / total 32 lrwxrwxrwx. 1 root root 7 Jun 22 19:56 bin -> usr/bin dr-xr-xr-x. 4 root root 4096 Jun 24 21:30 boot drwxr-xr-x. 20 root root 3320 Jul 9 02:07 dev drwxr-xr-x. 144 root root 8192 Jul 9 02:06 etc drwxr-xr-x. 5 root root 39 Jul 4 10:43 home lrwxrwxrwx. 1 root root 7 Jun 22 19:56 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Jun 22 19:56 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Aug 12 2015 media drwxr-xr-x. 2 root root 6 Aug 12 2015 mnt drwxr-xr-x. 4 root root 28 Jul 5 06:55 opt dr-xr-xr-x. 437 root root 0 Jul 9 02:06 proc dr-xr-x---. 5 root root 4096 Jul 9 02:28 root drwxr-xr-x. 39 root root 1180 Jul 9 02:07 run lrwxrwxrwx. 1 root root 8 Jun 22 19:56 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Aug 12 2015 srv dr-xr-xr-x. 13 root root 0 Jul 9 02:06 sys drwxr-xr-x. 2 root root 20 Jun 27 10:03 test rwxrwt. 10 root root 4096 Jul 9 03:23 tmp r-xr-x. 13 root root 4096 Jun 22 19:56 usr r-xr-x. 21 root root 4096 Jul 9 02:06 var [root@localhost ~]#
-h # –human-readable ,配合 -l 使用 , 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
t@localhost ~]# ls -lh / l 32K wx. 1 root root 7 Jun 22 19:56 bin -> usr/bin r-xr-x. 4 root root 4.0K Jun 24 21:30 boot r-xr-x. 20 root root 3.3K Jul 9 02:07 dev r-xr-x. 144 root root 8.0K Jul 9 02:06 etc r-xr-x. 5 root root 39 Jul 4 10:43 home rwxrwx. 1 root root 7 Jun 22 19:56 lib -> usr/lib rwxrwx. 1 root root 9 Jun 22 19:56 lib64 -> usr/lib64 r-xr-x. 2 root root 6 Aug 12 2015 media r-xr-x. 2 root root 6 Aug 12 2015 mnt drwxr-xr-x. 4 root root 28 Jul 5 06:55 opt r-xr-x. 437 root root 0 Jul 9 02:06 proc r-x---. 5 root root 4.0K Jul 9 02:28 root r-xr-x. 39 root root 1.2K Jul 9 02:07 run rwxrwx. 1 root root 8 Jun 22 19:56 sbin -> usr/sbin r-xr-x. 2 root root 6 Aug 12 2015 srv r-xr-x. 13 root root 0 Jul 9 02:06 sys r-xr-x. 2 root root 20 Jun 27 10:03 test rwxrwt. 10 root root 4.0K Jul 9 03:23 tmp r-xr-x. 13 root root 4.0K Jun 22 19:56 usr r-xr-x. 21 root root 4.0K Jul 9 02:06 var t@localhost ~]#
-d # –directory,配合 -l 使用,显示目录本身属性而非其内部的文件列表
t@localhost tmp]# ls -ld rwxrwt. 10 root root 4096 Jul 9 03:35 . t@localhost tmp]# ls -ld /usr/ r-xr-x. 13 root root 4096 Jun 22 19:56 /usr/ t@localhost tmp]#
-r # 逆序显示
t@localhost ~]# ls / bin dev home lib64 mnt proc run srv test usr boot etc lib media opt root sbin sys tmp var [root@localhost ~]# ls -r / var tmp sys sbin root opt media lib etc boot usr test srv run proc mnt lib64 home dev bin [root@localhost ~]#
-R # 递归显示
[root@localhost tmp]# ls -R /tmp/ /tmp/: mylinux /tmp/mylinux: bin boot dev etc lib lib64 proc sbin sys tmp usr var /tmp/mylinux/bin: /tmp/mylinux/boot: grub /tmp/mylinux/boot/grub: /tmp/mylinux/dev: /tmp/mylinux/etc: rc.d sysconfig /tmp/mylinux/etc/rc.d: init.d /tmp/mylinux/etc/rc.d/init.d: /tmp/mylinux/etc/sysconfig: network-soripts
(3),touch :创建新的空文件或者修改文件的访问时间和修改时间为当前时间
touch #创建一个新的空文件
-c #知道文件路径不存在时不予创建新的文件
[root@localhost ~]# ls [root@localhost ~]# touch test.txt [root@localhost ~]# ls test.txt [root@localhost ~]# cat test.txt [root@localhost ~]#
-a #修改文件的访问时间
[root@localhost ~]# stat test.txt File: ‘test.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 73007616 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2017-07-09 04:22:05.044609937 -0400 Modify: 2017-07-09 04:20:21.910628548 -0400 Change: 2017-07-09 04:22:05.044609937 -0400 Birth: - [root@localhost ~]#
-m #修改文件的修改时间
[root@localhost ~]# stat test.txt File: ‘test.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 73007616 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2017-07-09 04:22:05.044609937 -0400 Modify: 2017-07-09 04:20:21.910628548 -0400 Change: 2017-07-09 04:22:05.044609937 -0400 Birth: - [root@localhost ~]# touch -m test.txt [root@localhost ~]# stat test.txt File: ‘test.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 73007616 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2017-07-09 04:22:05.044609937 -0400 Modify: 2017-07-09 04:22:41.660248300 -0400 Change: 2017-07-09 04:22:41.660248300 -0400 Birth: - [root@localhost ~]#
-t STAMP #修改文件的指定时时间,改参数是修改修改时间的地址
(4),mkdir :建立新目录
mkdir #创建新目录
[root@localhost ~]# ls test.txt text [root@localhost ~]# mkdir test [root@localhost ~]# ls test test.txt text [root@localhost ~]# -p #创建递归目录, 可一次创建多层目录 [root@localhost ~]# rm -rf * [root@localhost ~]# ls [root@localhost ~]# [root@localhost ~]# [root@localhost ~]# [root@localhost ~]# mkdir -p ./a/b/c/d/e/f [root@localhost ~]# tree . └── a └── b └── c └── d └── e └── f 6 directories, 0 files [root@localhost ~]# ^C [root@localhost ~]#
-m #指定创建文件的权限
[root@localhost ~]# mkdir -m 222 test [root@localhost ~]# ll total 0 drwxr-xr-x. 3 root root 14 Jul 9 04:34 a d-w--w--w-. 2 root root 6 Jul 9 04:36 test [root@localhost ~]#
(5),cp :复制命令
cp 用法格式
~]# cp [-adfilprsu] 源文件(source) 目的文件(destination) ~]# cp [options] source1 source2 source3 .... directory
-a :相当于 -pdr 的意思,用于实现归档
[root@localhost ~]# cp -a /etc/ /tmp/ [root@localhost ~]# ls /tmp/etc/ abrt gssproxy profile adjtime hba.conf profile.d aliases highlight protocols aliases.db host.conf pulse alsa hostname purple alternatives hosts python amanda hosts.allow qemu-ga anacrontab hosts.deny qemu-kvm asound.conf hp radvd.conf at.deny idmapd.conf rc0.d at-spi2 init.d rc1.d audisp inittab rc2.d audit inputrc rc3.d autofs.conf ipa rc4.d autofs_ldap_auth.conf iproute2 rc5.d auto.master ipsec.conf rc6.d
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其他疑问时,不会询问使用者,而强制复制;
-i :若目的文件(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结文件建立,而非复制文件本身;
-p :连同文件的属性一起复制过去,而非使用默认属性;
-r :递归持续复制,用于目录的复制行为;
[root@localhost ~]# cp -r abc/ /tmp/ [root@localhost ~]# tree /tmp/abc /tmp/abc ├── abc.txt └── abc.txtls 0 directories, 2 files [root@localhost ~]# tree abc/ abc/ ├── abc.txt └── abc.txtls 0 directories, 2 files [root@localhost ~]#
(6),mv :移动文件
-f #force 强制的意思,强制直接移动而不询问;
-i #若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u #若目标文件已经存在,且 source 比较新,才会更新 (update)
移动文件
[root@localhost ~]# mv abc.txt /tmp/ [root@localhost ~]# ls /tmp/ abc.txt [root@localhost ~]# ls a [root@localhost ~]#
文件改名
[root@localhost tmp]# ls abc.txt [root@localhost tmp]# mv abc.txt test.txt [root@localhost tmp]# ls test.txt [root@localhost tmp]#
(7),rm :删除文件
-f #就是 force 的意思,强制移除;
[root@localhost tmp]# touch abc.txt [root@localhost tmp]# ls abc.txt [root@localhost tmp]# rm -f abc.txt [root@localhost tmp]# mkdir test [root@localhost tmp]# rm -rf test/ [root@localhost tmp]# ls [root@localhost tmp]#
-i #互动模式,在删除前会询问使用者是否动作
[root@localhost tmp]# rm -i abc.txt rm: remove regular empty file ‘abc.txt’? n [root@localhost tmp]# ls abc.txt [root@localhost tmp]# rm -i abc.txt rm: remove regular empty file ‘abc.txt’? y [root@localhost tmp]# ls [root@localhost tmp]#
-r #递归删除!最常用在目录的删除了
[root@localhost tmp]# tree . └── a └── b └── c └── d └── e └── f 6 directories, 0 files [root@localhost tmp]# rm -r a/ rm: descend into directory ‘a/’? y rm: descend into directory ‘a/b’? y rm: descend into directory ‘a/b/c’? y rm: descend into directory ‘a/b/c/d’? y rm: descend into directory ‘a/b/c/d/e’? y rm: remove directory ‘a/b/c/d/e/f’? y rm: remove directory ‘a/b/c/d/e’? y rm: remove directory ‘a/b/c/d’? y rm: remove directory ‘a/b/c’? y rm: remove directory ‘a/b’? y rm: remove directory ‘a/’? y [root@localhost tmp]# y failed to load config file: No such file or directory bash: y: command not found... [root@localhost tmp]# ls [root@localhost tmp]#
(8),rmdir :仅可以删除空目录
[root@localhost ~]# tree a/ a/ └── b └── c └── d └── e └── f 5 directories, 0 files [root@localhost ~]# rmdir a/ rmdir: failed to remove ‘a/’: Directory not empty [root@localhost ~]# rmdir a/b/c/d/e/f [root@localhost ~]# tree a/ a/ └── b └── c └── d └── e 4 directories, 0 files [root@localhost ~]#
-p #删除上级空目录
[root@localhost ~]# tree . ├── a │ └── b │ └── c │ └── d │ └── e └── test 6 directories, 0 files [root@localhost ~]# rmdir -p a/b/c/d/e/ [root@localhost ~]# ls test [root@localhost ~]#
(9),pwd :显示当前的所工作的路径
pwd #查看当前所在的路径
[root@localhost Desktop]# pwd /home/danry/Desktop [root@localhost Desktop]#
-P #显当前所在位置的完整的路径
[root@localhost mail]# pwd -P /var/spool/mail [root@localhost mail]# ls -l /var/mail lrwxrwxrwx. 1 root root 10 Jun 22 19:56 /var/mail -> spool/mail [root@localhost mail]# (10),tree
第二题: bash的工作特性之命令执行状态的返还值和命令行展开所涉及到的内容及示例演示。
命令或程序的返还值:
命令执行状态返回值范围:0-255
其中0代表命令执行结果的正确,1-255代表命令执行结果的错误
[root@localhost tmp]# ls [root@localhost tmp]# echo $? 0 [root@localhost tmp]# asdf failed to load config file: No such file or directory bash: asdf: command not found... [root@localhost tmp]# echo $? 127 [root@localhost tmp]#
命令行展开;
以某些bash能够解释的符号来代替命令中的某些参数。
~:展开为用户的家目录;
例:切换至家目录
cd ~;pwd
/root
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径;
例:在/tmp/d目录下创建f1,f2,f3三个文件
ttouch /tmp/d/f{1,2,3}
[root@localhost tmp]# touch /tmp/d/f{1,2,3} [root@localhost tmp]# tree . └── d ├── f1 ├── f2 └── f3 1 directory, 3 files [root@localhost tmp]#
第三题:请使用一下命令行展开功能来完成一下联系:
(1)、创建/tmp目录下的: a_c,a_d,b_c,b_d
mkdir -v /tmp/{a,b}_{c,d}
[root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d} mkdir: created directory ‘/tmp/a_c’ mkdir: created directory ‘/tmp/a_d’ mkdir: created directory ‘/tmp/b_c’ mkdir: created directory ‘/tmp/b_d’ [root@localhost ~]# tree /tmp/ /tmp/ ├── a_c ├── a_d ├── b_c └── b_d 4 directories, 0 files [root@localhost ~]#
(2)、创建、tmp/mylinux目录下的:
mylinux ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-soripts ├── lib │ └── modiles ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── log ├── look └── run
mkdir -p
/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}
[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}} [root@localhost ~]# tree /tmp/ /tmp/ └── mylinux ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-soripts ├── lib │ └── modiles ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── log ├── look └── run 25 directories, 0 files [root@localhost ~]#
第四题:文件的数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
元数据包括:文件的大小,权限,属主属组,时间戳,inode等属性。
stat #查看元数据信息
[root@localhost tmp]# stat d/f1 File: ‘d/f1’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 170 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ UNKNOWN) Gid: ( 0/ UNKNOWN) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2017-07-09 10:03:13.648705432 +0000 Modify: 2017-07-09 10:03:13.648705432 +0000 Change: 2017-07-09 10:03:13.648705432 +0000 Birth: - [root@localhost tmp]#
access time:访问时间,atime,即:通过cat,more等读取其内容。
modify time:修改时间,mtime,即:改变文件内容。
change time:改变时间,ctime,即:元数据发生改变。
原创文章,作者:N27_Danry,如若转载,请注明出处:http://www.178linux.com/79627
评论列表(1条)
不错,非常认真,再接再励。