做 Web 開發少不了這些的


抱歉,似乎有些標題黨了。最近做服務器的熱備,整理了些李納斯工具的適用方法。看看還有不錯的。

基本命令

  • sleep 500 暫停
  • ctrl + z 暫停
  • progress & 后台運行
  • jobs\bg\fg 查看后台任務
  • file 查看文件類型
  • cd - 上一個工作目錄
  • pwd 查看當前工作目錄
  • touch 創建文件或者更新文件創建時間
  • rm -i 交互式刪除

時間相關

  • date 查看時間
  • date +%Y--%m--%d 格式化顯示
  • date -s "20:20:16" 修改時間
  • hwclock 查看硬件時鍾
  • cal 查看日歷
  • uptime 查看系統運行時間

輸出查看

  • echo 輸出指定的字符到標准輸出
  • cat 輸出指定文件到標准輸出
  • head -n 指定行數
  • tail
    • -n 顯示行數
    • -f 實時更新
  • more 只能向下翻頁
  • less 上下翻頁

查看硬件信息

  • lspci -v 查看pci設備
  • lsusb -v 查看use設備
  • lsmod 查看加載的驅動

關機重啟

  • shutdown -h 關機
  • shutdown -h +10 10分鍾后關機
  • shutdown -r 重啟
  • shutdown -r now 現在重啟
  • shutdown -h 20:30 20點30分關機
  • poweroff 關機
  • reboot 重啟

歸檔、壓縮

  • zip xxx.zip myfile

  • unzip xxx.zip

  • tar -xvf out.tar

  • tar -cvf out.tar myfile

  • tar -zcvf out.tar.gz myfile

查找

  • locate keyword 在數據庫里查找

  • updatedb 更新數據庫

  • find . -name "aa" 查找文件名帶aa的文件

  • find / -name *.conf 查找conf目錄

  • find / -perm 777 查找文件模式為777的

  • find / -type d 查找文件夾

 find . -name "*a*" -exec cat {} \;

查找名字里帶a的文件,並且cat出來,注意后面的{} ;是必須的,且中間必須有空格

  • 查找條件
  • -name
  • -perm
  • -user
  • -group
  • -ctime
  • -type
  • -size

常見目錄及功能

  • /opt 目錄安裝大型軟件
  • /proc 系統實時信息,虛擬目錄
  • /sbin 超級用戶才能執行的命令
  • /usr 一般的軟件安裝
  • /var 經常變化的信息

BASH

  • !! 重復執行前一個命令

  • !字符 重復前一個命令以『字符』開頭的命令

  • !num 按歷史紀錄重復執行

  • !?ea 重復執行之前包含ea的命令

  • !-n 重復執行n個命令之前的那個命令

  • ctrl + r 在歷史命令中搜索

  • esc . 按個esc然后再按一下. 使用上一個命令的參數

  • ? 匹配任意一個字符

    • 任意一個字符
  • [0-9] 數字

  • [abc] 任意字符

  • [^abc] 除列表以外的字符

VIM

:sh 到BASH環境中

ctrl+d 回到VIM

分區

  • fdisk -l 列出硬盤信息

  • fdisk /dev/sdb 進行交互式分區

    • m 幫助
  • partprobe 更新一下分區表

分區機制有MBR和GPT兩種
MBR 使用BIOS引導方式的PC設備,目前不支持2T以上,支持分區數量有限

分區表只有256字節信息

MBR最多只能創建4個主分區,主分區可以直接使用, 更多分區使用擴展分區和邏輯分區

一個擴展分區會占用一個主分區位置,擴展分區不能直接用

基於擴展分區創建邏輯分區

最多支持63個IDE分區,15個SCSI分區

GPT EFFI引導方式

文件系統

操作系統通過文件系統管理文件及數據,磁盤或者分區需要創建文件系統后才能被操作系統使用

  • mke2fs 創建文件系統

  • mke2fs -t ext4 /dev/sda3 創建文件系統類型

    • -b 文件塊大小,4k
    • -c 建立的時候檢查壞損塊
    • -L 建立卷標
    • -j 建立文件系統日志
  • dumpe2fs 查看分區的文件系統信息

  • fsck 檢查並且修復損壞的文件系統

帶有日志的文件系統有較強的恢復性

