020 Linux 20個(gè)寶藏命令案例

file

1 JDK 相關(guān)的查找命令

(1)確認(rèn)是否安裝 JDK

//命令
java -version
//輸出示例
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

(2)查找 java 命令目錄的位置

//命令
which java
//輸出示例
/usr/bin/java

(3)查找 java 命令的位置的軟鏈地址

//命令
ls -l /usr/bin/java
//輸出示例
lrwxrwxrwx 1 root root 22 Jun 18 15:45 /usr/bin/java -> /etc/alternatives/java

(4)通過軟鏈地址查找 JDK 的安裝目錄

//命令
ls -l /etc/alternatives/java
//輸出示例
lrwxrwxrwx 1 root root 73 Jun 18 15:45 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre/bin/java

(5)查找 Linux jvm 工具在哪里

//命令
ls -al /usr/bin/j*

2 Linux 下安裝 JDK8 的兩種方式

(1)使用安裝包安裝

1.下載 JDK8
登錄網(wǎng)址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
選擇對(duì)應(yīng)JDK版本下載(windows、mac 下載后难衰,也可通過 stfp 命令上傳到 Linux 服務(wù)器)钦无。

2. 登錄Linux,切換到 root 用戶
sudo -i

3. 在 usr 目錄下建立 java 安裝目錄
cd /usr
mkdir java

4.將 jdk-8u60-linux-x64.tar.gz 拷貝到 java 目錄下
cp ./jdk-8u60-linux-x64.tar.gz /usr/java/

5.解壓 jdk 到當(dāng)前目錄
tar -zxvf jdk-8u60-linux-x64.tar.gz
得到文件夾 jdk1.8.0_60

6.編輯配置文件盖袭,配置環(huán)境變量
vim /etc/profile

//添加如下內(nèi)容:JAVA_HOME 根據(jù)實(shí)際目錄來
JAVA_HOME=/usr/java/jdk1.8.0_60
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

7.重啟機(jī)器或執(zhí)行命令:
source /etc/profile
或
sudo shutdown -r now

8.查看安裝情況
java -version

(2)使用 yum 工具安裝

  • 不帶devel后綴的 package失暂,通常只包含能讓程序運(yùn)行的動(dòng)態(tài)庫和配置文件。
  • 而帶 devel 后綴的 package鳄虱,則包含使用這個(gè) package 開發(fā)程序的所有的必需文件弟塞。比如頭文件,等等拙已。有時(shí) devel package 還包含靜態(tài)庫决记。
1.執(zhí)行如下命令查看可安裝的jdk版本
yum -y list Java*

2.選擇安裝的 jdk 版本,進(jìn)行安裝悠栓,選擇帶 devel 后綴的包
yum install -y java-1.8.0-openjdk-devel.x86_64

3.編輯配置文件霉涨,配置環(huán)境變量
vim /etc/profile

//添加如下內(nèi)容:JAVA_HOME 根據(jù)實(shí)際目錄來
JAVA_HOME=/usr/java/jdk1.8.0_60
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

4.重啟機(jī)器或執(zhí)行命令:
source /etc/profile
或
sudo shutdown -r now

5.查看安裝情況
java -version

3 查看 AscII 表命令

man ascii

4 文件下載 wget 命令

//wget是一個(gè)下載文件的工具
wget -O wordpress.zip http://www.centos.bz/download.php?id=1080 
#-O 表示下載并以不同的文件名保存按价。

5 文件比較 diff 命令

Linux diff 命令用于比較文件的差異。
diff 以逐行的方式笙瑟,比較文本文件的異同處楼镐。如果指定要比較目錄,則 diff 會(huì)比較目錄中相同文件名的文件往枷,但不會(huì)比較其中子目錄框产。
diff log2014.log log2013.log 

6 遠(yuǎn)程拷貝文件 scp 命令

scp /home/work/source.txt work@192.168.0.10:/home/work/ 
#把本地的 source.txt 文件拷貝到 192.168.0.10 機(jī)器上的 /home/work 目錄下

scp work@192.168.0.10:/home/work/source.txt  /home/work/ 
#把 192.168.0.10 機(jī)器上的 source.txt 文件拷貝到本地的 /home/work 目錄下

scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ 
#把 192.168.0.10 機(jī)器上的 source.txt 文件拷貝到 192.168.0.11 機(jī)器的 /home/work 目錄下

7 大文件切割成小文件 split 命令

# 如需要切割的文件是 app.log,生成的子文件前綴是 "child"错洁,以 1000 行為單位進(jìn)行切割秉宿。
# -l 行數(shù)
split -l  1000  app.log child

