linux命令備忘

linux命令備忘

分類: linux-命令 1234人閱讀 評論(0) 收藏 舉報

links -dump your.html html2txt

lynx --dump your.html html2txt


ldconfig是一個動態鏈接庫管理命令

爲了讓動態鏈接庫爲系統所共享,還需運行動態鏈接庫的管理命令--ldconfig
ldconfig  命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認爲  /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表.

ldconfig通常在系統啓動時運行,而當用戶安裝了一個新的動態鏈接庫時,就需要手工運行這個命令.
ldconfig命令行用法如下:
ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...
ldconfig可用的選項說明如下:
(1) -v或--verbose : 用此選項時,ldconfig將顯示正在掃描的目錄及搜索到的動態鏈接庫,還有它所創建的連接的名字.
(2) -n : 用此選項時,ldconfig僅掃描命令行指定的目錄,不掃描默認目錄(/lib,/usr/lib),也不掃描配置文件/etc/ld.so.conf所列的目錄.
(3) -N : 此選項指示ldconfig不重建緩存文件(/etc/ld.so.cache).若未用-X選項,ldconfig照常更新文件的連接.
(4) -X : 此選項指示ldconfig不更新文件的連接.若未用-N選項,則緩存文件正常更新.
(5) -f CONF : 此選項指定動態鏈接庫的配置文件爲CONF,系統默認爲/etc/ld.so.conf.
(6) -C CACHE : 此選項指定生成的緩存文件爲CACHE,系統默認的是/etc/ld.so.cache,此文件存放已排好序的可共享的動態鏈接庫的列表.
(7)  -r ROOT : 此選項改變應用程序的根目錄爲ROOT(是調用chroot函數實現的).選擇此項時,系統默認的配置文件 /etc/ld.so.conf,實際對應的爲 ROOT/etc/ld.so.conf.如用-r /usr/zzz時,打開配置文件 /etc/ld.so.conf時,實際打開的是/usr/zzz/etc/ld.so.conf文件.用此選項,可以大大增加動態鏈接庫管理的靈活性.
(8) -l : 通常情況下,ldconfig搜索動態鏈接庫時將自動建立動態鏈接庫的連接.選擇此項時,將進入專家模式,需要手工設置連接.一般用戶不用此項.
(9) -p或--print-cache : 此選項指示ldconfig打印出當前緩存文件所保存的所有共享庫的名字.
(10) -c FORMAT 或 --format=FORMAT : 此選項用於指定緩存文件所使用的格式,共有三種: ld(老格式),new(新格式)和compat(兼容格式,此爲默認格式).
(11) -V : 此選項打印出ldconfig的版本信息,而後退出.
(12) -? 或 --help 或 --usage : 這三個選項作用相同,都是讓ldconfig打印出其幫助信息,而後退出. 


解壓縮命令

bzip2 -d  xxx.tar.bz2
tar -xvf xxx.tar
tar -jxcf xxx.tar.bz2


開/關防火牆

iptables 

1)      重啓後生效: 
開啓: chkconfig iptables on 
關閉: chkconfig iptables off 
2)      即時生效,重啓後失效: 
開啓: service iptables start 
關閉: service iptables stop
//
在開啓了防火牆時,做如下設置,開啓相關端口, 
修改/etc/sysconfig/iptables 文件,添加以下內容: 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 

修改文件/目錄所有者

chown user:group xxx [-R]


查看CPU信息

cat /proc/cpuinfo


時間戳轉換格式化時間

date -d '1970-01-01 UTC 1 seconds'


查看磁盤信息
df -lh
fdisk -l 
du * -sh


Dmesg

dmesg 是一個顯示內核緩衝區系統控制信息的工具;比如系統在啓動時的信息會寫到/var/log/

注:dmesg 工具並不是專門用來查看硬件芯片組標識的工具,但通過這個工具能讓我們知道機器中的硬件的一些參數;因爲系統在啓動的時候,會寫一些硬件相關的日誌到 /var/log/message* 或
/var/log/boot* 文件中;

如果我們用這個工具來查看一些硬件的信息;這個工具信息量太大,的確需要耐心;

[root@panda ~]# dmesg
[root@panda ~]# dmesg -c 注:清理掉緩衝區,下次開機的時候還會自動生成;

Linux命令:dmesg

功能說明:顯示開機信息。

語  法:dmesg [-cn][-s <緩衝區大小>]

