【shell命令】簡單基礎命令


作者:flymaster

1.cd 切換目錄
2.touch 創建文件
3. vi 編輯器(記事本)vim 高級編輯器
4.echo 打印輸出內容(“”)(>清空並輸出 >>不清空 在后面追加)
5.cat 查看文件內容 -n 顯示行號
>重定向 >>追加重定向 <輸入重定向 <<輸入追加重定向
1< 正常輸出 2>錯誤的記錄輸出 cat >>test.txt
<<EOF
TEXT LIYAO oldboy
EOF
6.cp 復制命令 (不能拷貝目錄)cp -a(pdr)(拷貝目錄)-p保持屬性 -r遞歸復制目錄
7.mv 移動目錄或文件 例mv /data /root/
8.pwd 查看當前工作路徑 mkdir -p 遞歸創建目錄
9.man 命令 命令的幫助(復雜幫助)或者 命令--help(簡單幫助)(bash內置命令)
10.head -數字 ==頭部(取文件前10行) :head -2 text.txt
tail ==尾巴(取文件最后10行) :tail -3 test.txt
tail -f 跟蹤文件尾部變化
:取文件20-30行(head -30 test.txt|tail -11)
11.grep **** ==篩選(想要或者不想要 分離) -v排除 -i不區分大小寫 -E過濾多個字符串 -o 輸出精確匹配字符而不是整行
:grep "oldboy"test.txt(選出oldboy)
:grep -v "oldboy" test.txt(不要oldboy)
:grep -A(after) 除了顯示匹配的一行之外 並顯示該行之后的num行
:grep -B(befor) 除了顯示匹配的一行之外 並顯示該行之前的num行
:grep -C 除了顯示匹配的一行之外 並顯示該行之前后各num行
:grep 30 -B 10 TEST.txt(找出第30行並顯示30行前面10行)
: grep -E(egrep) 過濾多個數據 (grep -E "3306|1521")
-a:在2進制文件中.以文本文件的方式搜索數據
-c:計算找到“字符串”的次數
-o:僅顯示出匹配regexp的內容(統計出現次數)
-i:不區分大小寫
-n:顯示行號
-v:排除
--color=auto
12 sed ***** 過濾(擅長取行。替換):sed -n '/過濾內容/處理的命令' 文件
-n 取消sed的默認輸出
-i 改變文件內容
-r 不用反斜線取消了
例:sed -n '20,30p' text.txt(打印文件20到30行)
處理的命令:p print打印。d delete 刪除。
例:sed '/oldboy/d' test.txt
sed -n '/oldboy/p' test.txt
13 sed ***** 替換 :sed 's# oldboy#oldgirl#g' 文件名(只是替換輸出)
: sed -i 's# # #g' 文件名(永久改變)
s(查找並替換)g(global)與s聯合使用.全局替換。
(#可以用)任意字符代替(= @ ! / ?等)
sed -r 's#(.*)#\1#g' test.txt 只取出()里面的內容
13.rpm -ivh 包名 (軟件包要下載下來)(-i install安裝 -v顯示輸出 -h 人類可讀) :rpm -ivh 包名.rpm(提前下載好) rpm依賴問題不好解決 rpm -qa 包名(查詢安裝包)

14.yum linux包管理器 :yum install tree(包名)-y
下載包並調用rpm安裝包下載提前安裝依賴包

 

15.tree 顯示目錄樹結構 :tree /date/
16.alias 查看以及定義別名(外號)
:oldboy='echo " I am oldboy linux."'
: alias rm ='echo " rm can not be used.use mv"'
:unalias 取消別名
別名生效位置:root用戶:root/.bashrc
所有用戶生效:/etc/bashrc或etc/profile定義生效source /etc/profiles
17.seq sequence== 序列 :seq 2 2 10(打印2 4 6 8)
:-s指定序列分隔符 seq -s "*" 2 2 10(打印2*4*6*8*10)
:-w


18.awk 一門語言 過濾內容(擅長取列)
awk '{print $1}' 文件 打印第一(n)列
awk -F ":" '{print $1}' /etc/passwd
冒號分隔符第一列 $2... ($NF-1)$NF(最后一列)
:awk '{ if(NR>19 && NR<31) print $1"\n"}' text.txt (NR=行號)
(\n 回車換行)
:$0 表示整行 $1 表示第一列

19. \ 脫掉馬甲 不代表其他作用 !+數字 調出歷史第幾條命令 {}輸出字符.數字序列

20 重要的快捷鍵

1.tab 命令和路徑的補全
2.ctrl+a(移動到當前行開頭) ctrl+e(移動到當前行結尾) ctrl+u ctrl+k ctrl+c(終止當前任務命令或程序) ctrl+d(退出當前用戶環境相當於exit logout) ctrl+l(清屏) ctrl+shift+c(復制) ctrl+shift+v(粘貼)

21. ps -ef netstat -lntup(ss) ifconfig(ip add)
22. windows ------linux
ftp/winscp/http/rz-sz(yum install lrzsz -y)包下載
rz 回車 選擇要上傳的文件(不能是目錄)
sz 文件 回車。 下的路徑CRT指定路徑
—y 覆蓋
23.VM: 快照 snapshot
1-------2 --------3 --------4 -----5
24.find ***** 查找-type 按文件類型查找. -name 按照名字查找.查找的內容最好用雙引號括起來 !取反 -a(and) -o(or)或者

25. ls ==list 查看目錄列表 -l(long)長格式 -d(directory)
ls -l --time-style=long(full)-iso(時間格式\國際時間)
*****26. 通配符
1. * 代表任意多個字符
2. ?代表一個字符
3 ; 連續不通命令的分隔符
4 # 文件注釋
5 | 管道
6 ~當前用戶家目錄
7 - 上次目錄
8 $ 變量符號
9 1>或者> 重定向 覆蓋
10 >> 追加重定向 追加
11 < 輸入重定向 << 追加輸入重定向
12 ' 不具有變量置換功能 輸入所見即所得
13 " 具有置換功能 輸入變量后輸出
14 ` 反引號 `` 中間的命令先執行 等價與$()
15 {}中間為命令區塊組合或排序
16 !非
17 && 當前一個指令執行成功后。執行后一個指令
18 || 當前一個指令執行失敗后 執行后一個

 

 


sed -i 's#(可以用正則匹配)#\1#g'txst .txt
:把前面正則匹配的括號內取出來 在后面\1操作


27.linux優化
1. 建立普通帳號.使用普通用戶登錄
2.處理SELINUX
3.處理防火牆
4.精簡開機自啟動服務。sshd network crond rsyslog sysstat
5.linux最小化安全理念 5條

系統安全
1.cd /etc/ssh/sshd_config
2.cp sshd_config
3.diff 查看兩個文件的區別 vimdiff 查看兩個文件詳細區別
diff 比較 接兩個文件

###sshd_config###
port 22 修改端口
PermitRootLogin no 不允許root直接遠程登錄
PermitEmptyPasswords no 不允許無密碼登錄(默認的就是不允許 不用改)
UseDNS no 不需要DNS解析域名 直接使用ip地址登錄
GSSAPIAuthentication no
ListenAddress 內網地址 企業監聽內網ip地址

28.which 查找命令所在路徑. 搜索范圍來自PASH變量的路徑(臨時修改export PATH="/tmp:$PATH")(永久修改在全局變量/etc/profile下)
使用source /etc/profile 立刻生效
29.同步服務網時間 /usr/sbin/ ntpdate time.nist.gov
crond:

30.export TMOUT=10 超時時間 (/etc/profile)


31.掛載
設備 掛載點 文件類型 參數 備份(0不備份) 檢查(0不檢查)
手動
1.mount -t ext4 -o noexec /dev/sda1 /mnt
2. /etc/fstab
1.創建一個虛擬的塊設備
dd if=/dev/zero of=/dev/sdb1 bs=4906 count=100
2.格式化
mkfs.ext4 /dev/sdb1
3.掛載
mount -t ext4 -o loop,noatime,noexec /dev/sda1 /mnt
4.查看
df -h
32. fsck 磁盤檢查(出問題才用這個檢查)還是卸載狀態。
fstab:修復
1.開機提示。輸入密碼 修復
2.救援模式 rescue。
修改/etc/fstab只讀狀態 mount -o rw remount/
讓一個程序開機啟動:
chkconfig(/etc/init.d/sshd)
2.放入/etc/rc.local
選擇建議:/etc/rc.local 服務器檔案文件。(所有程序開機啟動放入/etc/rc.local) 注釋

/etc/inittab 設定系統啟動時init
33用戶
UID 用戶id 相當於身份證 系統唯一性
GID 組id 相當於各位的家庭或學校
用戶分為3類:
①超級用戶 root uid=0 gid=0 /etc/passwd(切換其他用戶uid和gid為0可以變成root用戶)
②虛擬用戶 存在linux中滿足文件和程序運行的需要而創建。多數不能登錄
uid gid 1—499 /etc/passwd(以sbin/nologin 結尾)
③普通用戶 管理員創建的用戶
uid gid 500-65535

34.文件的時間:(find查找)
Access:訪問時間 find -atime
Modify:修改時間 內容發生變化find -mtime
Change:變化時間 包含Modify 權限 屬主 用戶組 -ctime
35.stat命令查看時間
37.通配符 ls *.log (*代表所以)
36正則表達式
為處理大量字符串而定義的一套規則和方法。
注意事項
a.linux正則一般以行為單位匹配處理
b.alias grep='grep --color=auto’
c.注意字符集 export LC_ALL=C
正則:
^word(以開頭) word$(以什么結尾) ^$(空行)
① .代表且只能代表任意一個字符
②\ 轉譯
③* 匹配0個或多個字符(0*重復至少一個0)
④.* 匹配所有字符 (^.*以任意字符開頭 .*$以任意字符結尾)
⑤[abc] 匹配字符中任意字符[a-zA-Z][0-9]
** ⑥[^abc] 匹配不包含^后的任意字符內容
⑦ a\{n,m\} 重復n到m次a
⑧ a\{n,\} 重復至少n次a
⑨ a\{,m\} 最多重復m次a
(用sed -r 或者 grep -E(egrep)不用反斜線轉譯)(只有awk要用\)
擴展正則表達式
1.+重復一個或一個以上前面字符
2. ?重復0個或一個前面的字符
3.()找出“用戶組” 字符串
4.| 用或的方式查找多個字符串

40.stat /etc/hosts
1. stat /etc/hosts|sed -n '4p'|awk -F "[0/]" '{print $2}'
2. stat /etc/hosts|awk -F "[0/]" 'NR=4 {print $2}'
3.stat /etc/hosts|sed -nr '4s#^.*\(0(.*)/-.*$#\1#gp'
4.cut
5 ls -l test.txt|cut -c 2-10|tr rwx- 4210|awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'

41 stat 自己查
42 chmod 改變文件權限(r=4 w=2 x=1 -=0)(rwxr-xr--754)
rw-rw-r-x==>rwx--xr-x
chmod u+x,g=x(第一個rw-是u 第二個是g 第三個是o )
文件和目錄默認創建權限由umask確定 (0002 0022)
f(文件)權限=666-umask(umask奇數位加一)
d(目錄)默認權限=777-umask
永久生效寫入 /etc/profile
chgrp 修改用戶組 -R 接目錄改目錄下全文件
chown 用戶組.屬組(同時改2個 .可以用:代替)可以用 :屬組 只改變組
chmod chfrp chown 遞歸用-R
43 chattr 設置特殊屬性
chattr +i test.txt 鎖文件 不能刪除 不能寫入 不能執行
chattr -i test.txt 解文件
chattr +a test.txt 可以寫不能刪除
lsattr test.txt 查看

44 du -sh 目錄 查看目錄下總大小 du -cb 統計總大小
find ./ -name "*20170328*"|xargs du -cbh(h人類可讀)
45 定時任務沒有輸出的定向到空(不然堆滿郵件占滿inode)
>/dev/null 2>&1(正確錯誤都輸出到空洞)
46 定時任務要領
①為定時任務加必要的注釋
②定時任務最好寫到腳本里面
③執行shell腳本任務前加/bin/sh
④定時任務命令或腳本結尾加>/dev/null 2>&1(&>dev/null)
⑤在指定用戶下執行相關定時任務
⑥生產環境不要隨意打印輸出信息
⑦定時任務執行的腳本要規范路徑(/server/scripts)
⑧配置定時任務規范操作過程
47 set|grep PS1
48.free -m
buffers 為寫入緩存區 sync將緩存區數據寫入磁盤
cache 讀取數據的緩存區
49.用戶和用戶組
useradd userdel passwd usermod id sudo chage su
2 命令關聯文件
①useradd
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
默認行為控制:
/etc/default/useradd
/etc/login.defs
useradd 選項參數 /etc/passwd
-d 指定家目錄
-e 修改帳號終止日期
-u 指定uid
-c 添加注釋
-G 指定用戶組(用戶之間用逗號分割)
-s 指定shell類型
group 選項參數
-g 指定gid
passwd 修改任意用戶密碼
--stdin 從stdin輸入密碼
echo 123456|passwd --stdin oldboy
查看登錄用戶
w who users last(登錄的列表) lastlog(監控登錄日志)

50.查看系統版本 cat /etc/issue
系統信息
arch 顯示機器的處理器架構(1)
uname -m 顯示機器的處理器架構(2)
uname -r 顯示正在使用的內核版本
dmidecode -q 顯示硬件系統部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 羅列一個磁盤的架構特性
hdparm -tT /dev/sda 在磁盤上執行測試性讀取操作
cat /proc/cpuinfo 顯示CPU info的信息
cat /proc/interrupts 顯示中斷
cat /proc/meminfo 校驗內存使用
cat /proc/swaps 顯示哪些swap被使用
cat /proc/version 顯示內核的版本
cat /proc/net/dev 顯示網絡適配器及統計
cat /proc/mounts 顯示已加載的文件系統
lspci -tv 羅列 PCI 設備
lsusb -tv 顯示 USB 設備
date 顯示系統日期
cal 2007 顯示2007年的日歷表
date 041217002007.00 設置日期和時間 - 月日時分年.秒
clock -w 將時間修改保存到 BIOS
51.關機 (系統的關機、重啟以及登出 )
shutdown -h now 關閉系統(1)
init 0 關閉系統(2)
telinit 0 關閉系統(3)
shutdown -h hours:minutes & 按預定時間關閉系統
shutdown -c 取消按預定時間關閉系統
shutdown -r now 重啟(1)
reboot 重啟(2)
logout 注銷

 

 

文件搜索
find / -name file1 從 '/' 開始進入根文件系統搜索文件和目錄
find / -user user1 搜索屬於用戶 'user1' 的文件和目錄
find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結尾的文件
find /usr/bin -type f -atime +100 搜索在過去100天內未被使用過的執行文件
find /usr/bin -type f -mtime -10 搜索在10天內被創建或者修改過的文件
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結尾的文件並定義其權限
find / -xdev -name \*.rpm 搜索以 '.rpm' 結尾的文件,忽略光驅、捷盤等可移動設備
locate \*.ps 尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令
whereis halt 顯示一個二進制文件、源碼或man的位置
which halt 顯示一個二進制文件或可執行文件的完整路徑

 

掛載一個文件系統
mount /dev/hda2 /mnt/hda2 掛載一個叫做hda2的盤 - 確定目錄 '/ mnt/hda2' 已經存在
umount /dev/hda2 卸載一個叫做hda2的盤 - 先從掛載點 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 當設備繁忙時強制卸載
umount -n /mnt/hda2 運行卸載操作而不寫入 /etc/mtab 文件- 當文件為只讀或當磁盤寫滿時非常有用
mount /dev/fd0 /mnt/floppy 掛載一個軟盤
mount /dev/cdrom /mnt/cdrom 掛載一個cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 掛載一個cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 掛載一個cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 掛載一個文件或ISO鏡像文件
mount -t vfat /dev/hda5 /mnt/hda5 掛載一個Windows FAT32文件系統
mount /dev/sda1 /mnt/usbdisk 掛載一個usb 捷盤或閃存設備
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 掛載一個windows網絡共享

 

磁盤空間
df -h 顯示已經掛載的分區列表
ls -lSr |more 以尺寸大小排列文件和目錄
du -sh dir1 估算目錄 'dir1' 已經使用的磁盤空間'
du -sh * | sort -rn 以容量大小為依據依次顯示文件和目錄的大小

用戶和群組
groupadd group_name 創建一個新用戶組
groupdel group_name 刪除一個用戶組
groupmod -n new_group_name old_group_name 重命名一個用戶組
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 創建一個屬於 "admin" 用戶組的用戶
useradd user1 創建一個新用戶
userdel -r user1 刪除一個用戶 ( '-r' 排除主目錄)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用戶屬性

passwd 修改口令
passwd user1 修改一個用戶的口令 (只允許root執行)
chage -E 2005-12-31 user1 設置用戶口令的失效期限

文件的權限 - 使用 "+" 設置權限,使用 "-" 用於取消
ls -lh 顯示權限
ls /tmp | pr -T5 -W$COLUMNS 將終端划分成5欄顯示
chmod ugo+rwx directory1 設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執行(x)的權限
chmod go-rwx directory1 刪除群組(g)與其他人(o)對目錄的讀寫執行權限
chown user1 file1 改變一個文件的所有人屬性
chown -R user1 directory1 改變一個目錄的所有人屬性並同時改變改目錄下所有文件的屬性
chgrp group1 file1 改變文件的群組
chown user1:group1 file1 改變一個文件的所有人和群組屬性
find / -perm -u+s 羅列一個系統中所有使用了SUID控制的文件
chmod u+s /bin/file1 設置一個二進制文件的 SUID 位 - 運行該文件的用戶也被賦予和所有者同樣的權限
chmod u-s /bin/file1 禁用一個二進制文件的 SUID位
chmod g+s /home/public 設置一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的
chmod g-s /home/public 禁用一個目錄的 SGID 位
chmod o+t /home/public 設置一個文件的 STIKY 位 - 只允許合法所有人刪除文件
chmod o-t /home/public 禁用一個目錄的 STIKY 位

 

文件的特殊屬性 - 使用 "+" 設置權限,使用 "-" 用於取消
chattr +a file1 只允許以追加方式讀寫文件
chattr +c file1 允許這個文件能被內核自動壓縮/解壓
chattr +d file1 在進行文件系統備份時,dump程序將忽略這個文件
chattr +i file1 設置成不可變的文件,不能被刪除、修改、重命名或者鏈接
chattr +s file1 允許一個文件被安全地刪除
chattr +S file1 一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤
chattr +u file1 若文件被刪除,系統會允許你在以后恢復這個被刪除的文件
lsattr 顯示特殊的屬性

 

打包和壓縮文件
bunzip2 file1.bz2 解壓一個叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個叫做 'file1' 的文件
gunzip file1.gz 解壓一個叫做 'file1.gz'的文件
gzip file1 壓縮一個叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創建一個非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個包中的內容
tar -xvf archive.tar 釋放一個包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創建一個bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創建一個gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包
zip file1.zip file1 創建一個zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包


RPM 包 - (Fedora, Redhat及類似系統)
rpm -ivh package.rpm 安裝一個rpm包
rpm -ivh --nodeeps package.rpm 安裝一個rpm包而忽略依賴關系警告
rpm -U package.rpm 更新一個rpm包但不改變其配置文件
rpm -F package.rpm 更新一個確定已經安裝的rpm包
rpm -e package_name.rpm 刪除一個rpm包
rpm -qa 顯示系統中所有已經安裝的rpm包
rpm -qa | grep httpd 顯示所有名稱中包含 "httpd" 字樣的rpm包
rpm -qi package_name 獲取一個已安裝包的特殊信息

YUM 軟件包升級器 - (Fedora, RedHat及類似系統)
yum install package_name 下載並安裝一個rpm包
yum update package_name.rpm 更新當前系統中所有安裝的rpm包
yum update package_name 更新一個rpm包
yum remove package_name 刪除一個rpm包
yum list 列出當前系統中安裝的所有包
yum search package_name 在rpm倉庫中搜尋軟件包
yum clean packages 清理rpm緩存刪除下載的包
yum clean headers 刪除所有頭文件
yum clean all 刪除所有緩存的包和頭文件

查看文件內容
cat file1 從第一個字節開始正向查看文件的內容
tac file1 從最后一行開始反向查看一個文件的內容
more file1 查看一個長文件的內容
less file1 類似於 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
head -2 file1 查看一個文件的前兩行
tail -2 file1 查看一個文件的最后兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容

文本處理
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合並一個文件的詳細說明文本,並將簡介寫入一個新文件中
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合並一個文件的詳細說明文本,並將簡介寫入一個已有的文件中
grep Aug /var/log/messages 在文件 '/var/log/messages'中查找關鍵詞"Aug"
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"開始的詞匯
grep [0-9] /var/log/messages 選擇 '/var/log/messages' 文件中所有包含數字的行
grep Aug -R /var/log/* 在目錄 '/var/log' 及隨后的目錄中搜索字符串"Aug"
sed 's/stringa1/stringa2/g' example.txt 將example.txt文件中的 "string1" 替換成 "string2"
sed '/^$/d' example.txt 從example.txt文件中刪除所有空白行
sed '/ *#/d; /^$/d' example.txt 從example.txt文件中刪除所有注釋和空白行
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合並上下單元格內容
sed -e '1d' result.txt 從文件example.txt 中排除第一行
sed -n '/stringa1/p' 查看只包含詞匯 "string1"的行
sed -e 's/ *$//' example.txt 刪除每一行最后的空白字符
sed -e 's/stringa1//g' example.txt 從文檔中只刪除詞匯 "string1" 並保留剩余全部
sed -n '1,5p;5q' example.txt 查看從第一行到第5行內容
sed -n '5p;5q' example.txt 查看第5行
sed -e 's/00*/0/g' example.txt 用單個零替換多個零
cat -n file1 標示文件的行數
cat example.txt | awk 'NR%2==1' 刪除example.txt文件中的所有偶數行
echo a b c | awk '{print $1}' 查看一行第一欄
echo a b c | awk '{print $1,$3}' 查看一行的第一和第三列
paste file1 file2 合並兩個文件或兩欄的內容
paste -d '+' file1 file2 合並兩個文件或兩欄的內容,中間用"+"區分
sort file1 file2 排序兩個文件的內容
sort file1 file2 | uniq 取出兩個文件的並集(重復的行只保留一份)
sort file1 file2 | uniq -u 刪除交集,留下其他的行
sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在於兩個文件中的文件)
comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容
comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容
comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分

字符設置和文件格式轉換
recode ..HTML < page.txt > page.html 將一個文本文件轉換成html
recode -l | more 顯示所有允許的轉換格式

文件系統分析
badblocks -v /dev/hda1 檢查磁盤hda1上的壞磁塊
fsck /dev/hda1 修復/檢查hda1磁盤上linux文件系統的完整性
fsck.ext2 /dev/hda1 修復/檢查hda1磁盤上ext2文件系統的完整性
e2fsck /dev/hda1 修復/檢查hda1磁盤上ext2文件系統的完整性
e2fsck -j /dev/hda1 修復/檢查hda1磁盤上ext3文件系統的完整性
fsck.ext3 /dev/hda1 修復/檢查hda1磁盤上ext3文件系統的完整性
fsck.vfat /dev/hda1 修復/檢查hda1磁盤上fat文件系統的完整性
fsck.msdos /dev/hda1 修復/檢查hda1磁盤上dos文件系統的完整性
dosfsck /dev/hda1 修復/檢查hda1磁盤上dos文件系統的完整性


初始化一個文件系統
mkfs /dev/hda1 在hda1分區創建一個文件系統
mke2fs /dev/hda1 在hda1分區創建一個linux ext2的文件系統
mke2fs -j /dev/hda1 在hda1分區創建一個linux ext3(日志型)的文件系統
mkfs -t vfat 32 -F /dev/hda1 創建一個 FAT32 文件系統
fdformat -n /dev/fd0 格式化一個軟盤
mkswap /dev/hda3 創建一個swap文件系統

備份
dump -0aj -f /tmp/home0.bak /home 制作一個 '/home' 目錄的完整備份
dump -1aj -f /tmp/home0.bak /home 制作一個 '/home' 目錄的交互式備份
restore -if /tmp/home0.bak 還原一個交互式備份
rsync -rogpav --delete /home /tmp 同步兩邊的目錄
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通過SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通過ssh和壓縮將一個遠程目錄同步到本地目錄
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通過ssh和壓縮將本地目錄同步到遠程目錄
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通過ssh在遠程主機上執行一次備份本地磁盤的操作
dd if=/dev/sda of=/tmp/file1 備份磁盤內容到一個文件
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通過ssh在遠程目錄中復制一個目錄內容
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通過ssh在遠程目錄中復制一個本地目錄
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地將一個目錄復制到另一個地方,保留原有權限及鏈接
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個目錄查找並復制所有以 '.txt' 結尾的文件到另一個目錄
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 結尾的文件並做成一個bzip包
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一個將 MBR (Master Boot Record)內容復制到軟盤的動作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 從已經保存到軟盤的備份中恢復MBR內容


dd if=/dev/hdc | md5sum 校驗一個設備的md5sum編碼,例如一張 CD

網絡 - (以太網和WIFI無線)
ifconfig eth0 顯示一個以太網卡的配置
ifup eth0 啟用一個 'eth0' 網絡設備
ifdown eth0 禁用一個 'eth0' 網絡設備
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 設置 'eth0' 成混雜模式以嗅探數據包 (sniffing)
dhclient eth0 以dhcp模式啟用 'eth0'
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'

[root@clinet ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/$basearch/Debuginfo/
baseurl是你的YUM源地址
enabled=0
是否啟用這個倉庫,1為起用,0為禁用
gpgcheck=1
設置gpgcheck=1會讓yum檢查每個下載的RPM的GnuPG簽名。這么做是因為你需要適當的GnuPG key注冊到您的RPM數據庫。可以防止被欺騙,如:非法入侵發行版網站,木馬導入軟件包,使不知情用戶下載
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
GPGKEY 的存放地址

[root@clinet ~]# mkdir /mnt/cdrom
創建掛載點
[root@clinet ~]# mount /dev/cdrom /mnt/cdrom
掛載光盤

[root@clinet yum.repos.d]# vi rhel-debuginfo.repo
編輯rhel-debuginfo.repo,插入以下代碼
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

55.命令: wc
用於統計文檔的行數、字符數、詞數,常用的選項為:
-l :統計行數
-m :統計字符數
-w :統計詞數
wc 不跟任何選項,直接跟文檔,則會把行數、詞數、字符數依次輸出。
命令: uniq
去重復的行,阿銘最常用的選項只有一個:
-c :統計重復的行數,並把行數寫在前面
[root@localhost ~]# vim testb.txt
把下面的內容寫入testb.txt, 保存。
111
222
111
333
使用uniq 的前提是需要先給文件排序,否則不管用。
[root@localhost ~]# uniq testb.txt
111
222
111
333
[root@localhost ~]# sort testb.txt |uniq
111
222
333
[root@localhost ~]# sort testb.txt |uniq -c
2 111
1 222
1 333
命令: tee
后跟文件名,類似與重定向``>'', 但是比重定向多了一個功能,在把文件寫入后面所跟的文件中的同
時,還顯示在屏幕上。


免責聲明!

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



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