Linux系統下應用知識大薈萃(轉)

ba發表於2007-08-12
Linux系統下應用知識大薈萃(轉)[@more@]問:如何使系統在停止操作一段時間後能自動退出?
答:當root賬戶離開計算機時,出於安全考慮,最好能讓系統在隔一段時間後能自動退出。為了能做到這一點,必須為一個“TMOUT”的Linux變數設定指定時間(單位是秒)。編輯“/etc/profile”檔案,在有“HISTFILESIZE=”字樣的那一行的後面加上“TMOUT=300”,加入的這一行含義是5分鐘。當把這行內容放入“/etc/profile”檔案後,在系統連續5分鐘不用時,系統會自動通知系統中的所有使用者系統將退出。root使用者也可以把該變數設定放在使用者各自的“.bashrc”檔案中,使得系統在指定的一段時間不用後能自動退出。該變數引數被設定在系統中後,必須先退出系統,然後再以root帳戶重新登入後,該項設定才會生效。

問:如何使系統在停止操作一段時間後能自動退出?
答:Red Hat 7.3安裝時選取簡體中文安裝,先複製一個simsun.ttc到/usr/X11R6/lib/X11/font/TrueType, 改名為simsun.ttf;然後進入/usr/X11R6/lib/X11/font/TrueType目錄下,執行ttmkfdir > fonts.dir命令;接著用vi編輯fonts.dir檔案,把有simsun.ttf行修改如下:
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
接著執行cat fonts.dir > fonts.scale命令,修改/etc/X11/XF86config-4, 在Section“Files”加上下面這一行:
FontPath “/usr/X11R6/lib/X11/fonts/TrueType”
最後回到KDE桌面裡, 在“開始”→“選項”→“觀感”→“字型”,將所有字型改為Simsun。

問:Unicon和Zhcon有什麼區別,各有什麼作用?
答:Unicon是核心態的中文平臺,基於修改Linux FrameBuffer和Virtual Console(fbcon)實現的。由於是在系統底層實現的,所以相容性極好,可以直接支援gpm滑鼠。但是相對比較危險,稍有漏洞就可能會危及系統安全。Zhcon是使用者態的中文平臺,有點像UCDOS那類。

問:請問該如何解除安裝tar格式的檔案?
答:通常編譯過程以後都會用make install這條命令將使用者的程式安裝到相應路徑當中。最保險的方法是檢視一下Makefile檔案,主要是看install部分,從其中找出tar格式的檔案被複制到了什麼路徑,然後進入相應的目錄進行刪除即可。

問:SOCKS5啟動後,一段時間後就停止了。用命令ps auxw | grep socks5檢視後,發現有很多SOCKS defunct程式。請問這是什麼原因?
答:主要是打補丁的問題。如果socks5-tar.gz是沒打過補丁的版本,必須下一個帶補丁的v1.0-r11版本,重新安裝、執行問題就可以解決了。

問:我在VMware WorkStation 4.0.5中安裝Debian 3.0時,提示找不到硬碟,需要SCSI的驅動。但是我用的是IDE硬碟,請問該怎麼辦?
答:由於VMware將使用者劃分的硬碟空間虛擬成SCSI硬碟,而Debian安裝盤中沒有對應的驅動,而安裝其它Linux版本時,有的在一開始會載入SCSI驅動,所以沒有這個問題。使用者可以修改VMware的配置,將其改為模擬IDE硬碟就可以了。

問:安裝完Red Hat後,前面的提示符為root@localhost,可以修改嗎?
答:當然可以。在bash中提示符是透過一個環境變數$PS1指定的。用export $PS1檢視現在的值,比較直觀常用的提示符可以設定為export PS1=“[u@h W]$”。其中u代表使用者名稱,h代表主機名,W代表當前工作目錄的最後一層,如果是普通使用者$則顯示$,root使用者顯示#。

問:在vi中搜尋了一個單詞,該單詞以高亮顯示,看起來很不舒服,怎麼能將它去掉?
答:在vi的命令模式下輸入:nohlsearch就可以了。另外可以在~/.vimrc中寫上下面的語句就會有高亮顯示:
set hlsearch
加上下面的語句就不會有高亮顯示:
set nohlsearch

問:如何找出系統中所有的*.cpp、*.h檔案呢?
答:用find命令就可以了。不過如果從根目錄查詢消耗資源較高,使用下面的命令就可以:
# :find / -name "*.cpp" -o -name "*.h"

問:安裝Debian需要幾張盤就夠了?7張盤全部都要下載嗎?
答:如果經常有網路環境的話,下載第一張就可以了。要是沒有網路環境的話不推薦使用Debian,因為Debian主要依賴網路來更新軟體。實在要安裝的話,要下載全部7張盤,否則可能會出現需要的軟體包找不到的問題。

