Linux 常用命令(持續(xù)更新中)

  1. 當(dāng)前路徑
  2. 定位到用戶主目錄
  3. 主機(jī)名查看
  4. 重啟
  5. 主機(jī)名設(shè)置
  6. 主機(jī)名與IP的映射
  7. 查看當(dāng)前文件夾內(nèi)文件信息, 可搭配過濾
  8. 文件權(quán)限/歸屬
  9. 權(quán)限及擁有者和所屬組的修改
  10. 鏈接
  11. 文件內(nèi)容追加
  12. 文件的拷貝/移動(dòng)/重命名/刪除
  13. 創(chuàng)建多級(jí)目錄
  14. 用戶與用戶組操作
  15. 軟件包的管理方式. rpm 和 yum
  16. 查看端口與進(jìn)程
  17. 使用 scp 將文件/目錄分發(fā)到其他主機(jī)
  18. 使用 rsync 進(jìn)行遠(yuǎn)程同步
  19. grep過濾與管道符
  20. 追加和覆蓋
  21. grep 結(jié)合正則表達(dá)式使用
  22. 統(tǒng)計(jì)有多少文件和目錄
  23. 系統(tǒng)信息
  24. 防火墻設(shè)置
  25. 設(shè)置普通用戶的 sudo 權(quán)限
  26. 壓縮和解壓縮
  27. 更換鏡像源

1. 當(dāng)前路徑

pwd

2. 定位到用戶主目錄

cd ~

3. 主機(jī)名查看

hostname

4. 重啟

reboot

5. 主機(jī)名設(shè)置

vim /etc/hostname (centOS 7, 需重啟)

6. 主機(jī)名與IP的映射

vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.130(虛擬機(jī)IP) zyq.com(主機(jī)名)

7. 查看當(dāng)前文件夾內(nèi)文件信息, 可搭配過濾

ll  //列出來的結(jié)果詳細(xì),有時(shí)間,是否可讀寫等信息 ,像 windows 里的詳細(xì)信息, ll 不是命令,是 ls -l 的別名, ls 命令可以說是linux下最常用的命令之一。
ls  //只列出文件名或目錄名 就像 windows 里的列表
-t //降序,
-tac //升序
-a //列出目錄下的所有文件,包括以 . 開頭的隱含文件
-d 將目錄象文件一樣顯示,而不是顯示其下的文件
-e 輸出時(shí)間的全部信息,而不是輸出簡略信息。

-f -U 對(duì)輸出的文件不排序。

-g 無用。

-i 輸出文件的 i 節(jié)點(diǎn)的索引信息。

-k 以 k 字節(jié)的形式表示文件的大小。

-l 列出文件的詳細(xì)信息。

-m 橫向輸出文件名,并以“,”作分格符。

-n 用數(shù)字的 UID,GID 代替名稱。

-o 顯示文件的除組信息外的詳細(xì)信息。

-p -F 在每個(gè)文件名后附上一個(gè)字符以說明該文件的類型,“*”表示可執(zhí)行的普通

文件;“/”表示目錄;“@”表示符號(hào)鏈接;“|”表示FIFOs;“=”表示套接字(sockets)。

-q 用?代替不可輸出的字符。

-r 對(duì)目錄反向排序。

-s 在每個(gè)文件名后輸出該文件的大小。

-t 以時(shí)間排序。

-u 以文件上次被訪問的時(shí)間排序。

-x 按列輸出,橫向排序。

-A 顯示除 “.”和“..”外的所有文件。

-B 不輸出以 “~”結(jié)尾的備份文件。

-C 按列輸出,縱向排序。

-G 輸出文件的組的信息。

-L 列出鏈接文件名而不是鏈接到的文件。

-N 不限制文件長度。

-Q 把輸出的文件名用雙引號(hào)括起來。

-R 列出所有子目錄下的文件。

-S 以文件大小排序。

-X 以文件的擴(kuò)展名(最后一個(gè) . 后的字符)排序。

-1 一行只輸出一個(gè)文件。

