rpm包僅用於 redhat suse redflag
如果源代碼包的話,那就都適用
linux下面的備份,差很少就是用tar打包
tar命令
用途:製做歸檔文件,釋放歸檔文件
格式:tar 【選項】... 歸檔文件名 源文件或目錄
tar 【選項】... -C 建包或解包時進入指定的相對路徑
tar cjvf ds.tar.bz2 file1 file2 dir1 使用bzip2標準壓縮file1 file2 dir1包名爲ds.tar.bz2
tar czvf ds.tar.gz file1 file2 dir1 使用gzip標準壓縮file1 file2 dir1包名爲ds.tar.gz
tar tvf ds.tar.gz 查看壓縮文件ds.tar.gz的內容
tar xvf ds.tar.gz -C /tmp 將ds.tar.gz釋放到tmp文件夾下面去
-c:創建壓縮包
-C:建包或解包時進入指定的相對路徑
-x:解壓文件
-t:查看壓縮文件
-z:使用gzip標準進行壓縮、解壓
-j:使用bzip2標準進行壓縮、解壓
-v:顯示壓縮解壓過程
-f:後面緊跟壓縮文件名稱
-p:使用原文件的原來屬性
-P:使用絕對路徑(最好不用)
--exclude file:壓縮過程當中排除file(也能夠是目錄)
擴展:
tar cjvf ds-`date+%F`.tar.bz2 file1 file2 dir1
[root@localhost ~]# vim file1 file1中有abc
[root@localhost ~]# echo "abc"
abc
[root@localhost ~]# echo "abc"
abc
[root@localhost ~]# echo "abc" | tr "a-z" "A-Z"
ABC
[root@localhost ~]# tr "a-z" "A-Z" < file1
ABC
[root@localhost ~]# tr "a-z" "A-Z"
abc 輸入字符
ABC 轉換後字符
wsx
WSX
edc
EDC
^C
[root@localhost ~]# lslsls 1>a 2>b 1標準輸出 2標準錯誤輸出
[root@localhost ~]# cat a
[root@localhost ~]# cat b
bash: lslsls: command not found
[root@localhost ~]# date 1>a 2>b
[root@localhost ~]# cat a
Tue Jul 16 10:23:31 CST 2013
[root@localhost ~]# cat b
[root@localhost ~]# dateabc &>a 標準輸出和標準錯誤輸出都放到同一個文件中去&爲1或者2
[root@localhost ~]# cat a
bash: dateabc: command not found
root@localhost ~]# date 1>a 2>a
[root@localhost ~]# date 1>a 2>&1
[root@localhost ~]# cat a
Tue Jul 16 10:27:38 CST 2013
rpm -e gdb 卸載gdb軟件
rpm -ivh gdb or yum install gdb -y 安裝gdb軟件
若要屏幕不顯示安裝信息,可將其安裝信息重定向到別的文件中去 eg: yum install gdb -y >a
這樣,a文件中又有安裝信息,佔了內存,因此定向到/dev/null中去,由於其中的內容會自動被內存清理掉 eg:yum install gdb -y > /dev/null
[root@localhost ~]# grep "tom" /etc/passwd 找出tom用戶的信息
tom:x:500:500::/home/tom:/bin/bash
[root@localhost ~]# route -n | grep "UG"
0.0.0.0 10.0.0.253 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route -n | grep "UG"| cut -f2
0.0.0.0 10.0.0.253 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route -n | grep "UG"| awk '{print $2}'
10.0.0.253
[root@localhost ~]# route -n | grep "UG"| tr -s " "
0.0.0.0 10.0.0.253 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route -n | grep "UG"| tr -s " " | cut -d" " -f2
10.0.0.253
cut制定默認的分割符是tab鍵
grep 通用正則表達式分析程序。正則表達式必定要用""引發來
用途:在文件中查找並顯示包含指定字符串的行
格式:grep [選項]... 模式 目標文件
-i:查找時忽略大小寫
-v:反轉查找,輸出與模式不相符的行
-l:僅顯示符合模式要求的文件名
-n:顯示符合模式要求的行號
-r:遞歸搜索全部文件
-q:禁止任何輸出
[root@localhost ~]# grep "lee" file1 -i -i是指不區分大小寫
Lee 3 k
grep "^#" 正則表達式中的一個元字符。以#開頭 「^a」則是以a開頭的行
[root@localhost ~]# grep "^tom" file1 以tom開頭的
tom to kg
[root@localhost ~]# grep "^tom" file1 -v 不以tom開頭的
dfsk 23 k
jk 23 n
Lee 3 k
[root@localhost ~]# grep "def$" file1 以def結尾的
av dkj def
[root@localhost ~]# grep "def" file1 包含了def的
dskf def sdk
av dkj def
fgrep:快速搜索簡單模式
egrep:可使用擴展正則表達式搜索
正則表達式是一個指定文本模式的標準Unix語法
使用特殊元字符實現複雜的搜索問題
基本正則表達式和Unix兼容
擴展正則表達式增長了一些新的元字符
fgrep: 不支持正則表達式
grep: 可使用基本正則表達式搜索
egrep:可使用擴展正則表達式搜索
正則表達式由下列元素構成
文字字符
通配符--與文件名通配符不是一回事
修飾符:」*」、」?」等
錨點:以什麼開頭、以什麼結尾
在正則表達式中任意字符串用.*表示
[root@localhost ~]# echo "root abc def" | grep "r..t"
root abc def
[root@localhost ~]# echo "root abc def" | grep "r.t"
[root@localhost ~]# echo "root abc def "|grep "ro*t"
root abc def
[root@localhost ~]# echo "rt abc def "|grep "ro*t"
rt abc def
[root@localhost ~]# echo "rot abc def "|grep "ro*t"
rot abc def
[root@localhost ~]# ls *.sh
vnc.sh
[root@localhost ~]# ls ?.sh
ls: cannot access ?.sh: No such file or directory
[root@localhost ~]# ls vn?.sh
vn通配符
「.」:表示必定有一個任意字符
a…b表示a b間有3個字符,有幾個.就有幾個字符
方括號表達式:一個文字字符域
[abc]表示什麼意思?
[root@localhost ~]# echo "axb"|grep "a[xyz]b" 必須有xyz中的一個
axb
[root@localhost ~]# ls v[mnl]c.sh []中的任意一個
vnc.sh
[^abc]表示什麼意思?
[root@localhost ~]# echo "aub"|grep "a[^xyz]b" 取反,不能有xyz中的任意一個
aub 不能是[]中的任意一個
* ?是bash的功能,而不是正則.*表示任意字符串,?表示有且只有一個字符
在正則表達式中任意字符串用.*表示
通用修飾符
「?」:表示0個或者1個前面的字符
ab?c表示什麼意思?
「*」:表示0個或者多個前面的字符
ab*c表示什麼意思?
「+」:表示1個或者多個前面的字符
ab+c表示什麼意思?
{n}:表示n個前面的字符
ab{2}c表示什麼意思?
{n,m}:表示n個到m個前面的字符
ab{2,4}c表示什麼意思?
錨點搜索
「^」:表示以什麼開頭
^#表示什麼意思?
grep -v ‘^#’ /etc/inittab | grep –v ^$
egrep ‘^[^[:digit:]]’ /ec/inittab
「$」:表示以什麼結尾
bash$表示什麼意思?
egrep ':$' /etc/inittab
egrep ‘^hello$' /etc/passwd
\< abc \>:表示abc這個單詞
egrep ‘\<pig\>' /usr/share/dict/words
正則表達式與文件名匹配的區別
正則表達式只在少數搜索和替換文本命令中使用
文件名匹配在bash中匹配文件名
都使用」*」、」?」但意義不同
正則表達式元字符要放在單引號內,避免bash Shell解釋
tr命令:是對單個字符進行處理,而不是字符串
字符轉換工具
只能對stdin操做,不能對文件進行操做
[root@localhost ~]# echo "abc def"|tr "a-z" "A-Z"
ABC DEF
[root@localhost ~]# echo "ABC DEF"|tr "A-Z" "a-z"
abc def
[root@localhost ~]# echo "abc def ade axy"|tr "a-c" "1-3"
123 def 1de 1xy
[root@localhost ~]# tr "abc" "ABC"
avc
AvC
avb
AvB
[root@localhost ~]# echo "abc 123a dcevbf"| tr -d "abc" 刪除出現的a字符b字符c字符
123 devf
[root@localhost ~]# echo "111222333444"|tr -s "123" 把多個1壓縮成一個1……
123444
sort排序
ls -l | sort -k5nr 以第5個字段做爲數值降序排列
sort -t: -k3nr /etc/passwd 以第三個字段做爲數值降序排列
uniq命令
刪除通過排序後的數據的重複記錄
uniq file1 只能刪除連續的相同的行
一般和sort連用
sort -n tt | uniq
[root@localhost ~]# vim file1
[root@localhost ~]# uniq file1
111111
222222
111111
222222
[root@localhost ~]# sort file1 | uniq 刪除重複行
111111
222222
[root@localhost ~]# sort file1 |uniq -c -c顯示原來的111111有多少行,原來的222222有多少行
3 111111
3 222222
和帳戶相關的文件
用戶信息放在/etc/passwd下,用戶密碼放在/etc/shadow下
和組相關的文件
/etc/group 、 /etc/gshadow
帳戶宿主目錄中文件來源
新建用戶賬號時,從 /etc/skel 目錄中複製而來
默認帳戶的屬性文件
/etc/login.defs
useradd命令
格式:useradd [選項]... 用戶名
經常使用命令選項
-u:指定 UID 標記號
-d:指定宿主目錄,缺省爲 /home/用戶名
-e:指定賬號失效時間
-g:指定用戶的基本組名(或UID號)
-G:指定用戶的附加組名(或GID號)
-M:不爲用戶創建並初始化宿主目錄
-s:指定用戶的登陸Shell
passwd命令
格式:passwd [選項]... 用戶名
經常使用命令選項
-d:清空用戶的密碼,使之無需密碼便可登陸
-l:鎖定用戶賬號
-S:查看用戶賬號的狀態(是否被鎖定)
-u:解鎖用戶賬號
--stdin:接收標準輸入做爲密碼
root用戶能夠修改全部用戶密碼,不要求複雜性
普通用戶只能改本身的密碼,要求複雜性
userdel命令
格式:userdel [-r] 用戶名
添加 -r 選項時,表示連用戶的宿主目錄一併刪除
usermod命令
格式:usermod [選項]... 用戶名
經常使用命令選項
-l:更改用戶賬號的登陸名稱
-L:鎖定用戶帳戶
-U:解鎖用戶帳戶
如下選項與useradd命令中的含義相同
-u、-d、-e、-g、-G、-s
groupmod命令
用途:設置組名和組id
格式:groupmod [選項]... 組賬號名
經常使用命令選項
-n:修改組名
-g:修改組id
newgrp改變主要組
用戶必須是要改變組的成員
id命令
用途:查詢用戶身份標識
格式:id [用戶名]
finger命令
用途:查詢用戶賬號的詳細信息
格式:finger [用戶名]
chfn命令
用途:修改用戶的備註信息,/etc/passwd第5字段
who、w、users命令
用途:查詢已登陸到主機的用戶信息
groups命令
用途:查詢用戶所屬的組linux