Linux命令大全

Linux命令大全

 

 

一、系統管理與設置;

二、用戶和用戶組管理;

三、磁盤管理;

四、文件和目錄管理;

五、備份與壓縮;

六、網絡管理與相關應用;

七、vi/vim編輯器;

八、Shell編程

 

 

 

 

 

 

一、系統管理與設置

 

1、信息顯示命令

 

# man & info  //幫助手冊

 

# man 命令 //顯示相應命令的幫助內容

 

# arch  //顯示當前系統體系結構

 

# cal  //顯示當前月份

 

# cal 2012  //顯示2012年的月曆

 

# cal 10 2012  //顯示2012年10月的月曆

 

# cal -y  //顯示整年日曆

 

# cat /etc/issue  //看當前系統發行版本

 

# cat /etc/redhat-release //看操作系統版本(redhat和centos)

 

# cat /etc/shells  //查看shell版本

 

# cat /etc/services | more  //查看各種服務的port

 

# cat /proc/cpuinfo  //顯示CPU信息

 

# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l  //結果大於0, 說明支持64位計算。lm指long mode, 支持lm則是64位

# getconf LONG_BIT  //查看CPU位數(32 or 64)

 

# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c  //查看CPU型號

 

# cat /proc/cpuinfo | grep physical | uniq -c  //查看實際有幾顆CPU

 

# getconf LONG_BIT  //顯示當前CPU運行在什麼模式下

 

# cat /proc/devices  //列出字符和塊設備的主設備號,以及分配到這些設備號的設備名稱

 

# cat /proc/filesystems  //看文件系統

 

# cat /proc/interrupts  //顯示中斷

 

# cat /proc/ioports  //看設備io端口

 

# cat /proc/loadavg  // 看系統負載

 

# cat /proc/meminfo  //看內存信息

 

# cat /proc/mounts  //顯示當前系統所安裝的文件系統信息

 

# free  //看內存信息

 

# dmidecode  //查看內存型號

 

# /usr/platform/sun4u/sbin/prtdiag -v  //查看內存信息(unix)

 

# cat /proc/modules  //看當前系統模塊

 

# cat /proc/net/dev 顯示網絡適配器及統計

 

# cat /proc/partitions  //看當前系統分區

 

# cat /proc/scsi/scsi  //查看scsi硬盤信息

 

# cat /proc/swaps  //看所有swap分區

 

# cat /proc/version  //查看Linux內核版本

 

# cat /etc/security/limits.conf  //查看打開最大文件數等設置

 

# cd /proc/pid號;ls -l exe  //查看進程的完整路徑

 

# date //顯示當前時間

 

# date +'%Y/%m/%d'  //以yyyy/mm/dd格式顯示日期

 

# date +'%Y-%m-%d'  //以yyyy-mm-dd格式顯示日期

 

# date +%H:%M  //顯示時、分

 

# date -r test  //顯示test文件最後一次的修改時間

 

# dmesg  //看啓動信息

 

# dmidecode | grep "Product Name"  //查看機器型號

 

# dmidecode | more  //查看硬件(如內存型號、生產廠家等)信息

 

# dmidecode |grep 'Serial Number'  //查看主板的序列號

 

# dmidecode -q  //顯示硬件系統部件 (SMBIOS / DMI)

 

# dmidecode -s system-serial-number  //查看系統序列號

 

# dmidecode -t 11  //查看OEM信息

 

# dmidecode -t memory  //查看內存信息

 

# dmidecode -t processor  //查看CPU詳細信息

 

# echo  //顯示文本行

 

# echo $LANG  //顯示系統語言

 

# echo $PATH  //顯示系統的環境變量

 

# env  //顯示所有環境變量

 

# export  //查看環境變量(在bash下)

 

# fgconsole  //顯示活動的虛擬終端數目

 

# file -s /dev/sd*  //查看設備信息

 

 

 

# file /sbin/init  //查看系統是32位還是64位:

 

64位系統輸出信息如下:

 

sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

 

 

 

32位系統輸出信息如下:

 

/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

 

 

 

# free -m  //以M爲單位顯示內存狀態

 

# free -m -s5  //以M爲單位,每隔5秒刷新一次內存狀態

 

# gcc -v  //查看GCC版本

 

# getconf LONG_BIT  //查看系統是32位還是64位

 

# glxinfo  //顯示有關GXL擴展和OpenGL渲染器的信息

 

# grep -i '10.52' /etc/hosts  //查找/etc/hosts文件中包含10.52的行,不區分大小寫

 

# hdparm -i /dev/hda 羅列一個磁盤的架構特性

 

# hdparm -tT /dev/sda 在磁盤上執行測試性讀取操作

 

# head -5 /etc/passwd  //看文件passwd的前5行

 

# tail -10 /etc/passwd  //看文件passwd的後10行

 

# sed  -n '5,10p' /etc/passwd  //查看文件passwd的第5行到第10行

 

# history  //顯示歷史記錄

 

# history  5  //顯示最近執行的5個歷史記錄

 

# history  -c  //清除歷史記錄

 

# sysdef -h  //查看主機ID(Unix)

 

# hostname  //顯示主機名

 

# hostname  -a  //顯示主機別名

 

# hostname  -d  //顯示主機域名

 

# hostname  -i  //顯示主機IP地址

 

# hostname 主機名 //設置主機名稱

 

# hwclock  //獲取當前硬件時間

 

# hwclock --show  //查看硬件時間

 

# clock --show    //查看硬件時間

 

# hwclock –version  //顯示hwclock命令的版本信息

 

# info 命令 //顯示相應命令info內容

 

# iostat -d 2 3  //評估磁盤性能,每隔2s刷新一次信息,且刷新3次

 

# lastlog   //最近登入的時間

 

# locale  //顯示系統當前的語言設置

 

# locale -a  //顯示所有可用字體

 

# /etc/sysconfig/i18n  //語言配置文件

 

# lsb_release -a  //查看系統發行版本,該命令適合所有的linux發行版本

 

# lsmod  //顯示所有已加載的模塊

 

# lspci | more //顯示當前系統的硬件配置

 

# lspci -v  //查看系統硬件配置詳細信息

 

# lspci -vv |more //查看系統硬件配置更爲詳細的信息

 

# lspci| grep Ethernet  //查看網卡信息

 

# lspci -tv  //列出所有PCI設備

 

# lsusb  //輸出所有的usb設備

 

# ls /etc/rc3.d/S* |cut -c 15-  //顯示運行3級別開啓的服務

 

# ls -l /lib/modules/$(uname -r)/kernel/fs  //查看Linux支持哪些文件系統

 

# cat /proc/filesystems  //查看當前已加載到內存中支持的文件系統

 

# mount  //列出系統的所有分區

 

# mpstat  //多處理器使用率

 

# netstat -pan|grep 177  //查看177端口情況

 

# netstat -nlap  //查詢進程佔用哪些端口

 

# ps aux  //顯示所有進程狀態和進程的基本信息

 

# ps -e  //查看當前所有進程

 

# ps -u root –N  //顯示所有不是以root身份運行的進程

 

# ps -U ow2003  //顯示ow2003用戶進程

 

# ps -ef |grep ow2003  //顯示ow2003用戶進程

 

# pstree  -h  //高亮顯示當前正在執行的進程

 

# pstree  -p  //以樹狀圖方式顯示進程及進程號

 

# pwd  //顯示當前目錄

 

# rpm -qa redhat-release  //看操作系統版本(只適用RH系列)

 

# rpm -qa | xargs rpm -V  //查看系統中所有被修改過的文件,這對新安裝的系統比較有效

 

# rpm -qa vsftpd | xargs rpm -V  //查看系統中某個rpm包中的文件是否被修改

 

# runlevel  //顯示系統運行級別

 

# set  //顯示所有本地定義的Shell變量

 

# stat -f filename  //顯示文件系統狀態

 

# stat filename  //顯示文件詳細內容

 

# tac /etc/hosts  //與cat相反,是將hosts內容從最後一行到第一行反向顯示在屏幕上

 

# time ls  //查看執行ls命令所需的時間

 

# top n 2  //顯示進程信息,刷新兩次後退出

 

# top -d 2 -n 3 -b >test.txt  //將top的結果輸出到文件test.txt中(每隔2秒,打印3次)

 

# top -bn1  //top命令列出所有進程

 

# top -bn1 > 1.txt  //將進程輸出到文件1.txt裏

 

# touch --help //顯示touch幫助信息

 

# tty  //顯示當前終端的名稱

 

# uname -a  //顯示全部信息

 

64位系統輸出如下信息:

 

Linux server141.guodu.net 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

 

 

 

32位系統輸出如下信息:

 

Linux bank.guodu.net 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux

 

 

 

# uname -i  //顯示硬件平臺

 

# uname -m  //顯示機器硬件名

 

# uname -n  //顯示網絡節點主機名

 

# uname -o  //顯示操作系統

 

# uname -p  //顯示處理器類型

 

# uname -r  //顯示內核版次

 

# uname -s  //顯示內核名

 

 

 

Linux內核版本信息:

 

Redhat 9.0———————————————2.4.20-8

 

RHEL 3 Update 8————————————2.4.21-47

 

RHEL 4 ————————————————2.6.9-5

 

RHEL 4 Update 1————————————2.6.9-11

 

RHEL 4 Update 2————————————2.6.9-22

 

RHEL 4 Update 3————————————2.6.9-34

 

RHEL 4 Update 4————————————2.6.9-42

 

RHEL 4 Update 5————————————2.6.9-55

 

RHEL 4 Update 6————————————2.6.9-67

 

RHEL 4 Update 7————————————2.6.9-78

 

CENTOS 5/RHEL 5 ———————————2.6.18-8

 

CENTOS 5.1/RHEL 5 Update 1——————2.6.18-53

 

CENTOS 5.2/RHEL 5 Update 2——————2.6.18-92

 

CENTOS 5.3/RHEL 5 Update 3——————2.6.18-128

 

CENTOS 5.4/RHEL 5 Update 4——————2.6.18-164

 

CENTOS 5.5/RHEL 5 Update 5——————2.6.18-194

 

CENTOS 5.6/RHEL 5 Update 6——————2.6.18-238

 

 

 

# uptime  //查詢系統自啓動到現在總的運行時間及負載情況

 

# vmstat  //顯示虛擬內存的使用信息

 

# vmstat  2  3  //顯示虛擬內存每隔2s刷新一次信息,且刷新3次

 

# whatis [命令或數據]  //相當於man -f [命令或數據]

 

# yes  string  //設定重複顯示的字符串

 

2、系統管理命令

 

# bc  //調用計算器(如果要輸出小數,則要執行 scale=number,這個number就是小數點後的位數),輸入quit退出bc

 

# chkconfig rlogin on  //開啓rlogin服務

 

# chkconfig rsh on  //開啓遠端服務器rsh

 

# chsh  //shell設置

 

# chsh  -l  //列出當前所有可用的shell

 

# chsh -s /bin/bash  //改變當前的shell設置爲/bin/bash

 

# /bin/sh  //切換shell

 

# exit  //退出shell

 

# clear  //清除終端屏幕

 

# cp /dev/cdrom mycd.iso & //後臺運行製作鏡像(加&)

 

# Ctrl + L  //清除終端屏幕

 

# dos2unix filedos.txt fileunix.txt  //將一個文本文件的格式從MSDOS轉換成UNIX

 

# unix2dos fileunix.txt filedos.txt  //將一個文本文件的格式從UNIX轉換成MSDOS

 

# recode ..HTML page.html  //將一個文本文件轉換成html

 

# recode -l | more  //顯示所有允許的轉換格式

 

 

 

# badblocks -v /dev/hda1  //檢查磁盤hda1上的壞磁塊

 

# fsck /dev/hda1  //修復/檢查hda1磁盤上linux文件系統的完整性

 

# fsck.ext2 /dev/hda1  //修復/檢查hda1磁盤上ext2文件系統的完整性

 

# e2fsck /dev/hda1  //修復/檢查hda1磁盤上ext2文件系統的完整性

 

