linux基本命令操作-目錄與文件的配置和管理

Linux命令

 用戶輸入的指令----->解釋器----->內核------->硬件

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

         -輸入命令然後執行相應的程序來實現功能,不是簡單的命令字符實現的 

程序在bin下:#ls /bin/xxx

-命令的執行依賴於解析器(shell):(默認的解析器:/bin/bash)

內核(只識別二進制的文件)根據命令來調配硬件,不能識別命令所需執行的功能,需要一個翻譯官,就是解析器來實現



命令行的一般格式:

 基本用法

– 命令字        [選項]...        [參數1]      [參數2]...     #中括號表示可有可無


[root@server0 ~]# ls   -l    /root/  


[root@A ~]# ls /root


[root@A ~]# ls -l  /root    #顯示目錄下詳細信息


[root@A ~]# ls -l  /boot    #顯示目錄下詳細信息



[root@A ~]# ls  -l  -h  /boot   #顯示目錄下詳細信息,加上單位(K,M,G)


[root@A ~]# ls -lh   /boot   #顯示目錄下詳細信息,加上單位


[root@A ~]# man  ls         #查看ls命令的幫助手冊信息

  

                    按"q" 退出


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


   網卡配置文件:


# ls -l /etc/sysconfig/network-scripts/ifcfg-eth0      #顯示網卡基本屬性


# cat  /etc/sysconfig/network-scripts/ifcfg-eth0      #查看網卡配置信息   

# ls  /e(tab) 

# ls  /etc/sysco(tab)

# ls  /etc/sysconfig/netw(tab)

# ls  /etc/sysconfig/network-(tab)

# ls  /etc/sysconfig/network-scripts/ifc(tab)

# ls  /etc/sysconfig/network-scripts/ifcfg-e(tab)


# ls -lh /etc/sysconfig/network-scripts/ifcfg-eth0 


字符記不住的可以按"tab"補全



快捷鍵

– Ctrl + l : 清空整個屏幕,不是真正清除,而是直接調到空白

– Ctrl + c : 廢棄當前編輯的命令行

– Esc + . : 粘貼上一個命令的參數


– Ctrl + u : 清空至行首,將光標前的字符清除

– Ctrl + w : 往回刪除一個單詞(以空格界定)

– Ctrl + k :將光標後面的字符清除



