Linux系統管理

各linux系統的安裝命令(我草他瞎媽 你們就不能用一個命令嗎 草)

deb包管理式的操作系統

apt-cache search # ------(package 搜索包)
apt-cache show #------(package 獲取包的相關信息,如說明、大小、版本等)
sudo apt-get install # ------(package 安裝包)
sudo apt-get install # -----(package - - reinstall 重新安裝包)
sudo apt-get -f install # -----(強制安裝?#"-f = --fix-missing"當是修復安裝吧...)
sudo apt-get remove #-----(package 刪除包)
sudo apt-get remove - - purge # ------(package 刪除包,包括刪除配置文件等)
sudo apt-get autoremove --purge # ----(package 刪除包及其依賴的軟體包+配置文件等(只對6.10有效,強烈推薦))
sudo apt-get update #------更新源
sudo apt-get upgrade #------更新已安裝的包
sudo apt-get dist-upgrade # ---------升級系統
sudo apt-get dselect-upgrade #------使用 dselect 升級
apt-cache depends #-------(package 瞭解使用依賴)
apt-cache rdepends # ------(package 瞭解某個具體的依賴?#當是查看該包被哪些包依賴吧...)
sudo apt-get build-dep # ------(package 安裝相關的編譯環境)
apt-get source #------(package 下載該包的源代碼)
sudo apt-get clean && sudo apt-get autoclean # --------清理下載文件的存檔 && 只清理過時的包
sudo apt-get check #-------檢查是否有損壞的依賴


高貴冷豔的Debian專用:(草你瞎嗎)

1.dpkg -i gedit-2.12.1.deb:安裝gedit

2.dpkg -r gedit:卸載gedit,但不刪除配置文件

3.dpkg -P gedit:這會連同gedit的配置文件一起刪除,只用-r的話是不刪除配置文件的

4.dpkg -c gedit-2.12.1.deb:如果不想安裝一個deb包,但想看一下它裏面有什麼文件就用這;如果想多看點信息用:

dpkg -I gedit-2.12.1.deb

5.dpkg -l gcc*:也可以用通配符來列出機器上的軟件,這會列出所有gcc開頭的軟件包,其中,第1個 i 表示希望安裝,第2個 i 表示已經安裝,第3個字段是問題(如果有)(這3個字的含義可以看上面那3行,desired, status, err),後面是名字,版本和描述。un就表示,Unknown, not-installed

6.dpkg -s gedit:如果想看某包是否已經安裝:

7.dpkg -L gedit:如果想看某軟件都有哪些文件,都裝到了什麼地方;如果只想看其中的某些文件,就加上Grep:

dpkg -L gedit grep png

 

red hat の RPM (Red Hat Package Manager) 

1.顯示包信息

rpm -qpi Linux-1.4-6.i368.rpm  

顯示軟件包的詳細資料,包括含有多少個文件、各文件名稱、文件大小、創建時間、編譯日期等信息。

2.查看安裝信息

rpm -qpl Linux-1.4-6.i368.rpm

上面列出的所有文件在安裝時不一定全部安裝,就像Windows下程序的安裝方式分爲典型、完全、自定義一樣,Linux也會讓你選擇安裝方式,此時我們可以用下面這條命令查看軟件包將會在系統裏安裝哪些部分,以方便我們的選擇

3.安裝

rpm -ivh Linux-1.4-6.i368.rpm

rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm 強行安裝

rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm  在線安裝

RPM 安裝操作

命令:

rpm -i 需要安裝的包文件名

舉例如下:

rpm -i example.rpm 安裝 example.rpm 包;

rpm -iv example.rpm 安裝 example.rpm 包並在安裝過程中顯示正在安裝的文件信息;

rpm -ivh example.rpm 安裝 example.rpm 包並在安裝過程中顯示正在安裝的文件信息及安裝進度;

4.卸載

rpm-e Linux-1.4-6.i368.rpm

5.升級

rpm -uvh <文件名>,注意:此時的文件名必須是要升級軟件的升級補丁 

6.定位文件所屬包

rpm -qf <文件名>

7.查找安裝位置

rpm -q

附加查詢命令:

a 查詢所有已經安裝的包以下兩個附加命令用於查詢安裝包的信息;

i 顯示安裝包的信息;

l 顯示安裝包中的所有文件被安裝到哪些目錄下;

s 顯示安裝版中的所有文件狀態及被安裝到哪些目錄下;以下兩個附加命令用於指定需要查詢的是安裝包還是已安裝後的文件;

p 查詢的是安裝包的信息;

f 查詢的是已安裝的某文件信息;

舉例如下:

rpm -qa | grep tomcat4 查看 tomcat4 是否被安裝;

rpm -ql tomcat4

rpm -qip example.rpm 查看 example.rpm 安裝包的信息;

rpm -qif /bin/df 查看/bin/df 文件所在安裝包的信息;

rpm -qlf /bin/df 查看/bin/df 文件所在安裝包中的各個文件分別被安裝到哪個目錄下;

8.附件命令

--force 強制操作 如強制安裝刪除等;
--requires 顯示該包的依賴關係;
--nodeps 忽略依賴關係並繼續操作

9.其他功能

在我們使用電腦過程中,難免會有誤操作,若我們誤刪了幾個文件而影響了系統的性能時,怎樣查找到底少了哪些文件呢?RPM軟件包提供了一個查找損壞文件的功能,執行此命令:rpm -Va即可,Linux將爲你列出所有損壞的文件。你可以通過Linux的安裝光盤進行修復。 

 

echo $$ 顯示當前終端進程號

查看文件尾部自定義大小(看日誌時好用)  tail -c -m --bytes=10m access_log | grep 2013:15 | grep callback

 

