linux 技巧集(轉)

  今天看到一帖子問unix的用戶密碼長度設置在哪個文件,於是找了一下linux的,發現是定義在/etc/login.defs文件裏,在suse找,確實有這個文件,但未見有密碼長度的PASS_MIN_LEN這個設置,只看到了PASS_MAX_DAYS等設置,或許是要自己添加上的吧,而去FreeBSD系統上卻沒有找到/etc/login.defs文件。嘿嘿,有些不太一樣,不知unix是設置在哪個文件裏的。

  改變文件或目錄之讀、寫、執行之允許權

  ====================================

  執行格式:chmod [-R] mode name ( name 可爲文件名或目錄名;mode可爲 3 個 8 位元之數字,或利用ls -l 命令,列出文件或目錄之讀、寫、執行允許權之文字縮寫。)

  mode : rwx rwx rwx r:read w:write x:execute(user group other 縮寫爲: u g o)

  Example :

  % chmod 755 dir1 將目錄dir1,設定成任何使用者,皆有讀取及執行之權利,但只有擁有者可做修改。

  % chmod 700 file1 將文件file1,設定只有擁有者可以讀、寫和執行。

  % chmod o+x file2 將文件file2,增加擁有者可以執行之權利。

  % chmod g+x file3 將文件file3,增加羣組使用者可執行之權利。

  % chmod o-r file4 將文件file4,除去其它使用者可讀取之權利。

  改變文件或目錄之擁有權

  
======================

  執行格式:chown [-R] username name ( name 可爲文件名或目錄名。)

  Example :

  % chown user file1 將文件 file1 之擁有權,改爲使用者 user 所有。

  % chown -R user dir1 將目錄 dir1,及其下所有文件和子目錄之擁有權,改爲使用者 user 所有。

  檢查自己所屬之羣組名稱

  
======================

  執行格式:groups

  Example :

  % groups

  改變文件或目錄之羣組擁有權

  
==========================

  執行格式:chgrp [-R] groupname name ( name 可爲文件名或目錄名 )

  Example :

  % chgrp vlsi file1 將文件 file1 之羣組擁有權,改爲 vlsi 羣組。

  % chgrp -R p_w_picpath dir1 將目錄dir1,及其下所有文件和子目錄,改爲 p_w_picpath 羣組。

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

  
=========================================

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

  Example :

  % touch file1

  % touch dir1

  文件之連結

  
==========

  同一文件,可擁有一個以上之名稱,可將文件做數個連結。

  執行格式:ln oldname newname ( Hard link )

  Example :

  % ln file1 file2 將名稱 file2,連結至文件 file1。

  執行格式:ln -s oldname newname ( Symblick link )

  Example :

  % ln -s file3 file4 將名稱 file4,連結至文件file3。

  文件之字串找尋

  
==============

  執行格式:grep string file

  Example :

  % grep abc file1 尋找文件file1中,列出字串 abc 所在之整行文字內容。

  找尋文件或命令之路徑

  
====================

  執行格式:whereis command ( 顯示命令之路徑。)

  執行格式:which command ( 顯示命令之路徑,及使用者所定義之別 )

  執行格式:whatis command ( 顯示命令功能之摘要。)

  執行格式:find search-path -name filename -print ( 搜尋指定路徑下,某文件之路徑 )

  Example :

  % find / -name file1 -print ( 自根目錄下,尋找文件名爲 file1 之路徑)

  比較文件或目錄之內容

  
====================

  執行格式:diff [-r] name1 name2 ( name1 name2 可同時爲文件名,或目錄名稱 )

  Example :

  % diff file1 file2 比較文件 file1 與 file2 內,各行之不同處。

  % diff -r dir1 dir2 比較目錄 dir1 與 dir2 內,各文件之不同處。

  如何實現爲一個網卡綁定多個IP地址?

  
====================================

  Linux的網絡設備配置文件存放在/etc/sysconfig/network-scripts裏面,對於以太網的第一個網絡設備,配置文件名一般爲 ifcfg-eth0 如果需要爲第一個網絡設備綁定多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裏面創建一個名爲ifcfg-eth0:0的文件,內容樣例爲:

  DEVICE="eth0:0"

  IPADDR="211.100.10.119"

  NETMASK="255.255.255.0"

  ONBOOT="yes"

  其中的DEVICE爲設備的名稱,IPADDR爲此設備的IP地址,NETMASK爲子網掩碼,ONBOOT表示在系統啓動時自動啓動。

  如果需要再綁定多一個IP地址,只需要把文件名和文件內的DEVICE中的eth0:x加一即可。LINUX最多可以支持255個IP別名。

  如何設置login後歡迎信息

  
