LInux基礎之mount掛載、常用通配符使用、別名定義、mv移動和改名

Linux命令

——用來實現某一種功能的指令或程序

——命令的執行依賴於解釋器(例如:/bin/bash)

帶來功能的並不是命令的本身,而是命令所對應的應用程序

[root@localhost ~]# hostname

查看命令所對應的應用程序

[root@localhost ~]# which hostname

/usr/bin/hostname

命令所對應的文件一定是一個綠色可以執行的程序文件

[root@localhost ~]# ls /usr/bin/hostname

命令的執行依賴於解釋器,常用的解釋器存放在/etc/shells文件中

[root@localhost ~]# cat /etc/shells

系統默認的解釋器是/bin/bash

用戶-----解釋器-----內核-----硬件:用戶輸入命令後,通過/bin/bash解釋器解釋給內核,內核去調配所有的硬件去執行

Linux命令的分類(瞭解內容)

——內部命令:系統自帶屬於解釋器的一部分

——外部命令:系統之外自己安裝的其他程序

linux 系統有上千條命令,它把這些命令分為兩大類,一個是內部命令,一個是外部命令,內部命令屬於解釋器自帶的命令,外部命令屬於解釋器之外的命令,而文明linux系統有百分之九十是屬於外部命令

############################################################################

掛載:mount

如何獲取iso鏡像裡邊內容?

鏡像文件在linux系統裡屬於設備文件,而設備文件無法用系統命令去直接訪問,如果想獲取設備文件裡邊的數據,需先將設備掛載到一個目錄下,而這個目錄我們稱為訪問點,當我們把設備文件掛載到訪問點目錄下就可以訪問鏡像文件裡的內容

hdc:IDE接口設備(幾乎快滅絕了)

sr0:表示scsi接口設備(現在大多數都是scsi接口設備)

查看驅動設備文件

[root@localhost ~]# ls /dev/sr0

系統將驅動設備文件創建了一個快捷方式/dev/cdrom

[root@localhost ~]# ls /dev/cdrom

查看詳細屬性

[root@localhost ~]# ls -l /dev/cdrom

lrwxrwxrwx. 1 root root 3 4月 13 23:26 /dev/cdrom -> sr0 //快捷方式指向的是sr0

掛載步驟:光驅設備(/dev/cdrom)----->掛載----->目錄(訪問點)

創建設備掛載點

[root@localhost ~]# mkdir /dvd/

掛載設備:——命令格式:mount 設備路徑 掛載點目錄

[root@localhost ~]# mount /dev/cdrom /dvd

mount: /dvd: WARNING: device write-protected, mounted read-only.

裝載: /DVD: 警告: 設備寫保護,裝入只讀

掛載點目錄將變成一個只讀的目錄,不可以增刪改的權限

[root@localhost ~]# mkdir /dvd/xx

mkdir: 無法創建目錄 “/dvd/xx”: 只讀文件系統

查看掛載點目錄內容,裡邊是iso鏡像文件裡邊的數據

[root@localhost ~]# ls /dvd/

卸載掛載點目錄:——命令格式:umount 掛載點目錄

[root@localhost ~]# umount /dvd/

[root@localhost ~]# ls /dvd/

注意事項:

1、掛載時掛載到自己創建的目錄或者是一個空目錄,如果掛載到一個已有數據的目錄下,那該目錄原有的數據將消失(並不是刪除),而是改目錄掛載了一個新的文件系統類型,原來的文件系統類型數據就會消失,卸載之後原有的數據將恢復回來。

2、卸載的時候不要在當前的掛載點內,否則會提示設備正忙,當有人在掛載點目錄內,Linux系統認位有人正在訪問掛載點內的數據,所以不讓卸載,只有退出當前掛載點目錄在卸載,才能卸載成功。

[root@localhost dvd]# umount /dvd/

umount: /dvd/: target is busy.(提示目標正忙)

退出掛載點目錄,卸載成功

[root@localhost /]# umount /dvd/

