常用的shell命令,linux常用命令筆記大全

 2023-10-08 阅读 28 评论 0

摘要:===================目錄操作======================== mkdir: 創建目錄   -p : 遞歸的

===================目錄操作========================
mkdir: 創建目錄
  -p : 遞歸的創建目錄 也就是可以創建多層目錄
  一次創建多個目錄: mkdir {a,b,c,d,e,f}
  一次創建 a b c d e f多個目錄。
rmdir:刪除一個空文件夾
cp:復制文件或者文件夾

  -a =-pdr
  -p 同時復制文件屬性,比如修改日期
  -d 復制時保留文件鏈接
  -r: 復制文件夾時,遞歸復制子文件夾
  -l 不復制,而是創建指向源文件的鏈接文件,鏈接文件名由目標文件給出。 ??
  note:可以在拷貝的同時重命名
mv:移動文件或者文件夾,可以在移動的時候重命名

rm :刪除文件或者文件夾
  -r:遞歸刪除
  -f:強制刪除 即沒有提醒

===========文件處理命令=======================
ls :查看文件
  -l 以列表形式查看
  -h 以一種人性化的方式查看,也是文件的大小以合適的單位顯示
  -a 查看所有文件,包括隱藏文件
  -i 顯示出文件的i節點號
touch 文件名:創建文件 可以一次創建多個文件,以空格隔開

cat :查看文件內容?
  -n:帶行號
tac:反向顯示文件內容

more:分頁查看文件內容
  進入瀏覽模式后:
  f或者空格:下一頁
  enter:一行一行往下翻
  q:退出

less:查看文件內容?
  空格翻頁
  回車換行
  pageup:上一頁
  pagedown:下一頁
  上箭頭:向上翻
  下箭頭:向下翻
  /搜索詞 n向下找

head -n 文件名 :查看文件前n行。缺省-n顯示前10行
tail -n 文件名 :查看文件的末尾幾行
  -f :動態顯示文件末尾內容

ln:鏈接命令
  -s創建軟連接
  硬鏈接和cp -p的區別是硬鏈接會同步更新
  源文件如果丟失,硬鏈接依然存在。
  硬鏈接和源文件的i節點相同。
  硬鏈接不能夸分區,軟連接可以跨分區。
  硬鏈接不可以鏈接目錄,鏈接可以
  軟連接文件具有的權限是ugo都是rwx

====================權限管理命令==============
chmod:修改文件或目錄的權限,只有root和所有者可以更改
  [{ugoa}{+-=}{rwx}] [文件或目錄]?
  [mode=421] [文件或目錄]
  -R 遞歸修改
  權限的數字表示:
  r->4
  w->2
  x->1

  例:chmod u+x a.txt
    chmod g+w,o-r a.txt //同時做多個權限的修改
    chmod g=rwx a.txt
    chmod 640 a.txt
    chmod -R 777 testdir //把目錄和下面所有文件的權限

            針對文件  ?    ?針對目錄
    r  ?讀權限   ?可以查看文件內容  ? 可以列出目錄中的內容
    w  ? 寫權限   ?可以修改文件內容   ?可以在目錄中創建、刪除文件
    x  ? ?執行權限 ? ? ?可以執行文件     ?可以進入目錄

chown:更改文件所有者,只有root可以更改
  chown root a.txt//把a.txt更改為root所有

chgrp:更改所屬組
  chgrp lambrother fengjie //把fengjie的所屬組更改為lambrother

umask -S:查看創建文件的缺省權限,即默認權限
umask 023:修改文件的缺省權限為777-023=754。即rwxr-xr--

?=====================文件搜索命令==========================
find:搜索制定范圍內的文件
  find [搜索范圍] [匹配條件]
  -name 按文件名搜索
  -iname 根據文件名查找,不區分大小寫
  -size +n大于 -n小于 n等于 這個n是數據塊,在Linux中一個數據塊是512字節大小
  -user 根據所有者查找
  -group 根據所屬組查找
  根據文件屬性查找:
    -amin 訪問時間 access
    -cmin 根據文件屬性被修改的時間 change
    -mmin 根據文件內容被修改的時間 modify
  例: find /etc -cmin -5 :查找/etc目錄下五分鐘內被修改過屬性的文件和目錄

  -a 兩個條件同時滿足
    find /etc -size +10 -a -size -50
  -o 兩個條件滿足一個即可

  -type?
    f 文件 d 目錄 l軟連接文件
  -inum 根據i節點查找

  對找到的結果進行操作
    -exec或者-ok 命令 {} \;
    例如:
      find /etc -name init* -exec ls -l {} \; 對找到的文件名按列表查看

  find /etc -name init :搜索目錄/etc下面所有的init文件,精確匹配,包括子目錄中的init文件
  find / -size +204800 搜索大于100M的文件

