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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...