Shell常用命令


在終端中,顯示普通用戶是$,而root用戶是#。


Linux系統結構及配置文件

1.1 Linux系統結構

路徑 描述
/ 根目錄,所有文件的第一級目錄
/home 普通用戶家目錄
/root 超級用戶家目錄
/usr 用戶命令、應用程序等目錄
/var 應用數據、日志等目錄
/lib 庫文件和內核模塊目錄
/etc 系統和軟件配置文件
/bin 可執行程序目錄
/boot 內核加載所需的文件,grub 引導
/dev 設備文件目錄,比如磁盤驅動
/tmp 臨時文件目錄
/opt 第三方軟件安裝目錄

1.2 環境變量文件

1.2.1 系統級

  系統級變量文件對所有用戶生效。
/etc/profile
# 系統范圍內的環境變量和啟動文件。不建議把要做的事情寫在這里面,最好創建一個自定義,放在/etc/profile.d下
/etc/bashrc
# 系統范圍內的函數和別名

1.2.2 用戶級

  用戶級變量文件對自己生效,都在自己的家目錄下。
~/.bashrc # 用戶指定別名和函數
~/.bash_logout # 用戶退出執行
~/.bash_profile # 用戶指定變量和啟動程序
~/.bash_history # 用戶指定命令歷史文件
  開機啟動腳本順序:/etc/profile -> /etc/profile.d/*.sh -> /.bash_profile -> /.bashrc -> /etc/bashrc
  因此,我們可以把寫的腳本放在以上的文件內執行。

1.3 系統配置文件

路徑 描述
/etc/issue 系統版本
/etc/hosts 主機名與 IP 對應關系
/etc/resolv.conf DNS 服務器地址
/etc/hostname 主機名
/etc/sysctl.conf 系統參數配置文件
/etc/sudoers sudo 權限配置
/etc/init.d 服務啟動腳本
/etc/sysconfig/networkscripts 網卡信息配置目錄
/etc/rc.d/rc.local 系統 init 初始化完后執行,不建議將啟動服務寫在這里面,應創建 自己的 systemd 或 udev
/etc/fstab 硬盤自動掛載配置
/etc/inittab 系統啟動運行級別
/etc/crontab 系統級任務計划
/var/spool/cron 用戶級任務計划,此目錄下以用戶名命名對應每個用戶的任務計划
/etc/cron.d 描述計算機任務計划
/etc/hosts.allow TCP 包訪問列表
/etc/hosts.deny TCP 包拒絕列表
/usr/share/doc 各軟件的文檔
/etc/sshd_config SSH 服務配置文件
/var/log 系統和應用程序日志目錄
/var/spool/mail 郵件目錄

2 Shell常用命令

  首先給一個查詢命令的鏈接:https://man.linuxde.net/。另外可以通過man cmd、cmd --help、help cmd、info cmd 等方式查看命令的幫助文檔。
  cd命令同windows下一樣使用(如:cd /opt/,進入opt目錄下),有一個需要注意的地方:cd /opt 不同於cd opt/ ,前者是進入系統的opt目錄,后者是進入當前目錄的opt目錄下(如果存在opt目錄的話)。

2.1 ls

功能:列出目錄內容
常用選項(可以共同使用): 
  • -a 顯示所有文件,包括隱藏的 
  • -l 長格式列出信息 
  • -i 顯示文件 inode 號 
  • -t 按修改時間排序 
  • -r 按修改時間倒序排序 
  • -h 打印易讀大小單位
示例:
[gujun@localhost /]$ ls
[gujun@localhost /]$ ls -a
[gujun@localhost /]$ ls -lh

2.2 cat

功能:連接文件和標准輸出打印 
常用選項: 
  • -b 顯示非空行行號 
  • -n 顯示所有行行號 
  • -T 顯示 tab,用^I 表示 
  • -E 顯示以$結尾
示例:
[gujun@localhost ~]$ cat a.txt 
[gujun@localhost ~]$ cat a.txt -b
[gujun@localhost ~]$ cat a.txt -n
[gujun@localhost ~]$ cat a.txt -T
[gujun@localhost ~]$ cat a.txt -E

2.3 cp

功能:復制文件或目錄
常用選項: 
  • -a 歸檔 
  • -b 目標文件存在創建備份,備份文件是文件名跟~ 
  • -f 強制復制文件或目錄 
  • -r 遞歸復制目錄
  • -p 保留原有文件或目錄屬性 
  • -i 覆蓋文件之前先詢問用戶 
  • -u 當源文件比目的文件修改時間新時才復制 
  • -v 顯示復制信息
示例:
# 將test目錄拷貝到des目錄下
[gujun@localhost ~]$ ls
a.txt  b.txt  test
[gujun@localhost ~]$ mkdir des
[gujun@localhost ~]$ ls
a.txt  b.txt  des  test
[gujun@localhost ~]$ cp -rf test/ des/

2.4 mkdir

功能:創建目錄 
常用選項: 
  • -p 遞歸創建目錄 
  • -v 顯示創建過程
示例:
# 創建多級目錄
[gujun@localhost ~]$ mkdir test2/abc -pv
2.5 mv

功能:移動文件或重命名

常用選項:

  • -b  目標文件存在創建備份,備份文件是"文件名后跟~"
  • -u  當源文件比目的文件修改時間新時才移動
  • -v  顯示移動信息

示例:
# 將a.txt移入test2文件夾下
[gujun@localhost ~]$ mv a.txt test2/
# 將 b.txt 重命名為b_new.txt
[gujun@localhost ~]$ mv b.txt b_new.txt

2.6 du

功能:估算文件磁盤空間的使用大小

常用選項:

  • -h  易讀格式顯示(KMG
  • -b  單位bytes顯示
  • -k  單位KB顯示
  • -m  單位MB顯示
  • -s  只顯示總大小
  • --max-depth=<目錄層數>,超過層數的目錄忽略
  • --exclude=file 排除文件或目錄
  • --time  顯示大小和創建時間

示例:

# 查看目錄大小
[gujun@localhost ~]$ du -sh test2
# 排除指定目錄的某個文件
[gujun@localhost ~]$ du -sh --exclude=a.txt test2

2.7 find

功能:搜索文件目錄層次結構
格式:find path -option actions
常用選項:
  • -name  文件名,支持(‘*’, ‘?’)
  • -type  文件類型,d目錄,f常規文件等
  • -perm  符合權限的文件,比如755
  • -atime -/+n  在n天以內/過去n天被訪問過
  • -ctime -/+n  在n天以內/過去n天被修改過
  • -amin -/+n   在n天以內/過去n分鍾被訪問過
  • -cmin -/+n   在n天以內/過去n分鍾被修改過
  • -size -/+n   文件大小小於/大於,b、k、M、G
  • -maxdepth levels  目錄層次顯示的最大深度
  • -regex pattern    文件名匹配正則表達式模式
  • -inum     通過inode編號查找文件
動作:
  • -detele  刪除文件
  • -exec command {} \;  執行命令,花括號代表當前文件
  • -ls      列出當前文件,ls -dils格式
  • -print    完整的文件名並添加一個回車換行符
  • -print0  打印完整的文件名並不添加一個回車換行符
  • -printf format  打印格式
其他字符:
  • ! 取反
  • -or/-o  邏輯或
  • -and  邏輯和
示例:
# 全盤查找文件名包含http的文件。*是通配符
[gujun@localhost ~]$ sudo find / -name "*http*"
# 指定只尋找log文件
[root@localhost gujun]# find / -name "*.log" -type f -print
# 查找大於50M的文件:
[root@localhost gujun]# find / -size -50M
# 條件查找多個類型的文件,使用正則表達式:
# find . -name '*.sh' -o -name '*.bak'
# find . -regex ".*\.sh\|.*\.bak"
# find . -regex ".*\.\(sh\|bak\)"

2.8 wget

功能:非交互式網絡下載,類似於HTTP客戶端

在CentOS(RedHat內核)中,需要使用yum(RedHat中的包管理器)安裝wget。

示例:

[root@localhost gujun]# yum install wget
# 下載單個文件到當前目錄
[root@localhost gujun]# wget http://nginx.org/download/nginx-1.11.7.tar.gz

2.9 tar

功能:歸檔目錄或文件

常用選項:

  • -c   創建新歸檔
  • -d  比較歸檔和文件系統的差異
  • -r  追加文件到歸檔
  • -t  存檔的內容列表
  • -x   提取歸檔所有文件
  • -C  改變解壓目錄
  • -f  使用歸檔文件或設備歸檔
  • -j  bzip2壓縮
  • -z   gzip壓縮
  • -v  輸出處理過程

示例:
# 解壓剛剛下載的nginx的壓縮包到 test目錄下
# 如果不指定目錄,默認是當前目錄
[root@localhost test]# tar zxvf nginx-1.11.7.tar.gz -C test/

2.10 free

功能:查看內存使用率

常用選項:

  • -b  bytes顯示
  • -k  KB顯示
  • -m  M顯示
  • -g  G顯示
  • -h  易讀單位顯示
  • -s  每幾秒重復打印
  • -c  重復打印幾次退出

示例:
# 查看物理內存:
# free -m
# 易讀單位顯示:
# free -h

2.11 ip

功能:查看/操作路由表,設備,路由策略和隧道

格式:ip [ OPTIONS ] OBJECT { COMMAND | help }

具體可以百度,一般用來查詢ip地址用。
示例:

[root@localhost test]# ip addr

2.12 ssh

功能:SSH客戶端,登陸其他的主機
常用選項:
  • -p  指定遠程主機端口,默認是22
  • -i  指定認證文件
  • -L  [bind_address:]port:host:hostport
  • -R  [bind_address:]port:host:hostport]
  • -D  [bind_address:]port
示例:
# 默認端口登陸
[root@localhost test]# ssh 用戶名@客戶機地址
# 指定端口登陸
[root@localhost test]# ssh -p 端口號 用戶名@客戶機地址
# 退出使用logout 命令
[root@localhost test]# logout .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM