0)序言 日有一知,當有一錄,自09年來,工作所需,接觸開源平臺,對Linux常有涉獵,其間問題,記錄在案,雖為敝帚,不敢自珍,所記條目,并未嚴格整理,但愿于后來者有所裨益. 1)常用 查看某個命令的路徑 which:查看某個命令的路徑,該命令在PATH變量配置的路徑中尋找命令,并給出第一個查詢結果返回 查看用戶信息的幾種方法 finger id groups 刪除目錄 果目錄為空,可以用 rmdir 刪除 如果目錄不為空,可以用rm -rf 刪除 創(chuàng)建符號鏈接(快捷方式) ln -s {target-filename} {symbolic-filename} For example create softlink for /webroot/home/httpd/test.com/index.php as /home/vivek/index.php, enter the following command: ln -s /webroot/home/httpd/test.com/index.php /home/vivek/index.php ls -l 查看系統(tǒng)啟動日志 dmesg | more grep 忽略大小寫 grep -i 隨機產(chǎn)生網(wǎng)卡地址 #!/bin/sh exec 2>/dev/null dd if=/dev/urandom bs=1 count=6 | od -t x1 | sed '2d;s/^0\+ //;s/ /:/g' 添加path變量的三種方法 1)修改/etc/profile文件,此修改對全局用戶有效 2)修改.bashrc文件,可以精確到用戶(只對當前用戶有效) 3)直接在shell下加入變量,shell退出則失效 按照時間順序列出文件 ls –t 按照時間逆序列出文件(新文件在后) ls –rt (r 代表reverse意,可以逆轉所有排序) ls在當前目錄下查找某個文件,但不列出子文件夾中的內(nèi)容 ls –d "pattern" 拷貝一個目錄下的所有文件 cp -R 修改fstab后如何不重啟加載所有文件系統(tǒng) mount –a 移動文件夾 mv src dest 查看linux版本 1. 查看內(nèi)核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 2) [root@q1test01 ~]# uname -a Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux 3) [root@q1test01 ~]# uname -r 2.6.9-22.ELsmp 2. 查看linux版本: 1) 登錄到服務器執(zhí)行 lsb_release -a ,即可列出所有版本信息,例如: [root@3.5.5Biz-46 ~]# [root@q1test01 ~]# lsb_release -a LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0- ia32:graphics-3.0-noarch Distributor ID: RedHatEnterpriseAS Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 2) Release: 4 Codename: NahantUpdate2 注:這個命令適用于所有的linux,包括Redhat、SuSE、Debian等發(fā)行版。 2) 登錄到linux執(zhí)行cat /etc/issue,例如如下: [root@q1test01 ~]# cat /etc/issue Red Hat Enterprise Linux AS release 4 (Nahant Update 2) Kernel \r on an \m 3) 登錄到linux執(zhí)行cat /etc/redhat-release ,例如如下: [root@q1test01 ~]# cat /etc/redhat-release Red Hat Enterprise Linux AS release 4 (Nahant Update 2) 注:這種方式下可以直接看到具體的版本號,比如 AS4 Update 1 4)登錄到linux執(zhí)行rpm -q redhat-release ,例如如下: [root@q1test01 ~]# rpm -q redhat-release redhat-release-4AS-3 注:這種方式下可看到一個所謂的release號,比如上邊的例子是3 這個release號和實際的版本之間存在一定的對應關系,如下: redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3 redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4 redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4 redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1 redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2 redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3 redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4 另:第3)、4)兩種方法只對Redhat Linux有效。 2)啟動相關 如何自動mount 添加開機啟動后自動mount的文件系統(tǒng),可以通過在fstab中添加項完成,比如添加一個windows的共享連接 修改fstab后如何不重啟加載所有文件系統(tǒng) mount –a 添加一個需要在啟動時運行的服務: 方法一:在rc3.d中創(chuàng)建一個link 方法二:在rc.local中加入啟動項 init.d,rc[X].d 目錄關系 在這個目錄下的檔案都是連結檔,均指向到 /etc/rc.d/init.d 這個目錄下,而這個 /etc/rc.d/init.d 目錄則是以 Linux 的 rpm 安裝方法時,設定一些服務的啟動目錄。舉個例子來說,如果你要重新啟動 sendmail 的話,而且你的 sendmail 是以 rpm 來安裝的,那么下達 /etc/rc.d/init.d/sendmail restart 就可以直接啟動 sendmail 啰!所以你即可知道 /etc/rc.d/init.d 里面檔案的主要功能!因此,當你的 run-level 內(nèi)的 scripts 要啟動哪寫服務呢,呵呵!就將檔案連結到該 init.d 目錄下的檔案并加以啟動即可啰!也就是說『當你以 文字模式 ( run-level=3 ) 啟動 Linux 時,你的系統(tǒng)在經(jīng)過 BIOS、 MBR、 Kernel、 init、/etc/rc.d/rc.sysinit 之后,就會進入 /etc/rc.d/rc3.d 來啟動一些服務』啰!不過,需要注意的是,在 rc3.d (或其它目錄下 rc0.d ~ rc6.d )目錄中 S 開頭的檔案為執(zhí)行該服務, K 為開頭的檔案則是殺掉該服務的意思。那么那些數(shù)字代表的意義為何?那就是啟動的順序啦!例如S12syslog 會比S90crond 更早被執(zhí)行呢!那么為什么要有這些順序呢?這是有原因的!例如您的主機有要啟動 WWW 好了,那么您的網(wǎng)絡設定應該要先啟動才對吧!所以啰,如果 WWW 先啟動,才驅動網(wǎng)絡,那么 WWW 自然就一定起不來啦!所以各項服務的啟動順序也是相當重要的!目前 Mandrake 當中,可以使用 chkconfig 來設定開機要啟動的服務選項呢! 3)性能相關 查看內(nèi)存信息 cat /proc/meminfo 查看內(nèi)存信息 查看系統(tǒng)磁盤的用量 df 命令可以 df –h ,使得展現(xiàn)結果易于人閱讀帶單位,比如將15176390,寫為15G 4)目錄權限 -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo drwxr-xr-x 2 root root 48 9月 6 13:06 vmware 當執(zhí)行l(wèi)s -l 或 ls -al 命令后顯示的結果中,最前面的第2~10個字符是用來表示權限。第一個字符一般用來區(qū)分文件和目錄: d:表示是個目錄,事實上在ext2fs中,目錄是個特別的文件。 -:表示這是個普通的文件。 l: 表示這是個符號鏈接文件,實際上他指向另一個文件。 b、c:分別表示區(qū)塊設備和其他的外圍設備,是特別類型的文件。 s、p:這些文件關系到系統(tǒng)的 數(shù)據(jù)結構 和管道,通常非常少見到。 下面周詳介紹一下權限的種類和設置權限的方法。 二、一般權限 第2~10個字符當中的每3個為一組,左邊三個字符表示所有者權限,中間3個字符表示和所有者同一組的用戶的權限,右邊3個字符是其他用戶的權限。這三個一組共9個字符,代表的意義如下: r(Read,讀取):對文件而言,具有讀取文件內(nèi)容的權限;對目錄來說,具有 瀏覽 目 錄的權限。 w(Write,寫入):對文件而言,具有新增、修改文件內(nèi)容的權限;對目錄來說,具有刪除、移動目錄內(nèi)文件的權限。 x(eXecute,執(zhí)行):對文件而言,具有執(zhí)行文件的權限;對目錄了來說該用戶具有進入目錄的權限。 -:表示不具有該項權限。 5)軟件安裝 tar.gz的通用安裝步驟 tar –xzf:解壓縮 ./configuration:生成make文件,一般通過prefix參數(shù)來配置目標路徑 make:編譯 make install:安裝 查找用rpm安裝的***程序集路徑 rpm –qa | grep *** 查看是否安裝某軟件包 rpm –q 包名稱 查找用rpm安裝的***程序集路徑 rpm –qa | grep *** 使用apt安裝 sudo apt install apache2 mysql5 相關介紹 The Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants.[2] APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from binary files or by compiling source code.[2] 6)網(wǎng)絡相關 查看本機服務端口 netstat –tln 查看某端口對應的程序 lsof –i: 80,或者netstat –anp | grep 端口 關閉防火墻 /etc/rc.d/init.d/iptables stop 打開防火墻 /etc/rc.d/init.d/iptables start 查看當iptable前配置 :iptables –L 抓包與包分析 :tcpdump –i eth1 host XXX.XXX.XXX.XXX and port 80 其他命令如下 tcpdump 的抓包保存到文件的命令參數(shù)是-w xxx.cap 抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap 抓 192.168.1.123的包 tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 抓192.168.1.123的80端口的包 tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap 抓192.168.1.123的icmp的包 tcpdump -i eth1 host 192.168.1.123 and icmp -w /tmp/xxx.cap 抓192.168.1.123的80端口和110和25以外的其他端口的包 tcpdump -i eth1 host 192.168.1.123 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap 抓vlan 1的包 tcpdump -i eth1 port 80 and vlan 1 -w /tmp/xxx.cap 抓pppoe的密碼 tcpdump -i eth1 pppoes -w /tmp/xxx.cap 以100m大小分割保存文件, 超過100m另開一個文件 -C 100m 抓10000個包后退出 -c 10000 后臺抓包, 控制臺退出也不會影響: nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap & 抓下來的文件可以直接用ethereal 或者wireshark打開。 wireshark就是新版的ethereal 在Linux的系統(tǒng)下如何才能修改IP信息 以前總是用ifconfig修改,重啟后總是得重做。如果修改配置文件,就不用那么麻煩了~ A、修改ip地址 即時生效: # ifconfig eth0 192.168.0.20 netmask 255.255.255.0 啟動生效: vi /etc/sysconfig/network-scripts/ifcfg-eth0 B、修改default gateway 即時生效: # route add default gw 192.168.0.254 啟動生效: vi /etc/sysconfig/network-scripts/ifcfg-eth0 C、修改dns 修改/etc/resolv.conf 修改后可即時生效,啟動同樣有效 D、修改host name 即時生效: # hostname fc2 啟動生效: 修改/etc/sysconfig/network 新啟動網(wǎng)絡配置 /etc/init.d/network restart 注意:修改機器名后,一般需要修改hosts(/etc/hosts)文件,添加機器名對應的ip 前提: Redhat 系統(tǒng) ip, 掩碼: 編輯 /etc/sysconfig/network-script/ifcfg-eth0 IPADDR=192.168.0.1 NETMASK=255.255.255.0 網(wǎng)關: 編輯 /etc/sysconfig/network NETWORKING=yes HOSTNAME=xx GATEWAY=192.168.0.100 DNS: 編輯 /etc/resolv.conf NAMESERVER=202.96.209.5 注意:上述IP地址都要改成與你的網(wǎng)絡配置相對應的IP地址。 7)VI vim:undo和redo :u(撤銷操作數(shù)) Ctrl+R vi查找: 命令狀態(tài)輸入/pattern2search,繼續(xù)查找直接按n vi粘貼:p vi剪切:[number]dd或者d[number]d,,number表示要剪切幾行 vi拷貝:[number]yy,number是行數(shù) 移動到段尾首尾{} Shift+g移動到文檔末尾 d l 刪除當前字符(與x命令功能相同) d 0 刪除到某一行的開始位置 d ^ 刪除到某一行的第一個字符位置(不包括空格或TA B字符) d w 刪除到某個單詞的結尾位置 d 3 w 刪除到第三個單詞的結尾位置 d b 刪除到某個單詞的開始位置 d W 刪除到某個以空格作為分隔符的單詞的結尾位置 d B 刪除到某個以空格作為分隔符的單詞的開始位置 8)常用目錄作用 /bin 存放使用者最長用的命令,如:cp、ls、cat,等等。 /boot 啟動linux時使用的一些核心文件。 /dev 是device(設備)的縮寫,這個目錄下是所有l(wèi)inux的外圍設備。 D:\document\Chat\MyIM\MyIM\bin\Release /etc 這個目錄用來存放系統(tǒng)管理所需要的配置文件和子目錄。 /home 用戶的主目錄,比如說有個用戶叫wang,那他的目錄就是/home/wang也可以用~wang來表示。 /lib 這個目錄是存放著系統(tǒng)最基本的動態(tài)連接庫,幾乎所有的應用程序都須用這些共享庫。 /lost+found 這個目錄平時是空的,當系統(tǒng)不正常關機后,這里就是一些無家可歸文件的避難所。 /mnt 這個目錄是空的,系統(tǒng)提供這個目錄是讓用戶臨時掛接別的文件系統(tǒng)。 /proc 這個目錄是一個虛擬目錄,它是系統(tǒng)內(nèi)存映射,我們可以直接通過訪問這個目錄來獲取系統(tǒng)信息。也就是說,這個目錄的內(nèi)容不在硬盤上而是在內(nèi)存中。 /root 系統(tǒng)管理員(root)的主目錄,作為系統(tǒng)的擁有者的特權。 /sbin s就是super user的意義,也就是說這里存放的是系統(tǒng)管理員使用的管理程序。 /tmp 這個目錄是存放一些臨時文件的地方。 /usr 我們用到的應用程序的文件幾乎都存放這個目錄下:/usr/X11R6存放X_Window的目錄;/usr/bin存放著許多應用程序;/usr /sbin給超級用戶使用的一些管理程序就放在這個里面;/usr/include開發(fā)和編譯應用程序所需的頭文件;/usr/lib存放一些常用的動態(tài)連接共享庫和靜態(tài)歸檔案庫;/usr/local這是提供給一般用戶的/usr目錄,在這里安裝軟件最合適。/usr/man存放幫助文檔。/usr /src開放的源代碼就存在這個目錄下。 /var 這個目錄存放那些不斷擴充的東西,為了保持usr的相對穩(wěn)定,那些才、經(jīng)常被修改的目錄可以放在這個目錄下,如/var/log日志文件。 9)其他 關于輸入輸出">" "<"的意義 cat x y 1> hold 2>&1 結果就是將標準+錯誤輸出到hold; cat x y 2>&1 1> hold 則是將錯誤輸出重定向到標準輸出,而將標準定向到hold。所以錯誤輸出不會進入hold,因為被定向到標準輸出。 賦值關系 (1) 1 = hold , 2 += 1; (2) 2 += 1 , 1 = hold。 Shell腳本相關 shift:將命令行變量列表的第一個變量刪除,第二個變量變?yōu)榈谝晃?可理解為變量列表頭指針移動一位 daemon 語句 和& 符號可以將程序變?yōu)楹笈_輸出 10)虛擬機安裝Linux的一些問題 虛擬機安裝花屏調整分辨率 VitualPC有時安裝Linux后,進入圖形界面會產(chǎn)生花屏,此時需要跳轉到命令行模式,調整Xwin的參數(shù),方法如下 啟動時,Linux會在加載各啟動項前,提示通過鍵入'I'是否進入交互加載模式(interactive)模式,此時鍵入I,進入交互模式,逐一手動允許系統(tǒng)項,禁止系統(tǒng)啟動xwin 進入命令行模式后,進入/etc/X11/目錄,修改X11配置文件中的分辨率,色深等,修改完成后重新啟動即可 Linux新版本??內(nèi)核在裝入VirtualPC虛擬機時會出現(xiàn)鼠標不能捕獲的問題,可以通過修改grub.conf中內(nèi)核參數(shù)來修正 定位到kernel 在其行末尾添加 i8042.noloop kernel /vmiluz******* ro root=LABEL=/ *** i8042.noloop Windows 2008遠程桌面,消除只允許一個用戶登錄限制 http://vanderbiest.org/blog/2010 ... in-windows-2008-r2/ 12)CollnetSVN 1.1.0 x86 Linux 安裝 下載CollnetSVN文件 cp 到安裝目錄 切換用戶到一個普通用戶su somebody(一定不能是root,如果實在沒有用戶,可以用adduser 添加一個,再用passwd username 去修改這個用戶的密碼) tar –zxf 解壓縮 用剛才這個普通用戶的身份運行csvn/bin/csvn start 以及 csvn/bin/csvn-httpd start(一定不能用root) 可以將csvn-httpd添加到啟動項,方法是ln –s /csvn/bin/csvn-httpd S99csvn_httpd,重啟系統(tǒng)就能看到啟動時加載此服務 11)httpd apache配置轉發(fā) ProxyPreserveHost On ServerAdmin a@a.com ServerName search.cd-host.net DefaultLanguage zh-CN AddDefaultCharset utf-8 ProxyPass / http://www.missworld.cn:8888/ ProxyPassReverse / http://www.missworld.cn:8888/ 啟動light httpd自帶的fastcgi:spawn /usr/local/webserver/php/bin/spawn-fcgi -a 127.0.0.1 -p 10080 -C 64 -u www -f /usr/local/webserver/php/bin/php-cgi 原文地址:http://blog.csdn.net/yizhu2000/article/details/7068842 |