問:Debian第一張光碟為什麼有兩個版本?debian-30r1-i386-binary-1.iso和debian-30r1-i386-binary-1_NONUS.iso該下載哪一個版本呢?它們有什麼區別?
答:因為含有“non-US”(不屬美國)的軟體不能合法地存放在架設於美國境內的伺服器中。 以前,其原因通常是因為軟體含有嚴密的密碼編碼,而今天,則是因為程式使用了美國專利保護的演演算法。每個人應該取用“non-US”來供私人用途所用;而沒有這個標識的iso則只對架設在美國的映象及供應商才有用處。其它二進位制的光碟則不會含有任何“US-sensitive”(與美國相關的)軟體,它們和其它種binary-1光碟一樣運作得很好。因此,個人使用還是下載debian-30r1-i386-binary-1_NONUS.iso版本。

問:為何我使用umount /mnt/cdrom命令的時候出現device is busy這樣的語句,不能umount?
答:在使用umount的時候一定要確保已退出/mnt/cdrom這個目錄,退出這個目錄就可以使用umount /mnt/cdrom了。

問:我使用的是膝上型電腦,怎麼才能在控制檯下顯示現在還剩多少電量呢?
答:使用apm -m就可以看到還有多少分鐘了,具體引數可以用man apm檢視。

問:如何使用Red Hat自動更新軟體包的功能?
答:Red Hat 6.1以後有個命令up2date,能自動檢測決定哪些軟體包需要更新,然後可以使用up2date-config進行配置。第一次使用up2date時,需要root使用者執行rpm-import /usr/share/rhn/RPM-GPG-KEY,然後再執行up2date,它會透過SSL驗證,如果使用者在安裝時提供了正確的註冊資訊,那麼就可以自動升級軟體包了。其中升級除kernel外的RPM用up2date -u,升級包括Kernel在內的RPM用up2date -u -f。

問:為什麼我進入Linux的終端視窗時,man一條命令出來的都是亂碼呢?
答:這是因為你的字符集設定有問題。臨時解決辦法可以使用export LANG=“en_US”。要想不必每次都修改的話,在/etc/sysconfig/i18n檔案裡面修改LANG=“en_US”就可以了。也可以針對某個使用者來做,這樣就可以改變個人的介面語言,而不影響別的使用者。命令如下:
#cp /etc/sysconfig/i18n $HOME/.i18n

問:從網上的FTP下載Red Hat光碟的時候,右邊有個MD5校驗碼,我怎麼才能知道校驗碼正確呢?
答:透過命令md5sum filename可以得出校驗碼,然後和給出的進行對比,檢視是否相同就可以了。

問:我需要讓Linux下面新增的使用者在設定密碼時必須大於4位數,怎麼設定呢?
答:修改/etc/login.defs檔案中的PASS_MIN_LEN(此項用於設定密碼的位數)值就可以了。

問:怎麼檢視一個埠上正在執行什麼程式呢?
答:可以使用lsof命令,比如要檢視21埠正在執行什麼程式時可以執行下面的命令:
# lsof -i:21