# e2fsck -j /dev/hda1  //修復/檢查hda1磁盤上ext3文件系統的完整性

 

# fsck.ext3 /dev/hda1  //修復/檢查hda1磁盤上ext3文件系統的完整性

 

# fsck.vfat /dev/hda1  //修復/檢查hda1磁盤上fat文件系統的完整性

 

# fsck.msdos /dev/hda1  //修復/檢查hda1磁盤上dos文件系統的完整性

 

# dosfsck /dev/hda1  //修復/檢查hda1磁盤上dos文件系統的完整性

 

# echo $shell  //顯示當前用戶的默認shell

 

# fg 2178 //將後臺進程編號爲2178調到前臺

 

# ftp 10.52.19.189 &  //讓ftp進程在後臺執行

 

# init 0   //關閉系統(停止)

 

# telinit 0  //關閉系統(3)

 

# init 1   //單用戶模式(root)

 

# init 2   //多用戶文本模式(不能使用NFS)

 

# init 3   //多用戶文本模式(能使用網絡共享)

 

# init 5   //圖形登錄模式

 

# init 6   //重新啓動系統

 

# shutdown -h now  //關閉系統(1)

 

# shutdown -h hours:minutes &   //按預定時間關閉系統

 

# shutdown -c   //取消按預定時間關閉系統

 

# shutdown -r now   //重啓(1)

 

# reboot   //重啓(2)

 

# logout   //註銷

 

# jobs 查看後臺運行的進程

 

# kill -9 2178 //強制終止ID爲2178的進程(強制法可能導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效)

 

# mc  //對當前目錄文件進行可視化管理

 

# ntsysv  //設置系統開機時啓動的各種服務

 

# system-config-services  //圖形界面的設置系統開機時啓動的各種服務

 

# pgrep nslookup  //顯示與指定字符串相關的進程

 

# pgrep -u root -l  //查找由root用戶創建的進程

 

# pgrep -u root -l -v  //查找不是由root用戶創建的進程

 

# ps -aux //顯示當前運行的進程(靜態)

 

# ps -ef  // 查看所有進程

 

# pstree //查看當前進程樹

 

# pwck /etc/passwd  //檢測passwd文件的正確性

 

# pwck /etc/shadow  //檢測shadow文件的正確性

 

# rlogin -l ow2003 10.52.19.200  //以用戶ow2003登錄遠端主機

 

# rmmod 未使用的模塊名  //卸載unused模塊

 

# rsh 10.52.19.189  //登錄遠端主機10.52.19.189

 

# rsh -l ow2003 10.52.19.189  //以用戶ow2003登錄遠端主機

 

# runlevel //顯示系統當前運行級別

 

# sleep 2m  //讓系統休眠2分鐘

 

# ssh 10.52.19.189  //登錄遠端主機10.52.19.189

 

# ssh -l ow2003 10.52.19.189  //以用戶ow2003登錄遠端主機

 

# sudo -L  //顯示sudo命令可以使用的參數及相關描述信息

 

# sudo -u ow2003 ls -l /home  //以用戶ow2003身份執行命令

 

# suspend  //暫停正在使用的shell

 

# suspend -f  //強制暫停正在使用的shell

 

# symlinks -v /  //顯示根目錄下的所有符號鏈接

 

# testparm  //測試samba配置,回車後繼續

 

# top //顯示當前運行的進程(動態)

 

# top (Ctrl+Z) // 將當前top進程調到後臺並停止

 

# vlock  //鎖定虛擬終端

 

# watch -n 10 --difference=cumulative who  //以高亮字符顯示累加差異

 

# watch -n 10 who  //每隔10秒執行一次who命令

 

# whereis  //找到指定文件的源、二進制文件和手冊等各部分

 

# xkill  //鼠標點死掉的圖形即可終止,如果想終止xkill ,按右鍵取消

 

 

 

bash 快捷鍵:

 

常用:

 

Ctrl+a  開始位置

 

Ctrl+e  最後位置

 

Ctrl+k  刪除此處至末尾所有內容

 

Ctrl+u   刪除此處至開始所有內容

 

Ctrl-C  殺死當前任務

 

Ctrl-L  刷新屏幕

 

Ctrl-shift-c  複製

 

Ctrl-shift-v  粘貼

 

tab  補全

 

 

 

terminal窗口操作:

 

Alt+1  切換到標籤頁1

 

Alt+2  切換到標籤頁2

 

Alt+3  切換到標籤頁3

 

Ctrl+PageDown  後一標籤頁

 

Ctrl+PageUp  前一標籤頁

 

Shift+Ctrl+N  新建窗口

 

Shift+Ctrl+PageDown  標籤頁右移

 

Shift+Ctrl+PageUp  標籤頁左移

 

Shift+Ctrl+Q  關閉終端

 

Shift+Ctrl+T  新建標籤頁

 

Shift+Ctrl+W  關閉標籤頁

 

 

 

terminal窗口中的複製/粘貼:

 

Shift+Ctrl+C  複製

 

Shift+Ctrl+V  粘貼

 

 

 

改變terminal窗口大小:

 

!!  執行上一條命令

 

!?string?  執行含有string字符串的最新命令

 

!num  執行命令歷史列表的第num條命令

 

↑(Ctrl+p)  顯示上一條命令

 

↓(Ctrl+n)  顯示下一條命令

 

Alt+<  歷史列表第一項

 

Alt+>  歷史列表最後一項

 

Ctrl -   減小

 

Ctrl+Shift +  放大

 

Ctrl 0  原始大小

 

Ctrl+r  然後輸入若干字符,開始向上搜索包含該字符的命令,繼續按Ctrl+r,搜索上一條匹配的命令

 

Ctrl+s  與Ctrl+r類似,只是正向檢索

 

F11:全屏

 

history  顯示命令歷史列表

 

ls !$  執行命令ls,並以上一條命令的參數爲其參數

 

 

 

光標移動:

 

Alt+b  光標向後移動一個單詞

 

Alt+c  把當前詞彙變成首字符大寫

 

Alt+d   剪切光標之後的詞

 

Alt+f  光標向前移動一個單詞

 

Alt+l  把當前詞轉化爲小寫

 

Alt+t  交換當前與以前單詞的位置

 

Alt+u  把當前詞轉化爲大寫

 

Ctrl+(x u)  按住Ctrl的同時再先後按x和u,撤銷剛纔的操作

 

Ctrl+a  光標移到行首。

 

Ctrl+b  光標左移一個字母

 

Ctrl+c  刪除整行

 

Ctrl+d  刪除光標所在字母(注意與backspace以及Ctrl+h的區別,這兩個是刪除光標前的字符)

 

Ctrl+d  退出當前 Shell(當前行無字符時)

 

Ctrl+e  光標移到行尾。

 

Ctrl+f  光標右移。

 

Ctrl+h  刪除光標前一個字符,相當於按 backspace 鍵。

 

Ctrl+k  清除光標後至行尾的內容。

 

Ctrl+l  清屏,相當於clear

 

Ctrl+q  重新啓用掛起的shell

 

Ctrl+r  搜索以前輸入過的命令。將有提示,根據輸入的關鍵字搜索bash的history

 

Ctrl+s  掛起當前shell

 

Ctrl+t  交換光標位置前的兩個字符。

 

Ctrl+u  清除光標前至行首間的所有內容。

 

Ctrl+v 插入特殊字符,如Ctrl+v+Tab加入Tab字符鍵

 

Ctrl+w  清除光標所在處之前的一個詞(以空格、標點等爲分隔符)

 

Ctrl+y  粘貼或恢復上次的刪除。

 

Ctrl+z  把當前進程轉到後臺運行,使用 fg 命令恢復。

 

Esc+b  移動到當前單詞的開頭

 

Esc+f  移動到當前單詞的結尾

 

Esc+t  顛倒光標所在處及其相鄰單詞的位置

 

Esc+w  刪除光標所在處之前的字符至其單詞尾(以空格、標點等爲分隔符)

 

 

 

3、系統維護命令

 

# alias  //列出已設置的別名

 

# alias rm 'rm -i'  //設置別名

 

# authconfig  //設置系統的認證信息

 

# bind -l  //顯示按鍵組合的內容

 

# bind -q abort  //查詢abort上綁定的鍵

 

 

 

# chattr +i filename  //禁止刪除

 

# chattr -i filename  //取消禁止

 

# chattr +i /etc/fstab  //禁止修改fstab文件

 

# chattr -i /etc/fstab  //取消禁止修改fstab文件

 

# chmod 4755 test  //使test文件具有SUID權限(4爲SUID)。SUID對目錄是無效的

 

# chmod 2755 test  //使test文件具有SGID權限(2爲SGID)。SGID可用於文件或目錄

 

# chmod 1755 /test  //使/test目錄具有SBIT權限(1爲Sticky bit即SBIT)。SBIT只對當前目錄有效

 

# chmod 7666 test  //test文件擁有者無執行權限,設置後的大寫S、T表示“空的”,即沒有執行權限

 

# lsattr -a  test //顯示文件test的隱藏屬性

 

# lsattr -a  //顯示當前目錄下所有的目錄和文件,包括隱藏文件或目錄

 

# lsattr -R  //遞歸顯示指定目錄及子目錄的內容

 

# lsattr  //顯示當前目錄下的文件屬性

 

# chkconfig  --list  //列出chkconfig所知道的所有服務

 

# chkconfig telnet off  //關閉telnet服務

 

# chkconfig telnet on  //開啓telnet服務

 

# cat /etc/sysconfig/clock  //查看所屬時區和是否使用UTC時間

 

 

# date -s 2007-08-03  //只修改日期

 

# date -s "2007-08-03 14:15:00"  //同時修改日期和時間,加雙引號

 

# date -s 02/16/2012  //修改日期(按月日年格式)

 

# date -s 13:56:00  //修改時間(按時分秒格式)

 

# clock -r  //查詢BIOS時間

 

# cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime  //修改時區

 

修改/etc/sysconfig/clock文件的內容爲:

 

ZONE=”Asia/Shanghai”

 

UTC=false

 

ARC=false

 

# hwclock –w  //同步BIOS時間

 

# hwclock -set -date="07/07/06 10:19:00''  //設置硬件時間(月/日/年 時:分:秒)

 

# clock -set -date="07/07/06 10:19:00''    //設置硬件時間(月/日/年 時:分:秒)

 

# hwclock -hctosys  //硬件時鐘與系統時鐘同步(hc代表硬件時間,sys代表系統時間)

 

# clock -hctosys  //硬件時鐘與系統時鐘同步(hc代表硬件時間,sys代表系統時間)

 

# hwclock -systohc  //系統時鐘與硬件時鐘同步

 

# clock -systohc  //系統時鐘與硬件時鐘同步

 

# tzselect  //時區設置

 

# DEB 包 (Debian, Ubuntu 以及類似系統)

 

# dpkg -i package.deb  //安裝/更新一個 deb 包

 

# dpkg -r package_name  //從系統刪除一個 deb 包

 

# dpkg -l  //顯示系統中所有已經安裝的 deb 包

 

# dpkg -l | grep httpd  //顯示所有名稱中包含 "httpd" 字樣的deb包

 

# dpkg -s package_name  //獲得已經安裝在系統中一個特殊包的信息

 

# dpkg -L package_name  //顯示系統中已經安裝的一個deb包所提供的文件列表

 

# dpkg --contents package.deb  //顯示尚未安裝的一個包所提供的文件列表

 

# dpkg -S /bin/ping  //確認所給的文件由哪個deb包提供

 

# declare BASH=/bin/csh  //修改變量BASH的值爲/bin/csh

 

# declare -p  //顯示shell的所有變量及值

 

# declare -x  //顯示所有環境變量的值

 

# dircolors -b  //顯示Bourne Shell顏色代碼設置

 

# dircolors -c  //顯示C Shell顏色代碼設置

 

# dircolors -p  //顯示ls命令默認顏色值

 

# enable -a  //顯示shell的所有內置指令

 

# enable alias  //加載內部命令alias

 

# enable -n alias  //關閉alias

 

# eval pwd;df -h;ls  //連接多個命令pwd,df -h和ls

 

