抱歉,似乎有些標題黨了。最近做服務器的熱備,整理了些李納斯
工具的適用方法。看看還有不錯的。
基本命令
- 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 殺掉指定名稱的所有進程