Linux日知錄(常用問題筆記)

來源:互聯網
上載者:User
0)序言

日有一知,當有一錄,自09年來,工作所需,接觸開源平台,對Linux常有涉獵,其間問題,記錄在案,雖為敝帚,不敢自珍,所記條目,並未嚴格整理,但願於後來者有所裨益.

 

1)常用查看某個命令的路徑

which:查看某個命令的路徑,該命令在PATH變數配置的路徑中尋找命令,並給出第一個查詢結果返回

 

查看使用者資訊的幾種方法

finger

id

groups

 

刪除目錄

目錄為空白,可以用 rmdir 刪除 如果目錄不為空白,可以用rm -rf 刪除

 

建立符號連結(捷徑)

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

 

查看系統開機記錄

dmesg | more

 

grep

忽略大小寫

grep -i

 

隨機產生網卡地址

#!/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在目前的目錄下尋找某個檔案,但不列出子檔案夾中的內容

ls –d "pattern"

 

拷貝一個目錄下的所有檔案

cp -R

 

修改fstab後如何不重啟載入所有檔案系統

mount –a

 

移動檔案夾

mv src dest

 

查看linux版本

1. 查看核心版本命令:
  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) 登入到伺服器執行 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等發行版。
  2) 登入到linux執行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執行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執行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的檔案系統,可以通過在fstab中添加項完成,比如添加一個windows的共用串連

 

修改fstab後如何不重啟載入所有檔案系統

mount –a

 

添加一個需要在啟動時啟動並執行服務:

方法一:在rc3.d中建立一個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 內的 scripts 要啟動哪寫服務呢,呵呵!就將檔案連結到該 init.d 目錄下的檔案並加以啟動即可囉!也就是說『當你以 文字模式 ( run-level=3 ) 啟動 Linux 時,你的系統在經過 BIOS、 MBR、 Kernel、 init、/etc/rc.d/rc.sysinit 之後,就會進入 /etc/rc.d/rc3.d 來啟動一些服務』囉!不過,需要注意的是,在 rc3.d (或其它目錄下 rc0.d ~ rc6.d )目錄中 S 開頭的檔案為執行該服務, K 為開頭的檔案則是殺掉該服務的意思。那麼那些數字代表的意義為何?那就是啟動的順序啦!例如S12syslog 會比S90crond 更早被執行呢!那麼為什麼要有這些順序呢?這是有原因的!例如您的主機有要啟動 WWW 好了,那麼您的網路設定應該要先啟動才對吧!所以囉,如果 WWW 先啟動,才驅動網路,那麼 WWW 自然就一定起不來啦!所以各項服務的啟動順序也是相當重要的!目前 Mandrake 當中,可以使用 chkconfig 來設定開機要啟動的服務選項呢!

 

3)效能相關查看記憶體資訊

cat /proc/meminfo 查看記憶體資訊

 

查看系統磁碟的用量

df 命令可以

df –h ,使得展現結果易於人閱讀帶單位,比如將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
當執行ls -l 或 ls -al 命令後顯示的結果中,最前面的第2~10個字元是用來表示許可權。第一個字元一般用來區分檔案和目錄:
    d:表示是個目錄,事實上在ext2fs中,目錄是個特別的檔案。
    -:表示這是個普通的檔案。
    l: 表示這是個符號連結檔案,實際上他指向另一個檔案。
    b、c:分別表示區塊裝置和其他的外圍裝置,是特別類型的檔案。
    s、p:這些檔案關係到系統的
資料結構
和管道,通常非常少見到。
下面周詳介紹一下許可權的種類和設定許可權的方法。
二、一般許可權
第2~10個字元當中的每3個為一組,左邊三個字元表示所有者許可權,中間3個字元表示和所有者同一組的使用者的許可權,右邊3個字元是其他使用者的許可權。這三個一組共9個字元,代表的意義如下:
r(Read,讀取):對檔案而言,具有讀取檔案內容的許可權;對目錄來說,具有
瀏覽
目 錄的許可權。
w(Write,寫入):對檔案而言,具有新增、修改檔案內容的許可權;對目錄來說,具有刪除、移動目錄內檔案的許可權。
x(eXecute,執行):對檔案而言,具有執行檔案的許可權;對目錄了來說該使用者具有進入目錄的許可權。
-:表示不具有該項許可權。

 

 

5)軟體安裝tar.gz的通用安裝步驟

tar –xzf:解壓縮

