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內容
###############################################
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
##################################################
linux基本命令操作-目錄與文件的配置和管理