查看用戶/用戶組

cat /etc/passwd

cat /etc/group


添加用戶到新的用戶組 (保留原用戶組)

usermod -a -G group user


查看linux系統重啓/關機記錄

last | grep shutdown

last | grep reboot


添加swap分區

創建分區文件

dd if=/dev/zero of=/home/swap bs=1024 count=1024000

創建swap分區

/sbin/mkswap /home/swap

開啓swap分區

/sbin/swapon /home/swap

加入開啓啓動

/home/swap swap swap defaults 0 0


銷燬磁盤數據
#dd if=/dev/urandom of=/dev/hda1
注意:利用隨機的數據填充硬盤,在某些必要的場合可以用來銷燬數據。
12.測試硬盤的讀寫速度
#dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
#dd if=/root/1Gb.file bs=64k | dd of=/dev/null
通過以上兩個命令輸出的命令執行時間,可以計算出硬盤的讀、寫速度。
13.確定硬盤的最佳塊大小:
#dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
#dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
#dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
#dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通過比較以上命令輸出中所顯示的命令執行時間,即可確定系統最佳的塊大小。
14.修復硬盤:
#dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda
當硬盤較長時間(一年以上)放置不使用後,磁盤上會產生magnetic flux point,當磁頭讀到這些區域時會遇到困難,並可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數 據起死回生。並且這個過程是安全、高效的。
15.利用netcat遠程備份
#dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234
在源主機上執行此命令備份/dev/hda
#netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
在目的主機上執行此命令來接收數據並寫入/dev/hdc
#netcat -l -p 1234 | bzip2 > partition.img
#netcat -l -p 1234 | gzip > partition.img
以上兩條指令是目的主機指令的變化分別採用bzip2、gzip對數據進行壓縮,並將備份文件保存在當前目錄。
將一個很大的視頻文件中的第i個字節的值改成0x41(也就是大寫字母A的ASCII值)

查看服務器外網ip

curl ifconfig.me


mtr命令

sudo apt-get install mtr
yum install mtr

mtr google.com

將變量加入環境變量中

方法一:直接運行命令export PATH=$PATH:/usr/local/webserver/php/bin 和 export PATH=$PATH:/usr/local/webserver/mysql/bin
使用這種方法,只會對當前會話有效,也就是說每當登出或註銷系統以後,PATH 設置就會失效,只是臨時生效。
方法二:執行vi ~/.bash_profile修改文件中PATH一行,將/usr/local/webserver/php/bin 和 /usr/local/webserver/mysql/bin 加入到PATH=$PATH:$HOME/bin一行之後
這種方法只對當前登錄用戶生效
方法三:修改/etc/profile文件使其永久性生效,並對所有系統用戶生效,在文件末尾加上如下兩行代碼
PATH=$PATH:/usr/local/webserver/php/bin:/usr/local/webserver/mysql/bin
export PATH
最後:執行 命令source /etc/profile或 執行點命令 ./profile使其修改生效,執行完可通過echo $PATH命令查看是否添加成功。

ps aux|grep server.php|awk '{print $2}'|xargs kill

開機啓動

A.服務
1.編寫服務腳本
2.添加到/etc/init.d/下例如 /etc/init.d/nginx
3.chmod 777 /etc/init.d/nginx
4.chkconfig --add nginx
5.chkconfig nginx on

B.rc.local
在/etc/rc.local 中添加shell腳本命令

VIM
:[range]s/pattern/string/[c,e,g,i]5.1

range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表。還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章。
pattern 就是要被替換掉的字串,可以用 regexp 來表示。
string 將 pattern 由 string 所取代。
c confirm,每次替換前會詢問。
e 不顯示 error。
g globe,不詢問,整行替換。
i ignore 不分大小寫。

g 大概都是要加的,否則只會替換每一行的第一個符合字串。可以合起來用,如 cgi,表示不分大小寫,整行替換,替換前要詢問是否替換。


單個進程打開文件句柄數:
lsof -n|awk '{print $1"\t"$2}'|sort|uniq -c |sort -nr
調整:
1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535   
source /etc/profile
3.在/etc/security/limits.conf最後增加如下兩行記錄
* soft nofile 65535
* hard nofile 65535

grep命令

     基本格式:find  expression

     1.主要參數

    [options]主要參數:
    -c:只輸出匹配行的計數。
    -i:不區分大小寫
    -h:查詢多文件時不顯示文件名。
    -l:查詢多文件時只輸出包含匹配字符的文件名。
    -n:顯示匹配行及行號。
    -s:不顯示不存在或無匹配文本的錯誤信息。
    -v:顯示不包含匹配文本的所有行。

    pattern正則表達式主要參數:
    \: 忽略正則表達式中特殊字符的原有含義。
    ^:匹配正則表達式的開始行。
    $: 匹配正則表達式的結束行。
    \<:從匹配正則表達 式的行開始。
    \>:到匹配正則表達式的行結束。
    [ ]:單個字符,如[A]即A符合要求 。
    [ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的單個字符。
    * :有字符,長度可以爲0。

    2.實例  

  (1)grep 'test' d*  #顯示所有以d開頭的文件中包含 test的行
  (2)grep ‘test’ aa bb cc    #顯示在aa,bb,cc文件中包含test的行
  (3)grep ‘[a-z]\{5\}’ aa   #顯示所有包含每行字符串至少有5個連續小寫字符的字符串的行
  (4)grep magic /usr/src  #顯示/usr/src目錄下的文件(不含子目錄)包含magic的行
  (5)grep -r magic /usr/src  #顯示/usr/src目錄下的文件(包含子目錄)包含magic的行

  (6)grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章