Linux常用操作命令總結

来源:https://www.cnblogs.com/narutu/archive/2023/04/09/17300602.html
-Advertisement-
Play Games

一、基礎知識 1.1 Linux系統的文件結構 /bin 二進位文件,系統常規命令 /boot 系統啟動分區,系統啟動時讀取的文件 /dev 設備文件 /etc 大多數配置文件 /home 普通用戶的家目錄 /lib 32位函數庫 /lib64 64位庫 /media 手動臨時掛載點 /mnt 手動 ...


一、基礎知識

1.1 Linux系統的文件結構

/bin        二進位文件,系統常規命令
/boot       系統啟動分區,系統啟動時讀取的文件
/dev        設備文件
/etc        大多數配置文件
/home       普通用戶的家目錄
/lib        32位函數庫
/lib64      64位庫
/media      手動臨時掛載點
/mnt        手動臨時掛載點
/opt        第三方軟體安裝位置
/proc       進程信息及硬體信息
/root       臨時設備的預設掛載點
/sbin       系統管理命令
/srv        數據
/var        數據
/sys        內核相關信息
/tmp        臨時文件
/usr        用戶相關設定

1.2 Linux系統命令行的含義

示例:root@app00:~# 
root    //用戶名,root為超級用戶
@       //分隔符
app00   //主機名稱
~       //當前所在目錄,預設用戶目錄為~,會隨著目錄切換而變化,例如:(root@app00:/bin# ,當前位置在bin目錄下)
#       //表示當前用戶是超級用戶,普通用戶為$,例如:("yao@app00:/root$" ,表示使用用戶"yao"訪問/root文件夾)

1.3 命令的組成

示例:命令 參數名 參數值

二、基礎操作

2.1 重啟系統

(1)立刻關機
  shutdown -h now 或者 poweroff
(2)兩分鐘後關機
  shutdown -h 2

2.2 關閉系統

(1)立刻重啟
  shutdown -r now 或者 reboot
(2)兩分鐘後重啟
  shutdown -r 2 

2.3 幫助命令(help)

ifconfig  --help     //查看 ifconfig 命令的用法

2.4 命令說明書(man)

man shutdown         //打開命令說明後,可按"q"鍵退出

2.5 切換用戶(su)

su yao               //切換為用戶"yao",輸入後回車需要輸入該用戶的密碼
exit                 //退出當前用戶

三、目錄操作

3.1 切換目錄(cd)

cd /                 //切換到根目錄
cd /bin              //切換到根目錄下的bin目錄
cd ../               //切換到上一級目錄 或者使用命令:cd ..
cd ~                 //切換到home目錄
cd -                 //切換到上次訪問的目錄
cd xx(文件夾名)       //切換到本目錄下的名為xx的文件目錄,如果目錄不存在報錯
cd /xxx/xx/x         //可以輸入完整的路徑,直接切換到目標目錄,輸入過程中可以使用tab鍵快速補全

3.2 查看目錄(ls)

ls                   //查看當前目錄下的所有目錄和文件
ls -a                //查看當前目錄下的所有目錄和文件(包括隱藏的文件)
ls -l                //列表查看當前目錄下的所有目錄和文件(列表查看,顯示更多信息),與命令"ll"效果一樣
ls /bin              //查看指定目錄下的所有目錄和文件 

3.3 創建目錄(mkdir)

mkdir tools          //在當前目錄下創建一個名為tools的目錄
mkdir /bin/tools     //在指定目錄下創建一個名為tools的目錄

3.3 刪除目錄與文件(rm)

