一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1、cat:用于连接文件并打印到标准输出设备上,常用来显示文件的内容
命令使用格式
cat [OPTION]… [FILE]…
2、more:以全屏的方式显示文本内容
命令使用格式
more [OPTIONS…] FILE…
-d: 显示翻页及退出提示
3、less:类似more使用,但less能向前向后翻页浏览
命令使用格式
less [OPTIONS…] FILE…
4、head:显示文件开头内容,默认显示前十行
命令使用格式
head [OPTION]… [FILE]…
-c #: 指定获取前#字节
-n #: 指定获取前#行
5、tail:显示文件尾部内容,默认显示末十行
命令使用格式
tail [OPTION]… [FILE]…
-c #: 指定获取后#字节
-n #: 指定获取后#行
-f: 跟踪显示文件新追加的内容;
6、复制命令cp
命令使用格式:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-i:交互式
-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR,–preserv=all
-d:–no-dereference –preserv=links
–preserv[=ATTR_LIST]保留源文件所选取的属性进行保留
mode: 权限————-
ownership: 属主属组—默认三个属性
timestamp: ————
links
xattr
context
all
-p: –preserv=mode,ownership,timestamp
-v: –verbose
-f: –force
7、mv:移动文件
命令使用格式
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i: 交互式
-f: 强制
8、rm:删除文件和目录
命令使用格式
rm [OPTION]… FILE…
常用选项:
-i: 交互式
-f: 强制删除(不会交互式)
-r: 递归
rm -rf (能删除目录以及其下面的文件)
二、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1、bash使用特殊变量$?保存最近一条命令的执行状态结果:
0:成功
1-255:失败
例如:
[root@Andder77 ~]# ls /var account crash db games lib lock mail opt run tmp yp cache cvs empty gdm local log nis preserve spool www [root@Andder77 ~]# echo $? 0 [root@Andder77 ~]# ls /vvar ls: 无法访问/vvar: 没有那个文件或目录 [root@Andder77 ~]# echo $? 2
2、命令行展开
~: 展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
例如
[root@localhost ~]# touch /tmp/test2.{1,2,3} [root@localhost ~]# ls /tmp | grep "^test2." test2.1 test2.2 test2.3
三、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost ~]# mkdir -pv /tmp/{a,b}_{c,d} mkdir: 已创建目录 "/tmp/a_c" mkdir: 已创建目录 "/tmp/a_d" mkdir: 已创建目录 "/tmp/b_c" mkdir: 已创建目录 "/tmp/b_d"
(2)、创建/tmp/mylinux目录下的:
[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts}, lib/modules,lib64,proc,sbin,sys.tmp,usr/lobal/{bin,sbin},var/{lock,log,run}} [root@localhost ~]# tree /tmp/mylinux//tmp/mylinux/ ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib│ └── modules ├── lib64 ├── proc ├── sbin ├── sys.tmp ├── usr │ └── lobal │ ├── bin │ └── sbin └── var ├── lock ├── log └── run23 directories, 0 files
四、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1、使用stat命令来查看文件的元数据
[root@localhost etc]# stat passwd File: ‘passwd’ Size: 1259 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 134995767 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:passwd_file_t:s0 Access: 2016-06-17 08:13:54.651633356 +0800 Modify: 2016-06-17 08:12:07.106634433 +0800 Change: 2016-06-17 08:12:07.106634433 +0800
2、元数据信息:
File:文件名
Size:文件大小
Blocks:文件所占块数量
IO Block:系统IO块大小
Device:文件所在设备ID
INode:节点号
Links:链向此文件的文件数量
Access:文件类型及其权限
Uid:文件的属主及其ID
Gid:文件的属组及其ID
Access:文件最近的访问时间
Modify:文件最近的修改时间
Change:文件最近的改变时间
3、使用touch命令修改文件的时间戳:
touch [OPTION]… FILE…
-a: only atime
-m: only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
例如改变/tmp/cptest1文件的访问时间戳
[root@localhost tmp]# touch -at201501010101.12 cptest1 [root@localhost tmp]# stat cptest1 File: ‘cptest1’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 457901 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2015-01-01 01:01:12.000000000 +0800 Modify: 2016-06-17 13:22:40.968447858 +0800 Change: 2016-06-17 14:02:31.978423918 +0800
五、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
[root@localhost ~]# alias test1="cd /etc/sysconfig/network-scripts" [root@localhost ~]# test=$(cut -d: -f1 /etc/passwd) [root@localhost ~]# echo $testroot bin daemon adm lp sync shutdown halt mail uucp operator games gopher ftp nobody dbus usbmuxd vcsa rpc rtkit avahi-autoipd abrt rpcuser nfsnobody haldaemon gdm ntp apache saslauth postfix pulse sshd tcpdump
六、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@localhost ~]# ls /var | grep "^l.*[0-9]\+.*[a-z]$"
七、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@localhost etc]# ls /etc | grep "^[0-9].*[^[:digit:]]$"
八、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@localhost etc]# ls /etc | grep "^[^[:alpha:]][[:alpha:]],*"
九、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost tmp]# touch /tmp/tfile-$(date +%F-%H-%M-%S)
十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@localhost ~]# find /etc -maxdepth 1 -name 'p*' -exec cp -r {} /tmp/mytest1/ \;
十一、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@localhost ~]# find /etc -maxdepth 1 -name '*.d' -exec cp -r {} /tmp/mytest2/ \;
十二、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@localhost ~]# find /etc -maxdepth 1 -name '[lmn]*.conf' -exec cp -r {} /tmp/mytest3/ \;
原创文章,作者:mouse015110,如若转载,请注明出处:http://www.178linux.com/18394
评论列表(1条)
写的很棒,排版也很好,最后几个题有过测试吗?