補充說明:kernel會將開機信息存儲在ring buffer中。您若是開機時來不及查看信息,可利用dmesg來查看。開機信息亦保存在/var/log目錄中,名稱爲dmesg的文件裏。

參  數:
-c  顯示信息後,清除ring buffer中的內容。 
-s<緩衝區大小>  預設置爲8196,剛好等於ring buffer的大小。 
-n  設置記錄信息的層級。


實用工具dmesg顯示內核環緩衝區(kernel-ring buffer),內核將各種消息存放在這裏。在系統引導時,內核將與硬件和模塊初始化相關的信息填到這個緩衝區中。內核環緩衝區中的消息對於診斷系統問題通常非常有用。在運行dmesg時,它顯示大量信息。通常通過less或grep使用管道查看dmesg的輸出,這樣可以更容易找到待查信息。


例如,如果發現硬盤性能低下,可以使用dmesg來檢查它們是否運行在DMA模式:

$ dmesg | grep DMA
...
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
...

上面幾行可以說明每個IDE設備正在什麼模式下運行。如果以太網連接出現問題,那麼可以在dmesg日誌中搜索eth:

$ dmesg | grep eth
forcedeth.c: Reverse Engineered nForce 
ethernet driver. Version 0.49.
eth0: forcedeth.c: subsystem: 0147b:1c00 
bound to 0000:00:04.0
eth0: no IPv6 routers present

如果一切正常,那麼dmesg顯示每個網卡的硬件配置信息。如果某項系統服務未能得到正確的配置,dmesg日誌很快就填滿錯誤消息,這是診斷故障的良好起點。

應用:
kernel中寫日誌
printk(KERN_INFO "kd_msg message.\n");

查看來自內核輸出(最新5行)        
$ dmesg | tail -5

修改程序so搜索路徑
export LD_LIBRARY_PATH=/root/xxx/lib

rm `find . -name *.dat`
find . -name *.dat -print -exec rm {} \;
find / -name  httpd.conf [-print]

//從文件內容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
從文件內容查找與正則表達式匹配的行:
$ grep –e “正則表達式” 文件名
查找時不區分大小寫:
$ grep –i "被查找的字符串" 文件名
查找匹配的行數:
$ grep -c "被查找的字符串" 文件名
從文件內容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名


從根目錄開始查找所有擴展名爲.log的文本文件,並找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"


執行jar包

java -jar xxx.jar "arg1" "arg2"


ld命令


掛載內存

mount tmpfs /home/jichl/xxx -t tmpfs -o size=1024M


查看端口使用情況
netstat -ntlpa


修改用戶xxx密碼
passwd xxx


ps命令
    ps axf
  前面介紹的兩個命令都是用於查看當前系統用戶的情況,下面就來看看進程的情況,這也是本章的主題.要對進程進行監測和控制, 首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令.使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是可以通過執行該命令得到的.

  ps命令最常用的還是用於監控後臺進程的工作情況,因爲後臺進程是不和屏幕鍵盤這些標準輸入/輸出設備進行通信的,所以如果需要檢測其情況,便可以使用ps命令了.

  ps [選項]

  下面對命令選項進行說明∶

  -e顯示所有進程.

  -f全格式.

  -h不顯示標題.

  -l長格式.

  -w寬輸出.

  a顯示終端上的所有進程,包括其他用戶的進程.

  r只顯示正在運行的進程.

  x顯示沒有控制終端的進程.

  O[+|-] k1 [,[+|-] k2 [,…]] 根據SHORT KEYS、k1、k2中快捷鍵指定的多級排序順序顯示進程列表.對於ps的不同格式都存在着默認的順序指定.這些默認順序可以被用戶的指定所覆蓋.其中“+”字符是可選的,“-”字符是倒轉指 定鍵的方向.

  最常用的三個參數是u、a、x.


查看線程

ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu


rpm命令.

rpm -ivh xxxx.i386.rpm

//安裝所有依賴文件包
rpm -ivh --aid xxx.i386.rpm


rpm -qa glibc
1、查詢
     
     #rpm   -q   bash  (查詢系統中bash是否安裝)
     #rpm   -qa   (查詢系統中已安裝的所有的rpm包,q,question,查詢;a,                         all)
     #rpm   -qa  |  grep -i  qq   (以qq爲關鍵字查詢) 
     #rpm   -qi  bash   (i,information,查詢系統中bash的詳細信息)
     #rpm   -ql  bash   (l,list 查看系統中已安裝軟件包中所包括的文件列表)
     #rpm   -qf  bash    (查看系統中文件所屬的軟件包)
     #rpm  -qpi  bash-3.0-19.2.i386.rpm  或者
     #rpm  -qpl  bash-3.0-19.2.i386.rpm  (查詢指定rpm包文件中的詳細信息)
