Linux常用命令總結
Linux發展史,安裝方法,各種發行版本,以及內核版本在這裏就不贅述了,主要針對常用命令總結。
Windows連接Linux的方式
- putty是一個比較靈活的小工具,它可以連接到遠程Linux的字符界面進行操作。
- xshell一款免費的Linux遠程連接工具,操作簡便,人性化。
- SecureCRT可以用來連接字符界面,也可以用來上傳。
- winscp用來上傳文件或軟件,快捷方便。
- FTP上傳比較方安全,可以在Linux系統內控制權限。
- Samba,使用此工具共享目錄,Linux可以直接訪問Windows的共享文件夾。
JDK安裝
安裝最新的JDK,直接在oracle官網下載就可以了。
下載jdk
例如:
下載包名: jdk-7-linux-i586.rpm
安裝:rpm –ivh jdk-7-linux-i586.rpm
默認安裝路徑:/usr/java
jdk配置環境變量
$ vi /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
測試是否安裝成功:
[root@localhost]# java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)
修改主機名
查看主機名:
$ hostname 或者 echo $HOSTNAME
執行hostname命令,格式hostname+主機名
$ hostname czl
修改/etc/hosts文件
vi /etc/hosts
127.0.0.1 czl localhost
修改/etc/sysconfig/network文件
vi /etc/sysconfig/network
HOSTNAME=czl
重啓電腦:
reboot
幫助命令
whatis:概述命令的作用
$ whatis echo
man 或 –help 詳述命令的作用,包括這種 參數的作用
$ man ps 或者 ps –help
man –k files 查看文件的作用
$ man –k /etc/hosts
info:查看命令的作用
$ info grep
幾個小命令
查看之前輸入的命令
$ history
查看用戶ID情況
$ id root
清屏命令
$ clear 或者 reset
顯示當前目錄的絕對路徑
$ pwd
切換用戶命令
$ su -root //切換到root用戶
$ su -l czl //切換用戶,相當於重新登錄
$ su root //切換用戶,但不切換環境
用戶命令
查看當前登錄用戶
$ who
顯示已經登錄用戶的詳細信息
$ w
查看當前登錄的用戶是誰
$ whoami
查看用戶信息
$ finger --使用此命令首先需要安裝finger
修改密碼
修改用戶登錄口令
# passwd czl --在root權限下修改密碼
修改工作組的口令
`# gpasswd root·
查看或設置環境變量
env:查看所有環境變量
echo 查看單個環境變量
echo $HOME
export 設置環境變量:
export HISTSIZE=1000
在文件中設置環境變量
用root用戶在/etc/profile中設置全局環境變量,如加入如下行:
export CATALINA_HOME=/usr/local
針對各用戶也可在/home/username/.bash_profile
設針對用戶的環境變量,如在/home/oracle/.bash_profile
中加入如下行:
export ORACLE_BASE=/u01/app/oracle
使文件中的環境變量生效命令:source file
source /etc/profile
ls命令–列出目錄內容
- ls -1 每列僅顯示一個文件或目錄名稱。
- ls -a 或–all下所有文件和目錄。
- ls -r 以相反順序顯示文件或目錄(英文)。
- ls -s 或–size顯示文件和目錄的大小,以區塊爲單位。
- ls -sh 人性化顯示目錄文件的大小
- ls -d 顯示指定目錄的信息
- ls -R 遞歸顯示目錄中的內容
- ls –d a* 查看當前文件夾內所有以a開頭的文件或目錄
- ls /etc |grep d$ 顯示/etc下所有以d結尾的文件或目錄
- ls –X /etc將顯示結果按擴展名來排列
- ls -S /etc將顯示結果按大小來
排列
wc命令
- wc file 輸出文件的行數 、字節數和單詞數
- wc -l file 輸出文件的行數
- wc -c file 輸出文件的字節數
- wc -w file 輸出文件的單詞數
- wc –L file 輸出文件最長行的長度
- ls|wc –l統計當前目錄下有多少普通文件和目錄
- ps|wc –l統計當前有多少個進程
cd命令–切換目錄
- cd /etc 切換到/etc目錄下
- cd /切換到根目錄下
- cd .. 切換到上級目錄
- cd . 切換到當前目錄
- cd ~ 切換到用戶宿主目錄下
- cd 同上
- cd - 切換到上次切換的目錄下
cp命令–拷貝文件或目錄的命令
- cp –ru ./* /bak/20160710 把當前目錄下的所有文件和目錄拷貝到備份文件夾下(recursive,update)
- cp –r a/ b/ 把a目錄下文件拷貝到b目錄下覆蓋有提示
- cp –fr a/ b/覆蓋無提示
- cp –l file1 file2 以file2爲名建立一個file1的硬鏈接
- cp –s files file2 建立軟鏈接
- cp –br a/ b/覆蓋前備份
mkdir and rmdir
mkdir 創建目錄命令,如在根目錄下創建/a/b目錄
$ mkdir -p /a/b
$ rmdir --用於刪除空目錄
$ rmdir abc* --刪除以abc開頭的空目錄
$ rmdir –pv /a/b/c --刪除子目錄時,如果父目錄爲空也刪除
文件處理命令
mv 移動文件或目錄命令
rm 刪除文件或目錄,例如,強制刪除/opt下的test目錄
$ rm -fR test
touch
創建文件命令
head and tail
查看文件前100行
$ head -100 *.conf
查看文件後100行
$ tail -100 *.conf
動態地查看文件的後100行
$ tail -100f *.conf
find命令
$ find -name "*.d" //在當前目錄下查找以 .d結尾的文件。
$ find -name \*.d //意義同上,如果不用引號特殊字符要用\轉譯
$ find /etc /home -name "*.d" //在/etc和/home兩個目錄內搜索以 .d結尾的文件。
$ find /etc /home -name "*.d" 2>/dev/null //因爲權限不夠可能會輸出錯誤信息,用 2>/dev/null可以把錯誤信息過濾掉
$ find / -iname "*.jpg" 2>/dev/null //-iname 表示被收索的名字忽略大小寫。
$ find /etc -user oracle -name "ora*" //查看/etc目錄下,oracle用戶的,以ora開發的文件
$ find /etc -group oinstall -name "ora*" //查看/etc目錄下,oinstall組的,以ora開發的文件
$ find /etc -atime 2 //查找/etc下兩天前訪問過的文件
$ find /etc -mtime 1 //查找/etc下一天前修改過的文件
$ find /etc -ctime 1 //查找/etc下一天前創建的文件
$ find / -empty //查找空文件或目錄
grep命令–Linux下的行過濾工具
$ cat|grep entry -B 10 termcap //輸出termcap文件中匹配字符串entry 前的10行
$ more|grep entry -A 10 termcap //輸出termcap文件中匹配字符串entry 後的10行
$ cat|grep entries -n termcap //輸出termcap文件的同時打出行號
# cat|grep a -v termcap //反向查找,搜索出termcap文件中不包含字符串a的內容
$ ls |grep ^g //查找以g開頭的行
$ ls -a|grep b$ //查找以b結尾的行
搜索命令
$ whereis ftp ----查看ftp文件位置
$ type ls ----查看命令屬性
$ which echo ----在環境變量$PATH指定的路徑中查找文件,可指定多個文件
$ tail 10f filename |grep 'hello' ----動態查找file中含有hello的字符內容
$ locate inittab ----快速查詢inittab文件
vi命令參數
- vi –R 以只讀方式打開
- vi + 啓動後跳到結尾處
- vi +5 啓動後跳到文本的第五行
- vi –version 查看版本號
- vi –h 幫助信息
vi光標移動
- ctrl+f 向前滾動一屏
- ctrl+b 向後滾動一屏
- ctrl+d 向前滾動1/2屏
- ctrl+u 向後滾動1/2屏
- G 到最後一行([count]G 到第count行)
vi搜索
- /{string} 向前搜索字符串
- ?{string} 向後搜索字符串
- / 向前搜索上次搜索過的字符串
- ? 向後搜索上次搜索過的字符串
- n 向前重複上次搜索
- N 向後重複向後搜索
vi編輯
- i 在當前位置之前插入
- I 在當前位置行首插入
- u 撤銷最後一次操作
- U 撤銷本行操作
- a 在當前位置之後插入
- A 在當前位置行尾插入
- o 在當前行下一行插入空行
- O 在當前行上一行插入空行
- r 修改單個字符
- cw 修改整個單詞
- cc 修改整行(把當前行刪除後進行插入)
- R 進行替換模式
- [count]dd刪除一行或count行
- dw 刪除單詞
- {count}yy 複製一行或者count行
- {count}yw 複製一個單詞或者count個單詞
- p 粘貼(put)到光標之後
- P 粘貼(put)到光標之前
- ZZ 保存並退出
- :wq 保存並退出
- :w! 強行保存
- :q! 放棄修改退出
vi設置
- :set nu設置行號
- :set nonu去除行號
- :set ic搜索忽略大小寫
- :!{command} 執行shell命令
常用關機命令
- shutdown now 馬上關機
- shutdown -h 10 10分鐘後自動關機
- halt 關機後關掉電源
- poweroff 馬上關機
- reboot 重啓系統
- shutdown -r now 馬上重啓
- shutdown -r 10 過10分鐘後重啓
- shutdown -r 19:45 19:45分重啓
- init 0 關機
- init 1 重啓
tar命令
tar -xvf a.tar 解壓a.tar包。其中-x爲解壓參數;-v顯示解壓過程;-f: 使用檔案名字,這個參數是必須的,而且必須放在最後。
tar -zxvf a.tar.gz 解壓a.tar.gz包。-z參數爲解壓tar.gz包專用的參數,以下同
tar -zcvf a.tar.gz *.jpg 把本文件下的所有以.jpg結尾的文件打成a.tar.gz包。其中-c爲 打包命令
tar -rf a.tar c 把c文件追加到a.tar包中。-r爲表示追加的參數
- tar -cjf a.tar.bz2 *.jpg 把*.jpg打包成a.tar.bz2。-j 表示tar.bz2包
gzip命令
- gzip用來處理後綴爲gz的文件
- gizp filename 將文件壓縮,產生filename.gz文件,源文件被刪除。
- gzip -r dir/將dir下面的所有文件壓縮,加上後綴gz.每個文件單獨壓縮。
- gzip -t filename.gz 檢測壓縮文件的完整性
- gzip -d filename.gz 解壓,把原包刪除
- gzip -1(-9) filename 將filename用最快(最好)的方法壓縮
bzip2命令
- bzip2用來處理以.bz2結尾的文件
- bzip2 filename 打包成filename.bz2文件,原文件刪除
- bzip2 -k filename 打包文件,保留源文件
- bzip2 -t filename.bz2 檢測壓縮文件filename.bz2的完整性
- bzip2 -d filename.bz2解壓,刪除源文件(-k保留)
- bzip2 -1(-9) filename 用最快(最好)方式壓縮
unzip命令
$ unzip
解壓以.zip結尾的壓縮包。
du命令
- du -sh 指定目錄或文件的大小,如果後面沒有文件或目錄,則表示當前目錄的大小。
- du -m 表示以m爲單位顯示文件夾下所有文件的大小
- du -k 以k爲單位,意義同上
df命令
- df -a 顯示所有文件系統的磁盤使用情況
- df -k 以字節爲單位顯示
- df -m 以兆爲單位顯示
- df -h 以易讀的方式顯示
- df -T 列出文件類型
ps工具–查看進程的工具
- ps a 顯示現行終端機下的所有程序,包括其他用戶的程序
- ps c 類似ps a,不包括路徑
- ps -e 顯示所有程序
- ps -au 顯示更詳細的資訊
- ps -aux 顯示所有包含其他使用者的行程
- ps aux |grep usr 查看和usr相關的進程
kill命令
- kill命令用於終止一個進程,這個命令通常與ps,top配合使用,先用ps查看進程情況,後kill掉無用進程。
- kill 8963 殺掉pid號爲8963的進程
- kill -9 9332 強行殺掉9332進程
- killall <進程名> 命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。
crontab
- crontab -e 編輯該用戶的crontab
- crontab -l 列出該用戶的crontab。
- crontab -r 刪除該用戶的crontab。
- crontab -u <用戶名稱> 指定要設定crontab的用戶名稱。
例如:
9 22 * * * rm -f /opt/a ----表示每天9點22分刪除/opt下的a文件
查看日曆
$ cal //查看當月日曆
$ cal 8 2016 //查看2016年8月日曆
$ cal -3 //本月,上月和下月的日曆
$ cal -y 100 //公元后100年的日曆
$ cal -m //把週一當作一週的第一天
$ cal -j //顯示指定月的每一天是一年中的第幾天
查看硬盤信息
$ fdisk -l
$ fdisk /dev/sda1 -l ----查看sda1分區情況
查看CPU和內存信息
$ cat /proc/cpuinfo ----查看CPU狀況
$ cat /proc/meminfo ----查看內存信息(也可使用free -m / top查看)
基本網絡配置命令
$ ifconfig eth0 //顯示指定接口eth0的詳細信息
$ ifconfig -a //顯示所有網絡接口的詳細信息
$ route //查看網關
$ route |grep default //顯示主機的默認網關
$ traceroute ip //測試與其他主機的網絡連接路徑
$ netstat -rn
rpm包
根據不同的系統,已編譯好的二進制安裝文件。採用rpm的系統有redhat,redflag,suse,centos等
rpm包的格式:rpm包名-主版本號-子版本號-軟件支撐的平臺.rpm 如:krb5-devel-1.6.2-14.fc8.i386.rpm
- rpm包的安裝命令:rpm -ivh xxx.rpm
- rpm包的卸載命令:rpm -e xxx xxx指包名,如:krb5
- rpm升級命令:rpm -Uvh xxx.rpm
- rpm -ivh –nodeps xxx.rpm表示強制安裝,不考慮軟件之間的依賴關係
- rpm -ivh –force xxx.rpm覆蓋安裝,若已經安裝了該軟件表,覆蓋之,重新安裝。
- rpm -ivh –replacefiles xxx.rpm忽略衝突錯誤
- rpm -Uvh –oldpackage –force xxx.rpm升級到舊版本的軟件包
- rpm -ivh http://gdlc.cublog.cn/xxx.rpm網絡安裝
- rpm -qa xxx.rpm 查看rpm包是否安裝的命令
- rpm -ql libtalloc查看libtalloc-2.0.1-7.el5.i386.rpm包安裝到那個目錄
- rpm -qf /etc/inittab 查看包含inittab文件的軟件包
rpm包的驗證
驗證軟件表是通過比較從軟件包安裝的文件和軟件包中的原始文件信息來進行的,除了其他一些東西,驗證注意是比較文件的尺寸,MD5校驗碼,文件權限,屬組和用戶的
- rpm -V initscripts 驗證initscripts包是否被改動過
- rpm -Va 輸出所有軟件包被改動的文件
- rpm -Vf libtalloc-2.0.1-7.el5.i386.rpm 根據rpm包查看rpm庫是否被損壞
源碼包的安裝
- 解壓:
$ tar –xvf xxx.tar
$ tar -zxvf xxx.tar.gz
$ tar -jzvf xxx.tar.gz2
- 編譯安裝:
$ ./configure prefix=/usr/local
$ make(編譯)
$ make install(安裝)