locate:(查找速度非常快,因為它維護了一個文件庫。缺點就是新建立的文件沒有很快收錄到文件庫)
  locate 文件名
  updatedb 更新locate的文件資料庫 文件資料庫不收錄/tmp下的文件
  -i 不區分大小寫

which :查找命令的目錄以及別名
  which 命令

whereis :搜索命令所在目錄及幫助文檔路徑。

grep:在文件中搜尋字符串匹配的行并輸出,多個文件以空格隔開。
  -i不區分大小寫
  -v排除指定字符串
  -E 以正則表達式的方式搜索
  -F 以普通文本的方式搜索
  -n 顯示搜索到的內容在文件中的行號。

==================幫助命令======================
man:查看命令或者配置文件的幫助信息
  man 命令/配置文件
  在手冊里面,可以輸入/要查找的str
  man ls
  man services
  man fstab //直接輸入配置文件的名字,而不需要使用絕對路徑 重點查看name選項和配置文件的格式。
  如果一個命令即使命令又是配置文件,那么可以使用一個序號進行區分,比如:
  man 1 passwd 查看命令passwd的幫助
  man 5 passwd 查看配置文件passwd的幫助

whatis 命令:得到命令的簡要信息

apropos 配置文件名:查看配置文件的簡短信息

命令 --help:查看命令的選項。

help 命令:查看shell內置命令的幫助信息。 shell內置命令是沒有命令路徑。不能使用man查看幫助。

===================用戶管理命令=====================
useradd: 添加用戶
  useradd 用戶名

passwd: 修改用戶密碼
  passwd 用戶名 不加用戶名直接更改自己的密碼

who:查看當前的賬戶 顯示的格式為: 登錄用戶名 登錄終端(tty:本地登錄 pts:遠程終端) 登錄時間 ip地址

  w:查看更詳細的用戶登錄信息。
===============壓縮解壓縮命令============================
.gz格式
  壓縮:gzip 文件名 只能壓縮文件不能壓縮目錄,壓縮完源文件也不見了
  解壓縮:gunzip/gzip -d 壓縮包名稱

tar:
  -zcvf 壓縮后文件名 打包的目錄 :生成.tar.gz文件 注:這個命令先用tar歸檔,然后把歸檔的包壓縮成.gz
  -zxvf 要解壓的文件名 :解壓縮.tar.bz2的文件

  -jcvf 壓縮后的文件名 打包的目錄:生成.tar.bz2 注:這個命令先用tar歸檔,然后把歸檔的包壓縮成.bz2
  -jxvf 要解壓的文件名 :解壓.tar.bz2的文件

zip:
  zip -r 壓縮生成的文件名 要壓縮的目錄
  zip 壓縮生成的文件名 要壓縮的文件。

unzip:
  unzip 要解壓縮的文件

bzip2:
  bzip2 -k 要壓縮的文件名 -k選項:保留源文件
  bunzip2 -k 要解壓的文件名 -k選項:保留壓縮包

===============網絡命令==========================
write:給在線用戶發送信息,用戶不在線不行。以Ctrl+D保存
  write 用戶名

wall:給所有用戶名發送信息
  wall 要發送的信息

ping:測試網絡連通性

  ping ip地址?
  -c 要ping的次數

ip addr: 查看所有網卡MAC和IP地址

ifconfig:
  直接回車查看當前網卡信息
  ifconfig 網卡名 ip地址 臨時修改網絡ip
    ifconfig th0:0 192.168.1.100 netmask 255.255.255.0
      給th0這個網卡新添加一個ip
    ifconfig eth0:0 down
    ifconfig eth0:0 up
ifdown th0
  禁用th0這塊網卡

ifup th0
  開啟th0這塊網卡

mail:郵件命令
  mail 要發送的用戶名
  mail 直接回車:查看命令
    help :查看支持的命令格式
    輸入序列號:查看郵件詳細內容
    h: 回到郵件列表
    d 序列號:刪除序列號對應的郵件

last:統計計算機所有用戶登錄的時間信息,以及重啟信息
lastlog:所有用戶最后一次登錄的時間
  -u 用戶的uid 查看指定用戶的登錄信息。