–color=no 不顯示彩色文件名

–help 在標(biāo)準(zhǔn)輸出上顯示幫助信息。

–version 在標(biāo)準(zhǔn)輸出上輸出版本信息并退出。

8. 文件權(quán)限/歸屬

drwxrwxr-x. 7 root root    
-rw-r--r--. 1 root root 

d 開頭表示是目錄, -開頭表示是文件.
后面是文件權(quán)限

  • r 可讀
  • w可寫
  • x 可執(zhí)行(腳本,比如shell 腳本 )
  • - 表示沒有任何權(quán)限

以上面為例, 每三位代表一個(gè)權(quán)限.

  • 第一個(gè)三位表示當(dāng)前所屬用戶的權(quán)限.
  • 第二個(gè)三位表示所屬組擁有的權(quán)限.
  • 第三個(gè)三位表示所有用戶的權(quán)限.

權(quán)限后面的數(shù)字意義

  • 如果當(dāng)前是目錄, 那么表示下面有幾個(gè)子目錄. (文件不算目錄)
  • 如果是文件, 那么表示硬鏈接數(shù)量有幾個(gè).

root root 表示文件/目錄所屬用戶及用戶組.

9. 權(quán)限及擁有者和所屬組的修改

首先需要了解權(quán)限的數(shù)字表示法.

  • r = 4
  • w = 2
  • x = 1
-rw-r--r--. 1 root root 

以這個(gè)為例, 將對(duì)應(yīng)的權(quán)限按照數(shù)字表示法就為
rw-r--r-- = 644
解讀:
當(dāng)前所屬用戶權(quán)限有讀和寫就為 4+2.
當(dāng)前所屬組權(quán)限只有讀, 就為 4.
其他人的權(quán)限也只有讀, 就為 4.
這個(gè)權(quán)限表示, 除了 root這個(gè)用戶可以讀寫外, 其他人和組都只有只讀權(quán)限.

修改權(quán)限命令

chmod 666 filename, 或者 chomd r+x, chmod r+w, 可以以數(shù)字的形式, 也可以 rwx的形式

改變文件/目錄的擁有者和所屬組

  • 改變文件擁有者命令:chown
    • chown userName(要改變?yōu)樾聯(lián)碛姓叩拿Q) fileName(要改變擁有者文件的名字 )
  • 改變文件所屬組命令: chgrp
    • chgrp groupName(要改變?yōu)樾滤鶎俳M的名稱) fileName(要改變所屬組文件的名字 )
  • 改變文件夾擁有者命令: chown -R
    • chown -R userName(要改變?yōu)樾聯(lián)碛姓叩拿Q) fileName(要改變擁有者文件的名字 )
  • 改變文件夾的所屬組命令: chgrp -R
    • chgrp -R groupName(要改變?yōu)樾滤鶎俳M的名稱) fileName(要改變所屬組文件的名字 )
  • 一條命令同時(shí)改變擁有者和所屬組
    • chown userName:groupName filePath

10. 鏈接

軟鏈接

  • 相當(dāng)于windows 的快捷方式
  • 改變?cè)次募r(shí),軟連接創(chuàng)建的文件也會(huì)改變
  • 刪除鏈接后,源文件還在
  • 刪除源文件后,鏈接指向錯(cuò)誤

硬鏈接

  • 相當(dāng)于拷貝一個(gè)文件
  • 改變?cè)次募r(shí),軟連接創(chuàng)建的文件也會(huì)改變
  • 刪除鏈接后,源文件也還在
  • 刪除源文件時(shí),硬鏈接所創(chuàng)建的文件不受影響

軟連接命令格式:   ln  -s file/dir linkName 
例:             ln -s readme.txt   rm.txt   //rm.txt 為快捷方式的名字
硬鏈接命令格式:   ln file/dir linkName

修改符號(hào)連接的owner

$>chown -h centos:centos xxx //-h:針對(duì)連接本身,而不是所指文件.

修改符號(hào)鏈接

$>ln -sfT index.html index //覆蓋原有的連接。

