linux 常用命令 小技巧

轉載來自:http://www.cnxct.com/linux-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4-%E5%B0%8F%E6%8A%80%E5%B7%A7/



1 、實現RedHat非正常關機的自動磁盤修復

先登錄到服務器,然後在/etc/sysconfig裏增加一個文件autofsck,內容如下:
AUTOFSCK_DEF_CHECK=yes
PROMPT=yes

2、改變文件或目錄之最後修改時間(變爲當前時間)

執行格式:touch name ( name 可爲文件或目錄名稱。)

3、如何設置login後歡迎信息

修改/etc/motd,往裏面寫入文本即可

4、如何設置login前歡迎界面

修改/etc/issue或者issue.net,往裏面寫入文本。
issue的內容是出現在本機登錄的用戶界面上,而issue.net則是在用戶通過網絡telnet的時候出現。
eg:
# vim /etc/issue
CentOS release 4.5 (Final)
Kernel \r on an \m
則在歡迎界面前顯示
CentOS release 4.5 (Final)
Kernel 2.6.9-55.0.2.EL on an i686

5、如何修改網卡MAC地址

首先必須關閉網卡設備,否則會報告系統忙,無法更改。
命令是: /sbin/ifconfig eth0 down
修改 MAC 地址,這一步較 Windows 中的修改要簡單。
命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新啓用網卡 /sbin/ifconfig eht0 up
網卡的 MAC 地址更改就完成了

6、建立別名/刪除別名

alias cp=’cp -i’
unalias cp

7、如何知道某個命令使用了什麼庫文件

例如要知道ls使用了什麼庫文件,可以使用:
$ ldd /bin/ls

8、如何使一個用戶進程在用戶退出系統後仍然運行

使用nohup command &,比如:nohup wget -c ftp://test.com/test.iso
#這樣即使用戶退出系統,wget進程仍然繼續運行直到test.iso下載完成爲止
(-c:斷點續傳,這也是個非常有用的設置,特別當下載比較大的文件的時候,如果中

  途意外中斷,那麼連接恢復的時候會從上次沒傳完的地方接着傳,而不是又從頭開始,使

  用這一項需要遠程服務器也支持斷點續傳,一般來講,基於UNIX/linux的Web/FTP服務器

  都支持斷點續傳)

9、如何限制用戶的最小密碼長度

修改/etc/login.defs裏面的PASS_MIN_LEN的值。比如限制用戶最小密碼長度是8:
PASS_MIN_LEN 8

10、如何取消root命令歷史記錄以增加安全性

爲了設置系統不記錄每個人執行過的命令,就在/etc/profile裏設置:
HISTFILESIZE=0
HISTSIZE=0
或者:
ln -s /dev/null ~/.bash_history

11、如何測試硬盤性能

使用hdparm -t -T /dev/hdX就可以測試硬盤的buffer-cache reads和buffered disk reads兩個數據,可以用來當作硬盤性能的參考。
同時使用hdparm -c3 /dev/hdaX還能設置硬盤以32bit傳輸,以加快數據傳輸的速度。
我們使用的Linux在默認情況下,訪問IDE設備的時候設置的很保守。這樣設置的目的是爲了保護數據安全和系統的兼容性,這樣可以確保任何硬件都可以被支持(例如386、486等)我們可以通過下面命令查看當前硬盤的性能 
hdparm -Tt /dev/hda
結果顯現如下
# hdparm -Tt /dev/hda
/dev/hda:
Timing cached reads: 1200 MB in 2.00 seconds = 600.00 MB/sec
Timing buffered disk reads: 76 MB in 3.02 seconds = 25.17 MB/sec

  -T是測試緩存系統
  -t是報告磁盤的狀態,並讀取緩存中的數據
  以上數據是在P4 1.7G/512M 內存/40G IDE的機器上測試的。

注意:這個測試最好在單用戶模式下使用,因爲這樣可以確保你測試的時候只有你一個人在使用系統,  以確保測試準確。再多測試幾次取平均值。我們再用如下命令看看linux如何對硬盤經行尋址 hdparm /dev/hda
結果如下
/dev/hda:
multcount = 16 (on)
IO_support =” ” 0 (default 16-bit)
unmaskirq =” ” 0 (off)
using_dma =” ” 1 (on)
keepsettings =” ” 0 (off)
readonly =” ” 0 (off)
readahead =” ” 8 (on)
geometry = 5169/240/63, sectors = 40020664320, start = 0
我們可以看到,默認情況下使用的還是16位的模式。
優化
使用如下命令
hdparm -m16 -c3 /dev/hda
這樣可以讓IO_support工作在32位模式下。

