Linux 常用指令

日常及網路上搜尋到一些工作上用的到的指令

指令說明
netstat -tulpn顯示對應的PID 網路Port。
watch ss -stplu透過套接字即時觀察 TCP, UDP 連接埠。
lsof -i顯示確認了的連線。
macchanger -m MACADDR INTR在 KALI Linux 上修改 MAC 位址。
ifconfig eth0 192.168.2.1/24設定 IP 位址。
ifconfig eth0:1 192.168.2.3/24新增 IP 位址到現有的網路介面。
ifconfig eth0 hw ether MACADDR使用 ifconfig 修改 Linux 中的 MAC 位址。
ifconfig eth0 mtu 1500使用 ifconfig 修改 MTU 的大小,將 1500 改為你想要的 MTU。
dig -x 192.168.1.1對 IP 位址進行反向查找。
host 192.168.1.1在一個 IP 位址上進行反向查找,適用於沒有安裝 dig 的情況。
dig @192.168.2.2 domain.com -t AXFR使用 dig 執行一次 DNS 區域傳輸。
host -l domain.com nameserver使用 host 執行一次 DNS 區域傳輸。
nbtstat -A x.x.x.x取得 IP 位址對應的網域名稱。
ip addr add 192.168.2.22/24 dev eth0新增一個隱藏的IP 位址,執行ifconfig 指令時不會顯示這個IP 位址。
tcpkill -9 host google.com阻止訪問 google.com。
echo “1” > /proc/sys/net/ipv4/ip_forward啟用IP 轉發
echo “8.8.8.8” > /etc/resolv.conf

系統指令

指令說明
whoami顯示Linux 上目前已登入使用者。
id向使用者顯示目前已登入的使用者和群組。
last顯示最後一次登陸的使用者。
mount顯示已掛載的驅動程式。
df -h用人類可讀的輸出顯示磁碟使用情況。
echo “user:passwd” | chpasswd用一行指令重設密碼。
getent passwd列出 Linux 上的使用者。
strings /usr/local/bin/blah顯示非文字檔案的內容,例如:一個二進位檔案裡面有什麼。
uname -ar顯示運行中的核心版本。
PATH=$PATH:/my/new-path新增一個新的路徑,方便進行本機檔案系統(FS)操作。
history顯示使用者在先前執行的 bash 腳本歷史記錄,還有敲入的命令。

基於 Redhat / CentOS / RPM 的版本

指令說明
cat /etc /redhat-release顯示Redhat / CentOS 版本號。
rpm -qa在基於 RPM 的 Linux 上列出所有已經安裝上的 RPM 套件。
rpm -q –changelog openvpn檢查已安裝的RPM 是否針對CVE 打了補丁,可以用grep 指令過濾出跟CVE 有關的輸出。

YUM 指令

指令說明
yum update使用YUM 更新所有的RPM 包,也會顯示出哪些已經過時了。
yum update httpd更新單獨的包,在此例中是 HTTPD (Apache)。
yum install package使用 YUM 安裝一個套件。
yum –exclude=package kernel* update使用 YUM 時將一個套件排除在外不更新。
yum remove package使用 YUM 刪除套件。
yum erase package使用 YUM 刪除套件。
yum list package列出有關 yum 套件的資訊。
yum provides httpd顯示一個套件是的用途,例如:Apache HTTPD Server。
yum info httpd顯示包信息,架構,版本等信息。
yum localinstall blah.rpm使用 YUM 來安裝本地 RPM, 從資源庫進行安裝。
yum deplist package顯示包的提供者資訊。
yum list installed | more列出所有已安裝的套件。
yum grouplist | more顯示所有的 YUM 分組。
yum groupinstall ‘Development Tools’安裝 YUM 分組。

基於 Debian / Ubuntu / .deb 的發行版