====================================

  修改/etc/motd,往裏面寫入文本,就能使用戶通過telnet正確登錄後執行shell之前得到相應的提示信息。

  motd就是“messages of the day”,也就是當日信息的意思。管理員可以往裏面寫一些需要注意的事項或者通知等來提醒正式用戶。

  如何設置login前歡迎界面

  
====================================

  修改/etc/issue或者issue.net,往裏面寫入文本,就能使得用戶在login前得到相應的提示,這將有助於用戶分辨自己正在連接哪裏的主機。

  issue的內容是出現在本機登錄的用戶界面上,而issue.net則是在用戶通過網絡telnet的時候出現。

  如何在bash下快速執行某個特定歷史命令

  
====================================

  在bash下面按ctrl+r可以查找歷史命令中匹配的命令並執行

  如何查看進程繼承關係

  
====================================

  直接在命令行中輸入

  pstree

  即可,程序會以樹狀結構方式列出系統中正在運行的各進程之間的繼承關係。

  如何找出內存佔用最大的進程

  
====================================

  除了可以使用top命令查看內存使用情況之外,還可以使用更快的命令行命令,相關的命令如下:

  ps aux | sort +4n

  或者

  ps aux | sort +5n

  如何在Linux下面編輯二進制文件

  
====================================

  到http://freshmeat.net/redir/hexedit/4088/url_tgz/he xedit-1.2.3.src.tgz下載hexedit安裝到系統上,就能用hexedit filename來編輯二進制文件。

  如何設置用戶密碼過期時間

  
====================================

  設置某個用戶的密碼過期時間可以用usermod -e來設置,如果要統一設置用戶的密碼過期時間,那麼就要修改/etc/login.defs裏面的PASS_MAX_DAYS,比如修改所有用戶的密碼過期時間是30天:

  PASS_MAX_DAYS 30

  如果這個值是99999,那麼表示密碼永不過期。

  如何修改網卡MAC地址

  
====================================

  首先必須關閉網卡設備,否則會報告系統忙,無法更改。

  命令是: /sbin/ifconfig eth0 down

  修改 MAC 地址,這一步較 Windows 中的修改要簡單。

  命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

  重新啓用網卡 /sbin/ifconfig eht0 up

  網卡的 MAC 地址更改就完成了

  如何用Bash糾正錯誤命令

  
====================================

  當你輸入一個命令不知道是否正確的時候,可以使用ctrl+t來糾正到正確的命令。

  比如輸入mkdri,然後按ctrl+t,bash會幫你糾正到最接近的命令mkdir。

  如何使非root用戶都不能遠程登錄

  
====================================

  建立/etc/nologin文件,這樣所有的非root用戶都不能遠程登錄。

  如何不顯示其他用戶的消息

  
====================================

  用戶可以使用mesg n來禁止別人給他發送信息,其實就是禁止別人往自己的終端上面的寫權限。當別人試圖再使用write給他發送信息時,發送者將會看見提示:

  write: user has messages disabled on pts/n

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

  
====================================

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

  $ ldd /bin/ls

  如何臨時增加交換空間

  
====================================

  產生一個64M的空文件

  #dd if=/dev/zero of=/swapfile bs=1024 count=65536

  初始化該文件爲交換文件:

  mkswap /swapfile 65536

  sync

  激活這個交換文件:

  swapon /swapfile

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

  
====================================

  使用nohup command &,比如:

  nohup wget -c ftp://test.com/test.iso

  這樣即使用戶退出系統,wget進程仍然繼續運行直到test.iso下載完成爲止

  如何限制用戶的最.linux 技巧集(轉) .小密碼長度

  
====================================

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

  PASS_MIN_LEN 8

  這樣用戶設置密碼的時候如果輸入的密碼長度小於8將不能設置

  如何限制只有0組(gid=0)的用戶可以su成root

  
====================================

  修改/etc/login.defs裏面的SU_WHEEL_ONLY的值爲:

  SU_WHEEL_ONLY yes

  那麼就只有gid爲0的用戶可以su成root。

  如何禁用Ctrl+Alt+Del鍵重啓系統

  
====================================

  有時候爲了防止誤操作導致系統重新啓動(如機房裏面新來了個習慣用Window$系統的管理員:-D),或者出於安全的原因,需要禁用Ctrl+Alt+Del組合鍵。

  只需要註釋掉/etc/inittab文件內的

  ca::ctrlaltdel:/sbin/shutdown -t3 -r now

  這一行即可。如何註釋?在這一行的行首放一個“#”號即可。

  怎麼樣格式化磁盤

  
