1.Linux上面的文件管理命令有哪些?其常用的使用方法及其相關示例演示
文件管理類命令:cp、cat、mv、rm、vim、chattr、chgrp等很多
名稱:cd
[root@localhost ~]# cd /home/ #切換到home目錄
[root@localhost home]# cd - #返回切換到home前的目錄
/root
[root@localhost ~]# cd ../ #切換到上一級目錄
[root@localhost /]# cd ~ #切換當前用戶的home目錄
名稱:mv
使用權限:所有使用者
使用方式:
mv [options] source dest
mv [options] source... directory
作用說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。
參數:-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
範例:
將檔案aaa 更名爲bbb:
mv aaa bbb
將所有的C語言程式移至Finished 子目錄中:
mv -i *.c
名稱:rm
使用權限:所有使用者
使用方式:rm [options] name...
說明:刪除檔案及目錄。
把計:
-i 刪除前逐一詢問確認。
-f 即使原檔案屬性設爲唯讀,亦直接刪除,無需逐一確認。
-r 將目錄及以下之檔案亦逐一刪除。
範例:
刪除所有C語言程式檔;刪除前逐一詢問確認:
rm -i *.c
將Finished 子目錄及子目錄中所有檔案刪除:
rm -r Finished
名稱:cp
使用權限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。
把計:
-a 儘可能將檔案狀態,權限等資料都照原狀予以複製。
-r 若source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經有相同檔名的檔案存在,則在複製前先予以刪除再行復制。
範例:
將檔案aaa 複製(已存在),並命名爲bbb:
cp aaa bbb
將所有的C語言程式拷貝至Finished 子目錄中:
cp *.c Finished
名稱cat
功能:有從磁盤創建文件的功能(但不具備編輯功能),但主要功能還是2個或者以上文件的合併。
常配合使用參數:
-n 或--number 由1 開始對所有輸出的行數編號。
-b 或--number-nonblank 和-n 相似,只不過對於空白行不編號。
使用方法:
Cat –n aa>bb,把aa裏的內容加上行號以後併入bb。
Cat –b aa bb>>cc,對aa和bb裏的內容加上行號(空白行不加)併入cc。
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
bash使用特殊變量$?來保存最新一條命令的執行狀態結果,0表示成功,1-255表示失敗。
bash的命令行展開內容:
~ :展開爲用戶的主目錄
~USERNAME:展開爲指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,並將其展開爲多個路徑
3.請使用命令行展開功能來完成以下練習:
(1)創建/tmp目錄下的:a_c,a_d,b_c,b_d
Mkdir -v {a,b}_{c,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 /mylinux/{bin,boot,dev,etc,lib,lib64,proc,sbin,sys,tmp,usr,var,lock,log,run}
mkdir -p /mylinux/boot/grub
mkdir -p /mylinux/etc/{rc.d,sysconfig}
mkdir -p /mylinux/etc/rc.d/init.d/
mkdir -p /mylinux/etc/rc.d/sysconfig/network-scripts
mkdir -p /mylinux/lib/modules
mkdir -p /mylinux/usr/local/{bin,sbin}
4.文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息
使用stat查看文件的元數據
\File:文件名;Blocks:塊;IOBlock:IO塊;Device:設備;Access(第一個):權限;Uid:創建者id;Gid:歸屬組id;Access(第二個):最近訪問;modify:最近修改;change:最近改動
touch -a :僅更新Access time(同時更新Change爲current time)
touch -m:僅更新Modify time(同時更新Change爲current time)
touch -c:不創建新文件
touch -t:使用指定的時間更新時間戳
touch 用法:
touch [OPTION]... FILE...
常用選項
-a :只改變atime
-m:只改變mtime
-t STAMP:改變爲相應的時間戳
[[CC]YY]MMDDhhmm[.ss]
-c:如果文件不存在,則不創建,如果存在則改變其時間戳
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果
使用alias命令
例如:[root@localhost tmp]# alias la='ls -la'
命令引用:
name=`COMMAND`, name=$(COMMAND)
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄
ls -d /var/l*[0-9]*[[:lower:]]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
find /etc/ -maxdepth 1 -name [0-9]*[!0-9]
8.顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄
ls /etc/[^[:alpha:]][[:alpha:]]*
9. 在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
touch /tmp/`echo tfile-$(date +%Y-%m-%d-%H-%M-%S)`
10. 複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
cp -an /etc/p[^0-9]* /tmp/mytest1/
11. 複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
cp -a /etc/*.d /emp/mytest2
12. 複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
cp -a /etc/[lmn]*.conf /tmp/mytest3