11. 文件內(nèi)容追加

echo 追加內(nèi)容 >> 要追加的文件名
  • 幾種查看文件的方式
  • cat filename 全部內(nèi)容
  • more filename 翻頁查看
  • tail filename 末尾內(nèi)容,通常與 -f 參數(shù)連用,適合于查看服務(wù)實(shí)時(shí)動(dòng)態(tài)日志信息
例:  tail -f xxxx.log
    tail -200f yyy.log  查看末尾200行的信息 
  • head filename 開頭文件,適合查看,文件格式,內(nèi)容模板樣式等

12. 文件的拷貝/移動(dòng)/重命名/刪除

  • 拷貝
cp fileName path         //拷貝一個(gè)文件到一個(gè)目錄中
cp fileName newFileName  //拷貝一個(gè)文件的內(nèi)容至一個(gè)文件中(新文件)
cp -r dir newDir         //拷貝一個(gè)目錄到另外一個(gè)目錄去 -r 是遞歸拷貝
  • 移動(dòng)和重命名
mv fileName path //移動(dòng)(fileName與Path不在同一目錄下就是移動(dòng))
mv fileName path //重命名(當(dāng)fileName 與path同一個(gè)目錄下的時(shí)候就是重命名)
  • 刪除
rm -rf fileName     //遞歸強(qiáng)制刪除, file 最好是絕對(duì)路徑,  -r 遞歸 ,-f 強(qiáng)制

13. 創(chuàng)建多級(jí)目錄

mkdir -p path    //-p 有就執(zhí)行,沒有就創(chuàng)建

14. 用戶與用戶組操作

查看所有用戶與用戶組 ID

cat /etc/password

查看用戶組根據(jù)用戶名

id username

將x用戶添加到y(tǒng)y組

usermod -a -G yy x

創(chuàng)建普通用戶

useradd zhangsan  //創(chuàng)建一個(gè)用戶
passwd  剛才創(chuàng)建的用戶名 //添加密碼 這種模式會(huì)默認(rèn)創(chuàng)建group組

創(chuàng)建用戶組

groupadd zhangsan

切換用戶

//帶  - 的是完全切換用戶以及環(huán)境變量,
//不帶 - 的僅僅只是切換用戶
//一般建議使用 su - 用戶名的方式切換
su - zhangsan 或者  su  zhangsan  

刪除用戶

userdel -r zhangsan   // -r 表示刪除用戶的時(shí)候刪除該用戶的主目錄

切換到管理員用戶

su 或者 sudo -s

15. 軟件包的管理方式. rpm 和 yum

有兩種方式 rpmyum
RPM, 依賴比較嚴(yán)重, 必須一一安裝所依賴的包.
RPM 常用的命令

  • 查詢
rpm -qa q表示查詢,a表示所有
//相關(guān)參數(shù)
-》 表示查詢套件的相關(guān)信息
-i 表示顯示套件的相關(guān)信息
-v 表示顯示指令執(zhí)行過程
-h 表示套件安裝時(shí)列出標(biāo)記
  • 檢查某個(gè)軟件是否安裝
rpm -qa | grep 軟件名
選項(xiàng) --nodeps: 不檢測(cè)依賴性,一般建議在試驗(yàn)環(huán)境使用
  • 卸載已安裝的軟件
rpm -e --nodeps xxxxxx
rpm -e httpd-manual-2.2.15-26.e16.centos.noarch.rpm //錯(cuò)誤,需要去掉后綴名
rpm -e httpd-manual-2.2.15-26.e16.centos.noarch //正確
  • 安裝軟件
rpm -ivh xxx.rpm
rpm -ivh httpd-manual-2.2.15-26.e16.centos.noarch.rpm

yum
yum 會(huì)自動(dòng)安裝所依賴的包.
常用命令

  • 查詢
#查詢已經(jīng)安裝好的包
yum list
#查詢指定安裝的包
yum list | grep 'httpd'
yum list installed | grep ssh
  • 安裝