# export MYENVIRON  //自定義一個環境變量MYENVIRON

 

# export MYNAME= " Wang Xuri"  //定義環境變量並賦值

 

# export -p  //列出當前的環境變量值

 

# unset MYNAME  //清除環境變量MYNAME

(注:以上命令使用的shell是bash)

 

 

 

# fdisk /mbr  //刪除GRUB

 

# hostid  //顯示當前主機的數字標識

 

# ldd /bin/ls  //顯示/bin/ls命令所使用的共享函數庫

 

# ldd -v /bin/ls  //以冗餘模式顯示的/bin/ls所使用的共享函數庫

 

# losetup /dev/loop0  //顯示設備/dev/loop0的狀態

 

# depmod  //分析可載入模塊的相依性

 

# insmod  //載入模塊

 

# lsmod  //顯示所有已加載的模塊

 

# lsmod -v usb-uhci  //使用insmod命令安裝模塊"usb-uhci"

 

# modinfo  //顯示kernel模塊的信息

 

# modprobe  //自動處理可載入模塊

 

# modprobe -c  //顯示當前自動處理可載入模塊的默認配置

 

# rmmod  //刪除模塊

 

# modprobe -v 8139too  //安裝網卡8139too

 

# mouseconfig --device psaux  //指定鼠標端口爲PS/2,鼠標爲psaux

 

# mouseconfig --noui genericusb  //以命令形式指定鼠標類型爲genericusb

 

# mouseconfig --text  //在圖形界面方式下配置鼠標

 

# resize -c  //使用C shell表示當前終端窗口大小

 

# resize -s 30 100  //設置虛擬終端大小,高爲30列,長爲100個字符

 

# resize -u  //使用Bourne shell表示當前終端窗口大小

 

# rpm --checksig package.rpm   //確認一個rpm包的完整性

 

# rpm -e package-name //卸載具體的軟件包

 

# rpm -ev RealPlayer  //卸載軟件RealPlay

 

# rpm -hiv RealPlayer10GOLD.rpm  //安裝RealPlayer10GOLD.rpm包

 

# rpm -i mplay.rpm   //安裝mplay軟件包(不顯示信息)

 

# rpm -ivh --force mplay.rpm    //強制安裝mplay軟件包(顯示信息)

 

# rpm -ivh package-name //安裝軟件包並顯示過程

 

# rpm -oldpackge mplay.rpm  //降級mplay軟件包

 

# rpm -q http //查詢指定的包http是否安裝

 

# rpm -q installed-package-name //查看是否安裝

 

# rpm -q telnet-server //查看telnet服務器包

 

# rpm -qa //查看系統中已安裝的所有rpm包(不分屏)

 

# rpm -qa|grep ftp //查詢指定RPM

 

# rpm -qa|less //查詢已安裝RPM(分屏)

 

# rpm -qf luo //查詢文件luo所屬的軟件包

 

# rpm -qf package-name //查詢某個文件所屬的軟件包

 

# rpm -qi http    //查詢指定的包http詳細信息(已安裝)

 

# rpm -qi package-name //查看軟件的描述信息

 

# rpm -qi Realplayer  //查詢RealPlay的安裝信息

 

# rpm -ql http    //查詢指定的包http文件列表(已安裝)

 

# rpm -ql package-name //查詢軟件包的文件列表

 

# rpm -qp package-name //查詢未安裝的軟件包信息

 

# rpm -qpi http   //查詢指定的包http詳細信息(未安裝)

 

# rpm -qpl http   //查詢指定的包http文件列表(未安裝)

 

# rpm -U mplay.rpm //升級mplay軟件包

 

# rpm -Uvh package-name //升級軟件包並顯示過程

 

# rpm -V package-name //驗證軟件包的大小,類型等等

 

# which mount //獲得mount所屬包可執行文件路徑

 

# for i in ‘rpm -qa |grep -i php’

 

  >do rpm -e $i -nodeps

 

  >done  //刪除系統中與軟件php相關的所有已安裝的軟件包

 

# alias td  //顯示別名信息

 

# alias td=tcpdump  //tcpdump命令設置別名td

 

# runlevel  //顯示當前系統運行等級

 

# runlevel 2  //設置執行級別

 

# set  //顯示當前的環境變量設置

 

# set SHELL “/bin/sh”  //設置環境變更SHELL的值爲/bin/sh

 

# setserial -a /dev/ttyS1  //顯示串口/dev/ttyS1的詳細配置信息

 

# setserial -v /dev/ttyS1  //顯示串口/dev/ttyS1的配置信息

 

# setup  //用來設置認證、防火牆、鼠標、網絡配置、系統服務等公用程序

 

# fdisk -l  //顯示分區信息

 

# startx & init 5  //進入圖形界面

 

# swapoff /dev/sda3  //卸載交換區/dev/sda3

 

# swapon /dev/sda3  //加載交換區/dev/sda3

 

# sync  //將內存信息同步寫入磁盤(在一些“危險”操作前使用)

# system-config-  //連續按兩下tab鍵,調出配製命令列表,以備選用

 

# tmpwatch -t 100 /tmp/  //查看100小時內未被使用的文件(不刪除文件,僅進行測試)

 

# tmpwatch 100 /tmp/  //刪除/tmp目錄下100小時內未被使用的文件

 

# tmpwathc -s 100 /tmp/  //在刪除文件之前,使用fuser命令檢測該文件是否正被使用

 

# ulimit -a  //顯示系統資源配置

 

# ulimit -n 1000  //設置同一時間可打開的文件數目

 

# ulimit -u 500  //設置單用戶創建進程上限爲500

 

# ulimit -v 1024  //設置最大虛擬內存數

 

# unalias td  //刪除別名

 

# unset pwd  //刪除環境變量

 

# up2date  //升級Red Hat Linux系統

 

# up2date -l  //列出所有可用的升級包

 

 

 

釋放linux系統的內存(在RHEL4.0及以上版本測試通過。注:在應用程序未退出時不能使用該命令):

 

# free -m

 

# sync

 

# echo 3 > /proc/sys/vm/drop_caches

 

# cat /proc/sys/vm/drop_caches

 

# free -m

 

 

 

# ./configure;make;make install  //編譯安裝過程(cd到安裝目錄執行)

 

# sh ./file_name  //安裝.run後綴文件

 

# system-config-packages //啓動圖形界面包管理程序

 

# nvidia-settings  //設置nvidia顯卡

 

 

 

爲內核打補丁

 

# bunzip2 patch-2.6.0-rmk2.bz2  //將包解壓成patch-2.6.0-rmk2

 

# mv patch-2.6.0-rmk2 ./linux-2.6.0  //將補丁移到大內核目錄

 

# cd linux-2.6.0   //進入內核目錄

 

# patch -p1 < patch-2.6.0-rmk2   //“<”前後各有一個空格,-p1中的1是數字1。若補丁文件非bz2格式,如gz,則可用以下命令爲內核打補丁:

 

# zcat ./patch-2.6.0-rmk2.gz | patch -p1

 

# YUM 軟件包升級器 - (Fedora, RedHat及類似系統)

 

# yum install package_name  //下載並安裝一個rpm包

 

# yum localinstall package_name.rpm  //將安裝一個rpm包,使用你自己的軟件倉庫爲你解決所有依賴關係

 

# yum update package_name.rpm  //更新當前系統中所有安裝的rpm包

 

# yum update package_name  //更新一個rpm包

 

# yum remove package_name  //刪除一個rpm包

 

# yum list  //列出當前系統中安裝的所有包

 

# yum search package_name  //在rpm倉庫中搜尋軟件包

 

# yum clean packages  //清理rpm緩存刪除下載的包

 

# yum clean headers  //刪除所有頭文件

 

# yum clean all  //刪除所有緩存的包和頭文件

 

# iconv -f big5 -t utf8 vi.big5 -o vi.utf8  //把用big5編碼的文件vi.big5轉成utf8編碼文件vi.utf8

 

# iconv -f utf8 -t big5 vi.utf8 | \

 

> iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8  //把用繁體編碼的utf8文件vi.utf8轉成簡體的utf8文件vi.gb.utf8

 

 

 

 

4、自動作業處理

 

# /sbin/service anacron restart  //重啓anacron服務

 

# /sbin/service anacron start  //啓動anacron服務

 

# /sbin/service anacron stop  //停止anacron服務

 

# /usr/sbin/atd  //啓動atd守護進程

 

# at -c 6  //顯示已經設置的任務6的內容

 

# at -l  //查詢已設置的任務

 

# atd  -d  //以輸出調試信息的方式運行隊列中的任務

 

# atq  //查詢當前已設置的任務

 

# atrm 3  //刪除當前任務隊列中的第3個任務

 

# atrun  //執行已排隊的任務

 

# cat /var/spool/cron/root //查看任務內容

 

# chkconfig --level 35 crond off //關閉crond服務(在3,5級別)

 

# chkconfig --level 35 crond on  //啓動crond服務(在3,5級別)

 

# chkconfig --level級別列表 服務名稱 [on|off|reset]

 

# chkconfig --level 24 syslog off //設置syslog 2,4級別的啓動狀爲off

 

# chkconfig --list 服務名稱

 

# chkconfig --list //顯示已運行所有服務的啓動狀態

 

# chkconfig --list syslog //顯示指定syslog服務的啓動狀態

 

# chkconfig服務名 [on,off,reset]

 

# chkconfig rsync on //設置rsync服務狀態爲啓動

 

# chkconfig --list crond  //查詢crond在各運行級別的啓動狀態

 

# chkconfig --list|grep iptables  //查看防火牆狀態

 

# crontab -e //編輯cron任務(編完後,系統默認保存位置是/tmp)

 

# crontab -l //查看當前的cron任務列表

 

# crontab -r //刪除cron任務

 

# rpm -qa anacron  //查看系統中是否已安裝anacron服務

 

# rpm -qa crontabs  //檢查系統中是否已安裝crond服務

 

# service crond restart  //重啓cron服務

 

# service crond start  //啓動crond服務

 

# service crond status  //查看cron服務啓動狀態

 

# service crond stop  //停止crond服務

 

# pgrep crond  //判斷crond 是否在運行

 

# pkill crond  //殺掉正在運行中的crond

 

# pgrep crond  //查看是否被殺掉了

 

# /usr/sbin/crond  //運行crond

 

# /etc/init.d/crond stop  //停止cron服務

 

# /etc/init.d/crond restart  //重啓cron服務

 

 

 

5、系統日誌

 

# /sbin/syslogd  //啓動syslog日誌守護進程

 

# /sbin/syslogd -r  //守護進程可以接收來自網絡的syslog信息

 

# killall -HUP syslogd  //重新修改配置文件後,重啓syslog進程使其生效

 

# echo > /user/local/apache/logs/error_log  //清空Apache服務日誌

 

 

 

二、用戶和用戶組管理

 

# ac  //查看系統總的連接時間

 

# ac -d  //按天對連接進行彙總

 

# ac -p  //列出所有用戶的連接時間

 

# cat /etc/shadow  //查看/etc/shadow文件

 

# chage  //改變用戶變更密碼的期限,要求用戶必須在幾天之內變更密碼

 

# chage -l ow2003  //查看ow2003用戶密碼的有效期

 

# chfn  //用來改變一個用戶的完整用戶名和其他信息

 

# chpasswd  //一次性更新一組現有用戶的密碼

 

# chroot /tmp/empty /ls –Rl /  //以/tmp/empty爲根運行ls命令

 

# chsh  //改變用戶的缺省登陸shell

 

# cut -d: -f 1 /etc/group  // 查看系統所有組

 

# cut -d: -f 1 /etc/passwd  // 查看系統所有用戶

 

# dpasswd  //刪除或者更新用戶登錄shell的撥號密碼

 

# expiry  //檢查並強制執行密碼失效策略

 

# faillog  //檢查登錄失敗日誌/var/log/faillog,設置允許登錄失敗的次數或重置失敗次數

 

# finger -l  //列出當前登錄用戶的相關信息

 

# finger ow2003  //查看ow2003用戶描述信息

 

