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è)字段為下標(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)注!