Linux命令格式
命令 [選項] [參數]
命令:就是具體命令,比如常用的cd,表示進入到哪個路徑
選項:可有可無,針對命令的一些特殊操作,都是以-開頭加上字母的形式,比如ls -l
參數:命令的一些參數
linux路徑
Linux中,沒有C盤、D盤等盤符的概念,只有根目錄、子目錄一說,“/”:表示根目錄,根目錄下面有若干子目錄,子目錄就用“/”加上目錄文件名表示。
- /home:表示家目錄,每個用戶都會有一個自己的目錄,在home下面,使用用戶的賬號命名;
- /boot:存放的是Linux啟動時用到的核心文件,包括一些連接文件,鏡像文件等;
- /bin:是存放一些常用命令的地方;
- /opt:外部安裝的應用都會存放在這里;
- /root:系統管理員,超級用戶的目錄,只有系統管理員可以進入;
- /etc:存放系統管理所需要的子目錄和配置文件;
- /var:這是一個非常重要的目錄,系統上跑了很多程序,那么每個程序都會有相應的日志產生,而這些日志就被記錄到這個目錄下,具體在/var/log 目錄下;
- /bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的;
...
了解到這些目錄結構以及目錄存放的內容,我們就大概知道大部分目錄我們是不能隨便動的,盡量在自己的家目錄中操作命令。
cd 命令
cd是進入到某個路徑使用的命令。注意cd以及其他所有命令的后面都有一個空格。
cd /home:進入根目錄下的home目錄。
cd /home/admin:進入根目錄下的home目錄下的admin目錄,只要是以/開頭的路徑,都是絕對路徑,/表示根目錄。
cd files:files表示相對路徑,cd files表示進入到當前目錄下的files文件夾中。
cd ..:路徑往上返一級;
cd ~:回到當前用戶家目錄,如果是root用戶,cd ~ 相當於 cd /root,如果是普通用戶,cd ~ 相當於cd /home/當前用戶名;
cd -:回退功能,回退到上一次cd命令的目錄下
pwd:顯示當前的目錄
ls命令
ls命令是用來列出當前目錄下都有哪些文件和文件夾的;
ls:只顯示文件夾和文件名,不顯示隱藏的文件;
ls -a:顯示所有文件包括隱藏文件,隱藏文件名都是以“.”開頭;
ls -l:顯示文件和文件夾的詳細信息,比如權限,文件大小,創建時間等
ls -lh:-l中的文件大小是以b為單位顯示,改成-lh后,就是以KB或者MB顯示;
ls -lha:顯示所有的文件包括隱藏文件的詳細信息;
ll:等同於ls -l
ll -h:將文件大小以KB以上的單位顯示。
也可以使用通配符,來列出你想要的某些文件,比如 ll a*:列出當前目錄下的以a開頭的所有文件夾。
另外還有一些常用通配符,比如:
? :表示文件名中任意一個字符
[abc] :匹配abc中任意一個字符
[a-c] :也是匹配abc中任意一個字符
\ :表示后面的字符就是一個普通字符,比如\* 就代表*號而不是通配符
上面的命令都是必須先cd到某個路徑,然后再查看當前路徑的文件,事實上ls或者ll后面可以跟一個參數:路徑,不需要cd到路徑再ll:
ls ~:列出家目錄的所有文件
ls /home/admin/pic 列出“/home/admin/pic”這個路徑下的所有文件。
文件詳細信息
從上面的截圖中復制下來兩條,如下:
-rw-------. 1 root root 1.9K 2月 28 16:26 anaconda-ks.cfg
drwxr-xr-x. 3 root root 4.0K 3月 1 21:38 soft
第一個字母有些是-,有些是d,-表示這一條是一個文件,d表示是一個文件夾,也可能會有l表示軟連接;
1.9k、4.0k是文件大小,接下來是時間,表示最后一次修改的時間,然后是文件名。
root root:有兩個root,第一個表示當前用戶是root,第二個表示當前用戶所在組是root
root前面的數字是硬連接數
rwxr-xr-x:是權限,三個字母為一組:rwx r-x r-x,第一個字母r表示可讀,如果改成-表示不可讀,第二個字母w表示可寫,改成-表示不可寫,第三個字母x可執行,改成-表示不可執行,rwx的順序始終都是這樣的。那么為什么分三個組呢,第一個組rwx是表示文件擁有者的權限,第二個r-x表示文件擁有者所在組的權限,第三個r-x表示該組以外的用戶的權限。
mkdir命令
創建文件夾的命令。
mkdir picture:在當前路徑創建一個picture的文件夾
mkdir /home/admin/self/picture:在admin目錄下創建一個picture文件夾,這種時候必須保證/home/admin/self路徑是存在的,否則會報錯。
如果想要admin/self路徑不存在也能創建成功,就需要在命令后面加一個-p,mkdir /home/admin/self/picture -p
mkdir a b:在當前路徑創建兩個文件夾
mkdir self/{a,b}:在self下創建兩個文件夾,等同於mkdir self/a self/b
mkdir .aa:創建隱藏文件。
touch命令
創建文件的命令。
touch a.txt :在當前目錄下創建a.txt文件。
gedit a.txt : 在當前目錄下創建一個a.txt並且使用Linux自帶的gedit工具打開。
rm命令
刪除文件或者文件夾
rm a.txt :刪除文件
rm abc :刪除文件夾,直接刪會報錯,需要加-r:rm abc -r
rm * :刪除所有的文件,不刪文件夾,一定要小心使用。
rm * -r :刪除當前目錄下的所有文件和文件夾
rm /tmp/* -rf 刪除/tmp目錄下的所有文件
上面的這些rm,執行的時候會提示是否確認刪除,加一個-f就不會再提示了,比如rm * -rf 刪除當前目錄下的所有文件和文件夾
cp命令
拷貝命令
cp 1.txt 2.txt : 可以理解為將當前目錄的1.txt拷貝一份2.txt
cp 1.txt /home/admin/pic :將當前目錄的1.txt移動到后面的pic文件夾下
cp a a_bak -r :拷貝文件夾,注意必須有-r
mv命令
剪切/移動命令
mv 1.txt 2.txt :將當前目錄的1.txt重命名為2.txt
mv 1.txt ~ :將當前目錄的1.txt移動到指定目錄:家目錄
重定向
ls > 1.txt :將>左邊的命令返回的結果寫入到1.txt
ls >> 1.txt :將>>左邊的命令返回的結果追加到1.txt
注意:重定向的前提是左邊的命令有返回值,如果沒有,沒辦法寫入文件
cat 查看文件內容
cat 1.txt 將1.txt中的內容顯示到屏幕上
cat 1.txt 2.txt : 同時顯示1.txt和2.txt的內容到屏幕上
cat 1.txt 2.txt > 3.txt :將1.txt 2.txt的內容輸入到3.txt中
more查看文件內容
more也可以查看文件內容,如果文件內容比較長,適合用more命令,翻頁查看。
more 1.txt : 查看1.txt的內容
空格鍵是向下翻頁,b鍵是回退一頁,q是退出,回車是向下翻一行。
管道命令
|是管道符,意思是將這個符號左邊的命令的返回結果交給右邊命令處理
ls -l / | more :將根目錄下的文件列表用more的方式顯示。
help命令
--help可以提供幫助文檔,英文的,比如ls --help
man +命令也可以查看幫助文檔。
鍵盤的操作鍵:
空格:顯示下一頁
回車:一次滾動一行
b:回滾一屏
f:前滾以屏
q:退出
/word:搜索word字符串
軟連接和硬鏈接
軟連接:類似Windows中的快捷方式,這個鏈接不記錄文件內容,只是一個指向某個文件的快捷方式。軟連接記錄的是指向的文件的文件名。
ln -s 1.txt soft_link
soft_link指向了1.txt,等同於給1.txt設置了一個別名:soft_link
cat soft_link :顯示的是1.txt中的內容
還可以將軟連接放到不同的路徑下:
ln -s /home/admin/test/1.txt /home/admin/soft_link
注意:如果是放到不同路徑,前面的路徑必須是絕對路徑
軟連接可以給文件夾創建
硬鏈接:類似拷貝,會將文件的內容同時記錄到硬鏈接中,修改其中一份,其他的硬鏈接會同步修改。ll出來的結果的值中的連接數就是指的硬鏈接數,該文件有幾個硬鏈接。
命令:ln 1.txt hard_link
硬鏈接不可以為文件夾創建。
grep命令
文本搜索命令
grep -n Desktop 1.txt
找1.txt中的有沒有Desktop,-n表示在第幾行
根據文件內容找到具體在哪個文件的哪一行:
grep -n ab . -r
返回值: ./2.txt:4:ab/
在當前路徑下,找包含ab的內容
grep -n后面還可以跟正則表達式:
^a:表示以a開頭
a$:表示以a結尾
- :點表示任意一個字符,除了\n,a后面有一個字符
grep -niv ab . -r
-n前面說了表示行號
-i 表示不區分大小寫
-v 表示反向查找,即查找不包含ab的文件
find命令
find + 目錄 + -name + ‘*.txt’
find ~ -name ‘*.txt’ : 在home目錄下找到文件名為txt結尾的,如果查找的內容帶通配符,必須用單引號引起來。
find . -name 1.txt :尋找當前目錄下的1.txt,1.txt可以不帶引號
tar打包命令
tar cvf 4.tar 1.txt 2.txt
打包,但是沒有壓縮,將1.txt和2.txt打包到4.tar中,f必須放在最后,打包后的文件必須是.tar文件,也可以打包一個路徑
tar tf 4.tar
1.txt
2.txt
查看4.tar中都包含哪些文件
tar xvf 4.tar 將4.tar解壓放到當前目錄
其中-c/-x分別表示create/extract,即打包/解包.
-v 是verbose,表示顯示打包/解包的詳細過程.
-f 表示file,表示打包輸出/解包輸入文件
tar xvf 4.tar -C +目錄 :后面加上-C(大寫),然后加上已存在的目錄,可以解壓到目錄中。
tar命令只是打包,但是沒有壓縮,下面的命令會壓縮。
tar+gzip打包並且壓縮命令
tar czf b.tar.gz *txt
把當前目錄下的txt結尾的文件,壓縮成b.tar.gz
tar zxf b.tar.gz -C tar
解壓b.tar.gz到tar文件目錄下
tar+bzip2命令
tar jcf j.tar.bz2 *txt # 壓縮
tar xjf j.ftar.bz2 -C jtar # 解壓縮
zip命令
zip -r zz *txt ZZ是要生成的壓縮文件,會自動生成zip擴展名
unzip -d zz zz.zip 押解時自動創建目錄
壓縮率:zip最差,其次gzip,最好的是bzip2
zip比較通用,Windows和Linux都能用,gzip平時用的最多。
其他命令
which +命令:查找命令位置
su 回車輸入密碼,切換到root用戶
su + 用戶名: 從root用戶切換到普通用戶
passwd:修改密碼,如果想要修改簡單密碼,用root用戶修改。
exit : 退出當前用戶,返回到上次用戶,多次輸入后整個退出
chmod命令
chmod是用來修改權限的
一種是字母的方式修改權限:
chmod u/g/o/a +/-/= rwx 文件
u: 表示文件所有者
g:表示文件所有者屬於的組
o:組以外的人
a:表示三者都是
+:表示增加某個權限
-:表示刪除某項權限
=:表示設定權限
r是可以讀取,沒有r權限就不能進入這個目錄或者文件
w是可以寫入,沒有w權限就不能在該目錄下創建文件
x是可以執行,沒有x權限就意味着不能cd到這個目錄
比如:chmod u + w file.txt 給file.txt的創建者增加file.txt的w權限。
rwx可以使用數字代替:
0:沒有任何權限
1:執行權限
2:寫權限
3:執行和寫的權限(1+2)
4:讀權限
5:讀取和執行權限(1+4)
6:讀取和寫入權限(4+2)
7:所有權限(1+2+4)
runlevel命令
輸入runlevel,返回當前的level
如果忘記密碼,可以進入到level 1 修改,進入方法:init 1
init 5是切換到圖形界面
init 3是命令界面
修改ip地址
首先可以查看當前的ip,輸入ifconfig,正常來說會返回下面這樣兩個網卡,一個eth0,一個lo,不需要管,eth0就是本機的ip,可以看到ip地址是192.168.142.128
如果我們想要修改這個ip,可以輸入命令:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
打開這個文件后,可以看到最下面這里的BOOTPROTO的值是dhcp,表示動態獲取IP地址,想要修改的話就改成靜態的:
按照圖修改,改完后IP就是192.168.142.129了。
修改完成后需要重啟服務:/etc/init.d/network restart命令即可。
然后再通過ifconfig查看當前ip
網卡配置完,如果想要上網,還需要修改DNS:
nameserver 202.106.0.20
nameserver 8.8.8.8
然后ping www.baidu.com能ping通就可以上網了。
遠程連接linux
IP配置完之后可以通過遠程工具來連接linux服務器,常見的有:
putty、secureCRT(主流)、xshell等
比如在windows上安裝一個xshell免費版,新建一個會話,輸入名稱和linux服務器的ip,就可以使用xshell來操作linux了。