====================================

  Linux下有一條mkfs命令,相當於format,可以對磁盤進行文件系統製作操作(或者說格式化)。命令的語法爲:

  mkfs -t 文件系統類型 /dev/設備名

  如要把/dev/sda1格式爲reiserfs格式,使用以下命令:

  mkfs -t reiserfs /dev/sda1

  當然,也可以使用mkfs.fstype命令來格式化磁盤,其中的fstype爲文件系統名,如reiserfs文件系統的格式化命令爲mkfs.reiserfs。上面那條命令的相應版本爲:

  mkfs.reiserfs /dev/sda1

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

  
====================================

  爲了設置系統不記錄每個人執行過的命令,就在/etc/profile裏設置:

  HISTFILESIZE=0

  HISTSIZE=0

  或者:

  ln -s /dev/null ~/.bash_history

  這樣就可以了。

  如何使用netrc文件進行自動ftp

  
====================================

  在自己的home目錄下建立一個權限600,名爲.netrc的文件,內容是:

  machine 192.168.0.1 login test password test

  這樣以後你每次ftp 192.168.0.1的時候,系統都會幫你以用戶名test,密碼test登錄。

  利用這個特徵可以實現自動ftp。

  例如你想要每天5:00到192.168.0.1機器上面獲得/test目錄下的文件test.txt,可以這麼做:

  建立一個文件ftp_cmd,內容爲:

  cd test

  get test.txt

  bye

  然後使用crontab -e設置定時任務:

  0 5 * * * ftp 192.168.0.1 < ftp_cmd

  如何測試硬盤性能

  
====================================

  使用hdparm -t -T /dev/hdX就可以測試硬盤的buffer-cache reads和buffered disk reads兩個數據,可以用來當作硬盤性能的參考。

  同時使用hdparm -c3 /dev/hdaX還能設置硬盤以32bit傳輸,以加快數據傳輸的速度。

  壓縮和打包文件

  
====================================

  .bz2 文件如何解壓縮 用tar -I 或者bunzip2 命令都可以。

  .bz2 — 使用bzip2命令壓縮的文件,可以使用bzip2 -d filename 解包

  .gz — 使用gzip命令壓縮的文件,可以使用gunzip -d filename 解包

  .tar — 使用tar打包的文件,即tarball文件,可以使用tar xf filename 解包

  .tbz — 使用tar打完包後再以bzip2命令壓縮的文件,可以使用tar jxf filename 解包

  .tgz — 使用tar打完包後再以gzip命令壓縮的文件,可以使用tar zxf filename 解包

  個人總結:

  [.tar] 解開:tar xvf *.tar 把文件打包不壓縮:tar cvf *.tar DirName

  [.tar.gz]解開:tar xzvf *.tar.gz 把文件打包並壓縮:tar czvf *.tar.gz DirName

  [.bz2] 解開:bzip2 -d *.bz2

  [.bz] 解開:bzip -d *.bz

  [.gz] 解開:gzip -d *.gz

  請參見:【Linux下常用壓縮格式的壓縮與解壓方法 】

  
如何對光驅、軟驅實現AutoMount

  
====================================

  安裝完Redhat Linux之後,運行ntsysv,選中服務後臺程序autofs.autofs的兩個配置文件在/etc/auto.misc和 /etc/auto.master。

  /etc/auto.master定義了mount目錄和mount所需的配置文件名及其空閒時自動umount的時間。下面是默認配置:

  [jephe@sh3 /etc]$ more auto.master

  /misc /etc/auto.misc --timeout 60

  下面是我的/etc/auto.misc配置文件:

  [jephe@sh3 /etc]$ more auto.misc

  cdrom -fstype=iso9660,ro :/dev/cdrom

  floppy -fstype=vfat :/dev/fd0

  e2floppy -fstype=ext2 :/dev/fd0

  注:

  a.確保/dev/cdrom作爲符號鏈接指向你的光驅所在的分區,作爲我的情況:

  [jephe@sh3 /dev]$ ls cdrom -l

  lrwxrwxrwx 1 root root 3 Aug 26 08:44 cdrom -> hdd

  b.當軟盤爲windows 95格化化的vfat分區類型時,設定了安裝目錄/misc/floppy

  c.當軟盤爲Linux格式化過的ext2分區類型時,設定了安裝目錄/misc/e2floppy

  至此,若還未啓動autofs,則運行/etc/rc.d/init.d/autofs start, 若對上述兩個文件中做過任何更改,運行/etc/rc.d/init.d/autofs restart即可。

  放入一片光盤進入光驅後,不需任何動作,直接進入目錄/misc/cdrom,autofs 將自動先爲你mount光驅同樣,若放入一張vfat格式的軟盤,你可以cd /misc/floppy,若是ext2格式的軟盤,則cd /misc/e2floppy。在超過一分鐘未使用它們,且當前目錄不是自動mount目錄/misc/cdrom,/misc/floppy,/misc/e2floppy,系統將自動umount它們。

  cron 計劃任務

  
