企業服務器方面
www.netcraft.com 檢測網站後台服務相關信息 (國外站點)
嵌入式應用方面
Android XXXSSHd 遠程安全管理 (QuickSSHd)
格式化 在磁盤的特定區域寫入特定數據, 在分區中劃出一片用於存放文件分配表、目錄表等用於文件管理的磁盤空間
/ 根目錄 dev 硬件設備
hd[a-d]: IDE
sd[a-p]: SCSI/SATA/USB 磁盤
cdrom 或 hdc: 光驅
fd[0-1]: 軟盤
lp[0-2]: 打印機 (25 針)
/usb/lp[0-15]: 打印機 (USB)
mouse: 鼠標
手動分區 home boot swap / 安裝方式 Basic Server 推薦分區 /boot 啟動分區(200M)**Xshell** 首先在 Linux 中使用 ifconfig eth0 down 關閉網卡 再使用 ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up 重啟網卡 手動配置 IP 或使用 setup 工具來配置 IP 地址
在 Xshell 中配置連接信息
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes // 是否隨著開機啟動
命令基本格式
root 超級管理員
localhost 主機名
~ 當前所在目錄
# 管理員用戶
$ 普通用戶
/root /home/other
命令 [選項] [參數]
... vi'''
1. 查詢目錄中內容
ls [選項]
-a 顯示所有文件 *(包括隱藏文件 .開頭文件)*
-l 顯示詳細信息
>- 第一列 權限*(10位基本權限)*
-文件類型 *(-文件 d目錄 l軟連接(快捷方式) )*
後九位分三組代表權限
所有者 u
所屬組 g *相同身份或相同權限的一類用戶*
其他人 o
r 讀 w 寫 x 執行
. 代表 ACL權限
>- 第二列 引用計數(被調用 鏈接)
>- 第三列 所屬者用戶
>- 第四列 所屬組
>- 第五列 大小
>- 第六列 最後一次修改時間
>- 第七列 文件名
-d 查看目錄屬性
-h 顯示文件大小
-i 顯示 inode
2. 文件處理命令
目錄處理命令
建立目錄 mkdir
mkdir 目錄名
-p 遞歸創建
mkdir -p abc/def/ggg
切換所在目錄 cd
cd 目錄
cd ~ / cd 切換家目錄
cd - 上次目錄
cd .. 上一級目錄
cd . 當前目錄
相對路徑: 參照當前所在目錄
絕對路徑: 從根目錄開始指定, 一級一級遞歸查找
目錄 / 命令補全 Tab 鍵
查詢所在目錄 pwd (打印當前位置)
刪除空目錄 rmdir
rmdir 目錄名
刪除文件或目錄 rm
rm -rf 文件或目錄
-r 刪除目錄
-f 強制
復制命令 cp
cp [選項] [原文件或目錄] [目標目錄] 目標目錄後加文件名改名復制 不加名 原名復制
-r 復制目錄
-p 連帶文件屬性復制
-d 若原文件是鏈接文件 則復制鏈接屬性
-a 相當於 -pdr
剪切命令 mv
mv [原文件或目錄] [目標目錄]
同目錄下可以改名
常見目錄作用
/ 根目錄
/bin /sbin /usr/bin /usr/sbin 保存系統命令 (s* root用戶打開)
/boot 啟動目錄保存啟動數據
/dev 硬件文件
/etc 配置文件
/lib 函數庫
/media /mnt /misc 三個空目錄 作為外接存放設備的掛載 (mnt)
/proc /sys 內存的掛載點
/tmp 臨時目錄
/usr 系統軟件資源目錄
/var 系統相關文檔目錄
鏈接命令
鏈接命令 ln
ln -s [原文件] [目標文件]
生成鏈接文件 (引用計數加1)
-s 創建軟鏈接
硬鏈接
(具有相同的i節點和存儲block塊,可以看成是同一個文件)
一個文件的不同接入點
通過i節點訪問
不能跨分區
不能針對目錄使用
軟鏈接
(類似Windows快捷方式)
擁有自己的i節點和block塊 但數據塊中只保存原文件的文件名和j節點號,沒有實際的文件數據
lrwxrwxrwx l軟鏈接
軟鏈接權限都為 rwxrwxrwx
修改任意文件,另一個都改變
刪除原文件,軟鏈接不能使用
軟鏈接非當前目錄,原文件要寫絕對路徑
文件搜索命令
locate 文件名
在後台數據庫中按文件名搜索,搜索速度快
/var/lib/mlocate 後台數據庫
updatedb 強制更新數據庫
/etc/updatedb.conf 配置文件
PRUNE_BIND_MOUNTS = "yes" 篩選規則是否生效
PRUNEFS = "" 篩選規則 (不搜索以下文件系統)
PRUNENAMES = "" 篩選規則 (不搜索以下後綴名文件)
PRUNEPATHS = "" 篩選規則 (不搜索以下目錄中)
命令搜索命令
whereis 命令名
搜索系統命令所在路徑 (及幫助文檔)
-b 只查看命令位置
-m 只查看幫助文檔位置
which 命令名
除了命令所在位置還可以查看別名
內置命令 (shell) 沒有獨立的執行文件 例如: cd
環境變量 ($PATH) 內沒有所搜索的命令文件, 就會報錯 (未發現)
find 命令
find [搜索范圍] [搜索條件]
find / -name install.log 根目錄下按文件名搜索
避免大范圍搜索
通配符匹配, 通配符是完全匹配 (雙引號括起來)
* 任意內容
? 任意一個字符
[] 中括號內的任意一個字符 (或)
find -iname #不區分大小寫
find -user #按所有者 -nouser 沒有所有者的文件 (垃圾文件) 內核產生的文件
find -mtime +10
(查找十天前修改的文件)
-10 10天內修改的文件
10 10天當天修改的文件
+10 10天前修改的文件
atime 文件訪問時間
ctime 改變文件屬性
mtime 修改文件內容
find . -size 25k
(查找大小為25K的文件)
-25k 小於25K
25k 大小為25K
+25k 大於25K
10M 大小為10M
默認類型為扇區塊(512K) \
find . -inum 262421
(查找i節點為262421)
find /etc -size +20k -a -size -50k
(查找/etc/目錄下,大於20K並小於50K的文件)
-a and 邏輯與
-o or 邏輯或
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
(將查找的結果用後面的命令來執行處理 -exec {} \; 固定格式)
grep 命令 字符串搜索
grep [選項] 字符串 文件名
gerp "size" anaconda-ks.cfg
-v 取反
-i 忽略大小寫
find 在系統當中搜索符合條件的文件名, 可以使用通配符來實現完全匹配
grep 在文件當中搜索符合條件的字符串, 可以使用正則表達式來實現包含匹配
文件名稱 通配符 (完全匹配)
文件數據 正則表達式 (包含匹配)
幫助命令
幫助命令 man
(獲取指定命令的幫助)
man ls
name 命令用途
synopsis 格式
description 選項 (簡化)
/d 可自動跳轉到第一個 - d 選項上
n 向下跳轉 shift+n 向上跳轉
man -f 命令
(查看命令級別)
(相當於 whatis 命令)
man -5 passwd
man -4 null
man -8 ifconfig
默認打開最小等級的命令
man -k 命令
#找到和命令相關的所有相關信息
#相當於 apropos 命令
其他幫助命令
命令名 –help
獲取命令選項的幫助
help shell內部命令
(獲取shell內部命令的幫助)
whereis cd
#查看是否是shell內部命令 (無可執行文件)
help cd
#獲取內部命令幫助 (內部命令無法使用man單獨獲取幫助)
info
(獲取詳細幫助文檔)
-回車 進入幫助子頁面 (帶*)
-u 返回
-n 下一個幫助小節
-p 上一個幫助小節
壓縮與解壓縮命令
常用壓縮格式 .zip .gz .bz2 | .tar.gz .tar.bz2
.zip格式壓縮
zip 壓縮文件名 源文件
(壓縮文件)
不要求,但要使用擴展名,便於區分
zip -r 壓縮文件名 目錄
(壓縮目錄)
.zip格式解壓
unzip 壓縮文件
(解壓縮.zip文件)
.gz格式壓縮
gzip 源文件
(壓縮為.gz格式的壓縮文件,源文件會消失)
gzip -c 源文件 > 壓縮文件
(壓縮為.gz文件,源文件保留)
gzip -r 壓縮目錄
(把目錄當中的所有子文件壓縮,但是不能壓縮目錄)
.gz格式解壓縮
gzip -d 壓縮包名
(解壓縮文件)
gunzip 壓縮包名
gunzip -r 解壓目錄
.bz2格式壓縮
bzip2 源文件
(壓縮為.bz2格式的壓縮文件,不保留原文件)
bzip2 -k 源文件
(保留源文件)
(不能壓縮目錄)
.bz2格式解壓縮
bzip2 -d 壓縮包名
bunzip 壓縮包名
(-k 保留源文件)
.tar 打包文件(解決目錄壓縮與解壓縮)
tar -cvf 打包文件名 源文件
-c 打包文件
-v 顯示過程
-f 指定打包後的打包文件名
tar -xvf 打包文件名
(解壓縮)
打包後壓縮與解壓縮
tar -zcvf 壓縮包名. tar.gz 源文件
tar -zxvf 解壓縮包名. tar.gz
tar -jcvf 壓縮包名. tar.bz2 源文件
壓縮多個文件後用空格分隔
在壓縮文件名前加路徑可指定壓縮位置
tar -jxvf 解壓縮包名. tar.bz2
-C 指定解壓位置
tar -ztvf 壓縮包名
tar -jtvf 壓縮包名
可查看壓縮包
關機和重啟命令
shutdown命令
shutdown [選項] 時間
-c 取消前一個命令
-h 關機
-r 重啟
(可以正確保存服務與文件 )
shutdown -r 05:30 &
放在後台運行
其他關機命令
halt
poweroff
init 0
其他重啟命令
reboot
init 6
系統運行級別
0 關機
1 單用戶
2 不完全多用戶, 不含 NFS 服務 (文件共享服務)
3 完全多用戶 (字符界面)
4 未分配
5 圖形界面 (X)
6 重啟
runlevel #查看之前級別和當前級別
cat /etc/inittab
id:3:initdefault: // 定義系統默認的運行級別
退出登錄命令
logout
#注銷
其他常用命令
掛載命令
mount
#查看系統中已經掛載的設備
mount -a
(根據配置文件 /etc/fstab (自動掛載) )
(如果將光驅和U盤寫入文件 光驅內沒有光盤,U盤沒有插入系統 啟動就會不成功)
mount [-t 文件系統] [-o 特殊選項] 設備文件名 掛載點
-t 文件系統:加入文件系統來指定掛載的類型 ext3 ext4 iso9660(光盤)等文件系統
-o 特殊選項:可以指定掛載的額外選項
exec/noexec 是否可以執行可執行文件 默認允許
remount 重新掛載已經掛載的文件系統 一般用於指定修改特殊權限
默認已經掛載好的分區 可以省略 設備文件名
掛載光盤
mkdir /mnt/cdrom
(建立掛載點)
mount [-t iso9660] /dev/sr0 /mnt/cdrom
(掛載光盤 將設備文件掛載到盤符)
(默認讀寫權限,光盤不可寫 提示權限被迫改變)
卸載光盤
(必須卸載才可取出光盤)
umount 設備文件名或掛載點
umount /mnt/cdrom/
掛載U盤
fdisk -l
(查看設備文件名)
mount -t vfat /dev/sdb1 /mnt/usb/
(vfat (fat32)文件系統 Linux默認是不支持NTFS文件系統)
用戶登錄查看命令
w
(查看用戶登錄信息 (系統資源情況) )
who
(查看當前登錄用戶)
last
(查看系統中所有已登錄的信息 (歷史記錄) )
(日志文件 /var/log/wtmp (二進制文件) 不可用vi查看 )
lastlog
(系統當中的用戶最後登錄時間 )
(日志文件 /var/log/lastlog )
4.shell基礎
shell概述
系統命令行解釋器(二進制語言) | 接受輸入命令 編譯二進制傳輸給內核
還是一個功能相當強大的編程語言,易編寫,易調試,靈活性較強.
分類
Bourne Shell : 從1979起Unix就開始使用 主文件名為 sh ksh Bash psh zsh Linux中標准版為 Bash C Shell : 主要在BSD版的Unix系統中使用,與C語言類似 csh tcsh
Bash兼容 /etc/shells
腳本執行方式
echo輸出命令
echo [選項] [輸出內容]
空格需要加入雙引號
-e 控制字符(轉義字符) \a 警告音 \b 退格鍵
可輸入十六進制制表符ASCII \x
#輸出顏色 “\e[1;31m ……. \e[0m”
31m 紅色 35m 楊紅 32m 綠色 33m 黃色
echo -e “\e[1;31m 哈哈哈 \e[0m”
第一個腳本
hello.sh
#!/bin/bash
echo -e "\e[1;36m 天上掉下個林妹妹 \e[0m"
執行權限
通過Bash調用執行腳本
bash hello.sh
賦予權限,直接執行
chmod 755 hello.sh
./hello.sh
Bash的基本功能
命令別名與快捷鍵
( 操作簡化,便於記憶 )
alias
(查看系統中默認生效的別名 )
alias ls=’ls –color=never’
(設定別名(臨時生效) alias 別名=’原命令’ )
vi ~/.bashrc
(永久生效 寫入環境變量配置文件 )
source ~/.bashrc 重新調用配置文件,使設置生效
unalias 別名
(刪除別名 (臨時生效) )
生效順序
1. 用絕對路徑或相對路徑執行的命令
2. 執行別名
3. 執行Bash的內部命令
4. 按照$PATH環境變量定義的目錄查找順序找到的第一個命令
常用快捷命令
ctrl+c 強制終止當前命令
ctrl+l 清屏
ctrl+a 光標移到行首
ctrl+e 光標移到行尾
ctrl+u 從光標所在位置刪除到行尾
ctrl+z 把命令放入後台
ctrl+r 在歷史命令中搜索
歷史命令
history 歷史命令
history [選項] [歷史命令保存文件]
-c 清空歷史命令
-w 把緩存中的歷史命令寫入歷史命令保存文件 ~/.bash_history
#默認保存1000條
HISTSIZE=1000
#vi /etc/profile 環境變量配置文件
基本調用
上下箭頭來重復調用
!n 來執行第n條歷史命令
!! 重復執行上一條命令
!字符串 重復執行後一個該串開頭的命令
Tab鍵
進行命令(環境變量)和目錄補全(操作路徑)
輸出重定向
(顯示電腦處理的結果)
標准輸入輸出
鍵盤 /dev/stdin 0 標准輸入
顯示器 /dev/sdtout 1 標准輸出
顯示器 /dev/sdterr 2 標准錯誤輸入
輸出重定向
標准輸出重定向
命令 > 文件
以覆蓋的方式,把命令的正確輸出輸出到指定的文件或設備當中.
命令 >> 文件
以追加的方式
標准錯誤輸出重定向
錯誤命令 2>文件
以覆蓋的方式,把命令的錯誤輸出輸出到指定的文件或設備當中.
錯誤命令 2>>文件
以追加的方式
正確輸出和錯誤輸出同時保存
命令 > 文件 2>&1
命令 &> 文件
以覆蓋的方式,把正確的輸出和錯誤輸出都保存到一個文件當中
命令 >> 文件 2>&1
命令 &>> 文件
以追加的方式
ls &> /dev/null (回收站)
命令 >> 文件1 2>> 文件2
正確的追加到文件1,錯誤的追加到文件2
輸入重定向
wc [選項] [文件名]
-c 統計字節數
-w 統計單詞數
-l 統計行數
ctrl+d 中斷統計
命令 < 文件
(把文件作為命令的輸入)
命令 << 標識符
(標識符其中的內容作為該命令執行的內容)
管道符
多命令順序執行
; 命令1;命令2 多個命令順序執行(無論中間是否保存)
&& 命令1&&命令2 邏輯與 當命令1正確執行,則命令2才會執行
|| 命令1||命令2 邏輯或 當命令1正確執行,則命令2不執行
# ls && echo yes || echo no
管道符
命令1 | 命令2
#將命令1的正確輸出作為命令2的操作對象
# ll /etc | more
# netstat -an | grep ESTABLISHED (服務器顯示連接人數)
# netstat -an | grep ESTABLISHED | wc -l (處理行號)
通配符
? 匹配一個任意字符
* 0個或任意多個
[] 匹配中括號內其中一個字符
[-] -代表一個范圍 [a-z]代表匹配一個字母
[^] 邏輯非 表示匹配不上中括號內的一個字符 [^0-9]代表匹配一個不是數字的字符
其他特殊符號
'' 特殊符號都沒有特殊意義,原樣輸出
"" $ ` \ 都具有特殊意義
`` 包含系統命令 執行後賦值給變量 等同於 $()
$ 用於調用變量的值 (變量名=變量值)
# shell腳本中,#開頭的行代表注釋
\ 轉義符 跟在\之後的特殊符號失去意義,變為普通字符