[root@A ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0


[root@A ~]# ls -l   Esc + .


[root@A ~]# ls -lh   Esc + .


[root@A ~]# cat     Esc + .


[root@A ~]# cat -n  Esc + .




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

linux系統下載安裝包,沒網的情況下在光盤裏下,光盤裏有數千個包,訪問光盤的內容用到掛載


掛載

 Windows

      光盤文件------->光驅設備------->CD驅動器



  Linux

      光盤文件------->光驅設備------------>訪問點(掛載點) win可以雙擊的地方

               /dev/sr0//以SCSI接口的光驅設備

               /dev/hdc//以IDE接口的光驅設備

查看光驅設備是什麼接口的:#ls /dev/hdc

            #ls /dev/sr0

linux爲了解決有些人不會判斷光驅設備是什麼接口,不管光驅設備叫什麼,它都會爲自動光驅設備提供一個快捷方式自動判斷是什麼接口 這個快捷方式就是: /dev/cdrom


#ls -l /dev/cdrom    #查看源光驅設備是sr0還是hdc

通常光驅設備接口是sr0模式

cat不能直接查看設備文件內容,會彈出滿屏亂碼,按ctrl+c退出來


     

   

     1.虛擬機,圖形鼠標操作,將光盤鏡像放入虛擬光驅設備

如果找不到光盤文件,可以在真機上查找路徑 #ls /ISO/rhel-server-7.2-x86_64-dvd.iso 複製過去


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

/dev/cdrom

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

lrwxrwxrwx. 1 root root 3 10月 28 15:57 /dev/cdrom -> sr0


     2.Linux中掛載點就是一個目錄


    3.使用mount命令,提供設備訪問點(掛載點)

       mount掛載是個臨時掛載


    – 格式: mount  設備路徑     掛載點目錄


[root@A ~]# mkdir /abc                #創建目錄

[root@A ~]# ls  /


[root@A ~]# ls  /abc                 #查看目錄內容爲空

[root@A ~]# mount  /dev/cdrom  /abc    #掛載設備命令

[root@A ~]# ls /abc           #查看目錄內容爲光盤內容


[root@A ~]# ls /abc/P(tab)     #查看光盤裏包的內容


    4.卸載

    – 格式: umount    掛載點目錄

[root@A ~]# umount /abc

[root@A ~]# ls /abc/


注意:掛載點不要放在根/下,卸載不了,因爲永遠在根/下

最好自己創建掛載點


常見提示:

      1.當前在掛載點內

[root@A abc]# umount /abc/

umount: /abc:目標忙。


或者別的終端也掛載了,再開個終端也會掛載不了



      2.掛載速度很慢,沒有把光盤文件放入到光驅中

[root@A /]# mount /dev/cdrom /abc/

        mount: 在 /dev/sr0 上找不到媒體


掛載點不要掛載在/root下,因爲root原來會有很多文件,如果將光盤內容掛載進去,會把裏面原有的隱藏掉


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

重定向命令的輸出

  覆蓋重定向 >

  追加重定向 >>

 把前面命令的輸出結果,寫入到文本文件中,再顯示出來

重定向有個功能,當需要寫入的文件不存在時,會給你創建一個


[root@A /]# ifconfig > /opt/test.txt  #首先必須保證根下有opt/text.txt這個文件,直接這樣創建

[root@A /]# cat /opt/test.txt//顯示ifconfig內容


[root@A /]# hostname > /opt/test.txt

[root@A /]# cat /opt/test.txt//將上面的ifconfig內容覆蓋掉,顯示hostname內容


[root@A /]# hostname >> /opt/test.txt

[root@A /]# cat /opt/test.txt//在上面的hostname重新添加一個相同hostname內容


[root@A /]# ifconfig >> /opt/test.txt

[root@A /]# cat /opt/test.txt



[root@A /]# hostname > /opt/test.txt 

[root@A /]# cat /opt/test.txt


[root@A /]# echo 12345678


[root@A /]# echo 12345678 >> /opt/test.txt

[root@A /]# cat /opt/test.txt


[root@A /]# echo hello >> /opt/test.txt

[root@A /]# cat /opt/test.txt


[root@A /]# echo hahaxixi > /opt/test.txt

[root@A /]# cat /opt/test.txt


[root@A /]# > /opt/test.txt      #清空 文本文件 全部內容

[root@A /]# cat /opt/test.txt


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

目錄文件的管理


cd — Change Directory

– 用途:切換工作目錄

– 格式:cd   [目標文件夾位置]


   相對路徑: 不從根目錄開始的路徑

   絕對路徑: 從根目錄開始的路徑


   .. 表示父目錄,返回上一目錄

   . 表示當前目錄


[root@A /]# cd /etc/pki/

[root@A pki]# cd ..

[root@A etc]# cd ..

[root@A /]# pwd


[root@A /]# cd /etc/pki/

[root@A pki]# cd ../..

[root@A /]# pwd


[root@A /]# cd /etc/pki/

[root@A pki]# ls


[root@A pki]# cd CA         #相對路徑

[root@A CA]# pwd


[root@A CA]# cd /

[root@A /]# cd /etc/pki/CA   #絕對路徑

[root@A CA]# pwd


      


家目錄:用來存放用戶個性化設置的目錄

~: 代表家目錄

~user 表示  用戶user的家目錄


#useradd xxx//添加普通用戶

#cd ~xxx//去往該用戶的家目錄


  /root: 管理員的家目錄

  /home : 存放所有普通用戶的家目錄//home不是普通用戶的家目錄,而是存放其用戶家目錄的地方


[root@A /]# useradd nsd01        #創建nsd01用戶

[root@A /]# cd ~nsd01            #去往用戶nsd01的家目錄

[root@A nsd01]# pwd

/home/nsd01    #普通用戶nsd01的家目錄nsd01在home下


[root@A nsd01]# cd ~lisi #去往用戶lisi的家目錄

[root@A lisi]# pwd

/home/lisi    #普通用戶lisi的家目錄lisi在home下


[root@A lisi]# useradd dc

[root@A lisi]# cd ~dc         #去往用戶dc的家目錄

[root@A dc]# pwd

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

ls — List

– 格式:ls [選項]... [目錄或文件名]


常用命令選項

– -l:以長格式顯示

– -A:包括名稱以 . 開頭的隱藏文檔

– -d:顯示目錄本身(而不是內容)的屬性,一般不單獨使用,和-l連用

– -h:提供易讀的容量單位(K、M等),只看空目錄的容量,不包括目錄下內容的容量,所以沒什麼意義,所以一般很少用到 -lhd


d和h一般和l連用     


[root@A /]#  ls  -l /root      #顯示/root目錄下詳細內容


[root@A /]#  ls  -ld /root     #顯示root此目錄本身的詳細屬性


[root@A /]#  ls  -lh /root     #顯示/root目錄下詳細內容帶單位


[root@A /]#  ls    /root


[root@A /]#  ls  -A  /root

[root@A /]#  du -sh  /boot    #統計目錄及包含的內容的大小


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

使用通配符

– * : 任意多個任意字符

– ? : 單個字符


[root@A /]# ls /etc/*.conf//表示該目錄下以.conf結尾的所有文檔

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

[root@A /]# ls /dev/tty*//表示該目錄下所有以tty開頭的文檔



[root@A /]# ls /dev/tty?//表示tty開頭的後面所有一位的文檔

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

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




針對不確定的文檔名稱,以特殊字符表示

– [a-z]:多個字符或連續範圍中的一個,若無則忽略

– {a,min,xy}:多組不同的字符串,全匹配


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

[root@A /]# ls /dev/tty[7-9]


[root@A /]# ls /dev/tty{1,3,5,7,9}


[root@A /]# ls /dev/tty{1,3,5,7,9,S0}


[root@A /]# ls /dev/tty{1,3,5,7,9,S0,haha}


            請列出/dev/tty20 至 /dev/tty30  ?


[root@A /]# ls /dev/tty{2[0-9],30}

or

  /dev/tty{2?,30}

注意:[]裏只能表示0-9單個字符

比如:tty[20-30]只顯示tty2,tty0,tty3,tty0

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

  命令的別名,簡化複雜命令的輸入

格式:alias 別名='定義的指令'

alias別名只是臨時的,下次開機會失效


[root@A /]# ls -ld /root/

[root@A /]# myls

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


[root@A /]# alias myls='ls -ld'    #定義指令ls -ld別名爲myls,指令要用''括起來

[root@A /]# myls /root/   #實際就是ls -ld /root/,因爲之前就講ls -ls定義爲myls別名


[root@A /]# myls /


[root@A /]# myls /home/


[root@A /]# alias                #顯示當前定義的有效別名


[root@A /]# unalias myls         #刪除別名

[root@A /]# myls /root/          #執行失敗

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


注意:定義別名最好不要用關鍵字,比如pwd,cd,poweroff等

e.g:

將pwd定義爲‘hostname’的別名,則再輸入pwd會執行這個別名的功能,即alias的權限遠高基本命令和基本程序的,linux只會聽從管理員root的權限


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


  創建目錄:  mkdir


[root@A /]# mkdir /root/haha /mnt/xixi /opt/hehe /tmp/lele

創建多個目錄,中間用空格隔開

[root@A /]# ls /root


[root@A /]# ls /mnt


[root@A /]# ls /opt


[root@A /]# ls /tmp


[root@A /]# mkdir -p /opt/aa/bb/cc/dd

創建子目錄在前面加  -p(表示連父目錄一起創建)  

[root@A /]# ls /opt/


[root@A /]# ls /opt/aa


[root@A /]# ls /opt/aa/bb/


[root@A /]# ls /opt/aa/bb/cc/




  創建文本文件:  touch(文本文件)


[root@A /]# touch /opt/1.txt


[root@A /]# echo 123 > /opt/2.txt   #文件2.txt裏還有123內容


[root@A /]# touch /opt/test     #test是個文件不是目錄!




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

rm — Remove

– 格式:rm [選項]... 文件或目錄...


常用命令選項

– -r遞歸刪除(目錄連同底下的子目錄一起刪除)、-f:強制刪除


單獨rm會有提示你是否刪除   y是,不敲默認否


rm其實是rm -i的別名


[root@A opt]# touch /opt/1.txt

[root@A opt]# touch /opt/2.txt

[root@A opt]# mkdir /opt/test


[root@A opt]# rm -rf  /opt/1.txt 


[root@A opt]# ls /opt


[root@A opt]# rm -rf  /opt/*

[root@A opt]# ls /opt



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

mv 移動/改名

mv — Move

– 格式:  mv    原文件     目標路徑


[root@A /]# echo 123 > /opt/1.txt

[root@A /]# mkdir /opt/nsd01

[root@A /]# ls /opt/


[root@A /]# ls /opt/nsd01

[root@A /]# mv /opt/1.txt   /opt/nsd01

[root@A /]# ls /opt/

[root@A /]# ls /opt/nsd01/


重命名: 路徑不變的移動

[root@A /]# ls /opt/


[root@A /]# mv /opt/nsd01/  /opt/test #將opt下的nsd01移動到opt下,重命名爲test,nsd01沒有了

[root@A /]# ls /opt/  


[root@A /]# mv /opt/test/  /opt/haha

[root@A /]# ls /opt/

[root@A /]# mkdir /opt/test #創建test目錄

[root@A /]# mv /opt/1.txt   /opt/2.txt   /root/3.txt   /opt/test/      #不管前面有多少個文件,只會將最後一個當作目標目錄,將前面的移動到最後一個目錄裏


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

cp — Copy

– 格式:cp [選項]... 原文件...      目標路徑

cp命令,對象不同,選項也不同,如果對象是文件,就不需加任何選項,加 -r也沒關係


常用命令選項

– -r:對象是目錄,遞歸,複製目錄時必須有此選項

– -p:保持原文件的權 限、修改時間等屬性不變


cp 也支持多參數拷貝


點  .:經常和cp連用,將文件拷貝到當前目錄下



[root@A /]# rm -rf /opt/*

[root@A /]# ls /opt/

[root@A /]# cp /etc/passwd   /opt/

[root@A /]# cp /etc/fstab  /opt/

[root@A /]# ls /opt/


[root@A /]# cp -r /boot/ /opt/

[root@A /]# ls /opt/


[root@A /]# cd /opt    #進入/opt

[root@A opt]# cp /etc/inittab   .   #複製/etc/inittab到/opt本身目錄下 後面加 .

[root@A opt]# ls





[root@A /]# rm -rf /opt/*

[root@A /]# ls /opt

[root@A /]# cp -r /boot/ /opt/

[root@A /]# ls /opt


[root@A /]# cp -r /boot/ /opt/  #重新複製相同目錄會提示是否覆蓋,

       按Ctrl+c結束                                是由 -i決定的,因爲cp是cp -i的別名,系統默認設置好的,    “cp -if”強制覆蓋也沒用,因爲alias裏的-i的優先級高於 -f(只有cp命令才高於-f,其他的優先級-f高於其他)


可以取消別名 unalias='cp',但是爲了安全起見,最好不要取消,萬一有些東西重要,不能覆蓋,這時可以用 \\ 來臨時取消別名定義,強制覆蓋


[root@A /]# \\cp -r /boot/ /opt/   # \\:在本次操作臨時取消別名的定義,強制覆蓋




創建的文件都有所有者的,不會憑空而來,

Linux中查看所有者   ls -l

舉例:

# ls -l  /root/

總用量 4

drwxr-xr-x. 2 root root    6 10月 28 15:42 abc

-rw-------. 1 root root 1822 10月 24 19:10 anaconda-ks.cfg

drwxr-xr-x. 2 root root    6 10月 28 16:20 haha

drwxr-xr-x. 2 root root    6 10月 24 19:26 公共

drwxr-xr-x. 2 root root    6 10月 24 19:26 模板

drwxr-xr-x. 2 root root    6 10月 24 19:26 視頻

drwxr-xr-x. 2 root root    6 10月 24 19:26 圖片

drwxr-xr-x. 2 root root    6 10月 24 19:26 文檔

drwxr-xr-x. 2 root root    6 10月 24 19:26 下載

drwxr-xr-x. 2 root root    6 10月 24 19:26 音樂

drwxr-xr-x. 2 root root    6 10月 24 19:26 桌面


root用戶的所有者都是root


而普通用戶的家只屬於本身普通用戶

舉例:

ls -l /home/

總用量 0

drwx------. 3 22    22    74 10月 25 19:58 22

drwx------. 3 a1    a1    74 10月 28 16:10 a1

drwx------. 3 a2    a2    74 10月 28 16:11 a2

drwx------. 3 b1    b1    74 10月 28 16:11 b1

drwx------. 3 hdq   hdq   74 10月 25 19:05 hdq

drwx------. 3 hdq24 hdq24 74 10月 24 18:36 hdq24

drwx------. 3 kb2   kb2   74 10月 25 20:00 kb2



如果將普通用戶的目錄複製到root用戶下,root會將其當作自己目錄下,而不是普通用戶下

舉例:

[root@hdq /]# cp -r /home/hdq   /opt/

[root@hdq /]# ls /opt/

boot  hdq

[root@hdq /]# ls -ld /opt/hdq

drwx------. 3 root root 74 10月 28 17:45 /opt/hdq

此時複製過來的home的hdq的所有者就是root


要將所有者的屬性不變,則需要命令cp -rp進行拷貝




[root@A /]# ls -ld /home/lisi/


[root@A /]# cp -rp /home/lisi/   /mnt/  #保持屬性不變進行拷貝


[root@A /]# ls -ld /mnt/lisi/





[root@hdq /]# cp etc/passwd /opt/

[root@hdq /]# ls opt/

hdq  passwd

[root@hdq /]# cp etc/passwd /opt/123   #重新拷貝一份再重命名

[root@hdq /]# ls /opt/

123  hdq  passwd




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


使用vim創建/修改文件


vim文本編輯器 :可以修改文本文件的內容

-若目標文件不存在,則新建空文件夾並編輯

-若目標文件已存在,則打開此文件夾並編輯


      命令模式(只能看)     輸入模式(輸入)     末行模式(保存退出)



[root@A /]# vim  /opt/haxi.txt(新建此文件)  #命令模式 


     i 鍵               

命--------------------->輸入模式(Esc 鍵)

式--------------------->末行模式(Esc 鍵)

:鍵



      在末行模式下  輸入  :wq   保存退出

      在末行模式下  輸入  :q!  不保存退出


舉例:

[root@hdq /]# vim /opt/xixi.txt  #進入vim編輯界面(命令模式)

kobe bryant

huangdaoqi

....

~                                                       

~                                                       

~                                                       

~                          

[root@hdq /]# cat /opt/xixi.txt   #退出查看

kobe bryant 

huangdaoqi


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章