8 統(tǒng)計(jì)文件個(gè)數(shù)命令

# 統(tǒng)計(jì)當(dāng)前目錄下文件的個(gè)數(shù)(不包含目錄,不包括子目錄下統(tǒng)計(jì))
ls -l | grep "^-" | wc -l

# 統(tǒng)計(jì)當(dāng)前目錄下文件的個(gè)數(shù)(不包含目錄屯碴,包括子目錄下統(tǒng)計(jì))
ls -lR| grep "^-" | wc -l

9 軟連接設(shè)置 ln 命令

它的功能是為某一個(gè)文件在另外一個(gè)位置建立一個(gè)不同的鏈接描睦,這個(gè)命令最常用的參數(shù)是-s,
具體用法是:ln -s 源文件 目標(biāo)文件。

#刪除軟連接文件导而,重建一個(gè)軟連接文件
rm python3
ln -s /usr/local/Cellar/python/3.7.7/bin/python3.7  python3

#查看一個(gè)軟連接文件的詳情
ls -al python3

10 系統(tǒng)重啟命令

#方式1
reboot
#方式2
shutdown -r now
#方式3
shutdown -r +1

11 Linux 進(jìn)程 killed 日志查看

(1)嘗試如下兩個(gè)命令

egrep -i -r 'killed process' /var/log
sudo grep -A 50 'oom' /var/log/messages

(2)OOM Killed 機(jī)制和日志查看

Linux 內(nèi)核有個(gè)機(jī)制叫 OOM killer(Out-Of-Memory killer)忱叭,該機(jī)制會(huì)監(jiān)控那些占用內(nèi)存過大,尤其是瞬間很快消耗大量內(nèi)存的進(jìn)程今艺,為了防止內(nèi)存耗盡而內(nèi)核會(huì)把該進(jìn)程殺掉韵丑。
嘗試如下命令查看

grep "Out of memory" /var/log/messages 

12 Linux Kill 命令(kill -9 三思而后用)

  • kill 命令用于終止 Linux 進(jìn)程,默認(rèn)情況下虚缎,如果不指定信號(hào)撵彻,kill 等價(jià)于kill -15。
  • kill -15 執(zhí)行時(shí)实牡,系統(tǒng)向?qū)?yīng)的程序發(fā)送 SIGTERM(15)信號(hào)陌僵,該信號(hào)是可以被執(zhí)行、阻塞和忽略的铲掐,所以應(yīng)用程序接收到信號(hào)后拾弃,可以做一些準(zhǔn)備工作,再進(jìn)行程序終止摆霉。
  • 有的時(shí)候豪椿,kill -15 無法終止程序,因?yàn)樗赡鼙缓雎孕埃@時(shí)候可以使用 kill -9搭盾,系統(tǒng)會(huì)發(fā)出 SIGKILL(9)信號(hào),該信號(hào)不允許忽略和阻塞婉支,所以應(yīng)用程序會(huì)立即終止鸯隅。
  • 這也會(huì)帶來很多副作用,如數(shù)據(jù)丟失等,所以蝌以,在非必要時(shí)炕舵,不要使用 kill -9命令,尤其是那些 web 應(yīng)用跟畅、提供 RPC 服務(wù)咽筋、執(zhí)行定時(shí)任務(wù)、包含長事務(wù)等應(yīng)用中徊件,因?yàn)?kill -9 沒給 Spring 容器奸攻、Tomcat 服務(wù)器、dubbo 服務(wù)虱痕、流程引擎睹耐、狀態(tài)機(jī)等足夠的時(shí)間進(jìn)行收尾。
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強(qiáng)制終止
CONT 18 繼續(xù)(與STOP相反)
STOP 19 暫停(同 Ctrl + Z)

13 檢查IP端口號(hào)是否暢通 telnet 命令

1.檢測(cè) telnet-server 的 rpm 包是否安裝部翘,若無輸出內(nèi)容硝训,則表示沒有安裝。
rpm -qa telnet-server

2.安裝 telnet-server 
yum install telnet-server

3.安裝 telnet 命令
yum install telnet

4.使用即可
telnet $ip  $port
#輸出內(nèi)容略就,看到 Connected 就連接成功了

14 Linux ip捎迫、端口號(hào)查看命令

# Linux 終端查看自己的公網(wǎng)地址
curl ifconfig.me

# Linux 查看本機(jī)IP
ip -4 addr

# Linux 查看端口號(hào)進(jìn)程
sudo lsof -i :5017

