linux常用指令含義及使用方法

晨晨mak發表於2023-12-05

bin -> usr/bin 這個目錄存放的是,最經常使用的命令

boot 這個目錄存放啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案

dev 裝置Device的縮寫, 該目錄下存放Linux的外部裝置,Linux中的裝置也是以檔案的形式存在

etc 這個目錄存放所有的系統管理所需要的配置檔案

home 使用者的主目錄,在Linux中每個使用者都有一個自己的目錄,一般該目錄名以使用者的賬號命名

lib -> usr/lib 該目錄存放著系統最基本的動態連線共享庫,其作用類似於windows裡的DLL檔案,幾乎所有的應用程式都需要用到這些共享庫。

lib64 -> usr/lib64 64位的系統動態連線共享庫

media Linux系統會自動識別一些裝置,例如隨身碟、光碟機等等,當識別後,Linux會把識別的裝置掛載到這個目錄下

mnt 系統提供該目錄是為了讓使用者臨時掛載別的檔案系統,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容

opt 該目錄是給linux額外安裝軟體所存放的目錄,比如安裝一個Mysql資料庫則就可以放到這個目錄下,預設該目錄是空的(裝軟體常用目錄:/usr/local、/opt、/srv)

root 該目錄為系統管理員目錄,root是具有超級許可權的使用者,是Linux預設建立好的使用者

sbin -> usr/sbin s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式

srv 該目錄存放一些服務啟動之後需要提取的資料

tmp 這個目錄是用來存放一些臨時檔案的

usr 這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似與windows下的Program Files目錄

var 這個目錄存放著在不斷擴充著的東西,我們習慣將那些經常被修改的檔案存放在該目錄下,比如執行的各種日誌檔案

proc 這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以透過直接訪問這個目錄來獲取系統資訊

這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以透過下面的命令來遮蔽主機的ping命令,使別人無法ping你的機器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

run 程式或服務啟動後,執行的PID存放在該目錄下

sys 核心中的檔案系統 sysfs

2.操作防火牆

為了網路安全,伺服器一般都會開啟防火牆,防火牆firewalld服務透過一種信任機制來管理訪問系統的連線。這裡詳細介紹下CentOS 7版本Linux的防火牆操作命令:


防火牆firewalld命令

Linux中,這三個命令都是可以的

systemctl status firewalld 檢視防火牆狀態

systemctl status firewalld.service 檢視防火牆狀態

service firewalld status 檢視防火牆狀態


systemctl anable firewalld 讓防火牆可用

systemctl disable firewalld 讓防火牆禁用

systemctl start firewalld 啟動防火牆

systemctl stop firewalld 關閉防火牆

systemctl restart firewalld 重啟防火牆

在實際公司裡面不會這麼做,一般都是開啟了防火牆,需要時,開放需要的埠,從而提高安全性


firewall-cmd命令

man firewall-cmd 檢視firewall-cmd命令的幫助文件

firewall-cmd -V

firewall-cmd --get-default-zone 預設級別為public

firewall-cmd --get-active-zones 獲取活動的區域

firewall-cmd --get-zones 獲取防火牆信任級別列表(共9個)

防火牆 firewalld 將不同的網路連線,歸類到不同的信任級別,Zone 提供了以下幾個級別:



block: 拒絕所有外部發起的連線,允許內部發起的連線

dmz: 允許受限制的進入連線

drop: 丟棄所有進入的包,而不給出任何響應

external: 同上,對偽裝的進入連線,一般用於路由轉發

home: 允許受信任的計算機被限制的進入連線

internal: 同上,範圍針對所有網際網路使用者

public: 允許指定的進入連線

trusted: 信任所有連線

work: 允許受信任的計算機被限制的進入連線

開啟單個防火牆埠命令:

firewall-cmd --zone=public --add-port=3306/tcp --permanent


命令引數含義:

--zone #作用域:使用firewall-cmd --get-default-zone命令,可以檢視當前系統預設的作用區域

--add-port=8080/tcp  #新增埠,格式為:埠/通訊協議

--permanent   # 一直生效,如果不設定此引數,重啟服務後失效

1

2

3

4

開啟多個防火牆埠

firewall-cmd --zone=public --add-port=8080-8088/tcp --permanent


重新載入防火牆配置

firewall-cmd --reload


取消刪除埠開放

firewall-cmd --zone=public --remove-port=3306/tcp --permanent


查詢埠號3306是否開啟

firewall-cmd --query-port=3306/tcp


列出當前開啟的埠列表

firewall-cmd --list-port


列出當前開啟的服務列表

firewall-cmd --list-services


查詢服務的啟動狀態

firewall-cmd --query-service tcp



查詢所有開啟的服務和埠

firewall-cmd --list-all



3.ulimit命令和history命令

ulimit命令

ulimit 用於顯示系統資源限制的資訊,如:ulimit -a


語法:ulimit [param]

param引數可以為:

-a  顯示目前資源限制的設定

-c <core檔案上限>  設定core檔案的最大值,單位為區塊

-d <資料節區大小>  程式資料節區的最大值,單位為KB