#選項(xiàng) -y :安裝過程中無須確認(rèn),直接安裝依賴包
yum -y install httpd-devel.x86_64
  • 卸載
yum -y remove httpd-devel.86_64
  • yum 倉庫: 地址 /etc/yum.repos.d/
  • gpgkey 校驗(yàn)碼: gpgcheck = 1 開啟校驗(yàn), 0 是關(guān)閉

16. 查看端口與進(jìn)程

netstat -an | grep 端口號(hào)

netstat -lntp

ps -Af | grep 進(jìn)程名

ps -ef | grep nginx

#也可以使用防火墻的命令來查詢指定端口是否開放
firewall-cmd --query-port=要查詢的端口/tcp

17. 使用 scp 將文件/目錄分發(fā)到其他主機(jī)

scp -r ./hadoop-2.7.3/ yzhang@zyq03.com:/opt/app
#復(fù)制哪個(gè)目錄,到哪臺(tái)主機(jī)的哪個(gè)目錄下

18. 使用 rsync 進(jìn)行遠(yuǎn)程同步

使用 rsync遠(yuǎn)程同步,可以處理符號(hào)鏈接問題, scp 處理不了符號(hào)鏈接, 同時(shí)速度也更快.

rsync -lr dirOrfile yzhang@zyq01.com:/path
#-l copy符號(hào)鏈接過去后仍為符號(hào)鏈接
#-r 遞歸

19. grep過濾與管道符

grep 過濾

-c   只輸出匹配行的計(jì)數(shù)
-i    查詢多文件時(shí)不顯示文件名
-l    查詢多文件時(shí)只輸出包含匹配字符的文件名
-n   顯示匹配行及行號(hào)
-s   不顯示不存在或無匹配文本的錯(cuò)誤信息
-v   顯示不包含匹配文本的所有行
-B   before 前
-A   after 后
--color    搜索出來的關(guān)鍵字變色
例1:
grep -i --color '關(guān)鍵字' 文件名 
#搜索關(guān)鍵詞的前五行和后五行
grep --color '關(guān)鍵字' 文件名 -B5 -a -A5
例2: 過濾出當(dāng)前目錄下帶有 `t` 關(guān)鍵字的信息并變色.
ll |  grep --color 't'

管道符, 用豎線表示 |, 表示將前一個(gè)命令的輸出結(jié)果傳遞給后面的命令處理,兩邊都是命令.

例 cat /etc/passwd | more

篩選過濾

例 cat /etc/passwd | grep 'root'
例 head -5 文件名 | grep 關(guān)鍵字 #搜索前五行中 包含關(guān)鍵字的行

過濾條件

例 ls /dev | grep 'odrom '

20. 追加和覆蓋

追加 >> 以追加的方式將命令正確的結(jié)果輸出到文件或設(shè)備中

#從student 中讀取包含zhangsan 的行,追加到name.txt 中,name.txt 存在則直接追加,不存在則先創(chuàng)建文件再進(jìn)行追加
grep 'zhangsan' student >> name.txt

覆蓋符號(hào)為>

21. grep 結(jié)合正則表達(dá)式使用

  • ^ 表示起始
  • $ 表示結(jié)束
  • . 表示單個(gè)字符
  • * 表示所有字符

#找出包含一個(gè)數(shù)字的信息 
grep '[0-9]' /etc/xxxx        
#找出包含三個(gè)數(shù)字的信息 
grep '[0-9][0-9][0-9]' /etc/xxx        
#找出包含三個(gè)數(shù)字后面以:7結(jié)尾的信息
grep '[0-9][0-9][0-9]:7' /etc/xxx        
#搜索以txt 結(jié)尾的文件
ls | grep .txt$
#搜搜以r開始,以n結(jié)尾,中間為任意字符  .*聯(lián)合起來使用表示 任意字符
grep '^r.*n$' /etc/xxx                

22. 統(tǒng)計(jì)有多少文件和目錄

ll | wc -l

23. 系統(tǒng)信息