------------------------------------------------------------------------
    
     #rpm  -i  linuxqq-1.0-preview2008.i386.rpm  (安裝過程無提示)
     #rpm  -ivh  linuxqq-1.0-preview2008.i386.rpm  (安裝過程有提示)
     #rpm  -Uvh  linuxqq-1.0-preview2008.i386.rpm  (升級、覆蓋安裝,安裝過                    程有提示)
     #rpm   --force -ivh        (強制安裝)
------------------------------------------------------------------------
    
     先查看將要卸載的軟件在系統中的名字:
     #rpm - qa  |  grep  -i  qq
       linuxqq-1.0-Preview2008

     根據系統提示的軟件包名字卸載:
     #rpm  -e  linuxqq-1.0-previw2008     (不能添加後綴.rpm) 

scp命令.

在Linux下遠程使用scp拷貝文件
SSH提供了一些明令和shell用來登錄遠程服務器。在默認情況下它不允許你拷貝文件,但是還是提供了一個"scp"命令。

假定你想把本地計算機當前目錄下的一個名爲"dumb"的文件拷貝到遠程服務器www.35.com上你的家目錄下。而且你在遠程服務器上的帳號名爲"jichl"。可以用這個命令:

scp dumb [email protected]:.

把文件拷貝回來用這個命令:

scp [email protected]:dumb .

"scp"調用SSH進行登錄,然後拷貝文件,最後調用SSH關閉這個連接。

如果在你的"~/.ssh/config"文件中已經爲www.35.com做了這樣的配置:

Host *fbc
HostName www.35.com
User jichl
ForwardAgent yes

那麼你就可以用"fbc"來代替"[email protected]",命令就簡化爲"scp dumb fbc:."。

"scp"假定你在遠程主機上的家目錄爲你的工作目錄。如果你使用相對目錄就要相對於家目錄。

用"scp"命令的"-r"參數允許遞歸地拷貝目錄。"scp"也可以在兩個不同的遠程主機之間拷貝文件。

關於SSH的詳細信息,可以參考http://www.linuxaid.com.cn/engineer/brimmer/html/ssh.htm

scp user@host:/path/to/files    local_file_name

拷貝到遠程
scp local_file_name user@host:/path/to/files
拷貝目錄到遠程
scp -r local_file_name user@host:/path/to/files


跟蹤程序的系統調用

strace -p pid


tail -f /xxx/xxx.log

tail -n 100 /xxx/xxx.log


tar 命令.