# gpasswd  //用來管理/etc/group文件

 

# grep ow2003 /etc/shadow  //查看ow2003是否禁用(用戶名後緊跟!號)

 

# grep ow2003 /etc/shadow  //查看ow2003是否啓用(用戶名後無!號)

 

# groupadd  //建立新的用戶組

 

# groupadd benet //添加benet組

 

# groupadd -g 502 student  //添加用戶組student,GID爲502

 

# groupadd -g benet st03 //添加st03用戶並指定屬於benet組

 

# groupdel  //刪除用戶組

 

# groupdel benet //刪除benet組

 

# groupmod  //修改用戶組

 

# groupmod -n new_group_name old_group_name   //重命名一個用戶組

 

# groupmod -g 503 teacher  //修改teacher用戶的組標識爲503

 

# groupmod -g  550 -n dirctor teacher  //將teacher用戶組標識號改爲550,用戶組名改爲director

 

# groups  //顯示當前用戶所屬的用戶組

 

# grpck  //校驗用戶組文件的完整性,/etc/group 和 /etc/gshadow

 

# grpconv  //根據/etc/group文件建立/etc/gshadow文件

 

# grpunconv  //根據/etc/group和/etc/gshadow文件建立新的/etc/group文件,並刪除/etc/gshadow文件

 

# id  //顯示當前用戶的UID、GID和用戶所屬的組列表

 

# id  用戶名 // 查看指定用戶信息

 

# id -g  //顯示當前用戶的用戶組GID

 

# id -G  //顯示所有的用戶組GID

 

# id -G -n  //顯示所有的羣組名稱

 

# id ow2003  //顯示指定用戶ow2003的用戶信息

 

# id root  //顯示root用戶的用戶信息

 

# last  //顯示最近用戶的登錄信息(last命令查找/var/log/wtmp文件)

 

# last -n 10  //僅顯示10行記錄

 

# last -x  //查詢最近用戶登錄情況,同時顯示系統關機及系統運行等級變化

 

# lastb  //顯示最近登錄失敗用戶信息(lastb命令查找/var/log/btmp文件)

 

# lastlog  //格式化並輸出最後一個登錄日誌的內容,或者是某個用戶的最近一次登陸內容

 

# ln /usr/sbin/groupadd /usr/sbin/addgroup  //創建名爲addgroup的鏈接命令,鏈接到groupadd命令

 

# login  //系統用它來允許用戶登陸

 

# logname  //顯示登錄用戶的用戶名

 

# logoutd  //用/etc/porttime中的設置強制限制登錄時間和端口

 

# mkpasswd  //讀取參數設定的某格式文件並轉化至相應的數據庫文件格式

 

# newgrp  //不指定轉換的用戶組時,系統默認轉換爲登錄時的用戶組

 

# newgrp [-] [groupname]  //選項“-”用於重新加載用戶工作環境。如果不帶“-”選項,則在切換用戶組時,用戶的工作環境(包括當前工作目錄等)不會改變

 

# newgrp bin  //改變當前用戶的主用戶組爲bin

 

# newusers  //批量加入新的用戶

 

# passwd  //修改當前用戶的密碼

 

# passwd -d ow2003  //快速刪除ow2003用戶的密碼

 

# passwd -l ow2003  //鎖定ow2003用戶使其不能登錄

 

# passwd ow2003  //根用戶修改普通用戶ow2003的密碼

 

# passwd -u ow2003  //解鎖ow2003用戶使其可以登錄

 

# pwck  //校驗密碼文件的完整性,/etc/passwd 和 /etc/shadow

 

# pwconv  //根據/etc/passwd文件建立/etc/shadow文件(解決兩者不匹配時的問題,如用戶ow203在passwd中有記錄而在shadow中無記錄的現象;解決無法進入圖形界面的用戶和組管理器現象)

 

# pwunconv  //根據/etc/shadow和/etc/passwd文件建立新的/etc/passwd文件,並刪除/etc/shadow文件

 

# rwho -a  //顯示局域網內所有用戶

 

# sg  //設置用戶的GID到指定組,或者以指定組的身分執行一個命令

 

# su -  //切換爲根用戶

 

# touch /etc/nologin  //在系統維護期間禁止用戶登錄(但不限於SSH登錄)

 

# useradd  //添加新的用戶或者改變新用戶的默認信息

 

# useradd -D  //顯示當前的默認值

 

# useradd -D -s /bin/csh  //修改該命令所用shell的默認值爲/bin/csh

 

# useradd wxr2 -u 502 -d /home/wxr -s /bin/bash -e 10/30/11 -g 100  //添加一新用戶wxr2,UID爲502,用戶組ID爲100,用戶目錄爲/home/wxr,用戶的默認shell爲/bin/bash,賬號的失效期爲2011年10月30日

 

# userdel  /刪除用戶

 

# userdel ow2003 //刪除 ow2003用戶(僅刪帳號)

 

# userdel -r ow2003 //刪除 ow2003用戶(連同主目錄刪除)

 

# usermod  //修改用戶信息

 

# usermod -d /home/wxr2 -s /bin/ksh -g users wxr  //用戶登錄目錄改爲/home/wxr2,用戶登錄shell改爲ksh,用戶所在組改爲users和wxr

 

# usermod -g benet st03 //設置st03用戶新的組名爲benet

 

# usermod -G szxs st03  //添加st03用戶到其它組szxs(多組)

 

# usermod -L ow2003 //禁用ow2003用戶

 

# usermod -U ow2003 //啓用ow2003用戶

 

# usermod -u0 -o ow2003 //提升ow2003用戶管理員權限

 

# users  //顯示所有登錄的用戶

 

# vigr  //能用來編輯 /etc/group 或 /etc/gshadow文件

 

# vigr /etc/group  //編輯group時自動對該文件加鎖,編輯結束時自動解鎖

 

# vipw  //編輯passwd時將自動對該文件加鎖,編輯結束時自動解鎖

 

# vipw  //能用來編輯 /etc/passwd 或 /etc/shadow文件

 

# w -f  //顯示登錄用戶信息,但不顯示登錄位置(即from字段)

 

# w -h  //在顯示登錄用戶信息時,不顯示標題欄

 

# w root  //只查詢指定用戶root的信息

 

# w -s  //以精簡模式顯示登錄用戶信息

 

# w // 查看當前登陸用戶及所進行的操作

 

# who -H  //顯示登錄系統的用戶信息時,顯示標題欄

 

# who -H -m  //只顯示使用當前標準輸入設備的用戶

 

# who -H -p  //顯示由init進程創建的活動進程

 

# who -H -u  //顯示空閒時間段

 

# who -q  //顯示所有登錄的用戶名以及登錄用戶的數目

 

# who -T -H  //顯示用戶狀態信息

 

# who  // 顯示當前登陸系統的用戶

 

# whoami  //顯示當前登錄用戶名稱

# skill -9 pts/2  //殺掉從pts/2虛擬終端登錄的用戶

 

# write wang

 

EOF  //向登錄用戶wang發送即將關機的信息

 

System will shutdown soon!

 

 

 

三、磁盤管理

 

# blkid  //列出當前系統中所有已掛載文件系統的類型

 

# blkid -s LABEL  //僅顯示每個(指定)設備相匹配的標籤

 

# blkid /dev/sda1  //查看/dev/sda1設備所採用的文件系統類型

 

# e2label device [newlabel]  //改變本地設備文件系統的label名稱

 

# dd if=/dev/zero of=f1 bs=10MB count=2  //用虛擬文件f1檢查配額情況

 

# dd if=/dev/sda of=/home/backup/boot_MBR bs=446 count=1  //備份MBR。解決Linux和Windows雙系統的引導問題(IED硬盤爲hda)

 

# dd if=/home/backup/boot_MBR of=/dev/sda bs=446 count=1  //恢復MBR

 

# dd if=/dev/zero of=/home/loopdev bs=1M count=512  //創建一個空的文件在/home/loopdev

 

# mkfs -t ext3 /home/loopdev  //對/home/loopdev進行格式化

 

# mount -o loop /home/loopdev /media/cdrom  //掛載/home/loopdev這個loop設備到/media/cdrom目錄

 

# df //用於報告文件系統的總容量,使用量,剩餘容量

 

# df -ah  //查詢所有分區使用量,以可被識別的方式展現

 

# df -h  //以用戶容易識別的方式顯示磁盤空間使用情況

 

# df -i  //以inode模式顯示磁盤的使用情況

 

# df -T //查看磁盤格式掛載後的信息

 

# df -t ext3  //只顯示ext3類型磁盤的信息

 

# df -x ext3  //不顯示指定磁盤類型的磁盤使用信息

 

# dmesg | grep IDE  // 查看啓動時IDE設備檢測狀況

 

# dmesg | grep DMA  //查看硬盤是否運行在DMA模式

 

# du -a DirPath  //顯示所有文件及其子目錄佔用的數據塊數

 

# du -a | sort -n > /home/disk_used &  //將顯示結果儲存到/home/disk_used文件中

 

# du -b /home  //查看目前/HOME目錄的容量(k)及子目錄的容量(k)

 

# du -sh DirPath //以用戶易讀格式顯示目錄大小

 

# du -sk DirPath //查看目錄的容量(k)

 

# du -sm DirPath  //查看目錄的容量(m)

 

# fdisk /dev/sda //對磁盤sda進行分區

 

# fdisk -l  //查看磁盤及分區信息

 

# sfdisk -l  //查看磁盤及分區信息

 

# sfdisk -s  //查看系統中所有磁盤的大小

 

# fdisk -s /dev/sdb  //顯示/dev/sdb設備中所有分區大小總和

 

# fdisk -s /dev/sdb2  //顯示/dev/sdb2分區大小

 

# fdisk -v  //顯示fdisk版本號

 

# hdparm -i /dev/hda // 查看磁盤參數(僅適用於IDE設備)

 

# mkfs.ext2 /dev/sda1 //格式化sda1爲ext2格式

 

# mkfs.ext3 /dev/sda2  //格式化sda2爲ext3格式

 

# mount  //顯示當前已掛載的文件系統

 

# mount -a  //搜索/etc/fstab文件中滿足條件的文件系統,進行掛載操作。只有root用戶可以操作。

 

# mount -l  //列出所有已經掛載的文件系統列表

 

# mount /dev/sda1 /bbb //掛載sda1到/bbb目錄下

 

# mount | column -t // 查看掛接的分區狀態

 

# mount -t 文件系統類型 設備路經 訪問路經

 

# mount -t iso9600 /dev/cdrom /mnt/cdrom  //在/mnt/cdrom目錄下掛載光驅(iso9600爲光盤的標準文件系統類型)

 

# mount /dev/cdrom  /aaa/   //掛載設備CDROM到/aaa/目錄下

 

# mount -t ntfs-3g /dev/sdb* /mnt/aaa  //不編譯內核,mount ntfs分區

 

# cp /dev/cdrom 123.iso  //將cdrom內容製作成123.iso鏡像

 

# mount -t iso9660 -o loop xxx.iso /path  //掛載ISO文件

 

# mount -o loop 123.iso /bbb/  //將123.iso鏡像文件掛載到/bbb/下

 

# mount -t isoDVD /dev/cdrom /mnt/cdrom //掛載光驅

 

# mount -t iso9660 /dev/cdrom /mnt/cdrom  //掛載光盤

 

# mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2  //掛載fat32分區

 

# mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3  //掛載ntfs分區

 

# mount -t vfat /dev/hda6 /mnt/cdrom   //掛第一個ide的第六個邏輯分區

 

# mount -no remount, ro /  //以只讀模式重新掛載/分區

 

# mount -n -o remount, rw /  //以讀寫模式重新掛載/分區(單用戶維護模式時有用)

 

# umount /aaa/    //卸載目錄/aaa

 

# umount /dev/cdrom  //卸載設備 cdrom

# showmount -e 10.52.19.4  //顯示對方服務器nfs共享目錄

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

參考:

mount遠程目錄並讓本地非root用戶可讀可寫

http://blog.chinaunix.net/uid-20680966-id-4153081.html

 

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

 

