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" 大?。?062 塊: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" 大?。?062 塊: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.www58058.com/24130
寫的很好,排版也很漂亮,加油