====================================

  簡介

  crontab-操作每個用戶的守護程序和該執行的時間表。

  部分參數說明

  crontab file [-u user]-用指定的文件替代目前的crontab。

  crontab-[-u user]-用標準輸入替代目前的crontab.

  crontab-1[user]-列出用戶目前的crontab.

  crontab-e[user]-編輯用戶目前的crontab.

  crontab-d[user]-刪除用戶目前的crontab.

  crontab-c dir- 指定crontab的目錄。

  crontab文件的格式:M H D m d cmd.

  M: 分鐘(0-59)。

  H:小時(0-23)。

  D:天(1-31)。

  m: 月(1-12)。

  d: 一星期內的天(0~6,0爲星期天)。

  cmd要運行的程序,程序被送入sh執行,這個shell只有USER,HOME,SHELL這三個環境變量。

  下面是一個例子文件:

  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND

  #每天早上6點10分

  10 6 * * * date

  #每兩個小時

  0 */2 * * * date

  #晚上11點到早上8點之間每兩個小時,早上8點

  0 23-7/2,8 * * * date

  #每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點

  0 11 4 * mon-wed date

  #1月份日早上4點

  0 4 1 jan * date

  範例

  $crontab -l 列出用戶目前的crontab.

  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND

  10 6 * * * date

  0 */2 * * * date

  0 23-7/2,8 * * * date

  如何在Linux裏面恢復mbr?

  
====================================

  可以使用下面的命令來恢復:

  dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1

  其中bs(buffer size)是指重寫的字節數。爲什麼不是512呢?主引導扇區是一個扇區(512字節)呀?答案是因爲我們用上面的命令是爲了修復可能被病毒修改了的主引導記錄MBR,或者想把LILO卸載掉,而不是恢復整個主引導扇區。所以我們只把主引導扇區的備份文件boot.NNNN的前446個字節重寫入主引導扇區。boot.NNNN是我們在安裝Linux之前整個主引導分區的備份。如果我們把512個字節全部寫入主引導扇區就可能會把安裝了Linux後改變了的硬盤DPT表也破壞掉。那就壞事了。 :-)

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

  
====================================

  du或du -s或du -k

  du -S | sort -n 可以迅速發現那個目錄是最大的。

  用df可以看到已安裝的文件系統的空間大小及剩餘空間大小。

  quota -v查看用戶的磁盤空間信息,如果你用quota限制了用戶空間大小的話。

  在使用less 或 more時,如何直接啓動編輯器

  
====================================

  在less或者more中打入v鍵,會立即啓動vi編輯器,可以對文件進行編輯

  如何察看你當前使用的Linux內核的版本

  
====================================

  可以使用uname -r來查看當前內核版本。如果使用uname -a可以查看包括內核版本,機器硬件信息、網絡節點名、操作系統名字等信息

  如何顯示文件的類型

  
====================================

  用命令 file 可以使你知道某個文件究竟是ELF格式的可執行文件, 還是shell script文件或是其他的什麼格式 例如:

  #file startx

  如何將man page轉成HTML格式

  
====================================

  使用 man2html 這個指令,就可以將 man page 轉成 HTML 格式了。用法是:

  man2html filename > htmlfile.html

  例子:

  man2html /usr/man/man1/man2html.1 > ~/man2html.html

  查看文件內容的特殊方法

  
====================================

  相信最基本的cat和less你已經很熟悉了,如果有特殊的要求呢:

  如果你只想看文件的前5行,可以使用head命令,如:

  head -5 /etc/passwd

  如果你想查看文件的後10行,可以使用tail命令,如:

  tail -10 /etc/passwd

  tail -f /var/log/messages

  參數-f使tail不停地去讀最新的內容,這樣有實時監視的效果,當你在ppp撥號的過程中用它豈不是很方便!

  查看文件中間一段,你可以使用sed命令,如:

  sed -n '5,10p' /etc/passwd

  這樣你就可以只查看文件的第5行到第10行。

  linux下文件分割與合併

  
====================================

  $dd if=source of=target.1 bs=1M count=10

  $dd if=source of=target.2 bs=1M skip=10

  source被分爲target.1和target.2兩個文件,其中target.1爲source的前10M部分;target.2爲source的減去10M後的部分。

  $cat target.1 target.2 > othersource

  source與othersource是同一個文件。

  RedHat下如何顯示彩色目錄列表

  
====================================

  打開/etc/bashrc, 加入如下一行:

  alias ls="ls --color"

  下次啓動bash時就可以像在Slackware裏那樣顯示彩色的目錄列表了, 其中顏色的含義如下:

  藍色-->目錄

  綠色-->可執行文件

  紅色-->壓縮文件

  淺藍色-->鏈接文件

  灰色-->其他文件

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