1、 Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
Linux 一切皆文件。個人理解 在linux下的命令操作都算是對文件操作
那么文件管理命令類命令可以分為下面幾類
目錄操作:
特殊目錄解釋: . 代表此層目錄;.. 代表上一層目錄;- 代表前一個目錄;~ 代表當前用戶的主文件夾 也可以稱為家目錄;
cd (change directory)切換目錄
例:
[root@localhost ~]# cd ~fool
表示 切換到fool這個用戶的家目錄下 即 /home/fool
[root@localhost fool]# cd ~
切回到自己的主文件夾,/root目錄下
[root@localhost ~]# cd
不加參數,表示切到自己的主目錄下 /root
[root@localhost ~]# cd ..
表示且到目前的上層目錄 即 /root 目錄
[root@localhost /]# cd –
/root
表示回到剛才的目錄 /root
[root@localhost ~]# cd /usr/share/zoneinfo/
使用絕對路徑
[root@localhost zoneinfo]# cd ../zsh
使用相對路徑(zsh 與zoneinfo 都是/usr/share/ 目錄下)
pwd (print working directory)顯示當前目錄;
[root@localhost mail]# pwd
/var/mail
[root@localhost mail]# pwd -P
/var/spool/mail
/var
[root@localhost mail]# ls -ld /var/mail
lrwxrwxrwx. 1 root root 10 9月 16 10:09 /var/mail -> spool/mail
注意 –P參數為大寫的P 大寫P 大寫P 好的,三遍
mkdir (make directory)新建一個新的目錄, -p 表示遞歸創建目錄
[root@localhost ~]# mkdir -p study1/study2/study3
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg study1
[root@localhost ~]# ls study1/
study2
[root@localhost ~]# ls study1/study2/
study3
-m 表示配置文件的權限
[root@localhost ~]# mkdir -m 700 study
[root@localhost ~]# ls -l
總用量 8
-rw——-. 1 root root 1851 9月 16 10:24 anaconda-ks.cfg
-rw——-. 1 root root 1899 9月 16 10:35 initial-setup-ks.cfg
drwx——. 2 root root 6 9月 21 22:36 study
drwxr-xr-x. 3 root root 19 9月 21 22:33 study1
注意:默認創建的文件屬性為755
rmdir 刪除一個”空”的目錄
這個命令… 有個參數-p 遞歸刪除目錄 必須都是空目錄;不好玩
介紹個好玩的命令 刪除目錄不管有沒有內容都可以刪除,
rm –rf 可以試試 溫馨提示 數據無價 提前備份
查看文件目錄
Ls (list)查看目錄與文件 這個太常用了
-a 列出全部文件,包括隱藏文件(開頭為.的文件);
-A列出全部文件,包括隱藏文件(不包括 . .. 這兩目錄)
-d 列出目錄本身
-l 列出長數據串,包括文件的屬性與權限等數據
[root@localhost ~]# ls -d /usr/bin/
/usr/bin/
[root@localhost ~]# ls -ld /usr/bin/
dr-xr-xr-x. 2 root root 45056 9月 16 10:19 /usr/bin/
復制、刪除、移動 操作
cp (copy) 復制文件或目錄
-a 保留源文件屬性復制;
-i 若目標文件已存在,覆蓋時先詢問用戶;
-r 遞歸持續復制;
[root@localhost ~]# ls -ld study1/study2/
drwxr-xr-x. 3 root root 19 9月 21 22:33 study1/study2/
[root@localhost ~]# cp -a study1/study2/ study
[root@localhost ~]# ls -ld study/study2
drwxr-xr-x. 3 root root 19 9月 21 22:33 study/study2
rm 移除文件或目錄
-f:force,忽略不存在的文件,不出現警告信息;
-i:交互模式,刪除前會詢問用戶是否操作;
-r:遞歸刪除。常用在目錄刪除;
[root@localhost /]# rm -i /usr/123.txt
rm:是否刪除普通文件 "/usr/123.txt"?y
[root@localhost /]# ls /usr
bin etc games include lib lib64 libexec local sbin share src tmp
[root@localhost /]# rm -f /usr/123.txt
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@localhost usr]# rm -r test1/test2/test3/
rm:是否刪除目錄 "test1/test2/test3/"?y
mv 一段文件與目錄,或更名
-f:force 如果目標文件已經存在,不會詢問而直接覆蓋;
-i:若目標文件存在,就詢問是否覆蓋;
-u:若目標文件存在,且源文件較新才更新;
[root@localhost usr]# mv -f test1/test2/123.txt movefile
[root@localhost usr]# ls movefile/
123.txt
[root@localhost usr]# cat movefile/123.txt
hello world ~!!!
[root@localhost usr]# mv -u test1/test2/123.txt movefile
mv:是否覆蓋"movefile/123.txt"? y
[root@localhost usr]# cat movefile/123.txt
hello
halo
haha
[root@localhost usr]# mv -i test1/test2/123.txt movefile
mv:是否覆蓋"movefile/123.txt"?
獲取路徑的文件名與目錄名稱
basename 獲取最后的文件名
[root@localhost study]# basename /usr/movefile/123.txt
123.txt
dirname 獲取目錄名
[root@localhost study]# dirname /usr/movefile/123.txt
/usr/movefile
文件內容查看
cat :concatenate
-n 打印并顯示行號,
[root@localhost study]# cat -n /usr/movefile/123.txt
1 hello
2
3 halo
4 haha
tac 反向查看
[root@localhost study]# tac /usr/movefile/123.txt
haha
halo
hello
‘
more 翻頁查看 空格:代表向下翻一頁;enter 向下滾動一行;/字符 查找該字符; :f 離開顯示處文件名以及目前顯示的行數; q 離開離開more,不在顯示該文件內容; b& ctrl+b 往回翻頁 只對文件有效。
head 取出前面幾行 默認前10行 head –n 文件
tail 取出后面幾行 tail [-n number] 文件
touch [OPTION]… FILE… 修改文件時間或創建新文件
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP [[CC]YY]MMDDhhmm[.ss]
which 尋找“執行文件”
Which –a command :將所有由path目錄中找到的命令均列出,而不只是列出第一個命令名稱
Whereis 尋找特定文件
-b 二進制格式文件
-m 只找在說明文件路徑下的文件
2、 bash 的執行命令狀態
[root@localhost study]# echo "hello world"
[root@localhost study]# echo $?
0
[root@localhost study]# echoi hello world
[root@localhost study]# echo $?
127
bash 命令行展開 :把命令行的給定的特殊符號自動替換為相應字符串的機制;
[root@localhost ~]# cd ~ study
[root@localhost ~]# pwd
/root
bash 其他特性:
命令別名: alias alias name=’command’ 生命周期:當前shell進程;
歷史命令: history 默認1000條 history –c 清空命令歷史
快捷件: ctrl+a 調至行首;ctrl+e 調至行尾;ctrl+k 刪除光標所在處到尾部;
ctrl+u 刪除行首至光標位置的內容;
命令補全: 唯一標識:tab補全;不能唯一標識:tab tab 列出; 沒有提示 表示錯誤
glob :文件名通配
*匹配任意多個字符;?匹配任意單個字符;[]匹配指定集合內的任意單個字符;
[^]匹配指定集合外的任意單個字符;
變量:
I/O 重定向和管道
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
(2)、創建/tmp/mylinux目錄下的:
[root@localhost /]# mkdir -p /tmp/{a_c, a_d, b_c, b_d}
[root@localhost/]#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}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
每個文件都有兩類數據
元數據:metadata
數據: data
時間戳:access time,modify time,change time
————————————————————————-
文件的元數據信息:
文件 大小 塊 IO塊 設備 inode 硬連接 權限 環境
最近訪問時間、最近更改時間、最近改動時間、創建時間
以上都為文件的元數據信息
查看元數據信息:stat file
修改時間戳:touch [-c,a,m,t]… FILE…
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
alias ls=ls –l
使用管道 | 可以引用上一個命令的執行結果
用法 COMMAND1 | COMMAND2
例:cat /etc/issue | tr 'a-z' 'A-Z'
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls –d /var/1[0-9]*[lower]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls –d /etc/[[:digit:]][^[:digit:]]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls –d /etc/[^[:alpha:]][a-z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch file"$(date +%Y-%M-%H-%M-%S)"
“”用法 date 參數用法
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp -r /etc/p*[^[:digit:]] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp –r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp /etc/[1,m,n]*.conf /tmp/mytest3
原創文章,作者:rumor31,如若轉載,請注明出處:http://www.www58058.com/48937