15 MAC 地址簡述

  • 它是一個(gè)用來確認(rèn)網(wǎng)絡(luò)設(shè)備位置的位址。在OSI模型中表牢,第三層網(wǎng)絡(luò)層負(fù)責(zé)IP地址,第二層數(shù)據(jù)鏈路層則負(fù)責(zé)MAC位址贝次。MAC地址用于在網(wǎng)絡(luò)中唯一標(biāo)示一個(gè)網(wǎng)卡崔兴,一臺(tái)設(shè)備若有一或多個(gè)網(wǎng)卡,則每個(gè)網(wǎng)卡都需要并會(huì)有一個(gè)唯一的MAC地址 蛔翅。
  • MAC地址的長度為48位(6個(gè)字節(jié))敲茄,通常表示為12個(gè)16進(jìn)制數(shù),如:00-16-EA-AE-3C-40就是一個(gè)MAC地址山析,其中前6位16進(jìn)制數(shù)00-16-EA代表網(wǎng)絡(luò)硬件制造商的編號(hào)堰燎,它由IEEE(電氣與電子工程師協(xié)會(huì))分配,而后6位16進(jìn)制數(shù)AE-3C-40代表該制造商所制造的某個(gè)網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號(hào)笋轨。只要不更改自己的MAC地址秆剪,MAC地址在世界是惟一的。形象地說爵政,MAC地址就如同身份證上的身份證號(hào)碼仅讽,具有唯一性 。

16 Linux 請(qǐng)求 Web 服務(wù)器 curl 命令

# curl 是常用的命令行工具钾挟,用來請(qǐng)求 Web 服務(wù)器洁灵。
curl -X POST https://www.example.com

#詳細(xì)參考
http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

17 Linux 網(wǎng)絡(luò)連接相關(guān) netstat 命令

(1)netstat 命令常用參數(shù)

# 查看所有 3306 端口使用情況。
netstat -ntulp |grep 3306
-t或--tcp 顯示TCP傳輸協(xié)議的連線狀況掺出。
-u或--udp 顯示UDP傳輸協(xié)議的連線狀況徽千。
-l或--listening 顯示監(jiān)控中的服務(wù)器的 Socket苫费。
-p或--programs 顯示正在使用Socket的程序識(shí)別碼和程序名稱。
-a或--all 顯示所有連線中的Socket双抽。
-n或--numeric 直接使用IP地址黍衙,而不通過域名服務(wù)器。

(2)netstat 相關(guān)的 TCP 統(tǒng)計(jì)案例

eg1:統(tǒng)計(jì)指定ip和端口號(hào)荠诬,各種 tcp 連接狀態(tài)的數(shù)量

netstat -n | grep 1.2.3.4:22 | awk '/^tcp/ {++State[$NF]} END {for (i in State) print i, State[i]}'
  • 命令中琅翻,^tcp用于匹配開頭包含tcp字符的文本行,NF 指的是每行最后一個(gè)字段柑贞,數(shù)組State[NF]就是以最后一個(gè)字段為下標(biāo)指向一個(gè)存儲(chǔ)單元或者說變量方椎,此處代表該字段的統(tǒng)計(jì)結(jié)果, 也就是++的意義所在, 統(tǒng)計(jì)值自增一钧嘶。
  • END不能缺少表示END符號(hào)之后的指令于處理所有行結(jié)束時(shí)執(zhí)行棠众。
  • i是字段,State[i]即為統(tǒng)計(jì)結(jié)果有决,每行處理完成則State[$NF] 加1闸拿。

eg2:統(tǒng)計(jì)某 ip TIME_WAIT 連接情況

netstat -apn | grep WAIT  | grep "123.66.5.55" |wc -l

eg3:統(tǒng)計(jì) TCP 連接的狀況

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

18 查看 Linux 系統(tǒng)屬性命令案例

(1)查看系統(tǒng)內(nèi)核版本

cat /proc/version 查看系統(tǒng)內(nèi)核版本
# 輸出
Linux version 3.10.0-957.12.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue May 14 21:24:32 UTC 2019

(2)查看系統(tǒng) CPU 核數(shù)命令

  • 總核數(shù) = 物理 CPU 個(gè)數(shù) X 每顆物理 CPU 的核數(shù)
  • 總邏輯CPU數(shù) = 物理 CPU 個(gè)數(shù) X 每顆物理 CPU 的核數(shù) X 超線程數(shù)
