0)序言 日有一知,當(dāng)有一錄,自09年來,工作所需,接觸開源平臺,對Linux常有涉獵,其間問題,記錄在案,雖為敝帚,不敢自珍,所記條目,并未嚴(yán)格整理,但愿于后來者有所裨益. 1)常用 查看某個(gè)命令的路徑 which:查看某個(gè)命令的路徑,該命令在PATH變量配置的路徑中尋找命令,并給出第一個(gè)查詢結(jié)果返回 查看用戶信息的幾種方法 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)啟動(dòng)日志 dmesg | more grep 忽略大小寫 grep -i 隨機(jī)產(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文件,可以精確到用戶(只對當(dāng)前用戶有效) 3)直接在shell下加入變量,shell退出則失效 按照時(shí)間順序列出文件 ls –t 按照時(shí)間逆序列出文件(新文件在后) ls –rt (r 代表reverse意,可以逆轉(zhuǎn)所有排序) ls在當(dāng)前目錄下查找某個(gè)文件,但不列出子文件夾中的內(nèi)容 ls –d "pattern" 拷貝一個(gè)目錄下的所有文件 cp -R 修改fstab后如何不重啟加載所有文件系統(tǒng) mount –a 移動(dòng)文件夾 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) 登錄到服務(wù)器執(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 注:這個(gè)命令適用于所有的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 注:這種方式下可看到一個(gè)所謂的release號,比如上邊的例子是3 這個(gè)release號和實(shí)際的版本之間存在一定的對應(yīng)關(guān)系,如下: 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)啟動(dòng)相關(guān) 如何自動(dòng)mount 添加開機(jī)啟動(dòng)后自動(dòng)mount的文件系統(tǒng),可以通過在fstab中添加項(xiàng)完成,比如添加一個(gè)windows的共享連接 修改fstab后如何不重啟加載所有文件系統(tǒng) mount –a 添加一個(gè)需要在啟動(dòng)時(shí)運(yùn)行的服務(wù): 方法一:在rc3.d中創(chuàng)建一個(gè)link 方法二:在rc.local中加入啟動(dòng)項(xiàng) init.d,rc[X].d 目錄關(guān)系 在這個(gè)目錄下的檔案都是連結(jié)檔,均指向到 /etc/rc.d/init.d 這個(gè)目錄下,而這個(gè) /etc/rc.d/init.d 目錄則是以 Linux 的 rpm 安裝方法時(shí),設(shè)定一些服務(wù)的啟動(dòng)目錄。舉個(gè)例子來說,如果你要重新啟動(dòng) sendmail 的話,而且你的 sendmail 是以 rpm 來安裝的,那么下達(dá) /etc/rc.d/init.d/sendmail restart 就可以直接啟動(dòng) sendmail 啰!所以你即可知道 /etc/rc.d/init.d 里面檔案的主要功能!因此,當(dāng)你的 run-level 內(nèi)的 scripts 要啟動(dòng)哪寫服務(wù)呢,呵呵!就將檔案連結(jié)到該 init.d 目錄下的檔案并加以啟動(dòng)即可啰!也就是說『當(dāng)你以 文字模式 ( run-level=3 ) 啟動(dòng) Linux 時(shí),你的系統(tǒng)在經(jīng)過 BIOS、 MBR、 Kernel、 init、/etc/rc.d/rc.sysinit 之后,就會(huì)進(jìn)入 /etc/rc.d/rc3.d 來啟動(dòng)一些服務(wù)』啰!不過,需要注意的是,在 rc3.d (或其它目錄下 rc0.d ~ rc6.d )目錄中 S 開頭的檔案為執(zhí)行該服務(wù), K 為開頭的檔案則是殺掉該服務(wù)的意思。那么那些數(shù)字代表的意義為何?那就是啟動(dòng)的順序啦!例如S12syslog 會(huì)比S90crond 更早被執(zhí)行呢!那么為什么要有這些順序呢?這是有原因的!例如您的主機(jī)有要啟動(dòng) WWW 好了,那么您的網(wǎng)絡(luò)設(shè)定應(yīng)該要先啟動(dòng)才對吧!所以啰,如果 WWW 先啟動(dòng),才驅(qū)動(dòng)網(wǎng)絡(luò),那么 WWW 自然就一定起不來啦!所以各項(xiàng)服務(wù)的啟動(dòng)順序也是相當(dāng)重要的!目前 Mandrake 當(dāng)中,可以使用 chkconfig 來設(shè)定開機(jī)要啟動(dòng)的服務(wù)選項(xiàng)呢! 3)性能相關(guān) 查看內(nèi)存信息 cat /proc/meminfo 查看內(nèi)存信息 查看系統(tǒng)磁盤的用量 df 命令可以 df –h ,使得展現(xiàn)結(jié)果易于人閱讀帶單位,比如將15176390,寫為15G 4)目錄權(quán)限 -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 當(dāng)執(zhí)行l(wèi)s -l 或 ls -al 命令后顯示的結(jié)果中,最前面的第2~10個(gè)字符是用來表示權(quán)限。第一個(gè)字符一般用來區(qū)分文件和目錄: d:表示是個(gè)目錄,事實(shí)上在ext2fs中,目錄是個(gè)特別的文件。 -:表示這是個(gè)普通的文件。 l: 表示這是個(gè)符號鏈接文件,實(shí)際上他指向另一個(gè)文件。 b、c:分別表示區(qū)塊設(shè)備和其他的外圍設(shè)備,是特別類型的文件。 s、p:這些文件關(guān)系到系統(tǒng)的 數(shù)據(jù)結(jié)構(gòu) 和管道,通常非常少見到。 下面周詳介紹一下權(quán)限的種類和設(shè)置權(quán)限的方法。 二、一般權(quán)限 第2~10個(gè)字符當(dāng)中的每3個(gè)為一組,左邊三個(gè)字符表示所有者權(quán)限,中間3個(gè)字符表示和所有者同一組的用戶的權(quán)限,右邊3個(gè)字符是其他用戶的權(quán)限。這三個(gè)一組共9個(gè)字符,代表的意義如下: r(Read,讀取):對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有 瀏覽 目 錄的權(quán)限。 w(Write,寫入):對文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對目錄來說,具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。 x(eXecute,執(zhí)行):對文件而言,具有執(zhí)行文件的權(quán)限;對目錄了來說該用戶具有進(jìn)入目錄的權(quán)限。 -:表示不具有該項(xiàng)權(quán)限。 5)軟件安裝 tar.gz的通用安裝步驟 tar –xzf:解壓縮 ./configuration:生成make文件,一般通過prefix參數(shù)來配置目標(biāo)路徑 make:編譯 make install:安裝 查找用rpm安裝的***程序集路徑 rpm –qa | grep *** 查看是否安裝某軟件包 rpm –q 包名稱 查找用rpm安裝的***程序集路徑 rpm –qa | grep *** 使用apt安裝 sudo apt install apache2 mysql5 相關(guān)介紹 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)絡(luò)相關(guān) 查看本機(jī)服務(wù)端口 netstat –tln 查看某端口對應(yīng)的程序 lsof –i: 80,或者netstat –anp | grep 端口 關(guān)閉防火墻 /etc/rc.d/init.d/iptables stop 打開防火墻 /etc/rc.d/init.d/iptables start 查看當(dāng)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另開一個(gè)文件 -C 100m 抓10000個(gè)包后退出 -c 10000 后臺抓包, 控制臺退出也不會(huì)影響: nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap & 抓下來的文件可以直接用ethereal 或者wireshark打開。 wireshark就是新版的ethereal 在Linux的系統(tǒng)下如何才能修改IP信息 以前總是用ifconfig修改,重啟后總是得重做。如果修改配置文件,就不用那么麻煩了~ A、修改ip地址 即時(shí)生效: # ifconfig eth0 192.168.0.20 netmask 255.255.255.0 啟動(dòng)生效: vi /etc/sysconfig/network-scripts/ifcfg-eth0 B、修改default gateway 即時(shí)生效: # route add default gw 192.168.0.254 啟動(dòng)生效: vi /etc/sysconfig/network-scripts/ifcfg-eth0 C、修改dns 修改/etc/resolv.conf 修改后可即時(shí)生效,啟動(dòng)同樣有效 D、修改host name 即時(shí)生效: # hostname fc2 啟動(dòng)生效: 修改/etc/sysconfig/network 新啟動(dòng)網(wǎng)絡(luò)配置 /etc/init.d/network restart 注意:修改機(jī)器名后,一般需要修改hosts(/etc/hosts)文件,添加機(jī)器名對應(yīng)的ip 前提: Redhat 系統(tǒng) ip, 掩碼: 編輯 /etc/sysconfig/network-script/ifcfg-eth0 IPADDR=192.168.0.1 NETMASK=255.255.255.0 網(wǎng)關(guān): 編輯 /etc/sysconfig/network NETWORKING=yes HOSTNAME=xx GATEWAY=192.168.0.100 DNS: 編輯 /etc/resolv.conf NAMESERVER=202.96.209.5 注意:上述IP地址都要改成與你的網(wǎng)絡(luò)配置相對應(yī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ù) 移動(dòng)到段尾首尾{} Shift+g移動(dòng)到文檔末尾 d l 刪除當(dāng)前字符(與x命令功能相同) d 0 刪除到某一行的開始位置 d ^ 刪除到某一行的第一個(gè)字符位置(不包括空格或TA B字符) d w 刪除到某個(gè)單詞的結(jié)尾位置 d 3 w 刪除到第三個(gè)單詞的結(jié)尾位置 d b 刪除到某個(gè)單詞的開始位置 d W 刪除到某個(gè)以空格作為分隔符的單詞的結(jié)尾位置 d B 刪除到某個(gè)以空格作為分隔符的單詞的開始位置 8)常用目錄作用 /bin 存放使用者最長用的命令,如:cp、ls、cat,等等。 /boot 啟動(dòng)linux時(shí)使用的一些核心文件。 /dev 是device(設(shè)備)的縮寫,這個(gè)目錄下是所有l(wèi)inux的外圍設(shè)備。 D:\document\Chat\MyIM\MyIM\bin\Release /etc 這個(gè)目錄用來存放系統(tǒng)管理所需要的配置文件和子目錄。 /home 用戶的主目錄,比如說有個(gè)用戶叫wang,那他的目錄就是/home/wang也可以用~wang來表示。 /lib 這個(gè)目錄是存放著系統(tǒng)最基本的動(dòng)態(tài)連接庫,幾乎所有的應(yīng)用程序都須用這些共享庫。 /lost+found 這個(gè)目錄平時(shí)是空的,當(dāng)系統(tǒng)不正常關(guān)機(jī)后,這里就是一些無家可歸文件的避難所。 /mnt 這個(gè)目錄是空的,系統(tǒng)提供這個(gè)目錄是讓用戶臨時(shí)掛接別的文件系統(tǒng)。 /proc 這個(gè)目錄是一個(gè)虛擬目錄,它是系統(tǒng)內(nèi)存映射,我們可以直接通過訪問這個(gè)目錄來獲取系統(tǒng)信息。也就是說,這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存中。 /root 系統(tǒng)管理員(root)的主目錄,作為系統(tǒng)的擁有者的特權(quán)。 /sbin s就是super user的意義,也就是說這里存放的是系統(tǒng)管理員使用的管理程序。 /tmp 這個(gè)目錄是存放一些臨時(shí)文件的地方。 /usr 我們用到的應(yīng)用程序的文件幾乎都存放這個(gè)目錄下:/usr/X11R6存放X_Window的目錄;/usr/bin存放著許多應(yīng)用程序;/usr /sbin給超級用戶使用的一些管理程序就放在這個(gè)里面;/usr/include開發(fā)和編譯應(yīng)用程序所需的頭文件;/usr/lib存放一些常用的動(dòng)態(tài)連接共享庫和靜態(tài)歸檔案庫;/usr/local這是提供給一般用戶的/usr目錄,在這里安裝軟件最合適。/usr/man存放幫助文檔。/usr /src開放的源代碼就存在這個(gè)目錄下。 /var 這個(gè)目錄存放那些不斷擴(kuò)充的東西,為了保持usr的相對穩(wěn)定,那些才、經(jīng)常被修改的目錄可以放在這個(gè)目錄下,如/var/log日志文件。 9)其他 關(guān)于輸入輸出">" "<"的意義 cat x y 1> hold 2>&1 結(jié)果就是將標(biāo)準(zhǔn)+錯(cuò)誤輸出到hold; cat x y 2>&1 1> hold 則是將錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出,而將標(biāo)準(zhǔn)定向到hold。所以錯(cuò)誤輸出不會(huì)進(jìn)入hold,因?yàn)楸欢ㄏ虻綐?biāo)準(zhǔn)輸出。 賦值關(guān)系 (1) 1 = hold , 2 += 1; (2) 2 += 1 , 1 = hold。 Shell腳本相關(guān) shift:將命令行變量列表的第一個(gè)變量刪除,第二個(gè)變量變?yōu)榈谝晃?可理解為變量列表頭指針移動(dòng)一位 daemon 語句 和& 符號可以將程序變?yōu)楹笈_輸出 10)虛擬機(jī)安裝Linux的一些問題 虛擬機(jī)安裝花屏調(diào)整分辨率 VitualPC有時(shí)安裝Linux后,進(jìn)入圖形界面會(huì)產(chǎn)生花屏,此時(shí)需要跳轉(zhuǎn)到命令行模式,調(diào)整Xwin的參數(shù),方法如下 啟動(dòng)時(shí),Linux會(huì)在加載各啟動(dòng)項(xiàng)前,提示通過鍵入'I'是否進(jìn)入交互加載模式(interactive)模式,此時(shí)鍵入I,進(jìn)入交互模式,逐一手動(dòng)允許系統(tǒng)項(xiàng),禁止系統(tǒng)啟動(dòng)xwin 進(jìn)入命令行模式后,進(jìn)入/etc/X11/目錄,修改X11配置文件中的分辨率,色深等,修改完成后重新啟動(dòng)即可 Linux新版本??內(nèi)核在裝入VirtualPC虛擬機(jī)時(shí)會(huì)出現(xiàn)鼠標(biāo)不能捕獲的問題,可以通過修改grub.conf中內(nèi)核參數(shù)來修正 定位到kernel 在其行末尾添加 i8042.noloop kernel /vmiluz******* ro root=LABEL=/ *** i8042.noloop Windows 2008遠(yuǎn)程桌面,消除只允許一個(gè)用戶登錄限制 http://vanderbiest.org/blog/2010 ... in-windows-2008-r2/ 12)CollnetSVN 1.1.0 x86 Linux 安裝 下載CollnetSVN文件 cp 到安裝目錄 切換用戶到一個(gè)普通用戶su somebody(一定不能是root,如果實(shí)在沒有用戶,可以用adduser 添加一個(gè),再用passwd username 去修改這個(gè)用戶的密碼) tar –zxf 解壓縮 用剛才這個(gè)普通用戶的身份運(yùn)行csvn/bin/csvn start 以及 csvn/bin/csvn-httpd start(一定不能用root) 可以將csvn-httpd添加到啟動(dòng)項(xiàng),方法是ln –s /csvn/bin/csvn-httpd S99csvn_httpd,重啟系統(tǒng)就能看到啟動(dòng)時(shí)加載此服務(wù) 11)httpd apache配置轉(zhuǎn)發(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/ 啟動(dòng)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 |