掛載分區

  • mount /dev/sdb1 /mnt/ 掛載到指定的位置
  • mount 查看已經掛載的分區
  • lsof 查看哪些文件被使用,被誰打開
  • fuser -m /dev/sdb1 被誰使用

配置/etc/fstab 自動掛載

幫助信息

  • ls --help
  • ls -h
  • man ls
  • man -k 關鍵字查找命令
  • info 更詳細

用戶

root 用戶 0

系統用戶 1-499

普通用戶 500以上

相關文件

  • /etc/passwd 密碼
  • /etc/shadow 用戶密碼
  • /etc/group 保存組

當前用戶命令

  • whami 當前登錄用戶
  • who 哪些用戶
  • w 有哪些用戶在干什么

用戶操作

  • useradd 添加用戶
  • usermod 修改用戶
  • userdel 刪除用戶

用戶組操作

  • groupadd 用戶組添加
  • groupmod 用戶組修改
  • groupdel 用戶組刪除

權限

限制對特定文件的讀、寫、執行,每一個文件都有特定的權限
進程權限與運行它的用戶權限相關

目錄必須有x權限,否則不能查看內容

UGO: user group other

每三個一組r w x

rwxrwxrwx 三個一組

修改權限

  • chown 修改擁有者

  • chgrp 修改所有組

  • chmod 修改權限

  • u\g\o代表用戶、組其它

  • a代表所有

  • +-增加或者刪除

  • r\w\x 三種權限

chmod g-x xxxxx 減去xxxxx的用戶組執行權限

網絡

32bit分為網絡部分和主機部分
子網掩碼用來確定網絡部分的位數

  • ifconfig -a 查看所有接口

  • ifconfig eth0 查看特定接口

  • ifup eth0 啟用接口

  • ifdown eth0 禁用接口

  • setup 配置網絡信息

網絡排查相關命令

  • host 查看域名對應ip
  • dig 查看域名信息
  • ip route 查看路由表
  • traceroute 查看到達目標地址經過的路由
  • mtr 網絡質量測試

管道和重定向

  • STDIN 0
  • STDOUT 1
  • STDERR 2
> STDOUT 重定向到文件【覆蓋】
>> STDOUT 重定向到文件,追加
2> STDERR 重定向到文件
2>&1 STDERR與STDOUT結合
<  重定向到STDIN
| 一個命令的STDOUT作為另一個命令的STDIN
2>/dev/null 把錯誤重定向到null設備

安裝刪除包

  • rpm -i xxx.rpm 安裝

  • rpm -e xxxx 卸載

  • rpm -U xxx 升級

  • rpm -ivh http://xxxx 網絡安裝

  • rpm -qa 安裝的列表

  • rpm -ql xxx 安裝的東西

  • yum search

  • yum list (all | installed | updates)

  • yum info packagename

文本處理工具

  • grep

    • -i 忽略大小寫
    • -n 顯示行數
    • -v 不帶關鍵字的行
    • -Ax 之后的x行
    • -Cx 之前之后的x行
    • -Bx 之前的x行
  • cut

    • -d 切分符號
    • -f 顯示的列
    • -c 基於字符進行切割
cut -d: -f1 xxx 對xx文件進行
cut -c2-6 xxx 基於2到6進行切割
  • wc

    • -l 只計行數
    • -w 只講單詞
    • -m 字符
    • -c 只計字節數
  • sort 排序

    • -r 倒序
    • -u 刪除重復行
    • -tc 使用c進行分割為列進行排序
  • uniq 刪除重復相鄰行

  • diff 比較文件

    • -b 忽略空格數量改變
    • -u 生成patch文件
  • aspell 拼寫檢查

實際例子

tr -d 'apple' < hosts 刪除hosts文件里的apple
tr 'a-z''A-Z' < hosts 大小寫轉換

sed 's/str/newstr/g' hosts 替換hosts中的str
sed '1,50s/str/newstr/g' hosts 只替換1到50行
sed -e 's/linux/unix/g' -e 's/xxx/xsdjlfsjdf' hosts  連續處理兩個替換

sed -f command hosts 把替換的命令放到command文件里

ps aux | grep xxx  查看某個進程

lsof -i:portnum 查看端口被哪個進程占用

kill -9 pid 殺掉某個進程

killall program 殺掉指定名稱的所有進程


免責聲明!

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



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