簡簡單單之Linux命令入門

show me the code and talk to me,作的出來更要說的明白
GitHub 項目JavaHouse同步收錄
我是布爾bl,你的支持是我分享的動力!java

引入

做爲一名合格的後端開發人員,咱們不免要在 Linux 環境下進入操做,查找問題,配置文件等等操做。所以,我以爲咱們須要掌握簡單的 Linux 命令。本文簡簡單單介紹一下 Linux 的常見操做,努力讓讀者在 Linux 環境下能夠進行工做。mysql

目錄結構

Linux 大致目錄結構如圖所示。其中上面的 / 表示的是跟目錄。linux

顯示目錄位置pwd

[root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd

/
複製代碼

進入目錄 cd

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd usr/
[root@iZm5eixsxpdmrg95cpxvmlZ usr]# pwd
/usr
複製代碼

能夠看到咱們進入了 usr 目錄git

顯示內容 ll

[root@iZm5eixsxpdmrg95cpxvmlZ usr]# ll

total 136
dr-xr-xr-x.   2 root root 32768 Jan  6 21:00 bin
drwxr-xr-x.   2 root root  4096 Apr 11  2018 etc
drwxr-xr-x.   2 root root  4096 Apr 11  2018 games
drwxr-xr-x.  69 root root 12288 Dec  4 11:16 include
drwxr-xr-x    3 root root  4096 Dec  4 11:27 java
dr-xr-xr-x.  33 root root  4096 Jan  6 21:02 lib
dr-xr-xr-x.  49 root root 36864 Jan  6 21:00 lib64
drwxr-xr-x.  24 root root  4096 Dec  4 11:16 libexec
drwxr-xr-x.  21 root root  4096 Jan  6 21:02 local
dr-xr-xr-x.   2 root root 16384 Jan  6 21:02 sbin
drwxr-xr-x. 104 root root  4096 Jan  6 21:00 share
drwxr-xr-x.   4 root root  4096 Jul 11  2019 src
lrwxrwxrwx.   1 root root    10 Jul 11  2019 tmp -> ../var/tmp
複製代碼

該命令能夠顯示目錄裏面全部的文件名稱、文件的權限、文件大小(kb)等等詳細信息。github

進入根目錄 cd /

[root@iZm5eixsxpdmrg95cpxvmlZ usr]# cd /
[root@iZm5eixsxpdmrg95cpxvmlZ /]# ll

total 2097224
lrwxrwxrwx.  1 root root          7 Jul 11  2019 bin -> usr/bin
dr-xr-xr-x.  5 root root       4096 Jul 11  2019 boot
drwxr-xr-x   6 root root       4096 Dec 15 10:04 data
drwxr-xr-x  19 root root       2960 Dec 15 10:05 dev
drwxr-xr-x. 82 root root       4096 Jan  6 21:02 etc
drwxr-xr-x.  2 root root       4096 Apr 11  2018 home
drwxr-xr-x   3 root root       4096 Dec  4 11:04 java
lrwxrwxrwx.  1 root root          7 Jul 11  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root          9 Jul 11  2019 lib64 -> usr/lib64
drwx------.  2 root root      16384 Jul 11  2019 lost+found
drwxr-xr-x.  2 root root       4096 Apr 11  2018 media
drwxr-xr-x.  2 root root       4096 Apr 11  2018 mnt
drwxr-xr-x.  2 root root       4096 Apr 11  2018 opt
dr-xr-xr-x  92 root root          0 Dec 15 10:05 proc
dr-xr-x---.  5 root root       4096 Jan 10 10:57 root
drwxr-xr-x  24 root root        720 Jan  6 21:00 run
lrwxrwxrwx.  1 root root          8 Jul 11  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root       4096 Apr 11  2018 srv
-rw-------   1 root root 2147483648 Dec  4 11:13 swapfile
dr-xr-xr-x  13 root root          0 Dec 15 15:28 sys
drwxrwxrwt.  9 root root       4096 Jan 10 03:15 tmp
drwxr-xr-x. 14 root root       4096 Dec  4 11:27 usr
drwxr-xr-x. 19 root root       4096 Jul 11  2019 var
複製代碼

進入上級目錄 cd ..

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd /usr/
[root@iZm5eixsxpdmrg95cpxvmlZ usr]# cd ..
[root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd
/
複製代碼

文件權限chmod

通常來講一個文件有三種角色web

  • 擁有者
  • 擁有組
  • 其餘人

權限有三種表示sql

  • r 表示只能夠讀文件,能夠用數字 4 代替
  • w 表示只能夠寫文件,能夠用數字 2 代替
  • x 表示只能夠執行文件,能夠用數字 1 代替

其中數字能夠累加apache

  • 5 表示可讀可執行
  • 6 表示可讀可寫
  • 7 表示可讀可寫可執行

舉個例子bootstrap

chmod 754 a.txt
複製代碼

該命令表示vim

  • 擁有者可讀可寫可執行
  • 擁有組可讀寫可執行
  • 其餘者可讀

可見三個數字是表示三種不一樣角色。

查找目錄

find 位置  -name 文件名
複製代碼

例子

[root@iZm5eixsxpdmrg95cpxvmlZ /]# find / -name tomcat

/usr/local/tomcat
/etc/logrotate.d/tomcat
/etc/selinux/targeted/active/modules/100/tomcat
/etc/rc.d/init.d/tomcat
複製代碼

顯然咱們目的是在從目錄開始去尋找 tomcat 目錄

字符串處理

管道|

這個命令你們應該很常見,他是 Linux 裏面管道,用於鏈接兩個或者多個命令,具體表現爲上一個命令的輸出內容做爲下個命令的輸入內容。

例子

[root@iZm5eixsxpdmrg95cpxvmlZ /]# ps aux| grep tomcat


root      2292  0.0  0.0 112712   956 pts/0    R+   11:29   0:00 grep --color tomcat
www       6514  0.1 32.8 2993956 618504 ?      Sl    2019  45:28 /usr/java/jdk1.8.0_231/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx919m -Dfile.encoding=UTF-8 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.library.path=/usr/local/apr/lib -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
複製代碼

搜索文本grep

該命令用於匹配字符串,至關於咱們經常使用的 Ctrl+f.

grep  匹配內容 文件名
複製代碼

例子

[root@iZm5eixsxpdmrg95cpxvmlZ /]# grep asda test.txt

asda
複製代碼

排序sort

sort [-ntkr] 文件名

其中:
n:數字排序
t:指定分隔符
k:指定一第幾列爲標準排序,常與 t 一塊兒使用
r:逆序
複製代碼

例子:

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt 

a:2
s:6
d:1
a:0


[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | sort 

a:0
a:2
d:1
s:6


[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | sort -t ":" -k 2 

a:0
d:1
a:2
s:6


[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | sort -t ":" -k 2 -r
s:6
a:2
d:1
a:0
複製代碼

計算重複uniq

uniq [-ic]

# -i 忽略大小寫
# -c 計算重複行數
複製代碼

常與sort使用

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt 

a:2 a a d
s:6 a V
d:1   a
a:0
a:0
a:0


[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | uniq

a:2 a a d
s:6 a V
d:1   a
a:0


[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | uniq -c

      1 a:2 a a d
      1 s:6 a V
      1 d:1   a
      3 a:0
      
      
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt| sort | uniq -c

      3 a:0
      1 a:2 a a d
      1 d:1   a
      1 s:6 a V

複製代碼

進程

瞬間狀態ps

該命令用於查看某一時刻的進程狀態

ps 參數
#-A 列出全部的進程,和-e同樣
#aux 顯示全部的包含其餘使用者的進程
複製代碼

查看tomcat進程是否存在

[root@iZm5eixsxpdmrg95cpxvmlZ /]# ps aux | grep tomcat


www       6514  0.1 32.8 2993956 618504 ?      Sl    2019  47:29 /usr/java/jdk1.8.0_231/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx919m -Dfile.encoding=UTF-8 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.library.path=/usr/local/apr/lib -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     32062  0.0  0.0 112712   952 pts/0    R+   17:46   0:00 grep --color tomcat

複製代碼

實時狀態top

該命令用於查看cpu實時運行狀態,內存空間

經過pid終止進程kill

經過名稱終止進程killall

killall 命令比較安全,能夠輸出進程名稱終止,避免輸錯數字pid

端口占用 lsof

改命令查看端口是否被佔用

[root@iZm5eixsxpdmrg95cpxvmlZ /]# lsof -i:3306

COMMAND  PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
mysqld  5437 mysql   30u  IPv4    94759      0t0  TCP *:mysql (LISTEN)

複製代碼

vim 編輯器

vim編輯器是Linux的文本編輯器,至關window的記事本。

查找關鍵字 /

在vim裏面咱們使用 / 關鍵字查找關鍵字

退出

使用 esc:wq組合保存退出vim

文本處理工具awk

awk默認以空格劃分域(列數),所以咱們能夠經過 awk打印特定的列

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt 

a:2 a a d
s:6 a V
d:1   a
a:0
a:0
a:0


[root@iZm5eixsxpdmrg95cpxvmlZ /]# awk '{print $1}' test.txt 

a:2
s:6
d:1
a:0
a:0
a:0

複製代碼

指定分割-F 分隔符

若是咱們不須要空格分割,能夠指定其餘

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt 

a:2 a a d
s:6 a V
d:1   a
a:0
a:0
a:0


[root@iZm5eixsxpdmrg95cpxvmlZ /]# awk -F : '{print $1}' test.txt 

a
s
d
a
a
a

複製代碼
相關文章
相關標籤/搜索