12、如何列出一個目錄佔用的空間

du或du -s或du -k
du -S | sort -n 可以迅速發現那個目錄是最大的。
(du -s或–summarize 僅顯示總計。
du -S或–separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。
sort -n 依照數值的大小排序。)
用df可以看到已安裝的文件系統的空間大小及剩餘空間大小。
quota -v查看用戶的磁盤空間信息,如果你用quota限制了用戶空間大小的話。

++如何使新用戶首次登陸後強制修改密碼

#useradd -p ‘’ testuser; chage -d 0 testuser

13、在Linux中有時開機不自動檢查新硬件,新安裝的網卡找不到。請問怎麼解決?

答:自動檢查新硬件的服務是Kudzu,用戶可以用“ntsysv”命令啓動該服務。下次重啓就會找到用戶的新網卡。

14、從臺灣省的一個 網站找到的,如何讓系統密碼和samba密碼一致,並可以讓用戶自行修改他們的密碼.

使用web界面來同步更改system passwd 及 samba password
下載 http://changepassword.sourceforge.net/
安裝就可以了.先看README哈.
附加:
將系統用戶批量倒成samba用戶.
less /etc/passwd | mksmbpasswd.sh >; /etc/samba/smbpasswd

++更改Linux啓動時用圖形界面還是字符界面

cd /etc
vi inittab
將id:5:initdefault: 其中5表示默認圖形界面
改id:3: initdefault: 3表示字符界面

15、配置smb可以被哪些IP所用.

cd /etc/samba
Vi smb.conf
找到hosts allow = 192.168.1. 192.168.2. 127.
修改其爲哪些機器所用,注意IP之間用逗號分開
舉例:
hosts allow =192.168.1.110,192.168.1.120

16、禁止在後臺使用CTRL-ALT-DELETE重起機器

cd /etc/inittab
vi inittab 在文件找到下面一行
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now (註釋掉這一行)
如: # Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

17、修改主機名

vi /etc/sysconfig/network
修改HOSTNAME一行爲HOSTNAME=主機名

18、查看開機檢測的硬件

dmesg | more

19查看硬盤使用情況

df -m
df -h

20、查看目錄的大小

du –sh dirname

21、解壓小全

tar xvfj lichuanhua.tar.bz2
tar xvfz lichuanhua.tar.gz
tar xvfz lichuanhua.tgz
tar xvf lichuanhua.tar
unzip lichuanhua.zip
注:壓縮 tar cvfz FileName.tar.gz DirName

22、顯示內存使用情況

free –m

23、顯示系統運行了多長時間

uptime

24、顯示開機自檢的內容命

dmesg

25、端口的詳細列表

etc/services

26、查看物理信息

lspci

27、文本截面的中文支持

RH 9.0自帶安裝包 zhcon_0.2.3_1.rh9.i386.rpm
安裝完成後,執行: zhcon 就可以支持中文了

28、不讓顯示器休眠

setterm –blank 0

29、顯示最後一個登錄到系統的用戶

last

30、查看所有帳號的最後登錄時間

lastlog /var/log/lastlog

31、查看系統自開通以來所有用戶的登錄時間和地點

cat /var/log/secure

31、顯示當前用戶所屬信息

id

32、如何知道Apache的連接數目

ps -ef|grep httpd|wc -l #其它服務可以類推
netstat -nat|grep -i “80″|wc -l # 以上結果再減1吧

33、刪除用戶帳號的同時,把用戶的主目錄也一起刪除

userdel -r 用戶名

34、修改已有用戶的信息

usermod [參數] 用戶名
參數: -c, -d, -m, -g, -G, -s, -u以及-o與adduser參數意義相同
新參數: -l 新用戶名(指定一個新的賬號,即將原來的用戶名改爲新的用戶名)

35、改變redhat的系統語言/字符集

改 /etc/sysconfig/i18n 文件,如
LANG=”en_US”,xwindow會顯示英文界面,
LANG=”zh_CN.GB18030″,xwindow會顯示中文界面。
還有一種方法
cp /etc/sysconfig/i18n $HOME/.i18n
修改 $HOME/.i18n 文件,如
LANG=”en_US”,xwindow會顯示英文界面,
LANG=”zh_CN.GB18030″,xwindow會顯示中文界面。
這樣就可以改變個人的界面語言,而不影響別的用戶
vi .bashrc
export LANG=zh_CN.GB2312
export LC_ALL=zh_CN.GB2312