# fuser -km /mnt   //當設備繁忙時強制卸載

 

# eject -n  //查看系統默認的彈出設備

 

# eject  //彈出默認的設備

 

# quotastats  //顯示系統磁盤空間限制的當前狀態

 

# repquota -a  //顯示文件系統的磁盤使用情況

 

# edquota -u ccnp    //對組ccnp設置配額

 

# edquota -u st26    //對用戶設置配額

 

# quota -g ccnp   //查看組ccnp配額情況

 

# quota -u st26   //查看用戶st26配額情況

 

# quotacheck -cmug /     //創建配額文件

 

# quotacheck -mfvug /    //對文件系統的配額進行一致性檢測

 

# quotaon -a  //啓用所有的磁盤配額限制

 

# quotaon /home  //啓用/home的磁盤空間配額

 

# quotaon -aguv  //不指定分區,使用自動搜索啓用磁盤配額

 

# quotaoff -a  //關閉所有配額限制

 

# quotaoff /home  //關閉/home的磁盤配額

 

# quotaoff -aguv  //不指定分區,使用自動搜索關閉磁盤配額

 

# quotaoff -aguv  //不指定分區,使用自動搜索關閉磁盤配額

 

# reboot  //重啓系統

 

# swapon /dev/sdb2  //開啓交換分區/dev/sdb2

 

# swapoff /dev/sdb2  //關閉交換分區/dev/sdb2

 

# swapon -s // 查看所有交換分區

 

# grep SwapTotal  /proc/meminfo  //查看swap空間大小

 

# swapoff -a  //關閉所有交換區

 

# swapon -a  //開啓所有交換區(與上面成對使用後可使swap還原到初始狀態)

 

# fdisk /dev/sdb  //由設備分區(sdb1)來創建SWAP分區,注意分區類型82

 

# mkswap /dev/sdb1  //格式化分區並創建文件系統

 

# vi /etc/fstab  //添加:/dev/sdb1   swap   swap   defaults   0 0 

 

# dd if=/dev/zero of=/data1/image/swap bs=1024 count=2048000  //添加交換文件並設置其大小爲2G

 

# mkswap /data1/image/swap  //創建交換空間

 

# swapon /data1/image/swap  //啓動新增加的2G的交換空間

 

# vi /etc/fstab  //在文件最後加入:/data1/image/swap  swap  swap  defaults 0 0 使得新加的2G交換空間在系統重新啓動後自動生效

 

# vi /etc/fstab //自動掛載磁盤分區,添加: /dev/sdb5 dd ext3 defauls 0 0

 

# vi /etc/fstab  //修改fstab文件中分區裝載設置在defaults後加入usrquota,grpquota 重新掛載文件系統(對根分區設置配額重啓)

 

# sync --version  //顯示sync命令版本信息

 

# sync --help  //顯示sync命令的幫助信息

 

# sync  //將內存數據寫入磁盤

 

# rsync -av -e ssh /home/share/*.doc [email protected]:/usr/local/share  //將一臺名爲student.example.com主機上的/home/share目錄中的所有doc文件備份到主機teacher.example.com的/usr/local/share目錄下

 

# pvdisplay  //查看組成LVM卷的物理卷(PV)

 

# pvcreate /dev/sdd  //在二級SCSI控制器的從屬驅動器上創建一個新物理卷

 

# vgcreate myvolume /dev/sdd1 /dev/sdc2  //創建一個名爲myvolume的VG

 

# lvextend -L 2000M /dev/myvolume/mylogical  //對dev/myvolume/mylogical的容量進行添加

 

# smartctl -H /dev/sdb  //對sdb盤做一下健康自檢(PASSED爲合格)

 

# tune2fs -l /dev/sdc1 |grep "Block size"  //查看ext3文件系統的block size(bytes)

 

Block size:               4096

 

 

 

四、文件和目錄管理

 

# cat /home/333   //查看/home下文件333的內容(不停頓)

 

# cd  //進入當前帳戶所在目錄

 

# cd 配合通配符*會更方便些

 

# cd /home/ccc //進入/home/ccc目錄

 

# cd -  //可以回到你之前所在的那個目錄

 

# cd ../..  //返回上兩級目錄

 

cp [-adfilprsu] 源文件(source) 目標文件(destination)

cp [options] source1 source2 source3 … directory

參數:

-a:相當於-pdr的意思,見後文(常用);

-d:若源文件爲連接文件屬性,則複製連接文件屬性而非文件本身;

-f:若目標文件已存在且無法開啓,則刪除後再嘗試一次;

-i:若目標文件已存在時,在覆蓋時會先詢問操作的進行(常用);

-l:進行硬連接的連接文件創建,而非複製文件本身;

-p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);

-r:遞歸持續複製,用於目錄的複製行爲(常用);

-s: 複製成爲符號鏈接文件,即“快捷方式”文件;

-u:若destination比source舊才更新destination。最後需注意的是,如果源文件有兩個以上,則最後一個目的文件一定要是“目錄”才行。

 

# cp 333 /home/ccc //複製文件333到/home/ccc下

 

# cp 333 444 //複製文件333爲444(同目錄下)

 

# cp -fr test/ /data1/wxr/  //複製當前路徑下的目錄test到指定路徑/data1/wxr/

 

# cp .bashrc bashrc  //將 .bashrc 拷貝成 bashrc 這個文件

 

# cp -a /etc /tmp  //將目錄/etc以完整權限複製到/tmp目錄

 

# dos2unix a.txt b.txt  //將dos格式的a.txt轉換成unix格式的b.txt

 

# dos2unix a.txt  //直接將a.txt中的^M符號刪除(也可用vi命令(:%s/^m//g)刪除)

 

# scp -rp /path/filename username@remoteIP:/path  //從A機複製到B機

 

# scp -rp username@remoteIP:/path/filename /path  //從B機複製到A機

 

# cp /dev/cdrom mycdrom.iso  //將光盤中的內容製成鏡像文件,文件名爲mycdrom.iso

 

# cp /dev/cdrom mycdrom.iso &  //將光盤中的內容製成鏡像文件,文件名爲mycdrom.iso(後臺運行,加&)

 

# dd if=/dev/cdrom of=file.iso  //把 CD/DVD 作成 ISO 文件

 

# mkisofs -r -o mybackup.iso /home/backup  //將/home/backup目錄下的所有文件製成鏡像文件,文件名爲mybackup.iso

 

# mount -o loop mybackup.iso /mnt  //將鏡像文件mybackup.iso掛接到/mnt目錄下

 

# file 222 //顯示文件222的文件類型

 

# file *  //顯示當前目錄下所有文件的文件類型

 

# find /etc -name "host*" -print  //在/etc目錄中查找文件名以host開頭的文件

 

# find  //顯示當前目錄下所有內容(無參數)

 

# find $HOME -print  //查找當前用戶主目錄下的所有文件

 

# find . -group root -exec ls -l { } \;  //查找系統中所有屬於root組的文件

 

# find . -maxdepth 1 -size +1000000c  //查找當前目錄下的大於1M的文件

 

# find . -name "[A-Z]*" -print  //在當前目錄及子目錄中查找文件名以大寫字母開頭的文件

 

# find . -perm -7 -print | xargs chmod o-w  //在當前目錄下查找所有用戶具有讀、寫和執行權限的文件,並取消others用戶的寫權限

 

# find . -perm 755 -print  //當前目錄下查找文件權限位爲755的文件,即文件屬主可以讀、寫、執行,其他用戶可以讀、執行的文件

 

# find . -type d | sort  //查找當前文件系統中的所有目錄並排序

 

# find . -type d -exec tree {} \; | more  //顯示當前目錄的目錄結構並以樹形結構分頁顯示

 

# find . -type f -exec ls -l {} \; | more //查當前目錄下的所有普通文件,並用ls -l命令將它們分頁列出

 

# find . -type f -perm 644 -exec ls -l { } \;  //讓當前目錄中文件屬主具有讀、寫權限,且文件所屬組的用戶和其他用戶具有讀權限的文件

 

# find . -type f -print | xargs file  //查找當前目錄下的文件屬於哪類文件

 

# find / -name "file*" -print | xargs echo "" > /temp/core.log  //在整個系統中查找內存信息轉儲文件(core dump) ,然後把結果保存到/tmp/core.log 文件中

 

# find / -type f -size 0 -exec ls -l { } \;  //查找系統中所有文件長度爲0的普通文件,並列出它們的完整路徑

 

# find /apps -path "/apps/bin" -prune -o -print  //在/apps目錄下(排除/apps/bin目錄)查找文件

 

# find /home -name “*.sgy” –print //查找/home下所有sgy文件

 

# find /usr/sam -path "/usr/sam/dir1" -prune -o -print  //在/usr/sam目錄下查找不在dir1子目錄之內的所有文件

 

# find /var/log -type f -mtime +7 -ok rm { } \;  //查找/var/log目錄中更改時間在7日以前的普通文件,並在刪除之前詢問它們

# find /data/pa/xyz/ -name "*.cgm" -atime +8 -exec rm -f {} \;  //查找並刪除8晝夜(不含8晝夜本身)前被訪問過的cgm文件

 

# find ~ -print  //查找當前用戶主目錄下的所有文件

 

# find DirPath -type f | wc -l  //查看某目錄下有多少個文件

 

# find -name 11*  //查找文件名包含11的所有文件

 

# find -user luo  //查找屬於用戶luo的所有文件

 

# mv 333 /home/ccc //移動文件333到/home/ccc下

 

# mv 333 444 //移動文件333爲444(同目錄下改名)

 

# mv 目錄名 目錄名  //目標目錄已存在,源目錄移到目標目錄,目標目錄不存在,改名

 

# rm 333 //刪除文件333

 

# touch 333 //創建333空文件

chmod ---=0 -w-=2 r--=4  rw-=6 --x=1 -wx=3 r-x=5 rwx=7 s,S,t,T=特殊權限

 

# chmod [ugoa][+-=][rwx] file

u=屬主 g=屬組 o=其它用戶 a=所有用戶 rwx=讀,寫,執行

+-=:加權限,減權限,賦權限

 

# chown -R ow2003 wxr  //更改目錄wxr屬於用戶ow2003

 

# chgrp -R ow2003 wxr  //更改目錄wxr屬於組ow2003

 

# chgrp root *  //把當前目錄中所有文件的組屬性設置成root

 

# chmod 765 111 //爲111文件的屬主設爲完全權限,屬組設成讀寫權,其它用戶具有讀和執行權限

 

# chmod a-r 111 //將111文件所有用戶撤消讀取權限

 

# chmod g+x 111 //將111文件屬組增加執行權限

 

# chmod o+r 111 //將111文件其它用戶增加讀取權限

 

# chmod u+w 111 //將111文件屬主增加可寫權限

 

# chmod g-r,o-r 111  //去掉文件111的同組和其他用戶的讀權限

 

# chmod o=rwx 111  //重設文件111的其他用戶權限爲讀、寫執行

 

# chown :benet 222 //更改文件222屬於組benet

 

# chown st03 222 //更改文件222屬於用戶st03

 

# chown st03:benet 222 //更改文件222屬於用戶st03組benet

 

# find / -perm -u+s  //羅列一個系統中所有使用了SUID控制的文件

 

# chmod u+s /bin/file1  //設置一個二進制文件的 SUID 位 - 運行該文件的用戶也被賦予和所有者同樣的權限

 

# chmod u-s /bin/file1  //禁用一個二進制文件的 SUID位

 

# chmod g+s /home/public  //設置一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的

 

# chmod g-s /home/public  //禁用一個目錄的 SGID 位

 

# chmod o+t /home/public  //設置一個文件的 STIKY 位 - 只允許合法所有人刪除文件

 

# chmod o-t /home/public  //禁用一個目錄的 STIKY 位

 

# cut -d ":" -f 1,7 /etc/passwd  //只顯示第一列(user ID)和第 7 列(user shell) 內容

 

# file  //查看文件類型

 

# grep 字符 文件名 //根據字符匹配來查看文件部分內容

 

