2017.10.15 文件管理、命令別名和glob
一. 目錄/文件的相關操作:
1. 創建目錄:
mkdir 選項 目錄
參數:
-p 遞歸創建目錄
例如:
在根目錄/下創建uzz目錄 [[email protected] /]# mkdir uzz [[email protected] /]# ls / 12 bin data1 home lost+found opt sbin sys uzz 123 boot dev lib media proc selinux tmp var abc data etc lib64 mnt root srv usr xxl [[email protected] /]# 在uzz目錄下創建xk目錄,再在xk目錄下創建wlgc目錄 [[email protected] uzz]# mkdir -p xk/wlgc [[email protected] uzz]# ls xk [[email protected] uzz]# ls xk wlgc [[email protected] uzz]# 補充:linux中的相對路徑和絕對路徑: 絕對路徑是指從根/開始的路徑,例如 /etc/sysconfig/network-scripts/ifcfg-eth0 相對路徑不從根開始,從當前路徑說起,即./
2.列出目錄:
ls 目錄名 列出目錄
tree 目錄名 查看目錄樹
例子: 列出mnt文件夾中的內容 [[email protected] uzz]# ls /mnt cdrom [[email protected] uzz]# 遞歸列出uzz目錄樹 [[email protected] uzz]# tree /uzz /uzz └── xk └── wlgc 2 directories, 0 files [[email protected] uzz]# 補充:使用tree命令要先安裝tree, 安裝方法:yum install tree –y 安裝完會有亂碼, 執行:LANG=EN 就可以解決
3.切換目錄
cd 目錄名
例如:切換到uzz目錄
[[email protected] /]# cd /uzz [[email protected] uzz]#
4. 查看當前目錄
pwd
[[email protected] uzz]# pwd /uzz [[email protected] uzz]#
5. 刪除文件夾
rm 參數 文件/文件夾
-f 強制刪除
-r 刪除文件夾
例如:強制刪除12文件夾
[[email protected] ~]# ls / 12 bin data1 home lost+found opt sbin sys uzz 123 boot dev lib media proc selinux tmp var abc data etc lib64 mnt root srv usr xxl [[email protected] ~]# rm -fr /12 [[email protected] ~]# ls / 123 boot dev lib media proc selinux tmp var abc data etc lib64 mnt root srv usr xxl bin data1 home lost+found opt sbin sys uzz [[email protected] ~]#
6. 新建文件
touch 創建文件或個更新文件的時間戳。 如果文件不存在,就創建新文件,如果文件存在,就更新文件的時間戳。
例如:在uzz目錄下創建1.txt,在uzz的xk目錄下創建2.txt
[[email protected] uzz]# touch 1.txt [[email protected] uzz]# touch xk/2.txt [[email protected] uzz]# ls 1.txt xk [[email protected] uzz]# ls xk 2.txt wlgc [[email protected] uzz]#
7 . 查看文件
cat 目錄名/文件名
[[email protected] xk]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:29:06:1c:66 TYPE=Ethernet UUID=3bfb0110-c5ed-446c-856e-530bb2097725 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none USERCTL=no IPV6INIT=no IPADDR=192.168.80.222 NETMASK=255.255.255.0 GATEWAY=192.168.80.1 DNS1=8.8.8.8 [[email protected] xk]#
8. 移動/復制文件/文件夾
cp 拷貝文件/文件夾
格式:cp 參數 源 目標
例如:將uzz/xk下的2.txt拷貝到uzz下:
[[email protected] xk]# cp 2.txt /uzz [ro[email protected] xk]# ls /uzz 1.txt 2.txt xk [[email protected] xk]#
mv 移動文件/文件夾
格式:mv 參數 源 目標
例如:將uzz下的1.txt移動到uzz/xk文件夾中
[[email protected] uzz]# mv 1.txt xk [[email protected] uzz]# ls xk 1.txt 2.txt wlgc [[email protected] uzz]#
9 .使用 vi 編輯文件
vi 文件名
然後按a或i進入編輯模式,對文本進行編輯,編輯完成後按esc,然後按shift+: 輸入wq 回車保存 並退出
例如:編輯uzz下的2.txt,輸入內容:1 2 3 4
[[email protected] uzz]# ls 2.txt xk [[email protected] uzz]# vi 2.txt 1 2 3 4 ~ ~ ~ ~ "2.txt" 1L, 8C written [[email protected] uzz]# cat 2.txt 1 2 3 4 [[email protected] uzz]#
10. 命令別名(alias)
通過alias實現:
(1)alias
顯示當前shell進程所有可用的命令別名;
(2)alias NAME="VALUE"
定義別名NAME,其相當於執行命令“VALUE”;
註意: 在命令行中定義別名,僅對當前shell進程有效,如果想永久有效,要定義在配置文件中;
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
Note:編輯配置給出的新配置不會立即生效;
bash進程重新讀取配置文件:
source /path/to/config_file
. /path/to/config_file
撤銷別名:unalias
unalias [-a] name [name ...]
Note:如果別名同原命令的名稱,則如果要執行原命令,可用“\COMMAND”;
11.glob的用法
bash中用於實現文件名“通配”
通配符:*,?,[]
(1)*
任意長度的任意字符
a*b:
aab, ab, a123b 可以
abc 不可以
(2)?
任意單個字符
a?b:
aab 可以
ab, a12b, abc 不可以
(3)[]
匹配指定範圍內的任意單個字符
[0-9]
[a-z]:不區分字符的大小寫
[A-Z]:大寫字母
(4)[^]
匹配指定範圍之外的任意單個字符
[^0-9]:
專用字符集合:
[:digit:]:任意數字,相當於0-9
[:lower:]:任意小寫字母
[:upper:]:任意大寫字母
[:alpha:]:任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:空格字符
[:punct:]:標點符號
練習:
1. 顯示/var下所有以1開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄。
2. 顯示/etc/目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄
3. 顯示/etc下,以非字母開頭,後面跟了一個字母及其他任意長度任意字符的文件或目錄
4. 復制/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/123目錄中
5. 復制/etc目錄下,所有以.d結尾的文件或目錄至/tmp/123目錄中
6. 復制/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的文件或目錄至/tmp/123目錄中
本文出自 “技術成就夢想” 博客,請務必保留此出處http://xuxiaoliang.blog.51cto.com/10882951/1972495
2017.10.15 文件管理、命令別名和glob