36、cd光盤做成iso文件

cp /dev/cdrom xxxx.iso

37、快速觀看開機的硬件檢測

dmesg | more

38、查看硬盤的使用情況

df -k 以K爲單位顯示
df -h 以人性化單位顯示,可以是b,k,m,g,t..

39、查看目錄的大小

du -sh dirname
-s 僅顯示總計
-h 以K、M、G爲單位,提高信息的可讀性。KB、MB、GB是以1024爲換算單 位, -H以1000爲換算單位。

40、查找或刪除正在使用某文件的進程

fuser filename
fuser -k filename

41、linux中讓用戶的密碼必須有一定的長度,並且符合複雜度

vi /etc/login.defs,改PASS_MIN_LEN

++以不同的用戶身份運行程序

su – username -c “/path/to/command”
有時候需要運行特殊身份的程序, 就可以讓su來做

++ adduser m -g cvsroot -s /bin/false

添加用戶m,參數-s /bin/false表示不允許用戶直接登錄服務器
id m
顯示m用戶的uid和gid號。

++ 強制卸載rpm包

rpm -e –nodeps 包名稱

個別不正常情況下:
rm -f /var/lib/rpm/__*
rpm –rebuilddb

#

++拒絕除root用戶的其它用戶登陸

touch /etc/nologin
也可以在/etc/passwd中加!對指定用戶限制登陸

++檢查自己所屬之羣組名稱

執行格式:groups

++修改文件/文件夾所屬用戶組(支持-R)

chown .組名 文件名(注:組名名勿忘”.”,“:”也可)
也可chgrp 組名 文件名
chown 用戶名.組名 文件名(同時修改所屬用戶及用戶組)

++用fuser命令查看一下是哪些進程使用這個分區上的文件:

fuser –v –m /usr
如果沒有什麼重要的進程,用以下命令停掉它們:
fuser -k –v –m /usr
然後就可以重新掛載這些文件系統了。

++網絡喚醒主機

ether-wake 目標網卡MAC

++如何查找大小爲500K到1000K之間的文件

find / -type f -size +500k -and -size -1000k

++讓主機不響應ping

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
若想恢復就用
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#必須是用命令改,不能是vi修改

++自動註銷ROOT

編輯你的配置文件”vi /etc/profile”,在”HISTSIZE=”後面加入下面這行:
  TMOUT=300
  #300,表示300秒

++ls只列出目錄

ls -lF | grep ^d
ls -lF | grep /$
ls -F | grep /$

++讓cron任務不回饋信息

* * * * * cmd > /dev/null 2>&1

++lsof(list open files)用法

lsof -i :x x
lsof abc.txt 顯示開啓文件abc.txt的進程
lsof -i :22 知道22端口現在運行什麼程序
lsof -c nsd 顯示nsd進程現在打開的文件
lsof -g gid 顯示歸屬gid的進程情況

++改變sshd 的端口

在/etc/ssh/sshd_config 中加入一行:Port 2222,/etc/init.d/sshd restart 重啓守護進程

++防止任何人使用su 命令成爲root

vi /etc/pam.d/su,在開頭添加下面兩行:
  auth sufficient /lib/security/pam_rootok.so
  auth required /lib/security/Pam_wheel.so group=wheel
然後把用戶添加到“wheel”組:chmod -G10 username

++如何讓ssh 只允許指定的用戶登錄

方法1:在/etc/pam.d/sshd 文件中加入
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail
然後在/etc 下建立sshusers 文件,加入允許使用ssh 服務的用戶名(每一個用戶名都要單獨一行),重新起動sshd

++利用ssh 複製文件

1、從A 複製B(推過去) #scp -rp /path/filename username@remoteIP:/path
2、從B 複製到A(拉過來)#scp -rp username@remoteIP:/path/filename /path

++linux機器掛載windows上的共享文件

windows IP:192.168.1.1
mount -t smbfs -o username=massky,password=massky //192.168.1.1/dbf /mnt/share
如想機器重啓自動掛載,vi /etc/fstab最後加入:
//192.168.1.1/dbf /mnt/share smbfs defaults,auto,username=massky,password=massky 0 0

++定製linux 提示符

在bash 中提示符是通過一個環境變量$PS1 指定的。用export $PS1 查看現在的值,比較直
觀常用的提示符可以設定爲export PS1=“[\u@\h \W]\$”。其中\u 代表用戶名,\h 代表主機
名,\W 代表當前工作目錄的最後一層,如果是普通用戶\$則顯示$,root 用戶顯示#。

