一、Linux上的文件管理类命令都有哪些,其经常使用的使用方法及其相关示例演示。node
答:文件管理类命令有,cp,mv,rm linux
1,cpbash
命令功能:将一个或多个源文件或目录复制到指定的目标文件或目录ide
命令格式:oop
cp [OPTION]... [-T] SOURCE DEST //cp [选项]…[-T]源目的spa
cp [OPTION]... SOURCE... DIRECTORY // cp [选项]…源…目录命令行
cp [OPTION]... -t DIRECTORY SOURCE... // cp [选项]…-t 目录 源…递归
经常使用选项:ip
-i:交互式复制,即覆盖以前提醒用户确认it
-f:强制覆盖目标文件
-r:递归复制目录(大写R也是这个功能)
-d:--no-dereference --preserv=links 复制符号连接文件自己,而非其指向的源文件
-a:归档,至关于-dR --preserve=all,archive,用于实现归档
2, mv
命令功能:为文件或目录更名,或将文件或目录移动到其它位置
命令格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
经常使用选项:
-i:交互式
-f:force强制覆盖,不提示
-v:显示移动过程
-u:若目标文件已经存在,且 source 比较新,才会更新(update)
-b:若需覆盖文件,则覆盖前先行备份
-t:即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的状况,此时目标目录在前,源文件在后
3,rm
命令功能:删除一个目录中的一个或多个文件或目录
命令格式:rm [OPTION]... FILE...
命令选项:
-i:interactive交互式
-f:force强制删除
-r:recursive递归删除
删除目录:rm -rf /路径/目录
二、bash的工做特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示.
答:bash命令执行完成后会有一个返回值,保存在$?中,若是正常执行,返回0,错误则返回值为1-255之间的数字。当执行命令后,执行echo $?查看。
如:
[root@localhost tmp]# ls -l (输入一个正确的命令查看当前目录) total 16 drwxr-xr-x. 2 root root 4096 Aug 7 01:44 a_c drwxr-xr-x. 2 root root 4096 Aug 7 01:44 a_d drwxr-xr-x. 2 root root 4096 Aug 7 01:44 b_c drwxr-xr-x. 2 root root 4096 Aug 7 01:44 b_d [root@localhost tmp]# echo $? (查看,下面显示0) 0 [root@localhost tmp]#
[root@localhost tmp]# lls -l (输入的错误命令) -bash: lls: command not found [root@localhost tmp]# echo $? (查看,下面显示127的错误返回值) 127 [root@localhost tmp]#
三、请使用命令行展开功能来完成如下练习:
(1)、建立/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost tmp]# mkdir /tmp/{a,b}_{c,d} [root@localhost tmp]# ll total 16 drwxr-xr-x. 2 root root 4096 Aug 7 01:44 a_c drwxr-xr-x. 2 root root 4096 Aug 7 01:44 a_d drwxr-xr-x. 2 root root 4096 Aug 7 01:44 b_c drwxr-xr-x. 2 root root 4096 Aug 7 01:44 b_d [root@localhost tmp]#
(2)、建立/tmp/mylinux目录下的:
mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
答:
[root@localhost tmp]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run} [root@localhost tmp]# tree /tmp/mylinux /tmp/mylinux ├── bin ├── boot │ └── grub ├── 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 [root@localhost tmp]#
四、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
答:(1)使用stat查看
[root@localhost tmp]# stat passwd File: `passwd' Size: 1246 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 411220 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-07 00:35:55.925091741 -0400 Modify: 2016-08-07 00:35:55.925091741 -0400 Change: 2016-08-07 00:35:55.925091741 -0400 [root@localhost tmp]#
(2)可使用touch修改时间戳,
touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)
example:
touch file1.txt 更新file1.txt的存取和修改时间
touch -c file1.txt 若是file1.txt不存在,不建立文件
touch -r ref_file file1.txt 更新file1.txt的时间戳和ref+file相同
-a
修改文件 file 的存取时间.
-c
不建立文件 file.
-m
修改文件 file 的修改时间
-r ref_file
将参照文件 ref_file 相应的时间戳记的数值做为指定文件 file 时间戳记的新值.
-t time
使用指定的时间值 time 做为指定文件 file 相应时间戳记的新值。
五、如何定义一个命令的别名,如何在命令中引用另外一个命令的执行结果?
答: 1,使用alias命令
例如:[root@localhost tmp]# alias if='ifconfig'
[root@localhost tmp]# alias if='ifconfig' [root@localhost tmp]# if eth0 Link encap:Ethernet HWaddr 00:0C:29:29:BF:88 inet addr:192.168.2.55 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe29:bf88/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1617 errors:0 dropped:0 overruns:0 frame:0 TX packets:1089 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:146643 (143.2 KiB) TX bytes:163275 (159.4 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [root@localhost tmp]#
2,命令中引用另外一个命令,可以使用管道符“|”来实现
上面已设置ifconfig别名,经过管道符把来网卡信息传递给head命令,经过head -3来显示前3行
[root@localhost tmp]# if |head -3 eth0 Link encap:Ethernet HWaddr 00:0C:29:29:BF:88 inet addr:192.168.2.55 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe29:bf88/64 Scope:Link [root@localhost tmp]#
六、显示/var目录下全部以l开头,以一个小写字母结尾,且中间至少出现一位数字(能够有其它字符)的文件或目录。
答:
[root@localhost var]# ls -d /var/l*[0-9]*[[:lower:]] /var/ltest8test [root@localhost var]#
七、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
答:
[root@localhost etc]# ls /etc/[0-9]*[^0-9] /etc/12abc [root@localhost etc]#
八、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
答:
[root@localhost etc]# ls -d /etc/[^[:alpha:]][[:alpha:]]* /etc/1test
九、在/tmp目录下建立以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。
答:
[root@localhost tmp]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"` [root@localhost tmp]# ll |grep tfile -rw-r--r--. 1 root root 0 Aug 7 01:14 tfile-2016-08-07-01-14-34 [root@localhost tmp]#
十、复制/etc目录下全部以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
若是没有mytest1这个目录,须要先手动建立这个目录
[root@localhost tmp]# cp -a /etc/p*[^0-9] /tmp/mytest1
十一、复制/etc目录下全部以.d结尾的文件或目录至/tmp/mytest2目录中。
若是没有mytest2这个目录,须要先手动建立这个目录
[root@localhost tmp]# cp -a /etc/*.d /tmp/mytest2
十二、复制/etc/目录下全部以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
若是没有mytest3这个目录,须要先手动建立这个目录
[root@localhost tmp]# cp -a /etc/[l,m,n]*.conf /tmp/mytest3