1.將當前目錄下所有.txt文件打包並壓縮歸檔到文件this.tar.gz,我們可以使用
tar czvf this.tar.gz ./*.txt

2.將當前目錄下的this.tar.gz中的文件解壓到當前目錄我們可以使用
tar xzvf this.tar.gz ./

tar -cvf /home/www/p_w_picpaths.tar /home/www/p_w_picpaths 僅打包,不壓縮
tar -zcvf /home/www/p_w_picpaths.tar.gz /home/www/p_w_picpaths 打包後,以gzip壓縮 
tar xvf filename.tar -C /specific dir


查看linux版本.

幾種查看linux版本信息的方法
1. uname -a 
2. cat /proc/version 
3. cat /etc/issue 
4. lsb_release -a


vncserver.

[root@linux root]# vncserver 

  You will require a password to access your desktops.

  Password: ---第一次輸入密碼

  Verify: ---第二次輸入

  New ‘X’ desktop is linux:1 -- 注意Linux下是登錄VNC還要加這個number(例,在viewer端輸入 IP:1)

更改密碼 vncpasswd

修改/root/.vnc/xstartup文件

#twm &
gnome-session &

關閉

killall Xvnc

vncserver -kill :x (X爲編號)

vncserver -geometry 1400x840

vncconfig &


安裝rz sz

yum install lrzsz


壓縮文件使用較少磁盤空間,並且比未壓縮的大文件下載速度要快。在 Red Hat Linux 中,你可以使用的文件壓縮工具有:gzip、bzip2、和 zip。

推薦你使用 bzip2 壓縮工具,因爲它提供了最大限度的壓縮,並且可在多數類似 UNIX 的操作系統上找到。gzip 壓縮工具也可以在類似 UNIX 的操作系統上找到。如果你需要在 Linux 和其它操作系統如 MS Windows 間傳輸文件,你應該使用 zip,因爲該命令與 Windows 上的壓縮工具最兼容。

壓縮工具     文件擴展名     解壓工具
gzip     .gz     gunzip
bzip2     .bz2     bunzip2
zip     .zip     unzip

表 14-1. 壓縮工具


按照約定俗成,用 gzip 來壓縮的文件的擴展名是 .gz;用 bzip2 來壓縮的文件的擴展名是 .bz2;用 zip 壓縮的文件的擴展名是 .zip。

用 gzip 壓縮的文件可以使用 gunzip 來解壓;用 bzip2 壓縮的文件可以使用 bunzip2 來解壓;用 zip 壓縮的文件可以使用 unzip 來解壓。
bzip2 和 bunzip2

要使用 bzip2 來壓縮文件,在 shell 提示下鍵入以下命令:

bzip2 filename

文件即會被壓縮並被保存爲 filename.bz2。

要擴展壓縮的文件,鍵入以下命令:

bunzip2 filename.bz2

filename.bz2 文件會被刪除,而繼之以 filename。

你可以使用 bzip2 命令同時處理多個文件和目錄,方法是將它們逐一列出,並用空格間隔:

bzip2 filename.bz2 file1 file2 file3 /usr/work/school 

上面的命令把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然後放入 filename.bz2 文件中。

gzip 和 gunzip

要使用 gzip 來壓縮文件,在 shell 提示下鍵入以下命令:

gzip filename

文件即會被壓縮,並被保存爲 filename.gz。

要擴展壓縮的文件,鍵入以下命令:

gunzip filename.gz

filename.gz 會被刪除,而繼之以 filename。

你可以使用 gzip 命令同時處理多個文件和目錄,方法是將它們逐一列出,並用空格間隔:

gzip -r filename.gz file1 file2 file3 /usr/work/school 

上面的命令把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然後放入 filename.gz 文件中。

zip 和 unzip

要使用 zip 來壓縮文件,在 shell 提示下鍵入下面的命令:

zip -r filename.zip filesdir

在這個例子裏,filename.zip 代表你創建的文件,filesdir 代表你想放置新 zip 文件的目錄。-r 選項指定你想遞歸地(recursively)包括所有包括在 filesdir 目錄中的文件。

要抽取 zip 文件的內容,鍵入以下命令:

unzip filename.zip

你可以使用 zip 命令同時處理多個文件和目錄,方法是將它們逐一列出,並用空格間隔:

zip -r filename.zip file1 file2 file3 /usr/work/school 

上面的命令把 file1、file2、 file3、以及 /usr/work/school 目錄的內容(假設這個目錄存在)壓縮起來,然後放入 filename.zip 文件中。

tar 文件是幾個文件和(或)目錄在一個文件中的集合。這是創建備份和歸檔的佳徑。

tar 使用的選項有:

    *

      -c — 創建一個新歸檔。
    *

      -f — 當與 -c 選項一起使用時,創建的 tar 文件使用該選項指定的文件名;當與 -x 選項一起使用時,則解除該選項指定的歸檔。
    *

      -t — 顯示包括在 tar 文件中的文件列表。
    *

      -v — 顯示文件的歸檔進度。
    *

      -x — 從歸檔中抽取文件。
    *

      -z — 使用 gzip 來壓縮 tar 文件。
    *

      -j — 使用 bzip2 來壓縮 tar 文件。

要創建一個 tar 文件,鍵入:

tar -cvf filename.tar directory/file

在以上的例子中,filename.tar 代表你創建的文件,directory/file 代表你想放入歸檔文件內的文件和目錄。

你可以使用 tar 命令同時處理多個文件和目錄,方法是將它們逐一列出,並用空格間隔:

tar -cvf filename.tar /home/mine/work /home/mine/school

上面的命令把 /home/mine 目錄下的 work 和 school 子目錄內的所有文件都放入當前目錄中一個叫做 filename.tar 的新文件裏。

要列出 tar 文件的內容,鍵入:

tar -tvf filename.tar

要抽取 tar 文件的內容,鍵入:

tar -xvf filename.tar

這個命令不會刪除 tar 文件,但是它會把被解除歸檔的內容複製到當前的工作目錄下,並保留歸檔文件所使用的任何目錄結構。譬如,如果這個 tar 文件中包含一個叫做 bar.txt 的文件,而這個文件包含在 foo/ 目錄中,那麼,抽取歸檔文件將會導致在你當前的工作目錄中創建 foo/ 目錄,該目錄中包含 bar.txt 文件。

請記住,tar 默認不壓縮文件。要創建一個使用 tar 和 bzip 來歸檔壓縮的文件,使用 -j 選項:

tar -cjvf filename.tbz file

按照約定俗成,用 bzip2 壓縮的 tar 文件具有 .tbz 擴展名。不過,有時用戶使用 tar.bz2 擴展名來歸檔他們的文件。

以上命令創建了一個歸檔文件,然後將其壓縮爲 filename.tbz 文件。如果你使用 bunzip2 命令爲 filename.tbz 文件解壓,filename.tbz 文件會被刪除,繼之以 filename.tar 文件。

你還可以用一個命令來擴展並解除歸檔 bzip tar 文件:

tar -xjvf filename.tbz

要創建一個用 tar 和 gzip 歸檔並壓縮的文件,使用 -z 選項:

tar -czvf filename.tgz file

按照約定俗成,使用 gzip 來壓縮的 tar 文件具有 .tgz 擴展名。

這個命令創建歸檔文件 filename.tar,然後把它壓縮爲 filename.tgz 文件(文件 filename.tar 不被保留)。如果你使用 gunzip 命令來給 filename.tgz 文件解壓,filename.tgz 文件會被刪除,並被替換爲 filename.tar。

你可以用單個命令來擴展 gzip tar 文件:

tar -xzvf filename.tgz


#linux find 時間段2011-08-01 00:00至2011-10-31-23-59的文件

# touch -t 201108010000 start
# touch -t 201110312359 end
# find . -newer start ! -newer end


shell打印隨機數

for i in {1..300};
do  
    a=$RANDOM
    b=10000000
    printf "%.20f\n" `echo "$a/$b"|bc -l`
done;


#以下是在機器Client的root和機器Server的root之間建立安全信任關係

#1.在機器Client上root用戶執行ssh-keygen命令,生成建立安全信任關係的證書。
[root@Client root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):            <-- 直接輸入回車
Enter same passphrase again:                           <-- 直接輸入回車
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1croot@Client
#注意:在程序提示輸入passphrase時直接輸入回車,表示無證書密碼。上述命令將生成私鑰證書id_rsa和公鑰證書id_rsa.pub,存放在用戶home目錄的.ssh子目錄中。

#2.將公鑰證書id_rsa.pub複製到機器Server的root家目錄的.ssh子目錄中,同時將文件名更換爲authorized_keys。
#注意:把兩機器的id_rsa.pub中的數據都拷貝到A的/root/.ssh/authorized_keys文件中,一行表示一條;

#3.結果
[root@Client root]# scp -p text [email protected]:/root/
text                 100% |**************************|    19       00:00



sort 和 uniq


shell多線程

sh 1.sh &
sh 2.sh &

wait

do xxx


shell四則運算

1:使用 expr 外部程式
    #注意:符號(+、-、*、/)與數字之間要有空格
2:使用 $(( )),例如r=$(( 4 + 5 ))
    #注意:=號前後要沒有空格
3:使用 $[ ],例如r=$[ 4 + 5]
    #注意:=號前後要沒有空格
4:使用let命令,例如r=$[x + y]
    #注意:符號(+、-、*、/)與數字之間要沒有空格,=號前後要沒有空格

加法
r=`expr 4 + 5` 
r=$(( 4 + 5 ))
r=$[ 4 + 5 ]
let r=4+5

減法
r=`expr 40 - 5`
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
let r=40-5

乘法
r=`expr 4 \* 5`
r=$(( 4 * 5 ))
r=$[ 4 * 5 ]
let r=4*5

除法
r=`expr 40 / 5`
r=$(( 40 / 5 ))
r=$[ 40 / 5 ]
let r=40/5

求餘數
r=$[ 100 % 43 ]
let r=100%43

乘冪
如2的3次方
r=$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
let r=2**3


bc -l 20小數精度
a=0.2; b=0.2; printf "%.2f\n" `echo "$a+$b" | bc` 

cat | openssl base64 -d |gunzip 

cat | openssl base64 -d | iconv -f gbk -t utf-8


openssl base64 -in xxx


tmpwatch 1 /tmp/


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