# head 10 /home/333 //查看/home下文件333的頭部10行內容

 

# less用法:

 

空格鍵:向下翻動一頁;

 

[PageDown]:向下翻動一頁;

 

[PageUp]:向上翻動一頁;

 

/字符串:向下查詢“字符串”的功能;

 

?字符串:向上查詢“字符串”的功能;

 

n:重複前一個查詢(與/或?有關);

 

N:反向重複前一個查詢(與/或?有關);

 

q:離開less這個程序。

 

# less /home/333 //查看/home下文件333的內容(分屏,可以往前翻頁)

 

# ln -s source_dir destination_dir  //將目標目錄鏈接到源目錄。用絕對路徑。在與源目錄的同級目錄處創建。文件鏈接同理。用ls -l查看,會看到destination_dir -> source_dir 如:

 

# ln -s /home /disk1

 

# ls -l

 

lrwxrwxrwx    1 root   root     4 Apr  7  2010 disk1 -> home/

 

 

 

# unlink destination_dir  //取消目標目錄與源目錄的鏈接

 

# ll -h  //以用戶容易識別的方式的長格式顯示當前目錄的內容

 

# lsattr -a  //顯示所有文件和內容,包括現行目錄“.”與上層目錄“..”

 

# lsattr -R  //遞歸顯示目錄下的所有文件和子目錄

 

# lsattr test  //顯示文件test有屬性

 

# ls  //以短格式顯示當前目錄的內容

 

# ls *  //顯示當前目錄下的所有文件

 

# ls -l  //以長格式顯示當前目錄的內容

 

# ls -l /home/bbb/   //顯示指定目錄/home/bbb的內容

 

# ls -l 111   //只顯示當前目錄下文件111的信息

 

# ls c*  //列出當前目錄下以字母“c”開頭的文件

 

# ls ??n*  //列出當前目錄下所有第3個字母是“n”的文件

 

# ls [b,c]*  //顯示所有以字母b或c開頭的文件名

 

# ls -F | grep /$  //只列子目錄(短格式)

 

# ls -l | grep "^d"  //只列子目錄(長格式)

 

# ls -l |grep "^-"|wc -l  //計算當前目錄下的文件數

 

# ls -l |grep "^d"|wc -l  //計算當前目錄下的目錄數

 

# ls -lSr |more   //以尺寸大小排列文件和目錄

 

# ls --color=never  //不要根據文件特性給予顏色

 

# ls --color=always  //顯示顏色

 

# ls --color=auto  //讓系統自行依據設置來判斷是否給予顏色

 

# ls --full-time  //以完整時間模式(包含年、月、日、時、分)輸出

 

 

 

# lsof |grep 文件系統的掛接點  //查看是否有任何程序正在使用掛接點的文件系統

 

# man -t ls | ps2pdf - ls.pdf  //創建ls命令的pdf格式文件

 

# man -t manpage | ps2pdf - filename.pdf  //創建man的pdf格式文件

 

# mkdir ddd   //在當前目錄下創建ddd目錄

 

# mkdir -p /a/b/c //創建/a/b/c目錄(多層目錄)

 

# mkdir -m a=r wxr  //創建一個目錄wxr且指定該目錄的屬性爲對所有用戶可讀

 

# mkdir -m 700 /data1/wxr/test  //創建新目錄/data1/wxr/test,且指定權限爲700

 

# more /home/333 //查看/home下文件333的內容(僅分屏)

 

# nl  filename  //顯示文件內容時,同時輸出行號

 

# od  filename  //以二進制方式讀取文件內容

 

# pwd //顯示當前所在目錄

 

# rmdir ddd   //刪除ddd目錄(空)

 

# rm -r ddd   //刪除ddd目錄(非空,先詢問)

 

# rm -rf ddd //直接刪除ddd目錄(非空,不詢問)

 

# rm -f /data/*.cgm  //超級用戶下刪除/data目錄下所有.cgm文件(不再詢問)

 

# rm  -i -r ddd  //交互模式刪除ddd目錄(刪除前先詢問)

 

# \rm -r ddd/*    //刪除ddd目錄下文件(不詢問)

 

# sed -n '5,10p' /etc/passwd  //只查看passwd的第5行到第10行內容

 

# setfacl -m u:ow2003:rwx /home/hoework  //對用戶ow2003設置對/homework目錄的讀、寫和執行權限

 

# setfacl -m u:ow2003:rw /home/hoework  //對用戶ow2003設置對/homework目錄的讀、寫權限

 

# setfacl -m u:dba:r /home/hoework  //對用戶組dba設置對/homework目錄的讀權限

 

# setfacl l -x u:dba /home/hoework  //刪除用戶組dba的權限

 

# setfacl -d g:rw  /home/ftp  //對/home/ftp目錄的用戶組設定默認的權限爲讀、寫(若組中用戶重新指定了權限,則默認的組權限將被覆蓋,即具體指定的ACL權限優先於默認ACL權限)

 

# sort /home/ow2003/dk  //顯示文檔dk內容並排序

 

# split -b 900m file file_part  //把文件file以900m增量來分割

 

# cat file_part* >file  //將分割後的文件重新組裝

 

# tac /home/ow2003/dk  //以逆序顯示文檔dk內容(注:與cat相反)

 

# tail 10 /home/333 //查看/home下文件333的尾部10行內

 

# touch aa  //使用touch命令創建aa文件(aa文件不存在)

 

# touch aa  //使用touch命令更新文件aa的時間爲當前時間(aa文件存在)

 

# touch aa -t 200808081500.00  //更新文件aa的存取時間爲指定時間2008年8月8日15點

 

# tree  //顯示文件和目錄由根目錄開始的樹形結構

 

# wc /home/ow2003/dk  //顯示文檔dk的行數、詞數和字數

 

# which ssh  //通過命令which,查找文件ssh(其查找範圍由環境變量$PATH設置)

 

# yes |rm *.cgm  //自動回答rm提出的問題,無需用戶再連續輸入yes

 

 

 

五、備份與壓縮

 

# dd if=/dev/sda | gzip -c | ssh user@ip 'dd of=/mnt/backups/sda.dd'  //通過ssh複製整個硬盤到遠程目錄(帶壓縮)

 

# tar -c 創建包;-x 釋放包;-v 顯示命令過程;-z 代表壓縮包;-t 列出包文件(打包時應儘量採用相對路徑,而不用絕對路徑)         

 

# tar -cvf wxr.tar wxr //把當前wxr目錄打包

 

# tar -cvf wxr.tar wxr --exclude '*.3dv' --exclude '*.3dh' --exclude '*.cgm' --exclude '*.inp'  //把當前wxr目錄打包,並排除.3dv、.3dh、.cgm、.inp文件

 

# tar -zcvf apache.tar.gz --exclude=c --exclude=d   apache  //若/opt/apache/目錄下有 a,b,c,d目錄,只打包a 、b目錄,不打包c 、d目錄

 

# tar -zcvf wxr.tar.gz wxr //把當前wxr目錄打包壓縮

 

# tar -hcvf wxr.tar wxr  //對目錄wxr中鏈接文件也一併打包

 

# tar -rvf wxr.tar file1  //向wxr.tar包添加文件file1

 

# tar -tf  wxr.tar //查看包wxr.tar內容

 

# tar -tzf wxr.tar.gz //查看壓縮包wxr.tar.gz的內容

# tar -jtv -f wxr.tar.bz2 //查看壓縮包wxr.tar.bz2的內容

# tar -jcv -f wxr.tar.bz2 bar/  //將目錄bar打包並壓縮爲wxr.tar.bz2

 

# tar -jxv -f wxr.tar.bz2  //對壓縮包wxr.tar.bz2解壓恢復

 

# tar -jxv -f wxr.tar.bz2 -C bar/  //將壓縮包解壓到目錄bar/      

 

# tar -xvf  wxr.tar -C /home  //恢復包wxr.tar到指定目錄/home

 

# tar -xvf wxr.tar  //解壓縮包wxr.tar

 

# tar -xzf  wxr.tar.gz -C /home //恢復壓縮包wxr.tar.gz到指定目錄/home(不帶-C則恢復到原目錄)

 

# tar -xzf wxr.tar.gz  //解壓縮包wxr.tar.gz    

 

# tar -xzf wxr.tar.gz blah.txt  //從壓縮包wxr.tar.bz2解壓出文件blah.txt

 

# tar -zcvf wxr.tar.gz /project //把目錄project打包並壓縮

 

# tar -zxvf wxr.tar.gz    //壓縮包的文件解壓恢復

# tar cvf - dir1 dir2 | (cd /dir3; tar xvf - )  //將當前目錄dir1 dir2邊打包邊釋放到/dir3目錄下

 

# for ARK in ./*.tar.gz; do tar xvf $ARK; done  //解壓當前目錄下的所有 .tar.gz 結尾的文件(把當前目錄下所有的 .tar.gz 文件的文件名逐一賦給變量 ARK,讓 tar 來引用 ARK 變量)

 

# dump -0f home.dump /home  //將/home目錄備份到文件home.dump

 

# dump -0j -f /root/etc.dump.bz2 /etc  //備份/etc目錄並含壓縮功能

 

# restore -rvf home.dump  //恢復home目錄

 

# restore -tf home.dump  //查看備份文件home.dump的文件列表

 

# dump -w  //查看有無任何文件系統被dump過的數據

 

# zip -r data.zip data //將data文件夾壓縮成了data.zip格式

# unzip data.zip //將data.zip文件解壓到當前文件夾

# zip -r yasuo.zip abc.txt dir1 //把一個文件abc.txt和一個目錄dir1壓縮成爲yasuo.zip

# unzip yasuo.zip //解壓縮yasuo.zip文件

# unzip abc\?.zip //將當前目錄下的abc1.zip,abc2.zip和abc3.zip一起解壓縮(?表示一個字符,如果用*表示任意多個字符) 

# unzip -v large.zip //不解壓,只想查看壓縮文件large.zip的內容

# unzip -t large.zip //檢驗壓縮文件large.zip是否下載完全了

# unzip -j music.zip //用-v選項發現music.zip裏有多級目錄,且子目錄中均爲mp3文件,若想把這些文件都下載到第一級目錄,而非一層一層建目錄

 

六、網絡管理與相關應用

 

# arp -a | awk '{print $4}'  //得到網卡的 MAC地址

 

# dd if=/dev/zero bs=4096 count=1048576 | ssh user@ip 'cat > /dev/null'  //不浪費磁盤的情況下測試網絡速度(通過 ssh 發送 4 GB 數據到遠程主機,但不會佔用任何磁盤空間)

 

# dmesg | grep eth  //顯示每個網卡的硬件配置信息

 

# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all  //關閉ping

 

# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all  //重啓ping

 

# ethtool eth0  //顯示或改變網卡設置(參考:man ethtool)

 

# ifconfig //查看當前有效網絡接口信息

 

# ifconfig -a  //查看當前所有網絡接口信息

 

# ifconfig eth0 //查看指定網絡接口eth0信息

 

# ifconfig eth0 192.168.1.11  //設置eth0接口IP地址(標準掩碼)(相當於動態修改IP)

 

# ifconfig eth0 192.168.1.11 netmask 255.255.255.128 //設置eth0接口IP地址及子網掩碼

 

# ifconfig eth0 hw ether 000C1254D321 //更改網卡物理地址

 

# ifconfig lo  //查看lo狀態

 

# ifdown eth0  //禁用eth0網絡接口

 

# ifdown lo  //關閉本地迴環網絡接口

 

# ifup eth0  //啓用eth0網絡接口

 

# ifup lo  //啓動本地迴環網絡接口

# ip ad sh  //顯示IP地址等信息

 

# iptables -L  // 查看防火牆設置

 

# iptraf  //可交互式IP網絡監控工具

# mii-tool -v  //查看網卡有關信息

 

# netconfig  //設置網絡環境

 

# netstat -antp  // 查看所有已經建立的連接

 

# netstat -apt  //顯示所有TCP應用程序所使用的端口號,並顯示使用此端口號的進程

 

# netstat -lntp  // 查看所有監聽端口

 