指令說明
cat /etc /debian_version顯示Debian 版本號。
cat /etc/*-release顯示 Ubuntu 版本號。
dpkg -l在基於 Debian / .deb 的 Linux 發行版上列出所有已安裝的套件。

Linux 使用者管理

指令說明
useradd new- user建立一個新的使用者。
passwd username重置用戶密碼, 如果你是 root 用戶,只要輸入密碼就行了。
deluser username刪除一個使用者。

Linux 解壓縮指令

如何在 Linux 上解析不同的壓縮包 (tar, zip, gzip, bzip2 等等) ,以及其它的一些用來在壓縮包中進行搜索等操作的小技巧。

指令說明
unzip archive. zip解壓縮 zip 包中的檔案。
zipgrep *.txt archive.zip在 zip 壓縮包中搜尋。
tar xf archive.tar解壓縮 tar 包中的檔案。
tar xvzf archive.tar.gz解壓縮 tar.gz 套件中的檔案。
tar xjf archive.tar.bz2解壓縮 tar.bz2 套件中的檔案。
tar ztvf file.tar.gz | grep blah在 tar.gz 檔案中搜尋。
gzip -d archive.gz解壓縮 gzip 中的檔案。
zcat archive.gz以不解壓縮的方式讀取一個 gz 檔案。
zless archive.gz用較少的指令實現對 .gz 壓縮包相同的功能。
zgrep ‘blah’ /var/log/maillog*.gz對.gz 壓縮包裡面的內容執行搜索,例如搜索被壓縮過的日誌檔。
vim file.txt.gz使用 vim 讀取 .txt.gz 檔案(我個人的最愛)。
upx -9 -o output.exe input.exe使用 UPX 壓縮 .exe 檔案。

Linux 壓縮指令

指令說明
zip archive.zip filename.zip 壓縮檔案
zip -r archive.zip ./floder.zip 壓縮目錄
tar cvf archive.tar ./.tar 壓縮檔案
tar zcvf example.tar.gz ..tar.gz 壓縮檔案
bzip2 -z filename.bzip2 壓縮檔案
gzip filename .gzip 壓縮檔案
tar jcvf example.tar.bz2 ./.tar.bz 壓縮檔案
tar Jcvf example.tar.xz ./.tar.xz 壓縮檔案

Linux 檔案指令

指令描述
df -h blah顯示檔案/目錄的大小。
diff file1 file2比對/顯示兩個檔案之間的差異。
md5sum file產生 MD5 摘要。
md5sum -c blah.iso.md5檢查檔案的MD5 摘要,這裡假設檔案和.md5 處在相同的路徑下。
file blah找出檔案的類型,也會將檔案是 32 還是 64 位元顯示出來。
dos2unix將 Windows 的行結束符號轉成 Unix/Linux 的。
base64 < input-file > output-file對輸入檔進行Base64 編碼,然後輸出一個叫做output-file 的Base64 編碼文件。
base64 -d < input-file > output-file對輸入檔進行Base64 解碼,然後輸出一個叫做output-file 的Base64解碼檔。
touch -r ref-file new-file使用來自於引用文件的時間戳數據創建一個新文件,放上-r 以簡單地創建一個文件。
rm -rf不顯示確認提示就刪除檔案和目錄。

Misc 指令

指令說明
init 6從命令列重啟Linux 。
gcc -o output.c input.c編譯 C 程式碼。
gcc -m32 -o output.c input.c交叉編譯C 程式碼,在64 位元Linux 上將編譯出32 位元的二進位文件。
unset HISTORYFILE關閉 bash 歷史日誌記錄功能。
rdesktop X.X.X.X連線到 RDP 伺服器。
kill -9 $$關掉目前的會話。
chown user:group blah修改文件或目錄的擁有者。
chown -R user:group blah修改檔案或目錄,以及目錄下方檔案/目錄的擁有者 —— 遞歸執行 chown。
chmod 600 file修改檔案/目錄的權限設定, 詳情請見[Linux 檔案系統權限](#linux-file-system-permissions ) 。

清除 bash 歷史:

1$ ssh [email protected] | cat /dev/null > ~/ .bash_history

Linux檔案系統權限

取值意義
777rwxrwxrwx 沒有限制,完全可讀可寫可執行(RWX),使用者可以做任何事情。
755rwxr-xr-x 擁有者可完全訪問,其他人只能讀取和執行文件。
700rwx—— 擁有者可完全訪問,其他人都不能訪問。
666rw-rw-rw- 所有人可以讀取和寫入,但不可執行。
644rw-r–r– 擁有者可以讀取和寫入,其他人只可以讀取。
600rw——- 擁有者可以讀取和寫入,其他人都不能存取。

Linux 檔案系統的滲透測試備忘錄

目錄描述
//  根目錄。
/bin由系統、系統管理員、使用者共用的通用程式。
/bootBoot 檔案, 啟動載入器(grub), 核心, vmlinuz
/dev包含了系統裝置、帶有特殊屬性的檔案的引用。
/etc重要的系統設定檔。
/home系統使用者的主目錄。
/lib庫文件,包括系統和使用者都需要的所有類型的程式的文件。
/lost+found檔案操作失敗會被保存在這裡。
/mnt外部檔案系統的標準掛載點。
/media外部檔案系統(或某些發行版)的掛載點。
/net整個遠端檔案系統的標準掛載點 —— nfs。
/opt一般都是包含一些附加的或第三方軟體。
/proc一個包含了系統資源相關資訊的虛擬檔案系統。
/rootroot 使用者的主目錄。
/sbin由系統和系統管理員來使用的程式。
/tmp供系統使用的臨時空間,重啟時會被清空。
/usr供所有使用者相關程式使用的程式、函式庫、文件等等。
/var儲存所有由使用者建立的可變文件和臨時文件,例如日誌檔案、郵件佇列、後台列印程序,Web伺服器,資料庫等等。

Linux 中有趣的檔案/目錄

如果你想嘗試進行特權升級/執行後期開發,這些都是你值得一瞧的指令。

路徑描述
/etc/ passwd包含了本地Linux 的使用者。
/etc/shadow包含了哈希過的本機帳戶密碼。
/etc/group包含了本機帳戶分組。
/etc/init.d/包含了服務網初始化腳本 – 具體都安裝了些啥應該值得一瞧。
/etc/hostname系統的 hostname。
/etc/network/interfaces網路介面。
/etc/resolv.conf系統的 DNS 服務。
/etc/profile系統的環境變數。
~/.ssh/SSH 密鑰。
~/.bash_history使用者的 bash 歷史日誌。
/var/log/Linux 系統的日誌檔案一般就被存放在這裡。
/var/adm/UNIX 系統的日誌檔案一般就被存在在這裡。
/var/log/httpd/access.logApache 存取日誌檔案通常的存在路徑。
/etc/fstab掛載的檔案系統。
Tags :

About the Author

Aaron

主要工作為陪小孩長大,次要才是養家活口的運維

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料