1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
目录管理类命令:
cd:变更目录
命令格式:cd [DIRECTORY]
pwd:显示当前目录的绝对路径
ls:显示文件或目录内容
命令格式:ls [OPTION]… [FILE]…
常用参数:
-a:显示所有内容(包含以.开头的隐藏文件)。
-l:以长格式显示文件夹内容。
-d:只显示目录名称,不显示目录下的内容。
-h:以人类易读的方式显示文件大小(如:4.0K)。
mkdir:创建目录
命令格式:mkdir [OPTION]…DIRECTORY…
常用参数:
-p:表示目录存在时不返回错误,不存在时,自动创建目录。
-v:显示创建过程的详细信息。
-m MODE:创建目录时直接指定权限。
rmdir:删除目录
命令格式:rmdir [OPTION]… DIRECTORY…
常用参数:
-v:显示执行过程。
tree:目录结构查看
常用参数:
-d:只显示目录。
-L level:指定显示的层级数据。
-P pattern:只显示指定pattern匹配到的路径。
文件管理类:
cp:复制命令
命令格式:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
常用参数:
-i:交互式
-r:递归复制目录及内部的所有内容。
-a:归档,相当于-dR –preserve=all
–preserve[=ATTR_LIST]
mode:权限
ownership:属主属组
timestamp:时间戳
links:符号链接
xattr:扩展属性
context:安全标签
all:上述所有属性
-d:表示不跟踪符号链接所指向的源文件–no-dereference –preserve=links
-p:保持原有文件的属性信息。
-f:强制覆盖
-v:显示执行过程
使用方法:
单源复制:cp [OPTION]… [-T] SOURCE DEST
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件;
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
多源复制:
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:错误;
如果DEST存在:
如果DEST是非目录文件:错误;
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;
mv:移动命令
命令格式:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用参数:
-i:交互式
-f:强制
rm:删除命令
命令格式:rm [OPTION]… FILE…
常用参数:
-i:交互式
-f:强制
-r:递归
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
命令执行结果状态用 $? 表示。
0:成功
1 – 255:失败
命令行展开:
~:展开为当前用户的主目录。
~USERNAME:展开为指定用户的主目录。
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径。
示例:
/tmp/{a,b} = /tmp/a,/tmp/b
/tmp/{tom,jerry}/h1 = /tmp/tom/h1,/tmp/jerry/h1
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@devops2 tmp]# touch /tmp/{a_c,a_d,b_c,b_d} [root@devops2 tmp]# ls a_c a_d b_c b_d
(2)、创建/tmp/mylinux目录下的:
[root@devops2 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@devops2 tmp]# 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 │ └── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件的元数据包括:文件大小,权限,块数,块大小,文件类型,所在磁盘编号,inode,关联文件数,时间戳信息。
可通过stat命令进行查看:
[root@devops2 tmp]# stat /tmp/mylinux/ File: `/tmp/mylinux/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 1835023 Links: 14 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2017-01-08 16:40:14.764841462 +0800 Modify: 2017-01-08 16:40:10.123180220 +0800 Change: 2017-01-08 16:40:10.123180220 +0800
access time:访问时间,atime,即:通过cat,more等读取其内容。
modify time:修改时间,mtime,即:改变文件内容。
change time:改变时间,ctime,即:元数据发生改变。
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
语法:alias new_name = 'old_name option'
[root@devops2 tmp]# alias grep='grep --color=auto' [root@devops2 tmp]# alias|grep grep alias grep='grep --color=auto'
注意:通过命令行定义的命令别名只对当前shell有效,如果想永久有效,需要定义在配置文件中,如:
仅对当前用户有效:~/.bashrc
对所有用户有效:/etc/bashrc
然后重新读取配置文件使别名生效:
source ~/.bashrc 或 source /etc/bashrc
引用其他命令执行结果
$(COMMAND) 或 `COMMAND`
[root@devops2 tmp]# currdir=`pwd` [root@devops2 tmp]# echo $currdir /tmp [root@devops2 tmp]# filelist=$(ls) [root@devops2 tmp]# echo $filelist a_c a_d b_c b_d mylinux
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@devops2 var]# ll -d /var/l*[[:digit:]]*[[:lower:]] drwxr-xr-x 2 root root 4096 Jan 8 17:36 /var/l012abc -rw-r--r-- 1 root root 0 Jan 8 17:39 /var/l9def
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@devops2 etc]# ll -d /etc/[[:digit:]]*[^[:digit:]] -rw-r--r-- 1 root root 0 Jan 8 17:45 /etc/1abc drwxr-xr-x 2 root root 4096 Jan 8 17:45 /etc/2def
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@devops2 etc]# ll -d /etc/[^[:alpha:]][[:alpha:]]* -rw-r--r-- 1 root root 0 Jan 8 17:45 /etc/1abc drwxr-xr-x 2 root root 4096 Jan 8 17:45 /etc/2def
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@devops2 tmp]# touch /tmp/file-$(date +%F-%H-%M-%S) [root@devops2 tmp]# ls /tmp/file-2017-01-08-18-03-48 /tmp/file-2017-01-08-18-03-48
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@devops2 tmp]# mkdir /tmp/mytest{1,2,3} [root@devops2 tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/ [root@devops2 tmp]# ls /tmp/mytest1/ pam.d pcmcia php.ini plymouth portreserve prelink.conf profile.d pango pear php.ini.bak pm postfix prelink.conf.d protocols passwd pear.conf pinforc pm-utils-hd-apm-restore.conf ppp printcap pulse passwd- php.d pki popt.d prelink.cache profile
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@devops2 tmp]# cp -r /etc/*.d /tmp/mytest2/ [root@devops2 tmp]# ls /tmp/mytest2/ bash_completion.d event.d makedev.d prelink.conf.d rc4.d rwtab.d cgconfig.d init.d modprobe.d profile.d rc5.d setuptool.d chkconfig.d latrace.d oddjobd.conf.d rc0.d rc6.d statetab.d cron.d ld.so.conf.d pam.d rc1.d rc.d sudoers.d depmod.d logrotate.d php.d rc2.d request-key.d xinetd.d dracut.conf.d lsb-release.d popt.d rc3.d rsyslog.d yum.repos.d
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@devops2 tmp]# cp /etc/{l,m,n}*.conf /tmp/mytest3 [root@devops2 tmp]# ls /tmp/mytest3/ latrace.conf libaudit.conf logrotate.conf mke2fs.conf nsswitch.conf numad.conf ld.so.conf libuser.conf ltrace.conf nfsmount.conf ntp.conf
原创文章,作者:N26-西安-方老喵,如若转载,请注明出处:http://www.178linux.com/66098
评论列表(1条)
延续了之前的品质,再接再厉。