一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
文件管理命令:cp,mv,rm
1、cp命令
功能说明:复制copy
语法格式:
单源复制: cp [OPTION]… [-T] SOURCE DEST
多源复制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
单源复制:如果DEST不存在,则事先创建此文件,并复制源文件的数据流到DEST中;
如果DEST存在:
如果DEST是非目录文件,则覆盖目标文件;
如果DEST是目录文件,则现在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
常用参数:
-i:交互式复制,即覆盖之前提醒用户确认
-f:强制覆盖目录文件
-r,-R:递归复制目录
-d:复制符号链接文件本身,而非其指向的源文件
-a:-dR –preserve=all,archive,用于实现归档
–preserve=
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
示例:
[root@joylin test]# cp /tmp/passwd ./ [root@joylin test]# ll passwd -rw-r--r--. 1 root root 2229 2月 16 16:05 passwd [root@joylin test]# cp -p /tmp/passwd ./passwd2 [root@joylin test]# ll /tmp/passwd ./passwd* -rw-r--r--. 1 root root 2229 2月 16 16:05 ./passwd -rw-r--r--. 1 root root 2229 2月 16 15:59 ./passwd2 -rw-r--r--. 1 root root 2229 2月 16 15:59 /tmp/passwd [root@joylin test]# cp /etc/passwd /test/ [root@joylin test]# ln -s ./passwd /tmp/passwd_slink [root@joylin test]# ln ./passwd /tmp/passwd_hlink [root@joylin test]# cp /etc/passwd /tmp/ [root@joylin test]# ll /tmp/passwd* -rw-r--r--. 1 root root 2229 2月 16 15:59 /tmp/passwd -rw-r--r--. 2 root root 2229 2月 16 15:58 /tmp/passwd_hlink lrwxrwxrwx. 1 root root 8 2月 16 15:58 /tmp/passwd_slink -> ./passwd [root@joylin test]# cp /tmp/passwd_slink ./ -f [root@joylin test]# ll passwd -rw-r--r--. 2 root root 2229 2月 16 15:58 passwd [root@joylin test]# cp -d /tmp/passwd_slink ./passwd_slink2 [root@joylin test]# ll passwd -rw-r--r--. 2 root root 2229 2月 16 15:58 passwd [root@joylin test]# ll passwd* -rw-r--r--. 2 root root 2229 2月 16 15:58 passwd -rw-r--r--. 1 root root 2229 2月 16 16:02 passwd_slink lrwxrwxrwx. 1 root root 8 2月 16 16:02 passwd_slink2 -> ./passwd
2、mv命令
功能说明:移动或重命名文件 move (rename) files
语法格式:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i:交互式
-f:force
示例:
[root@joylin test]# mv ./passwd3 /tmp/ #移动文件 [root@joylin test]# touch passwd3 [root@joylin test]# mv ./passwd3 /tmp/ mv:是否覆盖"/tmp/passwd3"? C [root@joylin test]# mv ./passwd3 /tmp/ -f [root@joylin test]# ll -d /tmp/11b/ #移动目录 drwxr-xr-x. 2 root root 6 2月 12 16:16 /tmp/11b/ [root@joylin test]# mv /tmp/11b/ /test/ [root@joylin test]# ls -d /test/11b/ /test/11b/ [root@joylin test]# mv /tmp/passwd2 /tmp/passwd #重命名文件 [root@joylin test]# ll /tmp/passwd -rw-r--r--. 1 root root 2229 2月 16 15:59 /tmp/passwd [root@joylin test]# mv 11b/ 1111b #重命名目录 [root@joylin test]# ll -d 1111b/ drwxr-xr-x. 2 root root 6 2月 12 16:16 1111b/
3、rm命令
功能说明:删除文件或目录remove files or directories
语法格式:rm [OPTION]… FILE…
常用参数:
常用选项:
-i:interactive 交互式
-f:force 强制删除
-r:recursive 递归删除
删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf /*
注意:所有不用的文件建议不要直接删除,而是移动至某个专用的目录(模拟回收站)
示例:
[root@joylin test]# touch rm.txt [root@joylin test]# rm rm.txt rm:是否删除普通空文件 "rm.txt"?n [root@joylin test]# touch rm.txt -f [root@joylin test]# mkdir software [root@joylin test]# rm ./software/ rm: 无法删除"./software/": 是一个目录 [root@joylin test]# rm -rf ./software/
二、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
命令执行的状态结果:
bash通过状态返回值来输出此结果
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
命令正常执行时,有的还回有命令返回值;
根据命令及其功能不同,结果各不相同;
示例:
[root@joylin ~]# useradd gentoo [root@joylin ~]# echo $? 0 [root@joylin ~]# useradd gentoo useradd:用户“gentoo”已存在 [root@joylin ~]# echo $? 9 [root@joylin ~]# lss bash: lss: 未找到命令... 相似命令是: 'ls' [root@joylin ~]# echo $? 127
三、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
演示:
[root@joylin ~]# touch /tmp/{a_c,a_d,b_c,b_d} [root@joylin ~]# ls -l /tmp/a_* -rw-r--r--. 1 root root 0 2月 21 13:53 /tmp/a_c -rw-r--r--. 1 root root 0 2月 21 13:53 /tmp/a_d [root@joylin ~]# ls -l /tmp/b_* -rw-r--r--. 1 root root 0 2月 21 13:53 /tmp/b_c -rw-r--r--. 1 root root 0 2月 21 13:53 /tmp/b_d
(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@joylin ~]# mkdir -p /tmp/mylinux/{bin,boot,dev,etc,lib,lib64,proc,sbin,sys,tmp,usr,var} [root@joylin ~]# ls /tmp/mylinux/ bin boot dev etc lib lib64 proc sbin sys tmp usr var [root@joylin ~]# mkdir -p /tmp/mylinux/boot/grub [root@joylin ~]# mkdir -p /tmp/mylinux/etc/rc.d/init.d [root@joylin ~]# mkdir -p /tmp/mylinux/etc/sysconfig/network-scripts [root@joylin ~]# mkdir -p /tmp/mylinux/lib/modules [root@joylin ~]# mkdir -p /tmp/mylinux/usr/local/{bin,sbin} [root@joylin ~]# mkdir -p /tmp/mylinux/var/{lock,log,run} [root@joylin ~]# tree -L 2 /tmp/mylinux/ /tmp/mylinux/ ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ └── sysconfig ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local └── var ├── lock ├── log └── run 20 directories, 0 files
四、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1、元数据信息包含:
File:文件名
Size:表示文件数据流大小
Blocks:数据块
IO Block:IO块
硬链接数:
Access:用户对文件访问的权限
Uid:属主
Gid:属组
Access time:访问文件时间
Modify time:更改时间
Change time:改动时间
2、查看文件的元数据:stat命令
功能说明:stat – display file or file system status
语法格式:stat [OPTION]… FILE…
文件:包括元数据(metadata)和数据(data)
时间戳:
Access: 2017-02-06 19:12:02.501490477 +0800
Modify: 2017-02-08 19:51:36.672097524 +0800
Change: 2017-02-08 19:51:36.672097524 +0800
示例:
[root@joylin ~]# stat /test/ 1 1a 22 a2 aaa b ff 11 1_a 333 a333 aaaa bb passwd 1111b/ 1ab a aa a b BB rm.txt 122 1b A aA a,b cc software/ 133 1c a1 AA aBBB data [root@joylin ~]# stat /test/passwd 文件:"/test/passwd" 大小:2234 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode:100837381 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:default_t:s0 最近访问:2017-02-16 19:29:24.104960293 +0800 最近更改:2017-02-16 19:29:24.104960293 +0800 最近改动:2017-02-16 19:29:24.110960628 +0800 创建时间:-
3、修改文件时间戳:touch命令
功能说明:touch – change file timestamps
语法格式:touch [OPTION]… FILE…
-c:指定的文件路径不存在时不予创建
-a:仅修改access times
-m:仅修改modify times
-t STAM:[[CC]YY]MMDDhhmm[.ss]
示例:
[root@joylin ~]# touch -a -t 201701161900 /test/passwd [root@joylin ~]# stat /test/passwd 文件:"/test/passwd" 大小:2234 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode:100837381 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:default_t:s0 最近访问:2017-01-16 19:00:00.000000000 +0800 最近更改:2017-02-16 19:29:24.104960293 +0800 最近改动:2017-02-21 14:26:53.314521653 +0800 创建时间:- [root@joylin ~]# touch -m -t 201701161930 /test/passwd [root@joylin ~]# stat /test/passwd 文件:"/test/passwd" 大小:2234 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode:100837381 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:default_t:s0 最近访问:2017-01-16 19:00:00.000000000 +0800 最近更改:2017-01-16 19:30:00.000000000 +0800 最近改动:2017-02-21 14:28:03.580089027 +0800 创建时间:-
五、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
1、查看别名:alias
定义别名:alias 别名=‘COMMAND’
注意:仅对当前的shell有效
撤销别名:unalias 别名
示例:
[root@joylin ~]# alias ##查看别名 alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@joylin ~]# alias cl='clear' [root@joylin ~]# echo "alias cl='clear'" >>/etc/bashrc [root@joylin ~]# source /etc/bashrc [root@joylin ~]# alias |grep cl alias cl='clear' [root@joylin ~]# tail -1 /etc/bashrc alias cl='clear' [root@joylin ~]# unalias cl
2、引用命令的执行结果:
$(COMMAND)或`COMMAND`
示例:
[root@joylin ~]# which find /usr/bin/find [root@joylin ~]# ls -l `which find` -rwxr-xr-x. 1 root root 199200 11月 20 2015 /usr/bin/find [root@joylin ~]# ls -l $(which find) -rwxr-xr-x. 1 root root 199200 11月 20 2015 /usr/bin/find
六、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
演示:
[root@joylin test]# touch /var/1_a [root@joylin test]# ls -d /var/1?[a-z] /var/1_a [root@joylin test]# mkdir /var/11b [root@joylin test]# ls -d /var/1?[a-z] /var/11b /var/1_a [root@joylin test]# ls -d /var/1?[[:lower:]] /var/11b /var/1_a [root@joylin test]# ls /var/1?[[:lower:]] /var/1_a /var/11b:
七、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
演示:
[root@joylin test]# touch /etc/1ab [root@joylin test]# ls -d /etc/[0-9]*[^0-9] /etc/1ab 或者 [root@joylin test]# ls -d /etc/[[:digit:]]*[^[:digit:]] /etc/1ab
八、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
演示:
[root@joylin test]# ls -d /etc/[^a-zA-Z]* /etc/1ab
九、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
演示:
[root@joylin ~]# touch /tmp/tfile-$(date +%F-%H-%M-%S) [root@joylin ~]# ls /tmp/tfile-2017-02-21-14-46-34 /tmp/tfile-2017-02-21-14-46-34
十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
演示:
[root@joylin ~]# mkdir /tmp/mytest1 [root@joylin ~]# ls -d /etc/p*[^0-9] /etc/pam.d /etc/pki /etc/postfix /etc/profile.d /etc/passwd /etc/plymouth /etc/ppp /etc/protocols /etc/passwd- /etc/pm /etc/prelink.conf.d /etc/pulse /etc/pbm2ppa.conf /etc/pnm2ppa.conf /etc/printcap /etc/purple /etc/pinforc /etc/popt.d /etc/profile /etc/python [root@joylin ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/ [root@joylin ~]# ls -d /tmp/mytest1/ /tmp/mytest1/ [root@joylin ~]# ls /tmp/mytest1/ pam.d pinforc pnm2ppa.conf prelink.conf.d protocols passwd pki popt.d printcap pulse passwd- plymouth postfix profile purple pbm2ppa.conf pm ppp profile.d python
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
演示:
[root@joylin ~]# mkdir /tmp/mytest2 [root@joylin ~]# ls -d /etc/*.d /etc/auto.master.d /etc/ld.so.conf.d /etc/rc4.d /etc/bash_completion.d /etc/libibverbs.d /etc/rc5.d /etc/binfmt.d /etc/logrotate.d /etc/rc6.d /etc/cgconfig.d /etc/modprobe.d /etc/rc.d /etc/chkconfig.d /etc/modules-load.d /etc/request-key.d /etc/cron.d /etc/my.cnf.d /etc/rsyslog.d /etc/depmod.d /etc/oddjobd.conf.d /etc/rwtab.d /etc/dnsmasq.d /etc/pam.d /etc/sane.d /etc/dracut.conf.d /etc/popt.d /etc/setuptool.d /etc/exports.d /etc/prelink.conf.d /etc/statetab.d /etc/gdbinit.d /etc/profile.d /etc/sudoers.d /etc/grub.d /etc/rc0.d /etc/sysctl.d /etc/init.d /etc/rc1.d /etc/tmpfiles.d /etc/ipsec.d /etc/rc2.d /etc/xinetd.d /etc/krb5.conf.d /etc/rc3.d /etc/yum.repos.d [root@joylin ~]# ls -d /etc/*.d|wc -l 45 [root@joylin ~]# cp -r /etc/*.d /tmp/mytest2 [root@joylin ~]# ls -d /tmp/mytest2/*|wc -l 45
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
演示:
[root@joylin ~]# ls /etc/[lmn]*.conf /etc/ld.so.conf /etc/logrotate.conf /etc/nfsmount.conf /etc/libaudit.conf /etc/man_db.conf /etc/nsswitch.conf /etc/libuser.conf /etc/mke2fs.conf /etc/ntp.conf /etc/locale.conf /etc/mtools.conf /etc/numad.conf [root@joylin ~]# ls /etc/[lmn]*.conf|wc -l 12 [root@joylin ~]# mkdir /tmp/mytest3 [root@joylin ~]# cp /etc/[lmn]*.conf /tmp/mytest3/ [root@joylin ~]# ls /tmp/mytest3/* |wc -l 12
原创文章,作者:jaylin,如若转载,请注明出处:http://www.178linux.com/69663
评论列表(1条)
如果对于某一个命令参数无法描述的清楚,请大胆的用man