Linux命令

 

1、目錄結構java

#由於根目錄與開機有關,開機過程當中僅有根目錄會被掛載, 所以根目錄下與開機過程有關的目錄(如下5個),不能與根目錄放到不一樣的分區去。python

/etc:配置文件linux

/dev:所須要的裝置文件ios

/lib:執行檔所需的函式庫與核心所需的模塊git

/bin:重要執行檔redis

/sbin:重要的系統執行文件chrome

 

/usr #(Unix Software Resource)與軟件安裝/執行有關docker

/var#(variable)在系統運做後纔會漸漸佔用硬盤容量的目錄apache

/opt #放置第三方軟件的目錄vim

/home#使用者home目錄

/root#系統管理員的home目錄

/boot#放置開機會使用到的檔案

/srv #service,服務啓動後須要訪問的數據目錄 

/media #媒體

/tmp #存放臨時文件目錄

/mnt#用來暫時掛載某些額外的裝置

/lost+found #當檔案系統發生錯誤時,將一些遺失的片斷放置到這個目錄下

/proc#是一個虛擬文件系統,

/sys#是一個虛擬的檔案系統

/run #系統運行時所需文件

/lastore#支持Android應用和網頁應用正常運行

/swapfile#內存交換文件

/vmlinuz#指的是內核,做用:進程管理、內存管理、文件管理、驅動管理、網絡管理。/initrd.img是一個小的映象,放的是和啓動相關的驅動模塊。

 

cd /#進入根目錄

cd ~#進入用戶在該系統的home目錄,如nuib用戶,則進入/root/niub/目錄

 

 

2、 經常使用命令

 

1.  關機重啓

sync 內存中數據寫入磁盤

shutdown -r now rebot#當即重啓

shutdown -h now

shutdown -h 20:00

shutdown -h +10#10分鐘後關機

shutdown -c#取消關機

 

 

2.  系統信息

who am i :查看當前使用的終端

who  w : 查看全部終端