./configuration:產生make檔案,一般通過prefix參數來配置目標路徑

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)網路相關查看本機服務連接埠

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 的抓包儲存到檔案的命令參數是-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的系統下如何才能修改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

新啟動網路設定

/etc/init.d/network restart

注意:修改機器名後,一般需要修改hosts(/etc/hosts)檔案,添加機器名對應的ip

前提: Redhat 系統

ip, 掩碼:

編輯 /etc/sysconfig/network-script/ifcfg-eth0
IPADDR=192.168.0.1
NETMASK=255.255.255.0

網關:

編輯 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=xx
GATEWAY=192.168.0.100
DNS:

編輯 /etc/resolv.conf
NAMESERVER=202.96.209.5
注意:上述IP地址都要改成與你的網路設定相對應的IP地址。

 

7)VI

vim:undo和redo

:u(撤銷運算元)

Ctrl+R

vi尋找:

命令狀態輸入/pattern2search,繼續尋找直接按n

vi粘貼:p

vi剪下:[number]dd或者d[number]d,,number表示要剪下幾行

vi拷貝:[number]yy,number是行數

移動到段尾首尾{}

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(裝置)的縮寫,這個目錄下是所有linux的外圍裝置。 D:\document\Chat\MyIM\MyIM\bin\Release
/etc 這個目錄用來存放系統管理所需要的設定檔和子目錄。
/home 使用者的主目錄,比如說有個使用者叫wang,那他的目錄就是/home/wang也可以用~wang來表示。
/lib 這個目錄是存放著系統最基本的動態串連庫,幾乎所有的應用程式都須用這些共用庫。
/lost+found 這個目錄平時是空的,當系統不順利關機後,這裡就是一些無家可歸檔案的避難所。
/mnt 這個目錄是空的,系統提供這個目錄是讓使用者臨時掛接別的檔案系統。
/proc 這個目錄是一個虛擬目錄,它是系統記憶體映射,我們可以直接通過訪問這個目錄來擷取系統資訊。也就是說,這個目錄的內容不在硬碟上而是在記憶體中。
/root 系統管理員(root)的主目錄,作為系統的擁有者的特權。
/sbin s就是super user的意義,也就是說這裡存放的是系統管理員使用的管理程式。
/tmp 這個目錄是存放一些臨時檔案的地方。
/usr 我們用到的應用程式的檔案幾乎都存放這個目錄下:/usr/X11R6存放X_Window的目錄;/usr/bin存放著許多應用程式;/usr /sbin給超級使用者使用的一些管理程式就放在這個裡面;/usr/include開發和編譯應用程式所需的標頭檔;/usr/lib存放一些常用的動態串連共用庫和靜態歸檔案庫;/usr/local這是提供給一般使用者的/usr目錄,在這裡安裝軟體最合適。/usr/man存放協助文檔。/usr /src開放的原始碼就存在這個目錄下。
/var 這個目錄存放那些不斷擴充的東西,為了保持usr的相對穩定,那些才、經常被修改的目錄可以放在這個目錄下,如/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:將命令列變數列表的第一個變數刪除,第二個變數變為第一位,可理解為變數列表頭指標移動一位

daemon 語句 和& 符號可以將程式變為後台輸出

 

10)虛擬機器安裝Linux的一些問題

虛擬機器安裝花屏調整解析度

VitualPC有時安裝Linux後,進入圖形介面會產生花屏,此時需要跳轉到命令列模式,調整Xwin的參數,方法如下

啟動時,Linux會在載入各啟動項前,提示通過鍵入'I'是否進入互動載入模式(interactive)模式,此時鍵入I,進入互動模式,逐一手動允許系統項,禁止系統啟動xwin

進入命令列模式後,進入/etc/X11/目錄,修改X11設定檔中的解析度,色深等,修改完成後重新啟動即可

 

Linux新版本??核心在裝入VirtualPC虛擬機器時會出現滑鼠不能捕獲的問題,可以通過修改grub.conf中核心參數來修正

定位到kernel

在其行末尾添加 i8042.noloop

kernel /vmiluz******* ro root=LABEL=/ *** i8042.noloop

 

Windows 2008遠端桌面,消除只允許一個使用者登入限制

http://vanderbiest.org/blog/2010/08/16/multiple-rdp-sessions-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,重啟系統就能看到啟動時載入此服務

 

11)httpdapache配置轉寄

<VirtualHost *:80>
    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/
</VirtualHost>

 

啟動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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.