rm 文件名              //刪除當前目錄下的文件
rm -f 文件名           //刪除當前目錄的的文件(不詢問)
rm -r 文件夾名         //遞歸刪除當前目錄下此名的目錄
rm -rf 文件夾名        //遞歸刪除當前目錄下此名的目錄(不詢問)
rm -rf *              //將當前目錄下的所有目錄和文件全部刪除
rm -rf /*             //將根目錄下的所有文件全部刪除【慎用!相當於格式化系統】

3.4 修改目錄(mv)

mv 當前目錄名 新目錄名        //修改目錄名,同樣適用與文件操作
mv /usr/tmp/tool /opt       //將/usr/tmp目錄下的tool目錄剪切到 /opt目錄下麵
mv -r /usr/tmp/tool /opt    //遞歸剪切目錄中所有文件和文件夾

3.5 拷貝目錄(cp)

cp /usr/tmp/tool /opt       //將/usr/tmp目錄下的tool目錄複製到 /opt目錄下麵
cp -r /usr/tmp/tool /opt    //遞歸剪複製目錄中所有文件和文件夾

3.6 搜索目錄(find)

find /bin -name 'a*'        //查找/bin目錄下的所有以a開頭的文件或者目錄

3.7 查看當前目錄(pwd)

pwd                         //顯示當前位置路徑

四、文件操作

4.1 新增文件(touch)

touch  a.txt   //在當前目錄下創建名為a的txt文件(文件不存在),如果文件存在,將文件時間屬性修改為當前系統時間

4.2 刪除文件(rm)

rm 文件名              //刪除當前目錄下的文件
rm -f 文件名           //刪除當前目錄的的文件(不詢問)

4.3 編輯文件(vi、vim)

vi 文件名              //打開需要編輯的文件
--進入後,操作界面有三種模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-剛進入文件就是命令模式,通過方向鍵控制游標位置,
-使用命令"dd"刪除當前整行
-使用命令"/欄位"進行查找
-按"i"在游標所在字元前開始插入
-按"a"在游標所在字元後開始插入
-按"o"在游標所在行的下麵另起一新行插入
-按":"進入底行模式
插入模式
-此時可以對文件內容進行編輯,左下角會顯示 "-- 插入 --""
-按"ESC"進入底行模式
底行模式
-退出編輯:      :q
-強制退出:      :q!
-保存並退出:    :wq
## 操作步驟示例 ##
1.保存文件:按"ESC" -> 輸入":" -> 輸入"wq",回車     //保存並退出編輯
2.取消操作:按"ESC" -> 輸入":" -> 輸入"q!",回車     //撤銷本次修改並退出編輯
## 補充 ##
vim +10 filename.txt                   //打開文件並跳到第10行
vim -R /etc/passwd                     //以只讀模式打開文件

4.4 查看文件

cat a.txt          //查看文件最後一屏內容
less a.txt         //PgUp向上翻頁,PgDn向下翻頁,"q"退出查看
more a.txt         //顯示百分比,回車查看下一行,空格查看下一頁,"q"退出查看
tail -100 a.txt    //查看文件的後100行,"Ctrl+C"退出查看

五、文件許可權

5.1 許可權說明

文件許可權簡介:'r' 代表可讀(4),'w' 代表可寫(2),'x' 代表執行許可權(1),括弧內代表"8421法"
##文件許可權信息示例:-rwxrw-r--
-第一位:'-'就代表是文件,'d'代表是文件夾
-第一組三位:擁有者的許可權
-第二組三位:擁有者所在的組,組員的許可權
-第三組三位:代表的是其他用戶的許可權

5.2 文件許可權

普通授權    chmod +x a.txt    
8421法     chmod 777 a.txt     //1+2+4=7,"7"說明授予所有許可權

六、打包與解壓

6.1 說明

.zip、.rar        //windows系統中壓縮文件的擴展名
.tar              //Linux中打包文件的擴展名
.gz               //Linux中壓縮文件的擴展名
.tar.gz           //Linux中打包並壓縮文件的擴展名

6.2 打包文件

tar -zcvf 打包壓縮後的文件名 要打包的文件
參數說明:z:調用gzip壓縮命令進行壓縮; c:打包文件; v:顯示運行過程; f:指定文件名;
示例:
tar -zcvf a.tar file1 file2,...      //多個文件壓縮打包

6.3 解壓文件

tar -zxvf a.tar                      //解包至當前目錄
tar -zxvf a.tar -C /usr------        //指定解壓的位置
unzip test.zip             //解壓*.zip文件 
unzip -l test.zip          //查看*.zip文件的內容 

七、其他常用命令

7.1 find

find . -name "*.c"     //將目前目錄及其子目錄下所有延伸檔名是 c 的文件列出來
find . -type f         //將目前目錄其其下子目錄中所有一般文件列出
find . -ctime -20      //將目前目錄及其子目錄下所有最近 20 天內更新過的文件列出
find /var/log -type f -mtime +7 -ok rm {} \;     //查找/var/log目錄中更改時間在7日以前的普通文件,併在刪除之前詢問它們
find . -type f -perm 644 -exec ls -l {} \;       //查找前目錄中文件屬主具有讀、寫許可權,並且文件所屬組的用戶和其他用戶具有讀許可權的文件
find / -type f -size 0 -exec ls -l {} \;         //為了查找系統中所有文件長度為0的普通文件,併列出它們的完整路徑

7.2 whereis

whereis ls             //將和ls文件相關的文件都查找出來

7.3 which

說明:which指令會在環境變數$PATH設置的目錄里查找符合條件的文件。
which bash             //查看指令"bash"的絕對路徑

7.4 sudo

說明:sudo命令以系統管理者的身份執行指令,也就是說,經由 sudo 所執行的指令就好像是 root 親自執行。需要輸入自己賬戶密碼。
使用許可權:在 /etc/sudoers 中有出現的使用者
sudo -l                              //列出目前的許可權
$ sudo -u yao vi ~www/index.html    //以 yao 用戶身份編輯  home 目錄下www目錄中的 index.html 文件

7.5 grep

grep -i "the" demo_file              //在文件中查找字元串(不區分大小寫)
grep -A 3 -i "example" demo_text     //輸出成功匹配的行,以及該行之後的三行
grep -r "ramesh" *                   //在一個文件夾中遞歸查詢包含指定字元串的文件

7.6 service

說明:service命令用於運行System V init腳本,這些腳本一般位於/etc/init.d文件下,這個命令可以直接運行這個文件夾裡面的腳本,而不用加上路徑
service ssh status      //查看服務狀態 
service --status-all    //查看所有服務狀態 
service ssh restart     //重啟服務 

7.7 free

說明:這個命令用於顯示系統當前記憶體的使用情況,包括已用記憶體、可用記憶體和交換記憶體的情況 
free -g            //以G為單位輸出記憶體的使用量,-g為GB,-m為MB,-k為KB,-b為位元組 
free -t            //查看所有記憶體的彙總

7.8 top

top               //顯示當前系統中占用資源最多的一些進程, shift+m 按照記憶體大小查看

7.9 df

說明:顯示文件系統的磁碟使用情況
df -h            //一種易看的顯示

7.10 mount

mount /dev/sdb1 /u01              //掛載一個文件系統,需要先創建一個目錄,然後將這個文件系統掛載到這個目錄上
dev/sdb1 /u01 ext2 defaults 0 2   //添加到fstab中進行自動掛載,這樣任何時候系統重啟的時候,文件系統都會被載入 

7.11 uname

說明:uname可以顯示一些重要的系統信息,例如內核名稱、主機名、內核版本號、處理器類型之類的信息 
uname -a

7.12 yum

說明:安裝插件命令
yum install httpd      //使用yum安裝apache 
yum update httpd       //更新apache 
yum remove httpd       //卸載/刪除apache 

7.13 rpm

說明:插件安裝命令
rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm      //使用rpm文件安裝apache 
rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm      //使用rpm更新apache 
rpm -ev httpd                                 //卸載/刪除apache 

7.14 date

date -s "01/31/2010 23:59:53"   ///設置系統時間

7.15 wget

說明:使用wget從網上下載軟體、音樂、視頻 
示例:wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
//下載文件並以指定的文件名保存文件
wget -O nagios.tar.gz http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz

7.16 ftp

ftp IP/hostname    //訪問ftp伺服器
mls *.html -       //顯示遠程主機上文件列表

7.17 scp

scp /opt/data.txt  192.168.1.101:/opt/    //將本地opt目錄下的data文件發送到192.168.1.101伺服器的opt目錄下

八、系統管理

8.1 防火牆操作

service iptables status      //查看iptables服務的狀態
service iptables start       //開啟iptables服務
service iptables stop        //停止iptables服務
service iptables restart     //重啟iptables服務
chkconfig iptables off       //關閉iptables服務的開機自啟動
chkconfig iptables on        //開啟iptables服務的開機自啟動
##centos7 防火牆操作
systemctl status firewalld.service     //查看防火牆狀態
systemctl stop firewalld.service       //關閉運行的防火牆
systemctl disable firewalld.service    //永久禁止防火牆服務

8.2 修改主機名(CentOS 7)

hostnamectl set-hostname 主機名

8.3 查看網路

ifconfig

8.4 修改IP

修改網路配置文件,文件地址:/etc/sysconfig/network-scripts/ifcfg-eth0
------------------------------------------------
主要修改以下配置:  
TYPE=Ethernet               //網路類型
BOOTPROTO=static            //靜態IP
DEVICE=ens00                //網卡名
IPADDR=192.168.1.100        //設置的IP
NETMASK=255.255.255.0       //子網掩碼
GATEWAY=192.168.1.1         //網關
DNS1=192.168.1.1            //DNS
DNS2=8.8.8.8                //備用DNS
ONBOOT=yes                  //系統啟動時啟動此設置
-------------------------------------------------
修改保存以後使用命令重啟網卡:service network restart

8.5 配置映射

修改文件: vi /etc/hosts
在文件最後添加映射地址,示例如下:
192.168.1.101  node1
192.168.1.102  node2
192.168.1.103  node3
配置好以後保存退出,輸入命令:ping node1 ,可見實際 ping 的是 192.168.1.101。

8.6 查看進程

ps -ef         //查看所有正在運行的進程

8.7 結束進程

kill pid       //殺死該pid的進程
kill -9 pid    //強制殺死該進程   

8.8 查看鏈接

ping IP        //查看與此IP地址的連接情況
netstat -an    //查看當前系統埠
netstat -an | grep 8080     //查看指定埠

8.9 快速清屏

ctrl+l        //清屏,往上翻可以查看歷史操作

8.10 遠程主機

ssh IP       //遠程主機,需要輸入用戶名和密碼

九、統計數量

有時候我們需要在 Linux 伺服器上查看某個文件夾目錄下的文件個數,這個需求可以通過 lsgrepwc 這三個命令來統計某個路徑下文件或者文件夾的數量,下麵老王就分情況介紹下使用方法。

下麵分情況介紹下這 3 個命令的使用方法。

1、統計當前目錄下文件的個數(不包括目錄)

ls -l | grep "^-" | wc -l

2、統計當前目錄下文件的個數(包括子目錄)

ls -lR| grep "^-" | wc -l

3、查看某目錄下文件夾(目錄)的個數(包括子目錄)

ls -lR | grep "^d" | wc -l

4、統計當前文件夾下叫某某的文件的數量

find . -name filename | wc -l

5、統計當前文件夾下指定類型的文件的數量

例如這裡需要找 js 文件的數量:

find -name "*.js" | wc -l

這裡再對使用到的 3 個命令做個介紹。

1、ls -l

長列表輸出該目錄下文件信息(註意這裡的文件是指目錄、鏈接、設備文件等),每一行對應一個文件或目錄,ls -lR 是列出所有文件,包括子目錄。

2、grep “^-”

過濾ls的輸出信息,只保留一般文件,只保留目錄是 grep “^d”。

3、wc -l

統計輸出信息的行數,統計結果就是輸出信息的行數,一行信息對應一個文件,所以就是文件的個數。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CommunityToolkit.Mvvm包(又名MVVM 工具包,以前名為 Microsoft.Toolkit.Mvvm)是一個現代、快速且模塊化的 MVVM 庫。它支持:.NET Standard 2.0、 .NET Standard 2.1 和 .NET 6(UI Framework 不支持) ...
  • 首先就是要下載Visual Studio,具體可以登錄官網查看下載教程。 首次打開Visual Studio,就會顯示新建的頁面,若是使用過的則根據以下操作進行: 以下界面則與新使用的新建界面一致:選擇ASP.NET Web,點擊下一步 填寫項目名稱,選擇項目存放的位置,選擇框架,點擊創建 在這裡選 ...
  • 在本文中,我們將介紹如何使用 .NET Core 中的中間件來自定義規範響應,以便在 API 調用時返回統一的格式和錯誤信息。中間件是一種可以在請求和響應管道中執行邏輯的軟體組件,它可以對請求或響應進行修改、攔截或處理。我們將使用一個簡單的示例來演示如何創建和使用自定義規範響應的中間件。 首先,我們 ...
  • 1. 在Blazor中使用Chart.js 首先,從Chart.js官方網站下載Chart.js庫文件。 推薦下載這個構建好的版本https://cdnjs.com/libraries/Chart.js,最新版是v4.2.1 在Blazor項目中把剛剛下載好的Chart.js放到wwwroot目錄下 ...
  • 雲伺服器開啟埠 CentOS開啟埠 防火牆添加埠 firewall-cmd --zone=public --add-port=埠/tcp --permanent 命令含義: –zone #作用域 –add-port=1935/tcp #添加埠,格式為:埠/通訊協議 –permanent ...
  • Ubuntu系統Flameshot使用問題 系統:Ubuntu22.04 問題:使用Flameshot,每次都會先截取整個屏幕,提示需要先分享,再使用Flameshot的功能 安裝Flameshot sudo apt install flameshot 先說解決方案 開機用戶登錄時,右下角有設置桌面 ...
  • 前言 這個任務調度模塊的實現是形成於畢設項目中的,用在STM32中,斷斷續續跨度2個月實現了一些基本功能,可能後面再做其他項目時會一點點完善起來,也會多學習相關知識來強化模塊的實用性和高效性,畢竟用自己自主實現出來的功能還是蠻舒心的。 任務調度模式結構 整體上的結構屬於線性結構,結合鏈表和定時器來實 ...
  • Win(WD 512G)+ Fedora(Lexar 256G),在Fedora Linux中無法顯示Windows的硬碟,排除SCSI匯流排的問題後確認是傲騰Optane without Raid的問題,通過BIOS更改為ACHI得到解決 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...