traceroute:顯示數據包到主機間的路徑
  traceroute 要探測的地址.
  -n 使用ip而不使用域名

nslookup www.baidu.com
  查看百度的ip地址

netstat:顯示網絡相關信息
  -t :tcp協議
  -u :udp協議
  -l:監聽
  -r:路由
  -n:顯示ip地址和端口號

  netstat -tlun:查看本機監聽的端口
  netstat -an:查看所有的監聽信息
  netstat -rn :查看路由表,即網管

wget 文件地址
  下載文件

service network restart:重啟網絡服務。

telnet 域名或ip
  遠程管理與端口探測
  如: telnet 192.168.2.3:80
    探測192.168.2.3是否開啟了80端口

mount:掛在命令
  mount -t iso9660 /dev/sr0 /mnt/cdrom :把sr0掛在到cdrom

==============關機重啟命令====================

shutdown:這個關機命令更安全一些,不推薦使用其他關機命令。
  -h:關機
shutdown -h now shutdown -h 20:30
  -r:重啟?
shutdown -r now?
  -c:取消上次的關機命令

重啟:
  init 6
  reboot

關機:
  init 0
  poweroff

  系統運行級別:
    0 關機
    1 單用戶 類似windows安全模式
    2 不完全多用戶,不含nfs服務
    3 完全多用戶
    4 未分配
    5 圖形界面
    6 重啟
  可以通過查看/etc/inittab來查看系統啟動的運行級別
  runlevel:查看當前的運行級別
  init n:設置系統運行級別

logout:退出當前用戶,返回到登錄界面

==============其他小技巧===================
\命令名字 :使用原始的命令
  比如:
    ls 實際上是ls --color auto
    \ls 就是原始的ls

=============================================
一、軟件包分類
  源碼包
    腳本安裝包
  特點:
    1. 開源
    2. 可以自由選擇所需的功能
    3. 軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高
    4. 卸載方便,即可以直接刪除文件夾。
  缺點:
    1. 安裝過程步驟較多,尤其安裝較大的軟件集合時,容易出現錯誤
    2. 編譯時間較長,安裝畢二進制安裝時間長
    3. 因為是編譯安裝,安裝過程中一旦報錯新手很難解決

  二進制包(RPM包、系統默認包)
    優點:
      1. 包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
      2. 安裝速度比源碼包安裝快的多
    缺點:
      1. 經過編譯,不再可以看到源代碼
      2. 功能選擇不如源碼包靈活
      3. 依賴性

=============rpm命令管理-包命名與依賴性==================
1. RPM包命名原則
  httpd-2.2.15-15.el6.centos.l.i686.rpm
    httpd 軟件包名
    2.2.15 軟件版本
    15 軟件發布的次數
    el6.centos 適合的Linux平臺
    i686 適合的硬件平臺
    rpm rpm包擴展名
    如果名字里有noarch,則表示所有平臺都可以。

2、 rpm包依賴性
    樹形依賴: a->b->c 從后往前安裝所依賴的包。
    環形依賴: a->b->c->a 解決辦法:一次性安裝三個包
    模塊依賴:模塊依賴查詢網站 :www.rpmfind.net 一般以.so.數字結尾的依賴包,是庫依賴包,只需要安裝包括這個庫的軟件就可以自動安裝好這個所需的庫依賴包

包全名:操作的包是沒有安裝的軟件包時,使用包全名,而且要注意路徑。安裝、升級時用
包名 :操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm中的數據庫。一般查詢,卸載時用

3. rpm安裝:
  rpm-ivh 包全名
    -i(install) 安裝
    -v(verbose) 顯示詳細信息
    -h(hash) 顯示進度
    --nodeps 不檢測依賴性 一般都必須要檢測

4. rpm包升級:
  rpm -Uvh 包全名
    -U(upgrade) 升級
    -h

5. rpm -e 包名
  -e(erase) 卸載
  --nodeps 不檢查依賴性

6. 查詢是否安裝
  rpm - q 包名 :查詢包是否安裝
    -q(query) 查詢
    -a(all) 所有
    -i(information) 查詢軟件信息
    -p(package) 查詢未安裝包信息
  rpm -ql 包名:查詢包中文件安裝位置(list) 注:包的安裝路徑在包生成的時候就確定了
  rpm -qlp 包全名:查詢未安裝包安裝時會安裝在哪里。
  rpm -qf 系統文件名 :查詢系統文件屬于哪個rpm包 注:系統文件名必須是通過安裝哪個包生成的文件
    -f:查詢系統文件屬于哪個包
  rpm -qR 包名 查詢已安裝軟件包的依賴性
    -r: 查詢軟件包的依賴性(requires)
  rpm -qRp:查詢未安裝包的依賴性
    -p: 查詢未安裝包的依賴性

    例如:
      rpm -qa | grep httpd 查詢所有Apache的包

