Linux系統是一種開源高穩定性的作業系統,在服務器領域得到廣泛的應用,作為一個Java后臺開發工程師經常需要登錄Linux服務器部署應用程式,或者是查看程式的運行狀態,一般的Linux服務器上是不會安裝界面程式的,因此熟練掌握常用的Linux命令對工程師來說非常重要,
本篇日志是我在學習程序的總結,記錄了Linux系統常用的命令,適合已經對Linux作業系統有基本概念的開發人員參考學習,如果沒有接觸過Linux作業系統,可以參考我Linux的其他系列文章,
Linux的命名非常多,我們也沒有必要掌握所有的命令,本篇博客先來整理平時常用的,比較基礎的命令,后續的博客會陸續介紹網路相關、系統性能相關等命令,

系統相關命令
shutdown
shutdown命令用來關閉系統,Linux大多使用在服務器領域,所以一般情況下是很少需要關機的,我們在關機時一定要謹慎,因為你關機的時候很可能其他用戶正在遠程登錄(推薦使用xshell)這臺機器進行某些操作,因此你關機前需要查看下當前系統有哪些用戶登錄,
# 查看當前登錄用戶
who
# 同步記憶體資料到檔案系統
sysnc
# 十分鐘后重啟
shutdown -h now //shutdown -h +10
# 重啟
reboot
uname
uname(unix name)用于查看系統相關資訊
[root@SHA-L0029026 ~]# uname -a
Linux SHA-L0029026 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 03:43:06 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux
- SHA-L0029026 是主機名;
- 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 03:43:06 PDT 2015 (Linux內核資訊)
- x86_64 系統架構
- GNU/Linux Linux發行版本
用戶相關命令
adduser
在使用adduser命令的時候,系統會添加這個用戶名,并且還會自動地創建與這個用戶名名字一樣的用戶組作為這個用戶的初始用戶組,此外,還會自動地在/home目錄下面創建一個與用戶同名的目錄,接著執行cp /etc/skel /home/用戶名"的操作,實作新增用戶的主目錄的初始化,用adduser這個命令創建的賬號是系統賬號,可以用來登錄到我們的系統(區別于Ftp賬號,一般不能通過ssh遠程登錄到機器),
# 添加用戶
adduser codeer
# 為新添加的用戶修改密碼
passwd codeer
# 查看當前用戶屬于哪個用戶租(或者 groups codeer)
groups
# 這個用戶不想用了,洗掉
deluser -r codeer
還有一個很相似的命令useradd,這個命令不會自動為我們創建組、創建用戶home目錄,需要我們手動設定引數去設定,并且useradd這個命令創建的是普通賬號,并不能用來登錄系統,
useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
-u 自定義UID
-g 使其屬于已經存在的某個GID
-d 自定義用戶的家目錄
-M 不建立家目錄
-s 自定義shell
chgrp
更改用戶所屬的用戶組, 語法:chgrp [組名][檔案名1 檔案名2...]
# 查看用戶屬于哪個用戶組
groups codeer
# 添加一個新的用戶組
groupadd group1
# 添加用戶組并指定用戶號
groupadd -g 501 group2
# 洗掉用戶組
groupdel group2
# 將dir1檔案夾下的檔案修改用戶組
chgrp -vR group1 ./dir1
chown
更改檔案的所有者和用戶組,這個命令可以取代chgrp的功能,
# 將dir檔案夾下的檔案所有者和用戶組修改
chown -Rv own_name:group_name ./dir
chmod
更改檔案的屬性,
chmod -Rv 755 ./dir
chmod -Rv -u=rwx,g=rx,o=rx ./dir
umask
umask命令用來顯現創建檔案或者目錄時默認的權限,
[root@SZB-L0026548 tmp]# umask
0022
//上面顯示0022,我們一般看后3位002,用777-002得755就是默認的權限,
//假如你創建的是目錄,owner有rwx權限,用戶組有rx權限,其他也有rx權限
//假如創建檔案,owner有rw權限,用戶組有r全新啊,其他也有讀權限
[root@SZB-L0026548 tmp]# umask -S
u=rwx,g=rx,o=rx
chattr/lsattr
修改檔案的特殊屬性,
chattr +i codeer.txt // i的作用很大,它可以讓一個檔案“不能被洗掉、改名、設定連接,也無法寫入或新增資料”,對于系統安全性有相當大的幫助,
chattr -i codeer.txt
man
查看幫助檔案
檔案目錄相關命令
ls
ls命令是Linux系統下使用頻率很高的一個命令,用來列出檔案或目錄的詳細資訊
ls [option] [檔案|目錄](檔案名和目錄名支持通配符)
ls //默認列出當前目錄下檔案的資訊,橫向排列
ls -al //列出檔案的詳細資訊
ls -alh //顯示檔案的大小
[root@SHB-L0048478 tmp]# ls -alh
-rw-r--r-- 1 root root 1.2K Nov 30 20:07 chen.txt
ls -alht //時間近的在前面
ls -alhtr //時間遠的在前面
ls -alhr //根據檔案名字母排序
pwd
查看當前路徑
[root@SHB-L0048478 chen]# pwd
/tmp/test/chen
mkdir/rmdir
mkdir用于創建目錄,rmdir用來洗掉目錄,這個命令不是很常用,rm命令可以替代其功能,
# 設定目錄的訪問權限
mkdir -m 755
# 遞回回圈創建目錄
mkdir -p ./test/codeer
# 洗掉test目錄下的codeer目錄
rmdir test/codeer
# 聯通test目錄一起洗掉
rmdir -p test/codeer
rm
rm命令可以洗掉一個目錄中的一個或多個檔案或目錄,也可以將某個目錄及其下屬的所有檔案及其子目錄均洗掉掉,對于鏈接檔案,只是洗掉整個鏈接檔案,而原有檔案保持不變,
# 強制遞回洗掉檔案,建議備份
rm -rf file
# 互動式洗掉檔案
rm -i file
cp
cp [選項][ 來源檔案 ] [目的檔案]
cp -a * /tmp //該選項通常在拷貝目錄時使用,它保留鏈接檔案、檔案屬性,并遞回地拷貝目錄,其作用等于dpr選項的組合,
cp -d * /tmp //不加這個選項時會把連接檔案指向的原檔案復制過來,加這個選項就復制連接檔案
cp -v * /tmp //顯示都復制了哪些檔案
mv
mv [選項] [ 來源檔案 ] [目的檔案]
# 這個命令有重命名的作用 備份
mv -i file1 file2
ln
建立連接檔案
# 給source file建立軟連接檔案(快捷方式)
ln -s source_file_name link_file_name
修改軟鏈接
ln –snf [新的源檔案或目錄] [快捷方式]
touch
沒有檔案就創建檔案,有這個檔案就修改檔案的訪問時間
檔案查看命令
-
cat:cat經常用來顯示檔案的內容,適合檔案內容較少的檔案;(cat -n file_name)
-
tac:和cat一樣,只不過是反向顯示檔案內容;
-
more:一屏一屏的查看檔案內容
more -10 file_name //每屏顯示10行;
按Space鍵:顯示文本的下一屏內容,
按enter鍵:顯示一行內容 -
less:"J"鍵向上 "K"建向下;"/"向下搜索,"n"鍵顯示下一個;"?"鍵向上搜索,"n"鍵顯示下一個,"G":到檔案底部;"gg":到檔案頭部;
-
head:head -10 file_name;顯示檔案前10行;
-
tail:tail -10 file_name;顯示檔案后10行; tail -f file_name; 動態顯示檔案;tail -1000 fileName >>tmp.log(日志檔案較大,一次性打開較慢,只取后面幾行放入臨時日志檔案,這個命令很快)
查找命令
which
查找一個可執行命令的絕對路徑
which java //輸出/usr/bin/java
whereis
通過預先生成的一個檔案串列庫去查找跟給出的檔案名相關的檔案,
locate
類似于whereis,也是通過查找預先生成的檔案串列庫來告訴用戶要查找的檔案在哪里.有時候你執行這個命令可能沒找到想要的檔案,這是因為系統還沒有生成那個檔案串列庫,你可以使用updatedb 命令立即生成(更新)這個庫,如果你的服務器上正跑著重要的業務,那么你最好不要去運行這個命令,因為一旦運行,服務器的壓力會變大,這個資料庫默認情況下每周更新一次,所以你用locate命令去搜索一個檔案,正好是在兩次更新時間段內,那你肯定是得不到結果的,你可以到/etc/updated.conf 去配置這個資料庫生成(更新)的規則,locate命令筆者用的也并不多,所以你只要明白有這么一個東西即可,你用到時再去深究其用法吧,
find
find / -mmin -5 # 查找在系統中最后5分鐘里修改過的檔案
find / -mtime -1 #查找在系統中最后24小時里修改過的檔案
find /home -size +512k查大于512k的檔案
find /home -size -512k 查小于512k的檔案
find . app* #查找當前目錄下以app打頭的檔案
type
type命令其實不能算查找命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制檔案提供的,如果一個命令是外部命令,那么使用-p引數,會顯示該命令的路徑,相當于which命令,
type命令的使用實體:
$ type cd
系統會提示,cd是shell的自帶命令(build-in),
$ type grep
系統會提示,grep是一個外部命令,并顯示該命令的路徑,
$ type -p grep
加上-p引數后,就相當于which命令,
磁盤管理相關
df
查看已掛載磁盤的總容量、使用容量、剩余容量等,可以不加任何引數,默認是按k為單位顯示的
df -h
du
du 用來查看某個目錄所占空間大小
# 查看dir這個目錄占用空間的大小
du -sh dir
# 列出dir目錄下每個檔案占用空間的大小
du -ah dir
壓縮相關命令
gzip
gzip一般用于壓縮單個檔案,不能用來壓縮目錄,
gzip codeer.txt //壓縮檔案
gzip -d codeer.txt.gz //解壓檔案
bzip2
bzip2也是用于壓縮一個檔案,使用 gzip要比bzip2快,但是bzip2會獲得比gzip高的壓縮率
bzip2 codeer.txt //壓縮單個檔案
bzip2 -d codeer.txt.bz2
tar
將幾個檔案打包成一個檔案,不進行壓縮,通常打成tar包之后,需要進行gzip,
tar -zcvf test.tar.gz ./* //生成test.tar.gz
tar -zxvf test.tar.gz
zip
zip -r test.zip ./* //將當前目錄下的檔案壓縮
zip test2.zip test2/* //將test2目錄打包
unzip test.zip //將檔案默認解壓到testmulu
unzip test.zip -d /tmp //解壓到指定目錄
參考
- https://man.linuxde.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/125296.html
標籤:Linux
上一篇:SecureCRT 或 XSHELL 轉發 X11 圖形化GUI
下一篇:mysql 5.7.18安裝教程
