工作中實用的linux命令

            Linux機器常見問題處理

 
 
 
 

1、 查詢linux機器的版本信息:

 1. cat /etc/redhat-release(查看linux版本當前操作系統發行版信息)
 2. getconf LONG_BIT (查看linux系統是多少位的)

2、 查看CPU信息(型號):

 1. cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq –c

3、 查看資源利用:

 1. top(輸入1 可展開cpu核數)
 2. cat /proc/meminfo
 3. free –g
 4. df -h
 5. echo 1 > /proc/sys/vm/drop_caches(如果讓操作系統重新分配內存將1改爲0即可)

4、 查看機器型號:

 1. dmidecode | grep "Product Name"

5、 查看本機ip以及網卡信息:

 1. dmesg | grep -i eth
 2. ifconfig
 3. watch cat /proc/net/dev(哪個流量大,就是當前使用的網卡)

6、 linux用戶操作:

 1> 創建用戶:

 - (useradd test password test)
 - useradd test -p test
 - groupadd  gro1    --新建用戶組
 - gpasswd  -a  test  gro1   --將test用戶添加到gro1用戶組中
 - gpasswd -d   test  gro1   --將test用戶從gro1用戶組中移出

 刪除用戶:

 - userdel  -r  test;    對應文件也刪除

 2> 修改用戶名密碼:

 - passwd test

 3> Su root和su – root切換用戶的區別:

 - 第一種只是會切換到root用戶,但是shell環境變量用的還是原來用戶的,第二種切換後,shell環境變量也會切換到root的變量環境

切換用戶快捷方式補充:su - test切換到test用戶後,ctrl+D可以logout(快速推出當前用戶),退回到root

 4> 普通用戶賦予root權限:

root用戶下,執行visudo: 對應位置填上以下配置
youuser     ALL=(ALL)     ALL
%youuser     ALL=(ALL)     ALL
youuser     ALL=(ALL)     NOPASSWD: ALL
%youuser    ALL=(ALL)     NOPASSWD: ALL

 5> 查看用戶屬於哪個組:

groups test (groups查看當前用戶所屬的組)
chown -R user:group file  修改文件的屬主用戶(注意這裏-R是大寫,意思是遍歷文件夾下面所有子文件夾或文件,全部賦權給指定用戶和用戶組)

 6> su和sudo的區別:

su表示切換用戶
sudo表示臨時使用root權限

7、 操作命令集:
 
 1> 創建一個文件夾: mkdir test,補充:創建一個帶子文件夾的文件,可以用 mkdir -p A/B
 2> 複製一個文件到另一個文件夾local下: cp test.txt /usr/local
 3> 移動一個文件到另一個文件夾local下: mv test.txt /usr/local
 4> 刪除一個文件test.txt:rm -f test.txt
 5> 刪除一個文件夾test:rm -rf test(參數r的意思是向下遞歸,不管有多少級目錄,全部刪除)
 6> 編輯文件:
  vi test.txt(或者 vim test.txt):

1、vi命令下有三種模式,一種是編輯模式,一種是插入模式,一種是命令模式
2、輸入insert進入插入模式,然後可以對文本編輯,編輯完之後,按esc退出編輯模式,輸入:進入命令模式,wq保存文件退出,q!不保存強制退出
搜索關鍵字: /關鍵字 n 向下搜索 N 反向搜索 ?/關鍵字 向上搜索
3、刪除一行: dd
4、刪除多行: ndd
5、撤銷上一步:u
6、翻頁命令: ctrl+f前一頁、ctrl+b後一頁
7、查找關鍵字: 輸入/加自己的關鍵字
8、複製:ctrl+insert 粘貼:shift+insert

 7> 查找文件:

1、在當前路徑下查找擴展名爲txt的文件: find ./ -type f -name “*.txt”
2、顯示當前路徑: pwd
3、查找文件安裝路徑如mysql: whereis mysql which、locate、whereis命令的區別,兩者都可以查詢系統中的可執行文件的路徑,而不同之處是,which只能查找加入path的可執行文件,whereis還可以搜索非path的可執行文件,以及man文件等。
which可以搜索一些系統命令,即在usr目錄下的一些命令,比如which cat; which
find等,如果安裝了mysql,還可以which mysql。 whereis也是來搜索命令的,但是同時會搜索出命令對應的幫助文檔
locate是純粹來搜索文件路徑的 ​​
在這裏插入圖片描述
                (which和whereis命令結果) ​​
在這裏插入圖片描述
                (locate命令結果)
4、查找某個文件所在的位置: locate my.cnf
5、根據文件名關鍵字模糊查找文件所在位置: find / -name ‘tomcat

 8> 修改文件權限:

1、ll命令可以查看某個文件夾下所有文件的權限,權限參數解釋: 權限是3個一組,
 【-】1【rwx】234【r-x】567【r–】890
 1代表文件是目錄還是文件,234代表擁有者的權限,567代表同用戶組用戶權限,890代表其他用戶權限
2、chmod u+(-/=)rwx 1.txt 或者chmod 777 test.txt 給文件賦予rwx權限,參數解釋: u(文件擁有者)、g(group用戶組)、o(other其他用戶)、a(all)
3、修改文件的所有者: chown mdmp:mdmp B*,參數解釋:mdmp是所有者,後一個mdmp是所屬於的組,B*是以B開頭的所有文件

 9> 解壓文件:

1、zip格式解壓 unzip test.zip
2、tar.gz文件解壓tar –zxvf test.tar.gz 10> 日誌文件處理:
1、日誌文件過濾查詢: cat test.log|grep xx 、more test.log|grep xx
2、大日誌文件的處理:先用cat grep結合過濾,然後講過濾的文件保存起來,再通過vi來查看日誌步驟: cat big.log|grep xx > 1.log vi 1.log(使用/搜索)
3、修改linux機器時間: date –s ’16:29:30 2019/05/09’。進程虛擬機重啓後系統時間就不準了,需要修改時間來查日誌
4、less text.log,使用/來搜索字符串。less和more的區別:more查看日誌不能後退,less加上了這個功能,Linux流傳這樣一句話"less
is more",可以根據兩個命令的特點來選擇使用哪個。
5、清屏:ctrl+l

8、進程處理操作:
 
 1> jps 或者 ps –ef|grep java 查看已經啓動的java進程
 2> kill -9 pid(進程號) 注意:ps –ef|grep XX 查出來的進程信息中,第一個id是進程的 id,第二個id是進程的父id, 不要殺錯
 3> 查看佔用端口進程號

netstat -nap | grep 9836

lsof -i:佔用端口

 4> 查詢某個進程開啓的端口是多少?

ps -ef|grep 進程名 這一步查到PID(進程號)
netstat -nap|grep PID 查詢到端口信息

9、防火牆操作:
 
 1> centOs7以前,系統使用的防火牆是iptables,開啓關閉防火牆命令:

service iptables stop/status/start

 2> centOs7使用的防火牆是firewalld,systemctl start/status/stop firewalld
 3> firewalld開放某個端口:

firewall-cmd --zone=public --add-port=8180/tcp –permanent
firewall-cmd –reload firewall-cmd --list-ports systemctl restart
firewalld.service

 4> iptables防火牆端口開放:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT /etc/init.d/iptables
save

 5> firewalld防火牆出現了異常,無法關閉(有報不知名的錯誤):

1、一種解決辦法: 升級firewalld,yum update firewalld 升級完之後,防火牆自動就關閉了
2、第二種解決辦法,直接殺掉firewalld的進程

10、遠程連接問題:
 
 1> 遠程連接工具xshell或secureCRT無法連接:

1、檢查是不是sshd服務的問題:service status/start/stop sshd(操作)

11、項目部署:
 
 1> jar包啓動:

1、java -jar xx.jar 啓動,日誌會顯示在當前窗口
2、nohup java -jar xx.jar & 加了&,默認jar會在後臺啓動,可以ctrl+c終止, 進行其他操作
3、清理操作日誌: echo “”>XX.log
4、殺掉多個已知進程名的進程腳本:
 #!/bin/sh
  string=“data-registry,data-publish-biz,data-gateway,mdmp-1.3-nbg”(這裏是變量,可以輸入多個進程名)
 array=(${string//,/ })
  for var in ${array[@]}
 do
 ps -ef |grep $var|grep -v grep| awk ‘{print $2}’|xargs kill -9
  done
注:windows工具下編輯出來的sh腳本文件是windows格式的,在linux機器上要轉換爲unix格式(文本工具都可以轉換),要不執行腳本會不識別其中的換行等字符

12、創建證書連接
 

說明:兩臺機器通過證書建立信任關係,祕鑰的生成跟機器沒有任何關係,只要有公鑰和私鑰就可以連接 1)使用ssh-keygen命令生成公私鑰在這裏插入圖片描述
​​ 可以看到/root/.ssh目錄下已經生成了對應的公私鑰對 ​​
在這裏插入圖片描述
2)將公鑰信息寫入到私鑰登錄時的校驗文件(機器上沒有這個文件authorized_keys,需要手動創建,然後將公鑰信息寫入其中)
在這裏插入圖片描述 ​​
3)將私鑰信息分發到需要使用私鑰登錄的用戶手中

13、手機SSH連接linux服務器:
 

下載juiceSSH app(應用市場都有),然後新建連接即可(免費好用,界面清爽,UI漂亮,一個檸檬) IOS的可以下載Termius

14、常見的linux系統以及區別
 
 1> linux發行廠商:redhat、ubuntu、debian、suse、redflag(中科院研發)
 2> 常見linux系統區別:centos、redhat的區別

1、首先,兩者的聯繫:redhat提供linux的開源,centos是在其基礎上的一個克隆版本,redhat的兩系列linux產品:一類是免費的Fedora
Core,主要用戶桌面版本,另一類是收費的Enterprise系列,包括AS/ES/WS分支,Red Hat Enterprise
Linux:redhat的企業版本,簡寫:RHEL
2、centOs與redhat區別
在這裏插入圖片描述

      ​​

15、ping www.baidu.com時候ping不通,不能識別host這個問題說明缺少DNS服務器配置。

在 etc/resolv.conf 文件中,添加:nameserver 114.114.114.114 即可
注:resolv.conf文件是各種操作系統域名系統解析器(DNS Resolver)的配置文件。每當一個程序需要通過域名來訪問Internet上面的其它機器時,需要利用Resolver庫函數將域名轉換成對應的IP,然後纔可以進行訪問。

16、linux上各個文件夾的作用

/bin   一般存放linux系統的常用命令 比如: ls、cat、mkdir等 /sbin 一般存放系統級別的管理命令和程序 比如:ifconfig等
/usr  一般存放系統應用程序
/opt  額外安裝的應用程序可以存放在這裏 比如: tomcat等
/dev  存放外接設備文件(磁盤等)
/etc  存放系統管理和配置文件
/proc  系統內存的映射,可以直接訪問這個目錄來獲取系統的信息
/var  存放運行時需要改變數據的文件,也是某些大文件的溢出區,比如各種服務的日誌文件
/tmp  存放各種裏臨時文件

發佈了3 篇原創文章 · 獲贊 8 · 訪問量 1049
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章