1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
Linux下常见的文件管理命令有:touch、cp、mv、rm、cat等
touch
描述:创建一个空文件,或者更新时间的时间戳
[root@zabbix wanwan]# touch wanwan02 [root@zabbix wanwan]# ls -l wanwan02 -rw-r--r-- 1 root root 0 Jul 13 11:24 wanwan02 [root@zabbix wanwan]# du -sh wanwan02 0wanwan02 说明:新创建的文件wanwan02为空文件 查看文件时间戳: [root@zabbix wanwan]# stat wanwan02 File: ‘wanwan02’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 25h/37dInode: 627081291 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-13 11:24:45.095028777 +0800 Modify: 2016-07-13 11:24:45.095028777 +0800 Change: 2016-07-13 11:24:45.095028777 +0800 Birth: - 使用touch命令修改wanwan02的时间戳: [root@zabbix wanwan]# touch wanwan02 [root@zabbix wanwan]# stat wanwan02 File: ‘wanwan02’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 25h/37dInode: 627081291 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-13 11:25:27.058025219 +0800 Modify: 2016-07-13 11:25:27.058025219 +0800 Change: 2016-07-13 11:25:27.058025219 +0800 Birth: - 对比之前的时间戳,可以发现已经变化了
cp
描述:复制文件与目录
选项:-r 递归,复制子文件与子目录,一般复制目录时使用
[root@zabbix wanwan]# ls [root@zabbix wanwan]# cp /etc/passwd . [root@zabbix wanwan]# ls passwd [root@zabbix log]# cp -r /var/log/samba/ /tmp/ [root@zabbix log]# ls -ld /tmp/ drwxrwxrwt 19 root root 500 Jul 13 13:14 /tmp/ [root@zabbix log]# ls -l /tmp/ total 12 drwxr-xr-x 14 root root 280 Jul 5 13:27 mylinux -rw-r--r-- 1 root root 7315 Jul 12 23:30 mysql_bak.log drwxr-xr-x 14 root root 400 Jul 13 10:54 mytest1 drwxr-xr-x 33 root root 820 Jul 13 10:56 mytest2 drwxr-xr-x 2 root root 140 Jul 13 10:58 mytest3 -rw-r--r-- 1 root root 2629 Jul 5 16:28 passwd drwxr-xr-x 2 root root 40 Jun 27 17:26 python-build.20160627172622.20789 drwx------ 4 root root 2380 Jul 13 13:14 samba drwx------ 2 root root 60 Mar 17 12:52 ssh-0CeK7US8msI8 drwx------ 2 root root 60 May 3 17:15 ssh-cKDJ7FFBpQ4g drwx------ 2 root root 60 May 3 17:17 ssh-DY1nyXYKnMRR drwx------ 2 root root 60 May 5 09:11 ssh-Rte4UArLkDfW drwx------ 3 root root 60 May 27 09:23 systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt drwx------ 3 root root 60 May 3 14:30 systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD drwx------ 3 root root 60 May 27 09:05 systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24 -rw-r--r-- 1 root root 0 Jul 13 10:41 tfile-2016-07-13-10-41-40 -rw-r--r-- 1 root root 0 Jul 13 10:41 tfile-2016-07-13-10-41-49 drwxr-xr-x 2 root root 2020 Jul 5 16:55 var drwxr-xr-x 2 root root 60 Jul 13 13:13 wanwan drwxr-xr-x 3 root root 60 Jun 27 13:35 zhang3
rm
描述:删除文件或目录
选项:-f 不提示,强制删除
-i 删除前,提示是否删除
-r 删除目录以及目录下的所有文件
[root@zabbix tmp]# cd wanwan/ [root@zabbix wanwan]# ls passwd [root@zabbix wanwan]# rm passwd rm: remove regular file ‘passwd’? yes [root@zabbix wanwan]# ls [root@zabbix tmp]# cd wanwan/ [root@zabbix wanwan]# ls passwd [root@zabbix wanwan]# rm passwd rm: remove regular file ‘passwd’? yes [root@zabbix wanwan]# ls [root@zabbix wanwan]# cp /etc/sysconfig/network . [root@zabbix wanwan]# ls network [root@zabbix wanwan]# rm -rf network #删除文件前,没有任何提示 [root@zabbix wanwan]# ls
mv
描述:移动(重命名)文件或目录
[root@zabbix wanwan]# ls passwd [root@zabbix wanwan]# mv passwd passwd.org #将passwd改名为passwd.org [root@zabbix wanwan]# ls passwd.org [root@zabbix tmp]# mv tfile-2016-07-13-10-41-40 /wanwan/ #将/tmp目录下的tfile-2016-07-13-10-41-40剪切到/wanwan目录下 [root@zabbix tmp]# ls -l /wanwan/ total 410044 -rw-r--r-- 1 root root 254 Jun 22 14:21 adduser.sh -rw-r--r-- 1 root root 167 Jul 12 14:28 checkup.sh -rw-rw-r-- 1 root root 0 Jun 22 13:19 li4 -rw-r--r-- 1 root root 204101 Jun 27 10:43 li4.zip -rw-r--r-- 1 root root 157 Jun 22 15:57 ping.sh -rw-r--r-- 1 root root 209715200 Jun 27 10:42 test.iso -rw-r--r-- 1 root root 0 Jul 13 10:41 tfile-2016-07-13-10-41-40 -rw-r--r-- 1 root root 209940480 Jun 27 10:48 wanwan.tar.gz drwxr-xr-x 3 root root 29 Jun 27 10:45 zhang3 -rw-r--r-- 1 root root 10240 Jun 27 13:34 zhang3.tar
cat
描述:查看文件内容
选项:-b 显示行号,空白行不显示行号
-n 显示行号,包括空白行
[root@zabbix wanwan]# cat -n passwd|head -10 1root:x:0:0:root:/root:/bin/bash 2bin:x:1:1:bin:/bin:/sbin/nologin 3daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 5 6 7adm:x:3:4:adm:/var/adm:/sbin/nologin 8 9lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 10 [root@zabbix wanwan]# cat -b passwd|head -10 1root:x:0:0:root:/root:/bin/bash 2bin:x:1:1:bin:/bin:/sbin/nologin 3daemon:x:2:2:daemon:/sbin:/sbin/nologin 4adm:x:3:4:adm:/var/adm:/sbin/nologin 5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
a、键入的命令到底有没有执行成功呢?我们输入 echo $? 来查看该命令执行状态的返回值。返回值为 0,表示成功执行。
b、echo $?如果返回值为0,则表示上一条命令执行成功
c、如果返回值是1-255的任何值,表明上一条命令执行失败
[root@zabbix ~]# pwd /root [root@zabbix ~]# echo $? 0 说明:pwd这条命令是执行成功的 [root@zabbix ~]# pwdd -bash: pwdd: command not found [root@zabbix ~]# echo $? 127 说明:由于根本不存在pwdd命令,返回值非0,说明失败
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, 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
# mkdir -p /tmp/{a,b}_{c,d} # mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/networkscripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
元数据信息:用来描述一个文件的特征的系统数据,包括文件大小,inode数,连接数,访问权限,UID、GID以及三个时间戳,通常情况下,我们可以用stat命令来进行查看。
文件有三个时间戳,分别是:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
[root@localhost ~]# stat /etc/passwd File: '/etc/passwd' Size: 2062 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050dInode: 136839480 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:passwd_file_t:s0 Access: 2016-07-11 21:26:19.946999372 +0800 Modify: 2015-09-08 01:02:10.002179228 +0800 Change: 2015-09-08 01:02:10.002179228 +0800 Birth: - touch: -a只更改访问时间 -c, --no-create不创建任何文件 -m只更改修改时间 [root@localhost tmp]# stat passwd 文件:"passwd" 大小:2062 块:8 IO 块:4096 普通文件 设备:802h/2050dInode:7104 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:user_tmp_t:s0 最近访问:2016-07-12 15:53:50.400028573 +0800 最近更改:2016-07-12 15:53:50.400028573 +0800 最近改动:2016-07-12 15:53:50.400028573 +0800 创建时间:- [root@localhost tmp]# touch -a passwd [root@localhost tmp]# stat passwd 文件:"passwd" 大小:2062 块:8 IO 块:4096 普通文件 设备:802h/2050dInode:7104 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:user_tmp_t:s0 最近访问:2016-07-12 15:54:20.547714007 +0800 最近更改:2016-07-12 15:53:50.400028573 +0800 最近改动:2016-07-12 15:54:16.468621271 +0800 创建时间:- [root@localhost tmp]# touch -m passwd [root@localhost tmp]# file passwd passwd: ASCII text [root@localhost tmp]# stat passwd 文件:"passwd" 大小:2062 块:8 IO 块:4096 普通文件 设备:802h/2050dInode:7104 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:user_tmp_t:s0 最近访问:2016-07-12 15:54:49.465370687 +0800 最近更改:2016-07-12 15:54:47.218319686 +0800 最近改动:2016-07-12 15:54:47.218319686 +0800
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
a、临时生效:
[root@localhost ~]# alias cls='clear' [root@localhost ~]# alias cls alias cls='clear' [root@localhost ~]# cls [root@localhost ~]# echo $?
b、永久生效:
说明:永久生效, 写入/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile 四文件之一 [root@localhost ~]# echo "alias cls='clear'">>/etc/profile [root@localhost ~]# echo $? 0 [root@localhost ~]# source /etc/profile [root@localhost ~]# echo $? 0 命令中引用另一个命令的执行结果: [root@localhost ~]# echo "My directory is `pwd`" My directory is /root [root@localhost ~]# echo "My directory is $(pwd)" My directory is /root
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@localhost var]# ls -l 1*[0-9]*[^0-9] -rw-r--r--. 1 root root 0 7月 12 16:08 15wk -rw-r--r--. 1 root root 0 7月 12 16:08 188k
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
# ls -l /etc/[0-9]*[^0-9] 案例: [root@localhost tmp]# cd /etc/ [root@localhost etc]# touch 9wanw [root@localhost etc]# ls -l /etc/[0-9]*[^0-9] -rw-r--r--. 1 root root 0 7月 12 16:05 /etc/9wanw [root@localhost etc]# touch 8wan8 [root@localhost etc]# ls -l /etc/[0-9]*[^0-9] -rw-r--r--. 1 root root 0 7月 12 16:05 /etc/9wanw
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
# ls /etc/[^a-zA-Z][a-zA-Z]* [root@zabbix etc]# touch 1a11 2a3z [root@zabbix etc]# ls -l /etc/[^a-zA-Z][a-zA-Z]* -rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/1a11 -rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/2a3z
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
方法1: [root@zabbix tmp]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) 方法2: [root@zabbix tmp]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S` [root@zabbix tmp]# ls mylinux systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt mysql_bak.log systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD passwd systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24 python-build.20160627172622.20789 tfile-2016-07-13-10-41-40 ssh-0CeK7US8msI8 tfile-2016-07-13-10-41-49 ssh-cKDJ7FFBpQ4g var ssh-DY1nyXYKnMRR zhang3 ssh-Rte4UArLkDfW 说明:可以看到tfile开头的文件,就是我新创建的
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
# cp -rf /etc/p*[^0-9] /tmp/mytest1/
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@zabbix ~]# mkdir -p /tmp/mytest2 [root@zabbix ~]# cp -rf /etc/*.d /tmp/mytest2/ [root@zabbix ~]# ls /tmp/mytest2/ bash_completion.d exports.d modules-load.d rc0.d rc.d sysctl.d binfmt.d gdbinit.d my.cnf.d rc1.d request-key.d tmpfiles.d chkconfig.d grub.d pam.d rc2.d rsyslog.d xinetd.d cron.d init.d php.d rc3.d rwtab.d yum.repos.d depmod.d ld.so.conf.d popt.d rc4.d statetab.d dnsmasq.d logrotate.d prelink.conf.d rc5.d sudoers.d dracut.conf.d modprobe.d profile.d rc6.d supervisord.d
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@zabbix ~]# cp -rf /etc/[l,m,n]*.conf /tmp/mytest3/ [root@zabbix ~]# ls /tmp/mytest3/ man_db.conf mke2fs.conf mongod.conf nfsmount.conf nsswitch.conf
原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/24130
评论列表(1条)
写的很好,排版也很漂亮,加油