# netstat -s // 查看網絡統計信息

 

# netstat -tulnp  //目前系統上已在監聽的網絡連接及其PID

 

# ping 10.52.19.187  //檢測到10.52.19.187之間是否連通

 

# ping -c 5 10.52.19.187  //向10.52.19.187發送5個分組報文

 

# ping -s 6553 -c 5 10.52.19.187  //向10.52.19.187發送5個分組、每組大小爲6553字節的報文(注:最大分組報文不能超過65507字節)

 

# ping -c 8 -i 3 -s 1024 -t 25 10.52.19.187  //向10.52.19.187以3秒間隔、包大小1024字節、IP生存期25、8個包發送報文

 

# route -n  // 查看路由表

 

# tracepath 10.52.19.189  //顯示連接到10.52.19.189的路由

 

# traceroute -n 10.52.19.190  //對到達10.52.19.190的路由進行跟蹤,且使用IP地址表示每一跳主機

 

# ss  //顯示網絡套接字信息,它允許顯示類似netstat一樣的信息

 

# wget 192.168.20.148  //從網站192.168.20.148下載資料

 

 

 

動態增加IP

 

# traceroute 211.148.192.136 //檢測到目的IP經過的路由信息

 

# hostname //查看主機名稱

 

# hostname luo //設置主機名稱爲 luo

 

# ping 192.168.1.10 //Ping主機192.168.1.10

 

# ifconfig eth0 add 10.52.19.147

 

# ifconfig eth0:0 broadcast 10.52.19.255

 

 

 

DNS域名

 

# nslookup 待解析域名(或IP)

 

# nslookup 211.148.192.136 //反向解析IP---域名

 

# nslookup www.163.com   //解析指定的域名---IP

 

# route add default gw 192.168.1.1 //添加默認網關爲192.168.1.1

 

# route del default gw 192.168.1.1 //刪除默認網關爲192.168.1.1

 

 

 

NFS服務

 

# exportfs -auv   //停止輸出所有共享目錄

 

# exportfs -av  //輸出啓用所有共享目錄

 

# exportfs -rv    //重新輸出共享目錄

 

# mount -t nfs 192.168.2.10:/luo /wei //在客戶機上掛載共享目錄到/wei

 

# service iptables stop //關閉防火牆

 

# service nfs start //啓動nfs服務

 

# service portmap start //啓動portmap服務

 

# showmount -a    //顯示NFS服務器的客戶與被掛載目錄

 

# showmount -d    //顯示NFS服務器被掛載的目錄

 

# vi /etc/exports  //修改共享配置文件(加共享目錄)

 

showmount -e 192.168.2.10 6  //在客戶上查看服務器共享目錄

 

 

 

配置文件

 

vi /etc/hosts  vi /etc/network //修改主機名稱配置文件

 

vi /etc/rc.local //修改mac地址配置文件

 

vi /etc/resolv.conf //修改DNS配置文件

 

vi /etc/sysconfig/network-scripts/ifcfg-eth0 //修改網卡配置文件

 

vi /var/spool/cron/username  //修改cron任務配置文件

 

vi /var/spool/mail  //修改郵件配置文件

 

 

 

七、vi/vim編輯器

 

也可建立vi到vim的符號連接(即實際調用的是vim)

 

# mv /bin/vi /bin/vi.bak

 

# ln -s /usr/bin/vim /bin/vi

 

 

 

進入vi的命令:

 

vi  直接進入編輯並創建新文件

 

vi filename  編輯文件(不存在則創建文件),並將光標置於第一行首

 

vi +n filename  打開文件,並將光標置於第n行首

 

vi + filename   打開文件,並將光標置於最後一行首

 

vi +/pattern filename  打開文件,並將光標置於第一個與pattern匹配的串處

 

vi -r filename   在上次正用vi編輯時發生系統崩潰,恢復文件

 

vi file1....filen   打開多個文件,依次進行編輯

 

vi -o aaa bbb   水平窗口打開aaa,bbb兩個文件

 

vi -O aaa bbb   垂直窗口打開aaa,bbb兩個文件(Ctrl+W兩次可在多個文件間切換)

 

多文本編輯的按鍵:

:n  編輯下一個文件

:N  編輯上一個文件

:files  列出目前這個vi的打開的所有文件

 

多窗口情況下的按鍵功能:

:sp [filename]  打開一個新窗口,如果有加filename,表示在新窗口打開一個新文件,否則表示兩個窗口爲同一個文件內容(同步顯示)

 

[ctrl]+w+j

[ctrl]+w+↓   按鍵的按法是:先按下[ctrl]不放,再按下w後放開所有的按鍵,然後再按下j(或向下箭頭鍵),則光標可移動到下方的窗口

 

[ctrl]+w+k

[ctrl]+w+↑    同上,不過光標移動到上面的窗口

 

[ctrl]+w+q    其實就是:q結束離開。例如,想要結束下方的窗口,那麼利用[ctrl]+w+↓移動到下方窗口後,按下:q即可離開,也可以按下[ctrl]+w+q

 

塊選擇的按鍵意義:

字符選擇,將光標經過的地方反白選擇

 

行選擇,將光標經過的行反白選擇

 

Ctrl + v  塊選擇,可以用長方形的方式選擇數據

 

將反白的地方複製起來

將反白的地方刪除

 

 

恢復命令:

 

恢復最後一個指令之前的結果

繼續最後一個指令的執行結果

 

ctrl+r  撤銷恢復

 

恢復光標該行之所有改變

 

 

 

移動光標命令:

 

h   光標左移一個字符

 

l   光標右移一個字符

 

space  光標右移一個字符

 

Backspace  光標左移一個字符

 

k或Ctrl+p  光標上移一行

 

j或Ctrl+n   光標下移一行

 

Enter   光標下移一行

 

w或W   光標右移一個字至字首

 

b或B   光標左移一個字至字首

 

e或E   光標右移一個字至字尾

 

)   光標移至句尾

 