問:編譯核心的時候出錯,提示“Too many open files”,請問怎麼處理?
答:這是因為file-max預設值(8096)太小。要解決這個問題,可以root身份執行下列命令(或將它們加入/etc/rcS.d/*下的init指令碼):
# echo "65536" > /proc/sys/最後進入解壓後的目錄,執行安裝命令。
# cd vmware-linux-tools
# ./install.pl

問:本來裝有Linux與Windows XP,一次將Windows XP重灌後,發現找不到Linux與Windows XP的啟動選單,請問如何解決?
答:首先光碟啟動,進入rescue模式,執行GRUB,進入grub提示符grub>,然後敲入下面的語句,重啟就好了。
root (hd0,2),setup (hd0)

問:請問使用者的IP是動態的,如何在Squid中限定在同一時間內同一賬戶線上的數量?
答:例如限制單個使用者只能開啟12個HTTP連線,採用下面的方法:
acl all src 0.0.0.0/0.0.0.0
acl limit maxconn 12
acl localnet src 192.168.0.0/24
http_access deny localnet maxconn
http_access allow localnet
http_access deny all

問:如果我用Squid代理的代理伺服器在192.168.1.0這個網段裡,例如它的IP是192.168.1.1,我有一些客戶端在192.168.2.0這個網段內,怎樣設定才能透過這個代理伺服器出去?
答:如果不用透明代理,直接在瀏覽器的代理選項裡設定就可以了。否則首先是在代理伺服器的網路卡上再掛一個IP為192.168.2.1,新增相應的路由,再修改Squid的squid.conf檔案裡的監聽地址和埠等,最後在192.168.2.0網段的客戶端設定其閘道器為192.168.2.1,再直接在瀏覽器的代理選項裡設定一下就可以了。

問:我在Windows中透過FTP傳一個文字檔案到Linux中,但是開啟文字檔案後每行最後都有^M的標誌。由於很長,用編輯器去除太麻煩,有什麼解決辦法呢?
答:為了解決這個問題,Linux下專門有兩個工具可以互換Windows格式和Linux格式,它們分別是dos2unix和unix2dos。比如用下面的命令就可以將檔名為“filename”檔案從Windows格式轉換為Linux文字格式。
# dos2unix filename

問:安裝了一臺Linux伺服器,想自己編譯核心,一步一步做下來,GRUB也新增進去了,但出現“kernel Panic:VFS:Unable to mount root fs on 0:00”的錯誤,請問是怎麼回事?
答:一般情況下initrd這個檔案在桌上型電腦上不是必須的,但是在有SCSI裝置的伺服器上卻是必須的。有可能因為編譯核心的時候沒有產生initrd那個檔案,所以會有上面的錯誤提示。使用者可以使用mkinitrd命令來生成一個initrd.img檔案,然後加入GRUB,重啟試一試。

問:如何設定使用者登入後的歡迎資訊?
答:修改/etc/motd檔案,往裡面寫入文字,就能使使用者透過Telnet正確登入後,執行Shell之前得到相應的提示資訊。
motd就是“messages of the day”,也就是當日資訊的意思。管理員可以往裡面寫一些需要注意的事項或通知等來提醒正式使用者。

問:如何使用netrc檔案進行自動FTP?
答:在自己的home目錄下建立一個許可權為600,字尾名為.netrc的檔案,內容如下:
machine 172.168.15.1 login admin password admin
這樣使用者以後每次登入FTP伺服器172.168.15.1的時候,系統都會幫使用者以使用者名稱admin、密碼admin登入。使用者利用這個特徵可以實現自動FTP。例如使用者想要每天6:00到172.168.15.1機器上面獲得/admin目錄下的檔案admin.txt,可以按如下方法做。
建立一個檔案ftp_cmd,內容如下:
cd admin
get amin.txt
bye
然後使用crontab -e設定定時任務:
0 6 * * * ftp 172.168.15.1

問:怎樣得到ipchains的日誌?
答:使用者設定規則的時候必須加入-l引數才會在/etc/messages裡面做記錄。不過建議還是不加的好,不然使用者的/etc/messages會變得非常大。

問:我下載了rcs5.7,用./configure && make && make install時報錯如下:
./conf.sh: testing permissions ...
./conf.sh: This command should not be run with superuser permissions.


我是以root使用者身份登入編譯安裝的,為什麼會這樣?
答:有些軟體確實因為考慮到安全等其它原因不能用root使用者編譯。這時只要用其它使用者編譯,到make install這步時,如果該軟體安裝在不屬於編譯時的使用者的主目錄下時,需要使用su命令轉換為root使用者再執行make install。

問:我在安裝USBView時失敗,具體情況如下:
#rpm -ivh usbview-1.0-9.src.rpm
warning:usbview-1.0-9.src.rpm:V3 DSAsignature:NOKEY,key IDab42a60e
答:這行程式碼說明安裝失敗是因為你的系統上沒有安裝合適的鑰匙來校驗簽名。要使該軟體包透過校驗,可以透過匯入Red Hat的公匙來解決,具體的方式是在Shell下執行如下命令:
#rpm -import /usr/share/rhn/RPM-GPG-KEY
(注意大小寫)

問:如何防止某個關鍵檔案被修改?
答:在Linux下,有些配置檔案是不允許任何人(包括root)修改的。為了防止被誤刪除或修改,可以設定該檔案的“不可修改位(immutable) ”。命令如下:
# chattr +i /etc/fstab
如果需要修改檔案則採用下面的命令:
# chattr -i /etc/fstab

問:怎樣限制一個使用者可以啟動的程式數?
答:先確定一下/etc/pam.d/login檔案中下面一行的存在:
session required /lib/security/pam_limits.so
然後編輯/etc/security/limits.conf,在裡面可以設定限制使用者的程式數、CPU佔用率和記憶體使用率等,如hard nproc 20就是指限制20個程式,具體可以看man。

問:如何不顯示其它使用者的訊息?
答:使用者可以使用mesg n來禁止別人給自己傳送資訊,其實就是禁止別人往自己的終端上面的寫的許可權。當別人試圖再使用write給自己傳送資訊時,傳送者將會看見提示如下:
write: user has messages disabled on pts/n

問:如何限制Shell命令記錄大小 ?
答:預設情況下,bash會在檔案$HOME/.bash_history中存放多達500條命令記錄。有時根據具體的系統不同,預設記錄條數不同。系統中每個使用者的主目錄下都有一個這樣的檔案。為了系統的安全,在此強烈建議使用者限制該檔案的大小。使用者可以編輯/etc/profile檔案,修改其中的選項如下:
HISTFILESIZE=30 或 HISTSIZE=30
這樣就將記錄的命令條數減少到30條。

問:我想將開機時顯示的資訊保留下來,以檢查電腦出了問題的地方,請問怎麼辦?
答:可輸入下面的命令:
#dmesg >bootmessage
該命令將把開機時顯示的資訊重定向輸出到一個檔案bootmessage中。

問:我想在登出時刪除命令記錄,請問怎麼做?
答:編輯/etc/skel/.bash_logout檔案,增加如下行:
rm -f $HOME/.bash_history
這樣,系統中的所有使用者在登出時都會刪除其命令記錄。
如果只需要針對某個特定使用者,如root使用者進行設定,則可只在該使用者的主目錄下修改/$HOME/.bash_history檔案,增加相同的一行即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950119/,如需轉載,請註明出處,否則將追究法律責任。

相關文章