++清空文件

[echo] > 文件名

++DNS相關

host -a domain.com #顯示相關資訊都列出來
host domain.com 202.106.0.20 #用202.106.0.20這臺DNS服務器查詢domain.com

++前後臺任務相關

jobs 列出屬於當前用戶的進程
bg 將進程搬到後臺運行(Background)
fg 將進程搬到前臺運行(Foreground)
萬一你運行程序時忘記使用“&”了,又不想重新執行。可以先使用ctrl+z掛起程序,然後敲入bg命令,這樣程序就在後臺繼續運行了。

++查找當前目錄下七天前的文件,並刪除

find ./ -mtime +7 -type f -exec rm {} \;

++產生指定大小的文件(bs*count)

dd if=/dev/zero of=filename bs=1000000 count=10

++查找當前目錄下文件並更改擴展名

更改所有.ss文件爲.aa
# find ./ -name “*.ss” -exec rename .ss .aa ‘{}’ \;

++修改系統時間

date -s “2005-6-4 17:26″

++讓服務器自動同步時間

0 1 * * * /usr/sbin/ntpdate 210.72.145.44
或 0 1 * * * rdate -s time.nist.gov

++解決打開文件過多的問題

在etc/security/limits.conf 配置文件中設置進程文件描述符極限:
* soft nofile 2048
* hard nofile 4096
系統級文件描述符極限及timeout時間修改,添加如下兩行到 /etc/rc.d/rc.local 啓動腳本中:
# Increase system-wide file descriptor limit.
echo 65536 > /proc/sys/fs/file-max
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
#一般情況下,最大打開文件數比較合理的設置爲每4M物理內存256,比如1G內存可以設爲65536,
#而最大的使用的i節點的數目應該是最大打開文件數目的3倍到4倍

++如何用tar打包一個目錄時,去掉其中的某些子目錄或指定文件

加參數 –exclude 即可, 可加文件名或目錄名, 可多寫
tar cvf –exclude {dirname,filename} #dirname不要加/

++終端下修改服務器時區

usr/sbin/timeconfig
或直接#/etc/sysconfig/clock

++關閉啓動時的內存不足256M提示

vi /etc/rc.sysinit #把最後六行註釋掉
或#vi /var/lib/supportinfo
把其中的 MinRAM: 256M 這個值調低點.

++在多層目錄中查找到某一指定”字符串”

grep string -R /etc/sysconfig/
find ./pathname/ -name ‘*’ | xargs grep ‘string’

++佔用CPU的一個命令

yes string #有時候測試用得上。狂佔CPU

++Kill相關

kill -STOP [pid]
 發送SIGSTOP (17,19,23)停止一個進程,而並不消滅這個進程。
  kill -CONT [pid]
  發送SIGCONT (19,18,25)重新開始一個停止的進程。
  kill -KILL [pid]
  發送SIGKILL (9)強迫進程立即停止,並且不實施清理操作。
  kill -9 -1
  終止你擁有的全部進程。

++在當前目錄下建個bak目錄,然後 cp * bak,會提示略過bak,有其它辦法可以排除指定文件(夾)?

ls -F|grep -v \/|xargs -i cp {} bak #推薦
或 find ! -name “./bak”

++ 根據進程名顯示進程號

pidof httpd
1846 1845 1844 1843 1842 1841 1840 1839 1820

++e2fsck

檢查使用 Linux ext2 檔案系統的 partition 是否正常工作, 檢查 /dev/hda5 是否正常,如果有異常便自動修復,並且設定若有問答,均回答[是] :
e2fsck -a -y /dev/hda5

++反向輸出

rev 反向輸出(以行爲單位)
tac 反向輸出(全文)

++顯示終端號

tty

++文件行數/字數統計

wc –l file 計算文件行數
wc -w file 計算文件中的單詞數
wc -c file 計算文件中的字符數

++出每行第5個到第9個字符

cut -b5-9 file.txt

++刪除文本文件中出現的行列

uniq

++返回文件所在路徑

dirname /bin/tux #將返回 /bin

++fcitx在英文環境下正常使用

vi ~/.bashrc
xport LC_CTYPE=”zh_CN.UTF-8″
export XMODIFIERS=”@im=fcitx”
export XIM=fcitx
export XIM_PROGRAM=fcitx
#gnome-session-properties可以把fctix加入登入後自啓動

++split分割合併文件

split -b1440k a_whopping_big_file chunk #拆
cat chunk* > a_whopping_big_file #合

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