# 查看物理 CPU 個(gè)數(shù)
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每個(gè)物理 CPU 中 core 的個(gè)數(shù)(即核數(shù))
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看邏輯 CPU 的個(gè)數(shù)
cat /proc/cpuinfo| grep "processor"| wc -l

# 查看 CPU 信息(型號(hào))
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

(3)Linux proc 文件-系統(tǒng)和運(yùn)行內(nèi)核信息

proc 文件系統(tǒng)可以被用于收集有用的關(guān)于系統(tǒng)和運(yùn)行中的內(nèi)核的信息。
下面是一些重要的文件:
/proc/cpuinfo - CPU 的信息(型號(hào), 家族, 緩存大小等)
/proc/meminfo - 物理內(nèi)存书幕、交換空間等的信息
/proc/mounts - 已加載的文件系統(tǒng)的列表
/proc/devices - 可用設(shè)備的列表exit
/proc/filesystems - 被支持的文件系統(tǒng)
/proc/modules - 已加載的模塊
/proc/version - 內(nèi)核版本
/proc/cmdline - 系統(tǒng)啟動(dòng)時(shí)輸入的內(nèi)核命令行參數(shù)

#如查看 cpu 的信息
cat /proc/cpuinfo

19 查看占用端口進(jìn)程新荤,并關(guān)閉掉占用進(jìn)程

1.查看占用端口進(jìn)程
lsof -i : $端口 
2.進(jìn)程關(guān)閉掉
kill -9 $進(jìn)程ID

20 域名DNS解析ip命令

# dig $域名
dig www.baidu.com

「不甩鍋的碼農(nóng)」原創(chuàng),轉(zhuǎn)載請(qǐng)注明來源台汇,未經(jīng)授權(quán)禁止商業(yè)用途苛骨!同名 GZH 請(qǐng)關(guān)注!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苟呐,一起剝皮案震驚了整個(gè)濱河市痒芝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牵素,老刑警劉巖严衬,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異笆呆,居然都是意外死亡请琳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門腰奋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來单起,“玉大人,你說我怎么就攤上這事劣坊∴值梗” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長测蘑。 經(jīng)常有香客問我灌危,道長,這世上最難降的妖魔是什么碳胳? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任勇蝙,我火速辦了婚禮,結(jié)果婚禮上挨约,老公的妹妹穿的比我還像新娘味混。我一直安慰自己,他們只是感情好诫惭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布翁锡。 她就那樣靜靜地躺著,像睡著了一般夕土。 火紅的嫁衣襯著肌膚如雪馆衔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天怨绣,我揣著相機(jī)與錄音角溃,去河邊找鬼。 笑死篮撑,一個(gè)胖子當(dāng)著我的面吹牛减细,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咽扇,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邪财,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了质欲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤糠馆,失蹤者是張志新(化名)和其女友劉穎嘶伟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體又碌,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡九昧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毕匀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铸鹰。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖皂岔,靈堂內(nèi)的尸體忽然破棺而出蹋笼,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布剖毯,位于F島的核電站圾笨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逊谋。R本人自食惡果不足惜擂达,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胶滋。 院中可真熱鬧板鬓,春花似錦、人聲如沸究恤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丁溅。三九已至唤蔗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窟赏,已是汗流浹背妓柜。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涯穷,地道東北人棍掐。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像拷况,于是被迫代替她去往敵國和親作煌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • # 切換目錄 cd # 示例 # 切換到上一層目錄 cd .. # 切換到/opt/software cd /op...
    羞澀的二黃閱讀 718評(píng)論 0 0
  • 一赚瘦、目錄結(jié)構(gòu) 目錄說明/binBinary的縮寫粟誓,這個(gè)目錄存放最經(jīng)常使用的命令;/sbins就是Super Use...
    CJ21閱讀 1,621評(píng)論 0 15
  • 如果你想知道你的服務(wù)器正在做干什么起意,你就需要了解一些基本的命令鹰服,一旦你精通了這些命令,那你就是一個(gè)專業(yè)的 Linu...
    七寸知架構(gòu)閱讀 10,851評(píng)論 1 71
  • 網(wǎng)絡(luò)篇 ping ping -c 3 -q -s 65500 -t 255 -i 0.1 -f www.baidu...
    豆瓣奶茶閱讀 883評(píng)論 0 27
  • Linux的基礎(chǔ)命令一些簡單的常見的我就不跟大家一一列舉出來了揽咕,這個(gè)直接百度一下就全部都有了 文件相關(guān)命令ls ...
    楊超越寫代碼沒bug閱讀 709評(píng)論 0 0