-f <檔案大小>  shell所能建立的最大檔案,單位為區塊

-H  設定資源的硬性限制,也就是管理員所設下的限制

-m <記憶體大小>  指定可使用記憶體的上限,單位為KB

-n <檔案數目>  指定同一時間最多可開啟的檔案數

-p <緩衝區大小>  指定管道緩衝區的大小,單位512位元組

-s <堆疊大小>  指定堆疊的上限,單位為KB

-S  設定資源的彈性限制

-t <CPU時間>  指定CPU使用時間的上限,單位為秒

-u <程式數目>  使用者最多可開啟的程式數目

-v <虛擬記憶體大小>  指定可使用的虛擬記憶體上限,單位為KB


history 命令

history 該命令可以檢視操作Linux使用了那些歷史命令

history -c 清空歷史命令

bash中預設命令記憶可達1000個,這些命令儲存在主資料夾內的 .bash_history 中

~/.bash_history 記錄的是前一次登入以前所執行過的命令,至於本次登入的命令暫時儲存在記憶體中,登出成功後會寫入檔案中


注意:這個情況並不會清空 ~/.bash_history 中的記錄,只是清空記憶體中的記錄

退出終端時,記憶體中的命令記錄會儲存到~/.bash_history 中,但是必須透過logout登出

強制關閉終端時,記憶體中的歷史記錄,也不會記錄在~/.bash_history中,即使記錄了也會有丟失


增加歷史記錄最大條數

history預設記錄最大1000條,可透過修改環境變數來增加條數。將HISTSIZE=1000修改為5000


[root@localhost /]# vim /etc/profile

HOSTNAME=/bin/hostname 2>/dev/null

HISTSIZE=5000

source /etc/profile 執行該命令載入source,使得配置即時生效


history中增加操作時間記錄


[root@localhost /]# vim /etc/profile

HOSTNAME=/bin/hostname 2>/dev/null

HISTSIZE=5000

HISTTIMEFORMAT="%Y/%m%d %H:%M:%S"

[root@localhost /]# source /etc/profile


history命令使用,參考資料連結


4.RPM和Yum的使用

Linux安裝軟體包的幾種方式:


使用rpm安裝

RPM是Red-Hat Package Manager(RPM軟體包管理器)的縮寫,是由Red Hat公司開發的一種軟體包管理方式,使用rpm我們可以方便的進行軟體的安裝、查詢、解除安裝等工作。但是使用rpm命令安裝rpm軟體包也有一些致命的缺點,它不能自己解決軟體包之間的依賴性問題,需要自己一個一個去安裝依賴的軟體包。

rpm只能安裝一個指定的軟體包,如果該軟體包存在依賴性關係,比如安裝A軟體包的時候,需要先安裝B軟體包,採用rpm安裝方式,就要先安裝B,再安裝A。


使用yum安裝

Yum(全稱為 Yellow dog Updater, Modified)是一個在RedHat、Fedora以及CentOS中的一種軟體包管理器,它基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且進行安裝,可以自動處理軟體包之間的依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

yum能自動檢測軟體包之間的依賴關係,可以直接yum安裝A包,yum能檢測到A與B的依賴關係,自動安裝B包。


透過原始碼編譯安裝

Linux安裝軟體第三種方式:就是透過原始碼編譯安裝(GCC),一般就是下載tar.gz安裝包,自己解壓原始碼到指定路徑,進行安裝。這種安裝方式與yum相比的好處是,可以安裝在指定的位置,yum安裝,會導致安裝檔案不受控制,比較亂。


直接解壓

Linux安裝軟體第四種方式:有些軟體直接解壓即可使用,(如:tomcat、zookeeper等)


Linux安裝軟體時,業內約定成俗,一般安裝在三個地方,其他地方當然也能安裝

1、/usr/local

2、/opt

3、/srv


rpm常用命令

rpm引數說明:

-i 安裝應用程式(install)

-e 解除安裝應用程式(erase)

-vh 顯示安裝進度;(verbose hash)

-U 升級軟體包;(update)

-qa 顯示所有已安裝軟體包(query all)


rpm -ivh jdk1.8.101.rpm 安裝rpm包的軟體

rpm -qa | grep xxx 檢視是否安裝了某個rpm包

rpm -e jdk1.8.101.rpm 刪除某個rpm安裝包


rpm安裝軟體,安裝後的檔案到處都有,散落一地,不好歸檔


yum常用命令

yum search <keyword> 查詢軟體包命令,有些軟體沒有rpm包

yum install <package_name> 安裝指定的軟體命令

比如:telnet,使用該命令會提示:

-bash: telnet: command not found

yum install telnet -y 安裝telnet軟體包,就可以使用telnet命令了

telnet


yum remove <package_name> 刪除軟體包命令

yum list installed 列出所有已安裝的軟體包命令

yum list installed | grep java 列出已安裝的指定軟體包命令


清理yum安裝已下載的包命令,一般安裝後可以清空快取,釋放資源,不影響使用

yum clean all(yum install 後的rpm包存放在/var/cache/yum/下)