(   光標移至句首

 

光標移至段落開頭

 

光標移至段落結尾

 

nG  光標移至第n行首

 

n+  光標下移n行

 

n-  光標上移n行

 

n$  光標移至第n行尾

 

H   光標移至屏幕頂行

 

M   光標移至屏幕中間行

 

L   光標移至屏幕最後行

 

(注意是數字零)光標移至當前行首

 

光標移至當前行尾

 

 

 

翻屏命令:

 

Ctrl+u  向文件首翻半屏

 

Ctrl+d  向文件尾翻半屏

 

Ctrl+f  向文件尾翻一屏

 

Ctrl+b  向文件首翻一屏

 

nz  將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部

 

 

 

插入文本、複製與粘貼:

 

i   在光標前插入

 

I   在當前行首插入

 

在光標後插入

 

在當前行尾插入

 

在當前行之下新開一行

 

在當前行之上新開一行

 

替換當前字符

 

替換當前字符及其後的字符,直至按ESC鍵

 

從當前光標位置處開始,以輸入的文本替代指定數目的字符

 

刪除指定數目的行,並以所輸入文本代替之

 

ncw或nCW  修改指定數目的字

 

nCC  修改指定數目的行

 

yy  p  複製當前行,並粘貼到下一行

nyy  n爲數字。複製光標所在的向下n行,例如20yy,則是複製20行

y1G  複製光標所在行到第一行的所有數據

yG   複製光標所在行到最後一行的所有數據

y0    複製光標所在的那個字符到該行行首的所有數據

y$    複製光標所在的那個字符到該行行尾的所有數據 

 

shift + i  在該行之首插入字符

 

shift + a   在該行末尾輸入字符

 

shift + r  改寫自光標位置及後面的所有內容

 

shift +o  在光標之上新增一行輸入字符

 

 

 

刪除命令:

 

ndw或ndW  刪除光標處開始及其後的n-1個字

 

d0  刪至行首(爲數字0)

 

d$  刪至行尾

shift + d  剪切至行尾

 

dd  刪除一行

 

ndd  刪除自光標開始的n行

 

刪除光標所在之字符,並進入輸入模式直到《ESC》

 

刪除光標所在之該行資料,並進入輸入模式直到《ESC》

 

x或X  刪除一個字符,x刪除光標後的,而X刪除光標前的

nx  n爲數字,連續向後刪除n個字符。如,要連續刪除10個字符,則:“10x”

 

Ctrl+u  刪除輸入方式下所輸入的文本

 

 

 

搜索及替換命令:

 

/pattern  從光標開始處向文件尾搜索pattern

 

?pattern  從光標開始處向文件首搜索pattern

 

在同一方向重複上一次搜索命令

 

在反方向上重複上一次搜索命令

 

:s/p1/p2/  替換當前行第一個p1爲p2

 

:s/p1/p2/g  將當前行中所有p1均用p2替代

 

:n1,n2s/p1/p2/g  將第n1至n2行中所有p1均用p2替代

 

:g/p1/s//p2/g  將文件中所有p1均用p2替換

 

: 1,$s/old/new/g  將文件中所有的『old』改成『new』

: 1,$s/old/new/gc  將文件中所有的『old』改成『new』,並在改前提示用戶確認

 

: 10,20s/^/ /  將第10行至第20行資料的最前面插入5個空格

 

: %s/^m//g  刪除文件中所有的^M符號

 

 

 

選項設置:

 

all  列出所有選項設置情況

 

term  設置終端類型

 

ignorance  在搜索中忽略大小寫

 

list  顯示製表位(Ctrl+I)和行尾標誌($)

 

number  顯示行號

 

report  顯示由面向行的命令修改過的數目

 

terse  顯示簡短的警告信息

 

warn  在轉到別的文件時若沒保存當前文件則顯示NO write信息

 

nomagic  允許在搜索模式中,使用前面不帶“\”的特殊字符

 

nowrapscan  禁止vi在搜索到達文件兩端時,又從另一端開始

 

mesg  允許vi顯示其他用戶用write寫到自己終端上的信息

 

 

 

最後行方式命令:

 

:n1,n2 co n3  將n1行到n2行之間的內容拷貝到第n3行下

 

:n1,n2 m n3  將n1行到n2行之間的內容移至到第n3行下

 

:n1,n2 d   將n1行到n2行之間的內容刪除

 

:e filename  打開文件filename進行編輯

 

:e! dd   強制關閉當前文件(不保存)打開新文件dd

 

: e!  放棄修改重新編輯 

 

:q!  不保存文件並退出vi

 

:r fff 在當前位置讀入fff文件

 

:set nonu 不顯示行號

 

:set nu 顯示行號

 

:w  保存輸入的內容到當前文件

 

:w eee 另存爲eee文件

 

:wq  保存並退出

 

:x  保存當前文件並退出

 

:n1,n2 w eee  將文件中n1行至n2行的內容保存成eee文件

:!command  暫時離開vi到命令行模式下執行command的顯示結果。例如,“:! ls /home”即可在vi當中查看/home下面以ls輸出的文件信息

 

 

 

寄存器操作:

 

"?nyy  將當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字

 

"?nyw  將當前行及其下n個字保存到寄存器?中,其中?爲一個字母,n爲一個數字

 

"?nyl  將當前行及其下n個字符保存到寄存器?中,其中?爲一個字母,n爲一個數字

 

"?p  取出寄存器?中的內容並將其放到光標位置處。這裏?可以是一個字母,也可以是一個數字

 

ndd  將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中

 

vim操作環境(不建議修改/etc/vimrc文件;建議手動修改~/.vimrc文件)

 

vim常用指令示意圖

 

 

 

 

 

 

八、shell編程

 

# grep $LOGNAME /etc/passwd  //顯示當前登錄用戶使用的shell

 

# sh  //啓動bsh(爲Bourne Shell的簡稱---伯恩shell)

 

# bash  //啓動bash(爲Bourne Again Shell的簡稱)

 

# csh  //啓動C Shell

 

# type [-tpa] name  //bash shell的內置命令。

type:不加任何參數時,type會顯示出name是外部命令還是bash內置命令

-t :當加入-t參數時,type會將name以下面這些字眼顯示出它的意義:

       file:表示爲外部命令

       alias:表示該命令爲命令別名所設置的名稱;

       builtin:表示該命令爲bash內置的命令功能。

-p :如果後面接的name爲外部命令時,纔會顯示完整文件名;

-a :會由PATH變量定義的路徑中,將所有含name的命令都列出來,包含alias

 

# cp /var/spool/mail/root  /etc/crontab \

>  /etc/fstab  /root  //將三個文件複製到root目錄下(如果命令串太長的話,可以用兩行來輸出)。“\[Enter]”爲轉義符,“>”爲系統自動出現的,不需要輸入。

 

# source  ~/.bashrc  //將主文件夾的~/.bashrc的設置讀入目前的bash環境中

 

# .  ~/.bashrc   //將主文件夾的~/.bashrc的設置讀入目前的bash環境中

 

 

# ll -d /etc/cron*  //找出/etc/下面以cron爲開頭的文件名

 

# ll -d /etc/?????  //找出/etc/下面文件名剛好是五個字母的文件名

 

# ll -d /etc/*[0-9]*  //找出/etc/下面文件名含有數字的文件名

 

# ll -d /etc/[^a-z]*  //找出/etc/下面文件名開頭非爲小寫字母的文件名

 

# cp -a /etc/[^a-z]* /tmp  //將上例找到的文件複製到 /tmp中

 

# last | cut -d  ' '  -f1 | sort  //將輸出的數據僅取賬號,並加以排序

# last | cut -d  ' '  -f1 | sort  | uniq  //將輸出的數據僅取賬號,排序後僅取出一位

# last | cut -d  ' '  -f1 | sort  | uniq  -c  //將輸出的數據僅取賬號,排序後僅取出一位並顯示每個賬號登錄的總次數

 

# last | grep [a-zA-Z] | grep -v ‘wtmp’| wc -l  //顯示登錄系統的總人數

 

# last | tee  last.list | cut -d  “ “  -f1  //將last的輸出存一份到last.list文件中

 

# ls -l /home | tee  ~/homefile | more  //將ls的數據存一份到~/homefile,同時屏幕也有輸出信息

 

# ls -l / | tee  -a  ~/homefile | more  //加上-a參數則能將信息累加

 

# cp /etc/passwd  /root/passwd && unix2dos /root/passwd

 

# file /etc/passwd /root/passwd

 

# cat /root/passwd | tr -d  ‘\r’ > /root/passwd.linux

 

# ll  /etc/passwd  /root/passwd*  //將/etc/passwd轉存成dos斷行到/root/passwd中,再將^M 符號刪除。\r指的是dos的斷行字符 ^M

 

# cat  -A /etc/man.config

 

# cat /etc/man.config | col  -x | cat  -A | more  //利用cat  -A 顯示所有特殊按鍵,最後以 col將[tab]轉成空白。上面看到的^I符號就是tab,如此一來,[tab]按鍵會被替換成爲空格鍵,輸出就美觀多了

 

# man col > /root/col.man

 

# vi /root/col.man

 

# man col | col  -b > /root/col.man  //將col的man page轉存成爲/root/col.man的純文本文件

 

#############################################

 

通配符與特殊符號

符號   意義

*      代表『 0 個到無窮多個』任意字符

?      代表『一定有一個』任意字符

[ ]    同樣代表『一定有一個在括號內』的字符(非任意字符)。例如 [abcd] 代表『一定有一個字符, 可能是 a, b, c, d 這四個任何一個』

[ - ]  若有減號在中括號內時,代表『在編碼順序內的所有字符』。例如 [0-9] 代表 0 到 9 之間的所有數字,因爲數字的語系編碼是連續的!

[^ ]   若中括號內的第一個字符爲指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有一個字符,只要是非 a, b, c 的其他字符就接受的意思。

 

bash 環境中的特殊符號

符號   內容

#      批註符號:這個最常被使用在 script 當中,視爲說明!在後的數據均不運行

\      跳脫符號:將『特殊字符或通配符』還原成一般字符

|      管線 (pipe):分隔兩個管線命令的界定(後兩節介紹);

;      連續命令下達分隔符:連續性命令的界定 (注意!與管線命令並不相同)

~      用戶的家目錄

$      取用變量前導符:亦即是變量之前需要加的變量取代值

&      工作控制 (job control):將命令變成背景下工作

!      邏輯運算意義上的『非』 not 的意思!

/      目錄符號:路徑分隔的符號

>, >>  數據流重導向:輸出導向,分別是『取代』與『累加』

<, <<  數據流重導向:輸入導向 

' '    單引號,不具有變量置換的功能

" "    具有變量置換的功能!

` `    兩個『 ` 』中間爲可以先運行的命令,亦可使用 $( )

( )    在中間爲子 shell 的起始與結束

{ }    在中間爲命令區塊的組合!

 

#############################################

 

# dmesg | grep -n -color=auto ‘eth’  //用dmesg列出內核信息,再以grep找出內含eth的那些行,並顯色、加上行號

 

# dmesg | grep -n -A3 -B2 -color=auto ‘eth’  //承上,在關鍵字所在行的前兩行與後三行也一起找出來顯示

 

#############################################

 基礎正則表達式字符 (characters)

 

^word

意義:待查找的字符串(word)在行首

範例:查找行首爲 # 開始的那一行,並列出行號

grep -n '^#' regular_express.txt

 

word$

意義:待查找的字符串(word)在行尾

範例:將行尾爲 ! 的那一行列印出來,並列出行號

grep -n '!$' regular_express.txt

 

.

意義:代表一定有一個任意字符的字符

範例:查找的字符串可以是 (eve) (eae) (eee) (e e), 但不能僅有 (ee),亦即 e 與 e 中間“一定”僅有一個字符,而空格符也是字符

grep -n 'e.e' regular_express.txt

 

\

意義:轉義字符,將特殊符號的特殊意義去除

範例:查找含有單引號 ' 的那一行

grep -n \' regular_express.txt

 

*

意義:重複零個到無窮多個的前一個 RE(regular)字符

範例:找出含有 (es) (ess) (esss) 等等的字符串,注意,因爲 * 可以是 0 個,所以 es 也是符合帶查找字符串。另外,因爲 * 爲重複“前一個 RE 字符”的符號, 因此,在 * 之前必須要緊接著一個 RE 字符喔。例如任意字符則爲 “.*” 

grep -n 'ess*' regular_express.txt

 

[list]

意義:從字符集合的 RE 字符裏面找出想要選取的字符

範例:查找含有 (gl) 或 (gd) 的那一行,需要特別留意的是,在 [] 當中代表一個待查找的字符, 例如“ a[afl]y ”代表查找的字符串可以是 aay, afy, aly 即 [afl] 代表 a 或 f 或 l 的意思

grep -n 'g[ld]' regular_express.txt

 

[n1-n2]

意義:從字符集合的 RE 字符裏面找出想要選取的字符範圍

範例:查找含有任意數字的那一行。需特別留意,在字符集合 [] 中的減號 - 是有特殊意義的,他代表兩個字符之間的所有連續字符。但這個連續與否與 ASCII 編碼有關,因此,你的編碼需要配置正確(在 bash 當中,需要確定 LANG 與 LANGUAGE 的變量是否正確)。例如所有大寫字符則爲 [A-Z]

grep -n '[A-Z]' regular_express.txt

 

[^list]

意義:從字符集合的 RE 字符裏面找出不要的字符串或範圍

範例:查找的字符串可以是 (oog) (ood) 但不能是 (oot) ,那個 ^ 在 [] 內時,代表的意義是“反向選擇”的意思。例如,我不要大寫字符,則爲 [^A-Z]。但是,需要特別注意的是,如果以 grep -n [^A-Z] regular_express.txt 來查找,卻發現該文件內的所有行都被列出,爲什麼?因爲這個 [^A-Z] 是“非大寫字符”的意思, 因爲每一行均有非大寫字符,例如第一行的 "Open Source" 就有 p,e,n,o等小寫字符

grep -n 'oo[^t]' regular_express.txt

 

\{n,m\}

意義:連續 n 到 m 個的前一個 RE 字符,若爲 \{n\} 則是連續 n 個的前一個 RE 字符,若是 \{n,\} 則是連續 n 個以上的前一個 RE 字符

範例:在 g 與 g 之間有2個到3個的o存在的字符串,亦即 (goog)(gooog)

grep -n 'go\{2,3\}g' regular_express.txt

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

# test -e /pa/lamprj && echo "exist" || echo "Not exist"  //檢查/pa/lamprj目錄是否存在

 

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

文件測試的標誌與意義:

 

關於某個文件名的“文件類型”判斷,如 test -e filename 表示存在否

-e  該文件名是否存在?(常用)

-f  該文件名是否存在且爲文件(file)(常用)

-d  該文件名是否存在且爲目錄(directory)(常用)

-b  該文件名是否存在且爲一個 block device 設備

-c  該文件名是否存在且爲一個 character device 設備

-S  該文件名是否存在且爲一個 Socket 文件

-p  該文件名是否存在且爲一個 FIFO (pipe) 文件

-L  該文件名是否存在且爲一個連結文件

 

關於文件的權限檢測,如 test -r filename 表示可讀否 (但 root 權限常有例外)

-r  檢測該文件名是否存在且具有“可讀”的權限

-w  檢測該文件名是否存在且具有“可寫”的權限

-x  檢測該文件名是否存在且具有“可執行”的權限

-u  檢測該文件名是否存在且具有“SUID”的屬性

-g  檢測該文件名是否存在且具有“SGID”的屬性

-k  檢測該文件名是否存在且具有“Sticky bit”的屬性

-s  檢測該文件名是否存在且爲“非空白文件”

 

兩個文件之間的比較,如:test file1 -nt file2

-nt  (newer than)判斷 file1 是否比 file2 新

-ot  (older than)判斷 file1 是否比 file2 舊

-ef  判斷 file1 與 file2 是否爲同一文件,可用在判斷 hard link 的判定上。 主要意義在判定兩個文件是否均指向同一個 inode

 

關於兩個整數之間的判定,例如 test n1 -eq n2

-eq  兩數值相等 (equal)

-ne  兩數值不等 (not equal)

-gt  n1 大於 n2 (greater than)

-lt  n1 小於 n2 (less than)

-ge  n1 大於等於 n2 (greater than or equal)

-le  n1 小於等於 n2 (less than or equal)

 

判定字串的數據

test -z string  判定字串是否爲 0,若 string 爲空字串,則爲 true

test -n string  判定字串是否非爲0,若 string 爲空字串,則爲 false

                   注:-n 亦可省略

 

test str1 = str2  判定 str1 是否等於 str2 ,若相等,則回傳 true

test str1 != str2 判定 str1 是否不等於 str2 ,若相等,則回傳 false

 

多重條件判定,例如:test -r filename -a -x filename

-a  兩個條件同時成立!例如 test -r file -a -x file,則 file 同時具有 r 與 x 權限時,纔回傳 true

-o  任何一個條件成立!例如 test -r file -o -x file,則 file 具有 r 或 x 權限時,就可回傳 true

!   反相狀態,如 test ! -x file ,當 file 不具有 x 時,回傳 true

 

=======

常用shell命令組合

# kudzu --probe --class=network  //kudzu查看網卡型號

# ps -e -o "%C : %p : %z : %a"|sort -k5 -nr  //查看進程,按內存從大到小排列

# ps -e -o "%C : %p : %z : %a"|sort -nr  //按cpu利用率從大到小排列

# ls /etc/rc3.d/S* |cut -c 15-   //顯示運行3級別開啓的服務(從中瞭解到cut的用途,截取數據)

# ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-  //顯示IP地址

# free -m |grep "Mem" | awk '{print $2}'  //顯示內存的大小

# cat /proc/cpuinfo |grep -c processor  //顯示CPU的數量

# mpstat 1 1  //顯示CPU負載

# du -cks * | sort -rn | head -n 10  //顯存當前路徑下從大到小排序的前10個文件或目錄大小

# iostat -x 1 2  //磁盤I/O負載

# sar -n DEV  //網絡負載

# ps aux | wc -l  //進程總數

 


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