uname #系統(tǒng)類型
uname -r #內(nèi)核版本
cat /proc/cpuinfo #CPU信息
cat /proc/meminfo #內(nèi)存信息
date #系統(tǒng)日期
date -R #系統(tǒng)時(shí)區(qū)
cal 2023 #日歷表
date -s 2023-10-31 #設(shè)置系統(tǒng)時(shí)間(需要root)
date -s 15:45:25
df -lh #查看磁盤信息(需要root)
fdisk -l #查看磁盤信息(需要root)
mount #查看磁盤掛載信息(需要root)
mount 把什么掛載到什么地方 #掛載磁盤(需要root)
umount /xxx/sdb1 #卸載磁盤(需要root)
du -sh /home/xxx/ #查看某個(gè)目錄的大小
du -h /home/xxx/
fsck /dev/xxx #修復(fù)磁盤
free -m #看系統(tǒng)內(nèi)存的使用情況
top #各個(gè)進(jìn)程內(nèi)存的使用情況
top 按下 M 顯示詳細(xì)

24. 防火墻設(shè)置及開放端口

CentOS7中防火墻改變?yōu)?firewalld

  • 查看防火墻狀態(tài)
firewall-cmd --state
  • 關(guān)閉防火墻
systemctl stop firewalld.service
  • 啟動(dòng)防火墻
systemctl start firewalld.service 
  • 重啟防火墻
firewall-cmd --reloadl
  • 禁止firewall開機(jī)啟動(dòng)
systemctl disable firewalld.service 
  • 開放指定端口
firewall-cmd --zone=public --add-port=要開放的端口/tcp --permanent
  • 關(guān)閉指定端口
firewall-cmd --zone=public --remove-port=要關(guān)閉的端口/tcp --permanent
  • 查看指定端口是否開放
firewall-cmd --query-port=要查詢的端口/tcp

25. 設(shè)置普通用戶的 sudo 權(quán)限

切換到root賬戶。
執(zhí)行 vi /etc/sudoers 或者 visudo
在最上面插入

賬戶名 ALL=(root)NOPASSWD:ALL
yzhang ALL=(ALL) NOPASSWD: ALL

26. 壓縮和解壓縮

解壓

  • .tar結(jié)尾的 tar -xvf xxx.tar
    • 解壓到當(dāng)前目錄 tar -xvf xxx.tar
    • 解壓到指定目錄 tar -xvf xxx.tar -C dirPath
  • .tar.gz 結(jié)尾的
    • 解壓到當(dāng)前目錄tar -zxvf xxx.tar.gz
    • 解壓到指定目錄tar -zxvf xxx.tar.gz -C dirPath

-C 意思是重定向. 這個(gè)選項(xiàng)用在解壓縮,若要在特定的目錄解壓縮,可以使用這個(gè)選項(xiàng)
壓縮

  • .tar 結(jié)尾的
    • tar -cvf test.tar test #打包完成之后在壓縮
    • gzip test.tar #使用gzip直接壓縮,源文件會(huì)被刪除
  • .tar.gz結(jié)尾的
    • tar -zcvf zzz.tar.gz dir/file #要打包的文件或者目錄

27. 更換鏡像源

選擇一個(gè)好的鏡像源加快Centos7系統(tǒng)的更新升級(jí)或者安裝軟件的速度

  • 更換阿里的鏡像源
    • 先備份原來的 yum
      • sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    • 設(shè)置阿里云的yum
      • sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    • 添加 EPEL源
      • EPEL 是由 Fedora 社區(qū)打造,為 RHEL 及衍生發(fā)行版如 CentOS、Scientific Linux 等提供高質(zhì)量軟件包的項(xiàng)目。裝上 EPEL后,可以像在 Fedora 上一樣,可以通過 yum install package-name,安裝更多軟件。
      • sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
    • 清理緩存并生成新的緩存
      • sudo yum clean all
      • sudo yum makecache
  • 安裝完成后執(zhí)行 sudo yum list 查看
[yzhang@zyq01 ~]$ sudo yum list
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容