7. rpm包校驗
  rpm -V 已安裝的包名 :如果沒有提示則表示沒有被修改過
    -V 校驗指定rpm包中的文件(verify)
    校驗值的含義:
      S:文件大小是否改變
      M:文件的類型或文件的權限(rwx)是否被改變
      5:文件MD5校驗和是否改變(可以看成文件內容是否改變)
      D:設備的中,從代碼是否改變
      L:文件路徑是否改變
      U:文件的屬主(所有者)是否改變
      G:文件的屬組是否改變
      T:文件的修改時間是否改變

8. rpm包中文件提取:
  rpm2cpio 包全名 | \
  cpio -div .文件絕對路徑

  rpm2cpio:講rpm包轉換為cpio格式的命令?
  \表示命令沒有輸完,在下一行繼續輸入
  cpio:是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件
  cpio 選項 <[文件|設備]
    -i copy-in模式,還原
    -d:還原時自動新建目錄
    -v:顯示還原過程

  例如:
    rpm -qf /bin/ls #查看ls命令屬于哪個包
    mv /bin/ls /tmp #將ls命令移走
    rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls #提取rpm保重ls命令到當前目錄的/bin/ls下
    cp /root/bin/ls /bin/ #把ls命令復制到/bin/目錄,修復文件丟失

yum在線管理:
一、 ip地址配置
第1步:setup:使用圖形界面配置ip地址
第2步:vi/etc/sysconfig/network-scripts/ifcfg-eth0 把ONBOOT="no"改為ONBOOT="yes" #啟動網卡
第3步:service network restart :重新啟動網絡服務。

二、網絡yum源
1. yum源位置:/etc/yum.repos.d/CentOS-Base.repo,這個是默認的網絡yum源
  [base] ? ?容器名稱,一定要放在[]中
  name ?容器說明,可以自己隨便寫
  mirrorlist ? ?鏡像站點,這個可以注釋掉
  baseurl ? 我們的yum源服務器的地址,默認是CentOS官方的yum源服務器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地址
  enabled ? 此容器是否生效,如果不寫或寫成enable=1都是生效,寫成enable=0就是不生效
  gpgcheck ?如果是1是指rpm的數字證書生效,如果是0則不生效
  gpgkey ? ?數字證書的公鑰文件保存位置。不用修改。

2. yum命令
  yum list :獲取服務器上所有可用的軟件的列表
  yum search 關鍵字:搜索服務器上所有和關鍵字相關的包
  yum -y install 包名:安裝軟件包
    install:安裝
    -y:自動回答yes
  yum -y update 包名:升級軟件包
    update:升級
    -y:自動回答yes
    如果沒有包名,就會升級所有的軟件包,包括Linux內核。慎用
  yum -y remove 包名
    remove:卸載
    -y:自動回答yes
    注:yum會自動卸載依賴包,而很有可能這個依賴包也被別的包依賴,所以很危險,慎用。

  yum grouplist:列出所有可用的軟件組列表
  yum groupinstall 軟件組名:安裝指定軟件組,組名可以由grouplist查詢出來 注:如果查詢出來的軟件組名中間有空格,要使用""引起來。
  yum groupremove 軟件組名:卸載指定軟件組

3. 光盤yum源
  1) 掛載光盤 mount /dev/sr0 /mnt/cdrom?
  2) 讓網絡yum源文件失效
    cd /etc/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.bak
    mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
    mv Centos-Vault.repo Centos-Vault.repo.bak
  3) 修改光盤yum源文件
    vim CentOS-Media.repo
    [c6-media]
    name=CentOS-$releaserver -Media
    baseurl=file:///mnt/cdrom?
    #地址為你自己的光盤掛載地址
    # ? file:///media/cdrom/
    # ? file:///media/cdrecorder/
    #注釋這兩個不存在的地址
    gpgcheck=1
    enabled=1 #把enabled=0改為enabled=1,讓這個yum配置文件生效
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

    注意:注釋配置行的時候,#符號一定要寫在開頭,不要隨便在配置文件某一行后面加注釋,也不要隨便加空格。