5.設定系統字符集

系統字符集,有時候可能需要修改,這裡也介紹下,如:設定中文man手冊,可能需要把系統字符集設定為中文字符集


檢視當前的字符集

echo $LANG

locale


臨時修改系統字符集

export LANG="zh_CN.UTF-8" 設定為中文字符集

export LANG="en_US.UTF-8" 設定為英文字符集


修改系統字符集

需要寫入/etc/profile配置檔案

vim /etc/profile

新增內容 export LANG="en_US.UTF-8" 新增內容後,在命令模式下 :wq 儲存並退出

source /etc/profile 讓修改配置生效


6.vi & vim編輯器

vi是linux下標配的一個純字元介面的文字編輯器,由於不是圖形介面,相關的操作都要透過鍵盤輸入命令來完成,需要記住一些常用的操作命令

vim是vi的升級版本,完全相容vi,vim也可以完全當成vi使用,vim是在vi的基礎上增加一些功能,比如語法著色等


vi和vim使用是比較簡單的,記住幾個常用的命令,即可

vi(vim) filename 可以開啟並修改檔案

如果引數中的filename檔案存在,則開啟該檔案,如果引數中的檔案不存在,則會新建該檔案(不是立即建立,而是在儲存的時候建立)


vi(vim)有幾種操作模式:


命令模式

按Esc鍵,進入命令模式,命令模式下無法編輯

編輯好內容後,在命令模式下,按 :wq 儲存編輯內容退出,按 :q!不儲存修改部分並退出


使用vi命令開啟檔案,然後可以檢視和設定檔案的編碼格式

檢視檔案字元編碼格式:

set ff(fileformat)


設定檔案編碼格式為unix

使用命令set ff = unix,然後回車即可


設定檔案編碼格式為dos

使用命令set ff = dos,然後回車即可


編輯模式

按 a 或者 i 字母鍵,進入編輯模式(此時,底部會出現insert)


為了快速使用vi(vim)命令編輯文字內容,整理了一些常用的快捷鍵 (在命令模式下執行)

u 撤銷上次操作

ctrl+r 恢復撤銷

dd 刪除游標所在行

yy 複製游標所在行到緩衝區

p 貼上緩衝區中的內容

gg 游標回到檔案第一行

shift + g 游標回到檔案最後一行

^ 游標移動至當前行的行首

$ 游標移動至當前行的行尾

/關鍵字 按斜槓/鍵,可以輸入想搜尋的字元,然後確定進行搜尋,如果第一次查詢的關鍵字不是想要的,可以一直按n鍵往後查詢到想要的關鍵字為止


7.檔案同步、複製

更新中…


8.利用SCP命令進行檔案傳輸

scp基礎介紹:


Linux scp 命令用於 Linux 之間複製檔案和目錄。scp是secure copy的縮寫,scp是Linux 系統下基於ssh登陸,進行安全的遠端檔案複製命令,和ssh 使用相同的認證方式,提供相同的安全保證 。

scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版。

scp不需要安裝額外的軟體,使用起來簡單方便,安全可靠且支援限速引數,但是它不支援排除目錄。

scp使用語法:


scp [可選引數] file_source file_target

這裡的可選引數有很多,我列幾個常用的:

-p 保留原檔案的修改時間,訪問時間和訪問許可權

-q 不顯示傳輸進度條

-r 遞迴複製整個目錄,常用於傳輸資料夾

-v 展示傳輸詳情,scp和ssh(1)會顯示出整個過程的除錯資訊。這些資訊用於除錯連線,驗證和配置問題。

-P port:注意是大寫的P,port是指定資料傳輸用到的埠號

scp使用示例:


從本地複製到遠端

命令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第1,2個指定了使用者名稱,命令執行後需要再輸入密碼,第1個僅指定了遠端的目錄,檔名字不變,第2個指定了檔名;

第3,4個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼,第3個僅指定了遠端的目錄,檔名字不變,第4個指定了檔名;


1

2

3

4

如果需要複製目錄,使用命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

或者

scp -r local_folder remote_ip:remote_folder

第1個指定了使用者名稱,命令執行後需要再輸入密碼;

第2個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼;


上面命令將本地 music 目錄複製到遠端 others 目錄下。


從遠端複製到本地

從遠端複製到本地,只要將從本地複製到遠端的命令的後2個引數調換順序即可,如下應用例項:



注意:

如果遠端伺服器防火牆有為scp命令設定了指定的埠,我們需要使用 -P 引數來設定命令的埠號

使用scp命令要確保使用的使用者具有可讀取遠端伺服器相應檔案的許可權,否則scp命令是無法起作用的。

該scp使用這部分,參考菜鳥教程


寫部落格是為了記住自己容易忘記的東西,另外也是對自己工作的總結,希望儘自己的努力,做到更好,大家一起努力進步!


如果有什麼問題,歡迎大家一起探討,程式碼如有問題,歡迎各位大神指正!



來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70001647/viewspace-2998735/,如需轉載,請註明出處,否則將追究法律責任。