[root@localhost /]# ls /dvd

#############################################################################

通配符:通配符在linux系統用一些特殊的符號表示,可以幫我們匹配一些含糊不清的內容

* :表示任意多個任意字符(字符個數不限,是什麼樣的字符也不限,用於匹配以什麼開頭或者以什麼結尾)

?:表示任意單個任意字符(是什麼樣的字符不限,但必須是單個字符)

創建測試文件

[root@localhost /]# touch abcdegdfgjdjkdlgjdkgj.txt

當只記得該文件在那個路徑下,但不記得文件全名的時候可以用 * 進行模糊匹配

如:只記得該文件在/目錄下,以abcd開頭不記得結尾可以用 * 進行模糊匹配

[root@localhost /]# ls /abcd*

/abcdfgkdgjlgdfsgdfsgfgfgaf.txt

模糊匹配/etc/目錄下以tab結尾的文件

[root@localhost /]# ls /etc/*tab

/etc/anacrontab /etc/crontab /etc/crypttab /etc/fstab /etc/inittab /etc/mtab

模糊匹配/etc/目錄下以name結尾的文件

[root@thinkmo ~]# ls /etc/*name

/etc/hostname

?匹配任意單個任意字符:是什麼樣的字符不限,但必須是單個字符

如:查找/dev/目錄以tty開頭結尾必須是單個字符的文件

[root@localhost /]# ls /dev/tty?

/tty0 /dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8

/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9

查找/etc/目錄下以host開頭結尾必須是單個字符的文件

[root@thinkmo ~]# ls /etc/host?

/etc/hosts

查找/etc/目錄下以單個字符開頭,結尾必須是esolv.conf

[root@thinkmo ~]# ls /etc/?esolv.conf

/etc/resolv.conf

?可以使用多個,如:匹配/etc/目錄下以pass開頭結尾必須是兩個字符

[root@thinkmo ~]# ls /etc/pass??

/etc/passwd

[root@localhost /]# ls /etc/pas??? //必須以三個字符結尾

[] :匹配一定範圍內字符,如:[0-9] 或者 [a-z] 之間連續的字符

{} :匹配多組不連續字符,如{1,3,5,7,9,20,30}

[]匹配連續字符:匹配/dev/目錄下以tty開頭,結尾是3-8之間連續的字符

[root@thinkmo ~]# ls /dev/tty[3-8]

/dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7 /dev/tty8

匹配不連續字符:

[root@thinkmo ~]# ls /dev/tty{1,3,5,7,9,20,30}

/dev/tty1 /dev/tty20 /dev/tty3 /dev/tty30 /dev/tty5 /dev/tty7 /dev/tty9

{}也可用於匹配連續字符

[root@thinkmo ~]# ls /dev/tty{1..9}

/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9

/dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8

匹配/dev/目錄下以 xx 或者 oo 或者 tty 開頭,以1結尾的文件

[root@thinkmo ~]# ls /dev/{xx,oo,tty}1

ls: 無法訪問'/dev/xx1': 沒有那個文件或目錄

ls: 無法訪問'/dev/oo1': 沒有那個文件或目錄

/dev/tty1//條件滿足的將顯示出來

匹配/dev/目錄下以 xx 或者 oo 或者 tty 開頭,結尾是1到5之間連續的字符

[root@thinkmo ~]# ls /dev/{xx,oo,tty}{1..5}

ls: 無法訪問'/dev/xx1': 沒有那個文件或目錄

ls: 無法訪問'/dev/xx2': 沒有那個文件或目錄

ls: 無法訪問'/dev/xx3': 沒有那個文件或目錄

ls: 無法訪問'/dev/xx4': 沒有那個文件或目錄

ls: 無法訪問'/dev/xx5': 沒有那個文件或目錄

ls: 無法訪問'/dev/oo1': 沒有那個文件或目錄

ls: 無法訪問'/dev/oo2': 沒有那個文件或目錄

ls: 無法訪問'/dev/oo3': 沒有那個文件或目錄