uname -m :顯示機器的處理器架構(如x86_64

cat /proc/version :查看linux版本信息

uname -r :顯示正在使用的內核版本

lsb_release -a :查看系統發行版本(如CentOS7

rpm -qa | grep kernel-devel :查看kernel-devel版本(安裝軟件時編譯內核用,故須要保持內核版本一致性)

yum install -y "kernel-devel-uname-r == $(uname -r)":安裝和Linux內核版本匹配的kernel-devel

date :顯示系統日期 (date +%Y/%m/%d : 顯示效果如2018/01/01

date 070314592018.00 :設置時間(格式爲月日時分年.秒 )

clock -w :將時間修改保存到 BIOS

cal 2018 :顯示2018年的日曆表

clear :清空命令行

ifconfig :顯示或設置網卡(查ip等)(相似windowsipconfig

ping -c 3 www.baidu.com :測試百度與本機的鏈接狀況( -c 3表示測試3次)

cat /proc/cpuinfo :顯示CPU的信息

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU個數

cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每一個物理CPU的核數

cat /proc/cpuinfo| grep "processor"| wc -l :查看邏輯CPU個數即線程數

 

 

3.  系統性能

top :動態實時顯示cpu、內存、進程等使用狀況(相似windows下的任務管理器)

top -d 2 -p 7427 -d爲畫面更新的秒數,默認5秒,-p爲指定進程pid的信息

vmstat 2 10 :每隔2秒採集一次服務器狀態,採集10次(查看內存、io讀寫狀態、cpu

free -h :查看系統內存及虛擬內存使用狀況

df -h :顯示磁盤的空間使用狀況

iostat :可查io讀寫、cpu使用狀況

sar -u 3 5 :查看cpu使用狀況(3秒一次,共5次)

sar -d 2 3 :評估磁盤性能

ps aux|grep firefox :獲取火狐的進程號(PID)(可查看進程佔用cpu、內存百分比及進程觸發指令的路徑)

kill -9 進程號 :強制殺死進程

systemctl :查看正在運行的服務

grep [java]:搜索java

 

4.  文件和目錄

#查看目錄

cd#切換工做目錄

pwd #顯示工做路徑

ls#列出文件

ls -a#列出文件下全部文件,包含隱藏文件

ls -lh#列出文件的詳細信息

file 文件或目錄#顯示文件或目錄的類型

#建立-刪除-移動-複製-建立鏈接

mkdir目錄#建立目錄

touch 文件#建立文件

 

rm 文件#刪除文件

rm -r 目錄或文件#刪除目錄

rm -rf 目錄或文件#強制刪除文件或目錄

 

mv file1 file2 #移動或重命名一個文件或目錄

mv -t dir1 file1 file2#file1file2(多個文件)移動到dir1

cp file1/dir1 dir2#file1dir1複製到dir2

 

ln -s /opt/a.txt /opt/git/ :對文件建立軟連接(快捷方式不更名仍是a.txt

ln -s /opt/a.txt /opt/git/b :(快捷方式更名爲b)(下面的同樣能夠更名)

ln -s /opt/mulu /opt/git/ :對目錄建立軟連接

ln /opt/a.txt /opt/git/ :對文件建立硬連接

 

5.  文件查找

locate a.txt :在系統全局範圍內查找文件名包含a.txt字樣的文件(比find快);

find /home -mtime -2 :在/home下查最近2*24小時內改動過的文件

find . -size +100M :在當前目錄及子目錄下查找大於100M的文件

find . -type f f表示文件類型爲普通文件(b/d/c/p/l/f 分別爲塊設備、目錄、字符設備、管道、符號連接、普通文件)

find . -mtime +2 -exec rm {} ; :查出更改時間在2*24小時之前的文件並刪除它**

find . -name '*.log' -exec grep -i hello {} \; -print :在當前目錄及子目錄下查出文件名後綴爲.log的文件而且該文件內容包含了hello字樣並打印,-exec 命令 {} \表示對查出文件操做,-i表示不區分大小寫;

find . -name '*.log'|grep hello :在當前目錄及子目錄下查出文件名後綴爲.log的文件而且文件名包含了hello字樣(grep用來處理字符串);

grep -i 'HELLO' . -r -n :在當前目錄及子目錄下查找文件內容中包含hello的文件並顯示文件路徑(-i表示忽略大小寫)

which java :在環境變量$PATH設置的目錄裏查找符合條件的文件,並顯示路徑(查詢運行文件所在路徑)

whereis java :查看安裝的軟件的全部的文件路徑(whereis 只能用於查找二進制文件、源代碼文件和man手冊頁,通常文件的定位需使用locate命令)

 

6.  查看文件的內容

cat [-n] 文件名 :顯示文件內容,連行號一塊兒顯示

less 文件名 :一頁一頁的顯示文件內容(搜索翻頁同man命令)

head [-n] 文件名 :顯示文件頭n行內容,n指定顯示多少行

tail [-nf] 文件名:顯示文件尾幾行內容,n指定顯示多少行,f用於實時追蹤文件的全部更新,經常使用於查閱正在改變的日誌文件(如tail -f -n 3 a.log 表示開始顯示最後3行,並在文件更新時實時追加顯示,沒有-n默認10行)

sed -n '2,$p' ab :顯示第二行到最後一行;

sed -n '/搜索的關鍵詞/p' a.txt :顯示包括關鍵詞所在行

cat filename |grep abc -A10 :查看filename中含有abc所在行後10行(A10)、前10行(B10)內容

less a.txt|grep git :顯示關鍵詞所在行,管道符」|」它只能處理由前面一個指令傳出的正確輸出信息,對錯誤信息信息沒有直接處理能力。而後傳遞給下一個命令,做爲標準的輸入;

cat /etc/passwd |awk -F ':' '{print $1}' :顯示第一列

 

7.  文本處理

ls -l>file :輸出重定向>(改變原來系統命令的默認執行方式):ls -l命令結果輸出到file文件中,若存在,則覆蓋

cat file1 >>file :輸出重定向之cat命令結果輸出追加到file文件(>表示覆蓋原文件內容,>>表示追加內容)

ls fileno 2>file 2>表示重定向標準錯誤輸出(文件不存在,報錯信息保存至file文件);

cowsay <a.txt :重定向標準輸入命令<文件表示將文件作爲命令的輸入(爲從文件讀數據做爲輸入)

sed -i '4,$d' a.txt :刪除第四行到最後一行($表示最後一行)(sed能夠增刪改查文件內容)

sed -i '$a 增長的字符串' a.txt :在最後一行的下一行增長字符串

sed -i 's/old/new/g' a.txt :替換字符串;格式爲sed 's/要替換的字符串/新的字符串/g' 修改的文件

vim 文件:編輯查看文件(同vi

 

8.用戶權限

useradd 用戶名 :建立用戶

userdel -r 用戶名 :刪除用戶:(-r表示把用戶的主目錄一塊兒刪除)

usermod -g 組名 用戶名 :修改用戶的組

usermod -aG 組名 用戶名 :將用戶添加到組

groups test :查看test用戶所在的組

cat /etc/group |grep test :查看test用戶詳情:用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登陸Shell

passwd [ludf] 用戶名 :用戶改本身密碼,不須要輸入用戶名,選項-d:指定空口令,-l:禁用某用戶,-u解禁某用戶,-f:強迫用戶下次登陸時修改口令

groupadd 組名 :建立用戶組

groupdel 用戶組 :刪除組

groupmod -n 新組名 舊組名 :修改用戶組名字

su - 用戶名:完整的切換到一個用戶環境(至關於登陸)(建議用這個)(退出用戶:exit

su 用戶名 :切換到用戶的身份(環境變量等沒變,致使不少命令要加上絕對路徑才能執行)

sudo 命令 :以root的身份執行命令(輸入用戶本身的密碼,而su爲輸入要切換用戶的密碼,普通用戶需設置/etc/sudoers纔可用sudo

 

9.磁盤管理

df -h :顯示磁盤的空間使用狀況 及掛載點

df -h /var/log :(顯示log所在分區(掛載點)、目錄所在磁盤及可用的磁盤容量)

du -sm /var/log/* | sort -rn : 根據佔用磁盤空間大小排序(MB)某目錄下文件和目錄大小

fdisk -l :查全部分區及總容量,加/dev/sda爲查硬盤a的分區)

fdisk /dev/sdb :對硬盤sdb進行分區

mount /dev/sda1 /mnt :硬盤sda1掛載到/mnt目錄(mount 裝置文件名 掛載點)

mount -t cifs -o username=luolanguo,password=win用戶帳號密碼,vers=3.0 //10.2.1.178/G /mnt/usb :遠程linux 共享掛載windowsU,GU盤共享名,需設置U盤共享

mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :掛載iso文件

umount /dev/sda1 :取消掛載(umount 裝置文件名或掛載點)

 

10壓縮 解壓 打包備份

單純tar僅爲打包(多個文件包成一個大文件),加上參數-j(bzip2格式.bz2)-zgzip格式.gz)能夠備份、壓縮(-c)、解壓(-x),備份通常比壓縮多加參數-p(保留本來文件的權限與屬性),-C能夠指定解壓到特定目錄;bzip2gzip只能對單一文件壓縮;

file 文件名 :查文件類型(可看是用哪種方式壓縮的)

tar -zxvf a.tar.gz -C ./test :解壓tar.gz到當前目錄下的test目錄

tar -zcvf /opt/c.tar.gz ./a/ :壓縮tar.gz(把當前目錄下的a目錄及目錄下全部文件壓縮爲 /opt/目錄下的c.tar.gz,這樣tar -zxvf c.tar.gz解壓出來帶有目錄a

tar -jxvf a.tar.bz2 :解壓tar.bz2(到當前目錄)

tar -jcvf c.tar.bz2 ./a/ :壓縮tar.bz2(把當前目錄下的a目錄及目錄下全部文件壓縮到當前目錄下爲c.tar.gz2

unzip a.zip :解壓zip(到當前目錄)

unzip -o mdmtest.war -d /opt/mdm :推薦使用unzip解壓war包(-o覆蓋原有文件,-d指定文件解壓後存儲的目錄)

zip -r c.zip ./a/ :壓縮zip(把當前目錄下的a目錄及目錄下全部文件壓縮到當前目錄下爲c.zip

bzip2 -k file1 : 壓縮一個 'file1' 的文件(-k表示保留源文件)(bzip2格式,比gzip好)

bzip2 -d -k file1.bz2 : 解壓一個叫作 'file1.bz2'的文件

gzip file1 : 壓縮一個叫作 'file1'的文件(gzip格式)(不能保留源文件)

gzip -9 file1 : 最大程度壓縮

gzip -d file1.gz : 解壓縮一個叫作 'file1'的文件

11軟件安裝

儘可能用yum源(apt-get)安裝,不行就rpmdeb包安裝,能不手動編譯的就不要手動編譯;

dpkg只能安裝已經下載到本地機器上的deb. apt-get能在線下載並安裝deb,能更新系統,且還能自動處理包與包之間的依賴問題,這個是dpkg工具所不具有的;

rpm 只能安裝已經下載到本地機器上的rpm . yum能在線下載並安裝rpm,能更新系統,且還能自動處理包與包之間的依賴問題,這個是rpm 工具所不具有的;

yumrpm安裝文件分佈在/usrbinlibshare不一樣目錄,不用配置PATH,直接用命令,但可用命令卸載更新;

手動編譯軟件,默認位置爲/usr/local下不一樣子目錄下,不用配置PATH直接用命令(手動指定安裝路徑須要加PATH),使得軟件更新和刪除變得很麻煩。編譯安裝的軟件沒有卸載命令,卸載就是把全部這個軟件的文件刪除。

二進制(Binaries)

yum安裝

在線下載並安裝rpm包,適用於CentOSFedoraRedHat及相似系統

yum install epel-releas :安裝第三方yumEPEL(企業版 Linux 附加軟件包的簡稱)

yum repolist enabled :顯示可用的源倉庫(/etc/yum.repos.d/目錄下配置)

yum install yum-fastestmirror :自動選擇最快的yum

yum list installed |grep java :列出已安裝的軟件(查看已安裝的JDK

yum remove java-1.8.0-openjdk.x86_64 :卸載軟件(卸載JDK

yum list java* :列出已安裝和可安裝的軟件(查看yum庫中的JDK包)

yum install [-y] java-1.8.0-openjdk :安裝軟件JDK(-y自動安裝)(推薦這種方式安裝)

yum install docker-ce-18.03.1.ce :安裝指定版本的軟件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,則rpm包名爲docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

yum check-update [kernel] :列出全部可更新的軟件(檢查更新kernel

yum update tomcat :更新軟件(可全部)

rpm -ql 軟件名稱 :查詢yum安裝路徑(軟件名稱可經過rpm -qa|grep java

yum info kernel :查看軟件(kernel)的信息

yum clean all :(清除緩存,使最新的yum配置生效)

rpm包手動下載安裝

​ yum中沒有時用,適用於CentOSFedoraRedHat及相似系統;

wget -P /opt https://網址 :下載到/opt目錄

rpm -ivh wps-office-版本.x86_64.rpm :安裝rpm包(包要先下載)(要先裝依賴包)

rpm -e wps-office :卸載軟件(注意不要軟件名不要版本號)

rpm -qa |grep wps :查看安裝的rpm

rpm -ql 軟件名稱 :查看rpm包安裝路徑(軟件名稱可經過rpm -qa|grep java

apt方式安裝

安裝deb包,相似yum安裝,適用於Debian, Ubuntu 以及相似系統;

apt-get install aptitude :安裝aptitude工具,實現依賴自動安裝,依賴版本自動降級或升級

aptitude install 軟件 :安裝軟件(推薦這種方式安裝)

apt-cache search 軟件 :搜索軟件

apt-get install 軟件 :安裝軟件

apt-get purge 軟件 :卸載軟件(包括配置文件,只刪除軟件purge換成remove

apt-get upgrade :更新全部已安裝的軟件包

apt-get update :升級列表中的軟件包

apt-get clean :從下載的軟件包中清理緩存


deb包安裝

適用於Debian, Ubuntu 以及相似系統;

dpkg -i package.deb :安裝一個 deb

dpkg -r package_name :從系統刪除一個 deb

dpkg -l |grep chrome :查詢系統中全部已經安裝的 deb

dpkg -L 軟件名稱 :查軟件安裝的文件

 

解壓即用

大多數非開源的商業軟件都採起這種辦法;

二進制(Binaries)包如apache-jmeter-3.3.tgz,下載複製解壓到/opt,而後而後將該軟件的 bin 目錄加入到 PATH 中便可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);

軟件本身的模塊/包管理器

python:系統的源中不可能包含該軟件的全部模塊; 系統的源中該軟件的模塊的更新要遠遠滯後於最新版本;手動安裝python,並用Python 自帶的 pip 安裝模塊(相似yum);

pip install redis :安裝python軟件包redis

pip unstall redis :卸載

pip show --files redis :pip查看已安裝的包

pip list --outdated :檢查更新

 

源代碼(Source)

編譯安裝

源代碼包(通常有install文件)如hello-2.2.tar.bz2,下載複製到/opt;

tar -jxvf hello-2.2.tar.bz2 :解壓

./configure --prefix=/opt/軟件目錄名稱 :爲編譯作好準備,加上 prefix 手動指定安裝路徑

make :編譯

make install :安裝

make clean :刪除安裝時產生的臨時文件

vim /etc/profile export PATH=$PATH:/opt/目錄/bin :手動指定安裝路徑須要加path

hello :執行軟件:看INSTALLREADME文件(是否源碼包、如何安裝、執行都看這兩個)

rm -rf 軟件目錄名稱 :卸載軟件

 

 

 

 

 

Linux命令

1、目錄結構

#由於根目錄與開機有關,開機過程當中僅有根目錄會被掛載, 所以根目錄下與開機過程有關的目錄(如下5個),不能與根目錄放到不一樣的分區去。

/etc:配置文件

/dev:所須要的裝置文件

/lib:執行檔所需的函式庫與核心所需的模塊

/bin:重要執行檔

/sbin:重要的系統執行文件

 

/usr #(Unix Software Resource)與軟件安裝/執行有關

/var#(variable)在系統運做後纔會漸漸佔用硬盤容量的目錄

/opt #放置第三方軟件的目錄

/home#使用者home目錄

/root#系統管理員的home目錄

/boot#放置開機會使用到的檔案

/srv #service,服務啓動後須要訪問的數據目錄 

/media #媒體

/tmp #存放臨時文件目錄

/mnt#用來暫時掛載某些額外的裝置

/lost+found #當檔案系統發生錯誤時,將一些遺失的片斷放置到這個目錄下

/proc#是一個虛擬文件系統,

/sys#是一個虛擬的檔案系統

/run #系統運行時所需文件

/lastore#支持Android應用和網頁應用正常運行

/swapfile#內存交換文件

/vmlinuz#指的是內核,做用:進程管理、內存管理、文件管理、驅動管理、網絡管理。/initrd.img是一個小的映象,放的是和啓動相關的驅動模塊。

 

cd /#進入根目錄

cd ~#進入用戶在該系統的home目錄,如nuib用戶,則進入/root/niub/目錄

2、 經常使用命令

1.  關機重啓

sync 內存中數據寫入磁盤

shutdown -r now rebot#當即重啓

shutdown -h now

shutdown -h 20:00

shutdown -h +10#10分鐘後關機

shutdown -c#取消關機

 

2.  系統信息

who am i :查看當前使用的終端

who  w : 查看全部終端

uname -m :顯示機器的處理器架構(如x86_64

cat /proc/version :查看linux版本信息

uname -r :顯示正在使用的內核版本

lsb_release -a :查看系統發行版本(如CentOS7

rpm -qa | grep kernel-devel :查看kernel-devel版本(安裝軟件時編譯內核用,故須要保持內核版本一致性)

yum install -y "kernel-devel-uname-r == $(uname -r)":安裝和Linux內核版本匹配的kernel-devel

date :顯示系統日期 (date +%Y/%m/%d : 顯示效果如2018/01/01

date 070314592018.00 :設置時間(格式爲月日時分年.秒 )

clock -w :將時間修改保存到 BIOS

cal 2018 :顯示2018年的日曆表

clear :清空命令行

ifconfig :顯示或設置網卡(查ip等)(相似windowsipconfig

ping -c 3 www.baidu.com :測試百度與本機的鏈接狀況( -c 3表示測試3次)

cat /proc/cpuinfo :顯示CPU的信息

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU個數

cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每一個物理CPU的核數

cat /proc/cpuinfo| grep "processor"| wc -l :查看邏輯CPU個數即線程數

 

3.  系統性能

top :動態實時顯示cpu、內存、進程等使用狀況(相似windows下的任務管理器)

top -d 2 -p 7427 -d爲畫面更新的秒數,默認5秒,-p爲指定進程pid的信息

vmstat 2 10 :每隔2秒採集一次服務器狀態,採集10次(查看內存、io讀寫狀態、cpu

free -h :查看系統內存及虛擬內存使用狀況

df -h :顯示磁盤的空間使用狀況

iostat :可查io讀寫、cpu使用狀況

sar -u 3 5 :查看cpu使用狀況(3秒一次,共5次)

sar -d 2 3 :評估磁盤性能

ps aux|grep firefox :獲取火狐的進程號(PID)(可查看進程佔用cpu、內存百分比及進程觸發指令的路徑)

kill -9 進程號 :強制殺死進程

systemctl :查看正在運行的服務

grep [java]:搜索java

 

4.  文件和目錄

#查看目錄

cd#切換工做目錄

pwd #顯示工做路徑

ls#列出文件

ls -a#列出文件下全部文件,包含隱藏文件

ls -lh#列出文件的詳細信息

file 文件或目錄#顯示文件或目錄的類型

#建立-刪除-移動-複製-建立鏈接

mkdir目錄#建立目錄

touch 文件#建立文件

 

rm 文件#刪除文件

rm -r 目錄或文件#刪除目錄

rm -rf 目錄或文件#強制刪除文件或目錄

 

mv file1 file2 #移動或重命名一個文件或目錄

mv -t dir1 file1 file2#file1file2(多個文件)移動到dir1

cp file1/dir1 dir2#file1dir1複製到dir2

 

ln -s /opt/a.txt /opt/git/ :對文件建立軟連接(快捷方式不更名仍是a.txt

ln -s /opt/a.txt /opt/git/b :(快捷方式更名爲b)(下面的同樣能夠更名)

ln -s /opt/mulu /opt/git/ :對目錄建立軟連接

ln /opt/a.txt /opt/git/ :對文件建立硬連接

 

5.  文件查找

locate a.txt :在系統全局範圍內查找文件名包含a.txt字樣的文件(比find快);

find /home -mtime -2 :在/home下查最近2*24小時內改動過的文件

find . -size +100M :在當前目錄及子目錄下查找大於100M的文件

find . -type f f表示文件類型爲普通文件(b/d/c/p/l/f 分別爲塊設備、目錄、字符設備、管道、符號連接、普通文件)

find . -mtime +2 -exec rm {} ; :查出更改時間在2*24小時之前的文件並刪除它**

find . -name '*.log' -exec grep -i hello {} \; -print :在當前目錄及子目錄下查出文件名後綴爲.log的文件而且該文件內容包含了hello字樣並打印,-exec 命令 {} \表示對查出文件操做,-i表示不區分大小寫;

find . -name '*.log'|grep hello :在當前目錄及子目錄下查出文件名後綴爲.log的文件而且文件名包含了hello字樣(grep用來處理字符串);

grep -i 'HELLO' . -r -n :在當前目錄及子目錄下查找文件內容中包含hello的文件並顯示文件路徑(-i表示忽略大小寫)

which java :在環境變量$PATH設置的目錄裏查找符合條件的文件,並顯示路徑(查詢運行文件所在路徑)

whereis java :查看安裝的軟件的全部的文件路徑(whereis 只能用於查找二進制文件、源代碼文件和man手冊頁,通常文件的定位需使用locate命令)

 

 

 

 

 

6.  查看文件的內容

cat [-n] 文件名 :顯示文件內容,連行號一塊兒顯示

less 文件名 :一頁一頁的顯示文件內容(搜索翻頁同man命令)

head [-n] 文件名 :顯示文件頭n行內容,n指定顯示多少行

tail [-nf] 文件名:顯示文件尾幾行內容,n指定顯示多少行,f用於實時追蹤文件的全部更新,經常使用於查閱正在改變的日誌文件(如tail -f -n 3 a.log 表示開始顯示最後3行,並在文件更新時實時追加顯示,沒有-n默認10行)

sed -n '2,$p' ab :顯示第二行到最後一行;

sed -n '/搜索的關鍵詞/p' a.txt :顯示包括關鍵詞所在行

cat filename |grep abc -A10 :查看filename中含有abc所在行後10行(A10)、前10行(B10)內容

less a.txt|grep git :顯示關鍵詞所在行,管道符」|」它只能處理由前面一個指令傳出的正確輸出信息,對錯誤信息信息沒有直接處理能力。而後傳遞給下一個命令,做爲標準的輸入;

cat /etc/passwd |awk -F ':' '{print $1}' :顯示第一列

 

7.  文本處理

ls -l>file :輸出重定向>(改變原來系統命令的默認執行方式):ls -l命令結果輸出到file文件中,若存在,則覆蓋

cat file1 >>file :輸出重定向之cat命令結果輸出追加到file文件(>表示覆蓋原文件內容,>>表示追加內容)

ls fileno 2>file 2>表示重定向標準錯誤輸出(文件不存在,報錯信息保存至file文件);

cowsay <a.txt :重定向標準輸入命令<文件表示將文件作爲命令的輸入(爲從文件讀數據做爲輸入)

sed -i '4,$d' a.txt :刪除第四行到最後一行($表示最後一行)(sed能夠增刪改查文件內容)

sed -i '$a 增長的字符串' a.txt :在最後一行的下一行增長字符串

sed -i 's/old/new/g' a.txt :替換字符串;格式爲sed 's/要替換的字符串/新的字符串/g' 修改的文件

vim 文件:編輯查看文件(同vi

 

8.用戶權限

useradd 用戶名 :建立用戶

userdel -r 用戶名 :刪除用戶:(-r表示把用戶的主目錄一塊兒刪除)

usermod -g 組名 用戶名 :修改用戶的組

usermod -aG 組名 用戶名 :將用戶添加到組

groups test :查看test用戶所在的組

cat /etc/group |grep test :查看test用戶詳情:用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登陸Shell

passwd [ludf] 用戶名 :用戶改本身密碼,不須要輸入用戶名,選項-d:指定空口令,-l:禁用某用戶,-u解禁某用戶,-f:強迫用戶下次登陸時修改口令

groupadd 組名 :建立用戶組

groupdel 用戶組 :刪除組

groupmod -n 新組名 舊組名 :修改用戶組名字

su - 用戶名:完整的切換到一個用戶環境(至關於登陸)(建議用這個)(退出用戶:exit

su 用戶名 :切換到用戶的身份(環境變量等沒變,致使不少命令要加上絕對路徑才能執行)

sudo 命令 :以root的身份執行命令(輸入用戶本身的密碼,而su爲輸入要切換用戶的密碼,普通用戶需設置/etc/sudoers纔可用sudo

· 

 

 

9.磁盤管理

df -h :顯示磁盤的空間使用狀況 及掛載點

df -h /var/log :(顯示log所在分區(掛載點)、目錄所在磁盤及可用的磁盤容量)

du -sm /var/log/* | sort -rn : 根據佔用磁盤空間大小排序(MB)某目錄下文件和目錄大小

fdisk -l :查全部分區及總容量,加/dev/sda爲查硬盤a的分區)

fdisk /dev/sdb :對硬盤sdb進行分區

mount /dev/sda1 /mnt :硬盤sda1掛載到/mnt目錄(mount 裝置文件名 掛載點)

mount -t cifs -o username=luolanguo,password=win用戶帳號密碼,vers=3.0 //10.2.1.178/G /mnt/usb :遠程linux 共享掛載windowsU,GU盤共享名,需設置U盤共享

mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :掛載iso文件

umount /dev/sda1 :取消掛載(umount 裝置文件名或掛載點)

 

10壓縮 解壓 打包備份

單純tar僅爲打包(多個文件包成一個大文件),加上參數-j(bzip2格式.bz2)-zgzip格式.gz)能夠備份、壓縮(-c)、解壓(-x),備份通常比壓縮多加參數-p(保留本來文件的權限與屬性),-C能夠指定解壓到特定目錄;bzip2gzip只能對單一文件壓縮;

file 文件名 :查文件類型(可看是用哪種方式壓縮的)

tar -zxvf a.tar.gz -C ./test :解壓tar.gz到當前目錄下的test目錄

tar -zcvf /opt/c.tar.gz ./a/ :壓縮tar.gz(把當前目錄下的a目錄及目錄下全部文件壓縮爲 /opt/目錄下的c.tar.gz,這樣tar -zxvf c.tar.gz解壓出來帶有目錄a

tar -jxvf a.tar.bz2 :解壓tar.bz2(到當前目錄)

tar -jcvf c.tar.bz2 ./a/ :壓縮tar.bz2(把當前目錄下的a目錄及目錄下全部文件壓縮到當前目錄下爲c.tar.gz2

unzip a.zip :解壓zip(到當前目錄)

unzip -o mdmtest.war -d /opt/mdm :推薦使用unzip解壓war包(-o覆蓋原有文件,-d指定文件解壓後存儲的目錄)

zip -r c.zip ./a/ :壓縮zip(把當前目錄下的a目錄及目錄下全部文件壓縮到當前目錄下爲c.zip

bzip2 -k file1 : 壓縮一個 'file1' 的文件(-k表示保留源文件)(bzip2格式,比gzip好)

bzip2 -d -k file1.bz2 : 解壓一個叫作 'file1.bz2'的文件

gzip file1 : 壓縮一個叫作 'file1'的文件(gzip格式)(不能保留源文件)

gzip -9 file1 : 最大程度壓縮

gzip -d file1.gz : 解壓縮一個叫作 'file1'的文件

11軟件安裝

·  儘可能用yum源(apt-get)安裝,不行就rpmdeb包安裝,能不手動編譯的就不要手動編譯;

·  dpkg只能安裝已經下載到本地機器上的deb. apt-get能在線下載並安裝deb,能更新系統,且還能自動處理包與包之間的依賴問題,這個是dpkg工具所不具有的;

·  rpm 只能安裝已經下載到本地機器上的rpm . yum能在線下載並安裝rpm,能更新系統,且還能自動處理包與包之間的依賴問題,這個是rpm 工具所不具有的;

·  yumrpm安裝文件分佈在/usrbinlibshare不一樣目錄,不用配置PATH,直接用命令,但可用命令卸載更新;

·  手動編譯軟件,默認位置爲/usr/local下不一樣子目錄下,不用配置PATH直接用命令(手動指定安裝路徑須要加PATH),使得軟件更新和刪除變得很麻煩。編譯安裝的軟件沒有卸載命令,卸載就是把全部這個軟件的文件刪除。

二進制(Binaries)

yum安裝

在線下載並安裝rpm包,適用於CentOSFedoraRedHat及相似系統

·  yum install epel-releas :安裝第三方yumEPEL(企業版 Linux 附加軟件包的簡稱)

·  yum repolist enabled :顯示可用的源倉庫(/etc/yum.repos.d/目錄下配置)

·  yum install yum-fastestmirror :自動選擇最快的yum

·  yum list installed |grep java :列出已安裝的軟件(查看已安裝的JDK

·  yum remove java-1.8.0-openjdk.x86_64 :卸載軟件(卸載JDK

·  yum list java* :列出已安裝和可安裝的軟件(查看yum庫中的JDK包)

·  yum install [-y] java-1.8.0-openjdk :安裝軟件JDK(-y自動安裝)(推薦這種方式安裝)

·  yum install docker-ce-18.03.1.ce :安裝指定版本的軟件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,則rpm包名爲docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

·  yum check-update [kernel] :列出全部可更新的軟件(檢查更新kernel

·  yum update tomcat :更新軟件(可全部)

·  rpm -ql 軟件名稱 :查詢yum安裝路徑(軟件名稱可經過rpm -qa|grep java

·  yum info kernel :查看軟件(kernel)的信息

·  yum clean all :(清除緩存,使最新的yum配置生效)

rpm包手動下載安裝

​ yum中沒有時用,適用於CentOSFedoraRedHat及相似系統;

· 

wget -P /opt https://網址 :下載到/opt目錄

· 

·  rpm -ivh wps-office-版本.x86_64.rpm :安裝rpm包(包要先下載)(要先裝依賴包)

·  rpm -e wps-office :卸載軟件(注意不要軟件名不要版本號)

·  rpm -qa |grep wps :查看安裝的rpm

· 

rpm -ql 軟件名稱 :查看rpm包安裝路徑(軟件名稱可經過rpm -qa|grep java

· 

apt方式安裝

安裝deb包,相似yum安裝,適用於Debian, Ubuntu 以及相似系統;

·  apt-get install aptitude :安裝aptitude工具,實現依賴自動安裝,依賴版本自動降級或升級

· 

aptitude install 軟件 :安裝軟件(推薦這種方式安裝)

· 

·  apt-cache search 軟件 :搜索軟件

·  apt-get install 軟件 :安裝軟件

·  apt-get purge 軟件 :卸載軟件(包括配置文件,只刪除軟件purge換成remove

·  apt-get upgrade :更新全部已安裝的軟件包

·  apt-get update :升級列表中的軟件包

· 

apt-get clean :從下載的軟件包中清理緩存

· 

deb包安裝

適用於Debian, Ubuntu 以及相似系統;

·  dpkg -i package.deb :安裝一個 deb

·  dpkg -r package_name :從系統刪除一個 deb

·  dpkg -l |grep chrome :查詢系統中全部已經安裝的 deb

·  dpkg -L 軟件名稱 :查軟件安裝的文件

解壓即用

大多數非開源的商業軟件都採起這種辦法;

二進制(Binaries)包如apache-jmeter-3.3.tgz,下載複製解壓到/opt,而後而後將該軟件的 bin 目錄加入到 PATH 中便可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);

軟件本身的模塊/包管理器

python:系統的源中不可能包含該軟件的全部模塊; 系統的源中該軟件的模塊的更新要遠遠滯後於最新版本;手動安裝python,並用Python 自帶的 pip 安裝模塊(相似yum);

·  pip install redis :安裝python軟件包redis

·  pip unstall redis :卸載

·  pip show --files redis :pip查看已安裝的包

·  pip list --outdated :檢查更新

源代碼(Source)

編譯安裝

源代碼包(通常有install文件)如hello-2.2.tar.bz2,下載複製到/opt;

·  tar -jxvf hello-2.2.tar.bz2 :解壓

·  ./configure --prefix=/opt/軟件目錄名稱 :爲編譯作好準備,加上 prefix 手動指定安裝路徑

·  make :編譯

·  make install :安裝

·  make clean :刪除安裝時產生的臨時文件

·  vim /etc/profile export PATH=$PATH:/opt/目錄/bin :手動指定安裝路徑須要加path

·  hello :執行軟件:看INSTALLREADME文件(是否源碼包、如何安裝、執行都看這兩個)

·  rm -rf 軟件目錄名稱 :卸載軟件

相關文章
相關標籤/搜索