源碼包管理
  1. 區別
    安裝之前的區別:概念上的區別
    安裝之后的區別:安裝位置不同

  2. rpm包安裝位置(大多數)
    /etc/ ? 配置文件安裝目錄
    /usr/bin/ ? 可執行的命令安裝目錄
    /usr/lib/ ? 程序所使用的函數庫保存位置
    /usr/share/doc ?軟件的基本使用書冊保存位置
    /usr/share/man/ 幫助文件保存位置 ? ?
  3. 源碼包安裝位置
    安裝在指定位置當中,一般是
    /usr/local/軟件名/?
  4. 安裝位置不同帶來的影響
    rpm包安裝的服務可以使用系統服務管理命令(service)來管理
    例如rpm包安裝的Apache的啟動方法是:
    /etc/rc.d/init.d/httpd start 注:服務的安裝路徑一般在:/etc/rc.d/init.d下
    service httpd start 注:service命令是紅帽的專用命令,只能管理rpm包安裝的服務
源碼包安裝過程
  1. 安裝準備
    安裝C語言編譯器 gcc
    下載源碼包
    http://mirror.bit.edu.cn/apach/httpd/ ??
  2. 安裝注意事項
    源代碼保存位置:/usr/local/src/
    軟件安裝位置: /usr/local/
    如何確定安裝過程報錯:
      安裝過程停止并出現error、warning或no的提示 ?
  3. 源碼包安裝過程
    1)下載源碼包
    2)解壓縮下載的源碼包
    3)進入解壓縮目錄 注:里面有個INSTALL是系統安裝的步驟說明
    4)./configure 軟件配置與檢查
      定義需要的功能選項
      檢測系統環境是否符合安裝要求
      把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用于后續的編輯。
    ./configure --prefix=/usr/local/apache2 :定義安裝位置?
    5)make :編譯
      如果前面有錯誤,則使用make clean命令清楚編譯產生的臨時文件
    6)make install:編譯安裝
  4. 源碼包的卸載
    不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件

腳本安裝
  1. 腳本安裝包
    腳本安裝包并不是獨立的軟件包類型,常見安裝的是源碼包
    是人為把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝
    非常類似于windows下軟件的安裝方式
  2. Webmin的作用
    Webmin是一個基于web的Linux系統管理界面,你就可以通過圖形化的方式
    設置用戶賬號、Apache,DNS、文件共享等服務。
  3、 webmin安裝過程
    1) 下載軟件
      http;//sourceforge.net/projects/webadmin/files/webmin/
    2) 解壓縮,并進入解壓縮目錄
    3) 執行安裝腳本 ./setup.sh

==============其他命令==============

du -sh 查看對應文件夾容量?df -h 查看磁盤分區容量

ps 靜態查看系統進程,系統默認安裝
  ps -aux 使用BSD語法查看所有進程
  ps -ef 標準語法查看所有進程
    UID 程序被該 UID 所擁有
    PID 就是這個程序的 ID?
    PPID 則是其上級父程序的ID
    C CPU 使用的資源百分比
    STIME 系統啟動時間
    TTY 登入者的終端機位置
    TIME 使用掉的 CPU 時間。
    CMD 所下達的指令為何
  ps -aux --sort -pcpu,-pmem
    根據CPU占用情況和內存占用情況來顯示進程
  watch -n 1 'ps -aux --sort -pcpu,-pmem'
    每隔1秒監控一次進程情況

top 動態查看系統的狀態

lsof -Pti :8000
  通過端口號獲得進程pid

kill -9 pid
  殺死指定pid的進程,強行殺死。

history
  查看歷史命令

執行歷史命令
  !! 執行上一條命令
  !n 執行歷史命令的中第n條
  !-n 執行導數第n條
  !string 執行以string開頭的歷史命令行
  !?string? 執行包含string的歷史命令行

alias?
  給命令起別名

  alias 命令='別名'
  alias -p 查看已存在的別名

unlias?
  取消別名
  unlias name

cal?
  查看某一年的日歷,可以是1-9999中的任意一年
  cal 88

zcat
  查看壓縮包中的內容

sed -i 's#old#new#g' 文件名
  使用new替換文件中的old

ssh root@192.168.8.15 "ifconfig"
  遠程執行命令

bash -x 腳本名
  調試腳本

centos上的三個網絡配置文件
  /etc/sysconfig/network-scripts/ifcfg-etho
  /etc/sysconfig/network
  /etc/resolv.conf # dns

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/129863.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息