ls: 無法訪問'/dev/oo4': 沒有那個文件或目錄

ls: 無法訪問'/dev/oo5': 沒有那個文件或目錄

/dev/tty1 /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 //滿足條件將顯示出來

############################################################################

alias 別名的定義:別名的用來簡化複雜的命令

——命令格式:alias 別名=指令名稱

為hostname命令定義一個別名為 hn

[root@localhost /]# alias hn=hostname//定義別名

每次運行 hn 等於運行hostname命令

[root@thinkmo ~]# hn//驗證別名

thinkmo

定義別名對原有命令沒有任何影響,原有命令可以正常使用

[root@thinkmo ~]# hostname

thinkmo

給命令定義別名時,可以把命令和選項一起定義一個別名來使用

[root@thinkmo ~]# alias myls='ls -lhd' //定義別名

[root@thinkmo ~]# myls /root///驗證別名

dr-xr-x---. 16 root root 4.0K 4月 15 10:20 /root///顯示的結果等於 ls -lhd 的顯示結果

查看系統可用的別名

[root@thinkmo ~]# alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias hn='hostname' //自定義的別名

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias myls='ls -lhd' //自定義的別名

alias rm='rm -i'

alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'

alias xzegrep='xzegrep --color=auto'

alias xzfgrep='xzfgrep --color=auto'

alias xzgrep='xzgrep --color=auto'

alias zegrep='zegrep --color=auto'

alias zfgrep='zfgrep --color=auto'

alias zgrep='zgrep --color=auto'

unalias 取消別名:當我們不想使用別名的時候,可以取消別名,取消別名比較簡單,命令字後邊直接加上別名名稱就可以取消別名

取消myls別名:——命令格式:unalias 別名名稱

[root@thinkmo ~]# unalias myls

[root@thinkmo ~]# myls /root/

bash: myls: 未找到命令...

取消hn別名

[root@thinkmo ~]# unalias hn

[root@thinkmo ~]# hn

bash: hn: 未找到命令...

注意事項:定義別名時不要和系統命令發生衝突

############################################################################

mv 移動、改名:mv命令有兩個功能,可以移動文件或目錄(功能類似於windows系統裡的剪切功能),還可以用來修改目錄和文件的名字

——命令格式:mv 選項… 源文件… 目標路徑

將/opt/目錄下的1.txt文件移動到 /mnt/haha/目錄下

[root@localhost ~]# mv /opt/1.txt /mnt/haha/

查看是否移動成功

[root@localhost ~]# ls /mnt/haha/

將/opt/test/目錄移動到 /mnt/haha/目錄下

[root@localhost ~]# mv /opt/test /mnt/haha

查看是否移動成功

[root@localhost ~]# ls /mnt/haha/

利用mv命令修改目錄和文件名字

路徑不變的情況下修改1.txt文件名字

[root@localhost ~]# mv /mnt/haha/1.txt /mnt/haha/haha.txt //haha.txt為新名字

查看是否修改成功

[root@localhost ~]# ls /mnt/haha/

路徑不變的情況下修改/test/目錄名字

[root@localhost ~]# mv /mnt/haha/test/ /mnt/haha/xixi//xixi為新名字

查看是否修改成功

[root@localhost ~]# ls /mnt/haha/

移動的同時並改名,將haha.txt 移動到 /root/目錄並改名為xixi.txt

[root@localhost ~]# mv /mnt/haha/haha.txt /root/xixi.txt

查看是否成功

[root@localhost ~]# ls /root/

將/xixi/目錄移動到/root/目錄並改名為abc

[root@localhost ~]# mv /mnt/haha/xixi/ /root/abc

[root@localhost ~]# ls /root/

總結:mv移動時,如果不想將修改源文件的名字,那隻需要指定要移動到那個目錄下即可,如果想移動時並重新給改個名,那就在指定的目錄後邊定義一個新的名字,在練習mv時,不要拿系統目錄和文件去練習。


分享到:


相關文章: