1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
長用的文件管理類命令有cp(復制),mv(移動),rm(刪除)。接下來我將為大家一一講解。
復制命令:cp
在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:屬主屬組 timetamp:時間戳 links:鏈接屬性 xattr:擴展屬性 all:安全 -p:保留權限。相當于--preserv=mode,ownership,timetamp -v:--verbose -f:--force 示例: [root@localhost ~]# cp /etc/passwd /tmp/jds [root@localhost ~]# cat /tmp/jds root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin
移動文件命令:mv:move
命令格式: mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE.. 命令參數: -i:交互式 -f:強制 示例: [root@localhost etc]# mkdir qq [root@localhost etc]# touch /etc/qq/ww [root@localhost etc]# ls /etc/qq/ ww [root@localhost etc]# mv /etc/qq/ww /tmp/jds mv: overwrite `/tmp/jds'? y [root@localhost etc]# cat /tmp/jds [root@localhost etc]#
刪除命令:rm:remove
命令格式: rm [OPTION]... FILE... 命令參數: -i:交互式 -f:強制刪除 -r:遞歸 示例: [root@localhost etc]# rm /tmp/jds rm: remove regular empty file `/tmp/jds'? y [root@localhost etc]# cat /tmp/jds cat: /tmp/jds: No such file or directory
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
(1)命令執行的結果狀態有2個:成功|失敗
bash使用特殊變量$?保存最近一條命令的執行狀態結果:
echo $?
0:成功
1-255:失敗
[root@localhost ~]# pwd /root [root@localhost ~]# echo $? 0 [root@localhost ~]# pwdd -bash: pwdd: command not found [root@localhost ~]# echo $? 127
(2)命令行展開:
~:展開為用戶的主目錄
~ USERNAME:展開為指定用戶的主目錄
{ }:可承載一個一逗號分隔的列表,并將其展開為多個路徑
/tmp/{a,b}=/tmp/a,/tmp/b /tmp/{tom,jerry}/hi=/tmp/tom/hi,/tmp/jerry/hi
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@localhost ~]# mkdir /tmp/{a,b}_{c,d} [root@localhost ~]# ls /tmp/ a_c b_c orbit-gdm pulse-6SgsiL8VHsxF yum.log a_d b_d pulse-5VZguu0IAHWG virtual-root.cFYgyD
(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@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grup,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@localhost ~]# tree /tmp/mylinux/ /tmp/mylinux/ ├── bin ├── boot │ └── grup ├── 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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
access、modify、change
三個時間戳: access time:訪問時間,簡寫為atime,讀取文件內容 modify time:修改時間,mtime,改變文件內容(數據) change time:改變時間,ctime,元數據發生改變 查看文件狀態: stat /PATH/TO/SIOMEFILE:獲取指定文件的元數據; [root@localhost ~]# stat /etc/passwd File: `/etc/passwd' Size: 1613 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 926642 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-17 23:04:59.413525897 +0800 Modify: 2016-07-17 23:04:59.410525897 +0800 Change: 2016-07-17 23:04:59.410525897 +0800
touch命令可用于修改時間戳:
命令格式: touch [OPTION]... FILE... -a:only atime -m:only mtime -t STAMP:自己指定時間戳 [[CC]YY]MMDDhhmm[.ss] -c:如果文件存在,則不予創建 示例: [root@localhost ~]# stat /etc/passwd File: `/etc/passwd' Size: 1613 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 926642 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-18 07:28:01.096612108 +0800 Modify: 2016-07-18 07:27:50.806600257 +0800 Change: 2016-07-18 07:27:50.806600257 +0800 [root@localhost ~]# touch -a -t 201607172340.00 /etc/passwd [root@localhost ~]# stat /etc/passwd File: `/etc/passwd' Size: 1613 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 926642 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-17 23:40:00.000000000 +0800 Modify: 2016-07-18 07:27:50.806600257 +0800 Change: 2016-07-18 07:38:19.644599221 +0800
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名(alias)
(1)alias
顯示當前shell進程所有的命令別名;
(2)alias NAME='VALUE'
定義別名NAME,其相當于至執行命令VALUE;
[root@localhost ~]# alias jc='stat' [root@localhost ~]# source .bashrc [root@localhost ~]# js jds -bash: js: command not found [root@localhost ~]# jc jds File: `jds' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 3145889 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-18 07:51:18.174599013 +0800 Modify: 2016-07-18 07:34:14.035593515 +0800 Change: 2016-07-18 07:34:14.035593515 +0800
注意:在命令行中定義的別名,僅在當前shell進程有效;如果想永久有效,要定義在配置文件中。
僅對當前用戶有效:nano~/.bashrc 對所有用戶有效:nano /etc/bashrc
Note:編輯配置給出的新配置不會立即生效;
bash進程重新讀取配置文件:
source /PATH/TO/CONFIG_FILE ./PATH/TO/CONFIG_FILE(source可以簡寫成.)
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost ~]# ls -d /var/l*[0-9]*[[:lower:]] /var/l22r /var/l22t
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost ~]# ls -d /etc/[0-9]*[^[:digit:]] /etc/22a /etc/5cd
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]* /etc/5cd
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost ~]# touch /tmp/tfile-`date +%F-%H-%M-%S` [root@localhost ~]# ls /tmp/tfile2016-07-18-08-59-07 /tmp/tfile2016-07-18-08-59-07
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost ~]# cp /etc/p*[^[:digit:]] /tmp/mytest1 cp: omitting directory `/etc/pam.d' cp: omitting directory `/etc/pango' cp: omitting directory `/etc/pcmcia' cp: omitting directory `/etc/pki' cp: omitting directory `/etc/plymouth' cp: omitting directory `/etc/pm' cp: omitting directory `/etc/popt.d' cp: omitting directory `/etc/portreserve' cp: omitting directory `/etc/postfix' cp: omitting directory `/etc/ppp' cp: omitting directory `/etc/prelink.conf.d' cp: omitting directory `/etc/profile.d' cp: omitting directory `/etc/pulse' cp: omitting directory `/etc/purple'
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# mkdir /tmp/mytest2 [root@localhost ~]# cp -d /etc/*.d /tmp/mytest2/ cp: omitting directory `/etc/bash_completion.d' cp: omitting directory `/etc/chkconfig.d' cp: omitting directory `/etc/cron.d' cp: omitting directory `/etc/depmod.d' cp: omitting directory `/etc/dnsmasq.d' cp: omitting directory `/etc/dracut.conf.d' cp: omitting directory `/etc/event.d' cp: omitting directory `/etc/latrace.d' cp: omitting directory `/etc/ld.so.conf.d' cp: omitting directory `/etc/logrotate.d' cp: omitting directory `/etc/lsb-release.d' cp: omitting directory `/etc/makedev.d' cp: omitting directory `/etc/modprobe.d' cp: omitting directory `/etc/oddjobd.conf.d'
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# ls /etc/[lmnp]*.conf /etc/latrace.conf /etc/libuser.conf /etc/mke2fs.conf /etc/nsswitch.conf /etc/pm-utils-hd-apm-restore.conf /etc/ld.so.conf /etc/logrotate.conf /etc/mtools.conf /etc/ntp.conf /etc/pnm2ppa.conf /etc/libaudit.conf /etc/ltrace.conf /etc/nfsmount.conf /etc/pbm2ppa.conf /etc/prelink.conf [root@localhost ~]# cp /etc/[lmnp]*.conf /tmp/mytest3/ [root@localhost ~]# ls /tmp/mytest3/ latrace.conf libuser.conf mke2fs.conf nsswitch.conf pm-utils-hd-apm-restore.conf ld.so.conf logrotate.conf mtools.conf ntp.conf pnm2ppa.conf libaudit.conf ltrace.conf nfsmount.conf pbm2ppa.conf prelink.conf
原創文章,作者:Net21_Preferred,如若轉載,請注明出處:http://www.www58058.com/23875
寫的很好,排版也很棒,加油