1. 程式人生 > >linux常用命令 和shell指令碼(必知)

linux常用命令 和shell指令碼(必知)

從工作中總結了一些非常實用的linux命令如下:

命令例項 功能
curl -I http://127.0.0.1:8088/index.jsp

curl -I  http://127.0.0.1:8088/index.jsp
返回200確認服務正常
sudo mv healthcheck  healthcheck.bak 摘掉healthcheck
sudo vi  xxx 修改檔案
cd 目錄
less / cat / tac  檔名
shift+g

less 檔名 |tail -200

cat 檔案 |  grep  -i 'error' 不分大小寫 

cat 檔案 |  grep  -v 'error' 不包含

cat /etc/hosts 檢視host檔案
檢視檔案
看結尾
ls -al 目錄 顯示目錄
lsattr -a test

-a:顯示所有檔案屬性  -d:僅顯示目錄屬性  -R:遞迴顯示
顯示加鎖檔案內容
檢視檔案的隱藏屬性
sudo chattr -i filename 對檔案加鎖
sudo  chattr +i filename 解鎖
history 100 歷史
tail -200f  檔案 末尾檢視
ps aux | grep nginx

ps -aux|grep tomcat
顯示所有程式
netstat -an | grep ':80'
找出執行在指定埠的程序

wgethttp://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz

tar zxvf webbench-1.5.tar.gz

cd webbench-1.5

make && make install

安裝

cat /proc/cpuinfo|grepcores

檢視cpu核數

cat/proc/meminfo |grep MemTotal

檢視記憶體大小
df -hl 磁碟
sudo 

find / -name http.conf

 查詢檔案

sudo vim startenv.sh

註釋掉原來的:

新增下面的

exportJAVA_OPTS="-Xms2048m -Xmx2048m -XX:NewSize=256m -XX:PermSize=256m-server  -Xdebug -Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=23455"

重啟tomcat
開啟tomcat的debug模式
參考:http://edu.cnzz.cn/201008/649705bb.shtml
方法一: 想要讓特定任務執行一次 ,可以使用at
方法二:crontab
cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下執行作業。
由於Cron 是Linux的內建服務,但它不自動起來


/sbin/service crond start//啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload//重新載入配置
/sbin/service crond status//檢視服務狀態

crontab -u //設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數
crontab -l //列出某個使用者cron服務的詳細內容
crontab -r //刪除某個使用者的cron服務
crontab -e //編輯某個使用者的cron服務比如說root檢視自己的cron設定:crontab -u root -l
再例如,root想刪除fred的cron設定:crontab -u fred -r


ps -ax | grep cron 檢視服務是否已經執行

*****command(例如/bin/sh /home/start.sh)


分  時  日  月  周  命令


第1列表示分鐘1~59 每分鐘用*或者 */1表示

第2列表示小時1~23(0表示0點)

第3列表示日期1~31

第4列表示月份1~12

第5列標識號星期0~6(0表示星期天)

第6列要執行的命令crontab檔案的一些例子:

#每晚的21:30重啟apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每天早上6點10分
10 6 * * * date

#每兩個小時
0 */2 * * * date
定時任務設定
chmod +x nusers 
執行許可權
sudo rm -rf 目錄名字
強制遞迴刪除
du -h --max-depth=1 /home/*
檢視檔案及資料夾的詳細大小

sudo /home/tools/bin/restart_tomcat.sh tomcat名稱

重啟tomcat
sudo sz +  檔名
下載

sudo rz -bey

上傳
atnodes 'grep 'xception'  error.log  若干機器
批量檢視
version.sh
查tomcat版本號
命令 描述
cat/proc/meminfo 記憶體

這個動態更新的虛擬檔案實際上是許多其他記憶體相關工具(如:free / ps / top)等的組合顯示。/proc/meminfo列出了所有你想了解的記憶體的使用情況。

程序的記憶體使用資訊也可以通過 /proc/<pid>/statm 和 /proc/<pid>/status 來檢視。

-h


free -b -s5
每5秒更新一次




ps aux--sort-rss

sudo smem --pie name -c "pss"



top




vmstat -s




pmap -d 5647





free命令是一個快速檢視記憶體使用情況的方法,
它是對 /proc/meminfo 收集到的資訊的一個概述

free命令是用來檢視記憶體使用情況的主要命令。和top命令相比,它的優點是使用簡單,並且只佔用很少的系統資源。通過-S引數可以使用free命令不間斷地監視有多少記憶體在使用,這樣可以把它當作一個方便實時監控器。


ps命令可以實時的顯示各個程序的記憶體使用情況
可以使用 “–sort”選項對程序進行排序,例如按RSS進行排序:






smem命令允許你統計基於/proc資訊的不同程序和使用者的記憶體使用情況。
記憶體使用情況的分析可以匯出圖表(條形圖和餅圖)。



top命令提供了實時的執行中的程式的資源使用統計。你可以根據記憶體的使用和大小來進行排序。




vmstat命令顯示實時的和平均的統計,覆蓋CPU、記憶體、I/O等內容。例如記憶體情況,不僅顯示實體記憶體,也統計虛擬記憶體。




可以根據程序檢視程序相關資訊佔用的記憶體情況,(程序號可以通過ps檢視)如下所示
top -d 2 ---兩秒重新整理一次

 top -d 2 -p 2955 ---只輸出指定程序的資訊

它的缺點是會消耗很多系統資源

它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.記憶體使用和執行時間對任務進行排序;
參考:

top常用引數如下:

-d :後面可以接秒數,就是整個程式畫面更新的秒數。預設是 5 秒;
-b :以批次的方式執行 top ,還有更多的引數可以使用喔!
通常會搭配資料流重導向來將批次的結果輸出成為檔案。
-n :與 -b 搭配,意義是,需要進行幾次 top 的輸出結果。
-p :指定某些個 PID 來進行觀察監測而已。
在 top 執行過程當中可以使用的按鍵指令:
? :顯示在 top 當中可以輸入的按鍵指令;
P :以 CPU 的使用資源排序顯示;--%CPU
M :以 Memory 的使用資源排序顯示;--%MEM
N :以 PID 來排序--從大到小
T :由該 Process 使用的 CPU 時間累積 (TIME+) 排序。
k :給予某個 PID 一個訊號 (signal)
r :給予某個 PID 重新制訂一個 nice 值
ln -s /home/tomcat    /tomcat



















ln  a b 是建立硬連結
建立軟連結---linux下的軟連結類似於windows下的快捷方式

ln -s a b 中的 a 就是原始檔,b是連結檔名,其作用是當進入b目錄,實際上是連結進入了a目錄

注意的是:
執行命令的時候,應該是a目錄已經建立,目錄b沒有建立。我最開始操作的是也把b目錄給建立了,結果就不對了





軟硬連結區別:

1)軟連線可以 跨檔案系統 ,硬連線不可以 。
實踐的方法就是用共享檔案把windows下的 aa.txt文字文件連線到linux下/root目錄 下 bb,cc . ln -s aa.txt
/root/bb 連線成功 。ln aa.txt /root/bb 失敗 。

(2)關於 I節點的問題 。硬連線不管有多少個,都指向的是同一個I節點,會把 結點連線數增加 ,只要結點的連線數不是 0,檔案就一直存在 ,不管你刪除的是

原始檔還是 連線的檔案 。只要有一個存在 ,檔案就 存在 (其實也不分什麼 原始檔連線檔案的 ,因為他們指向都是同一個 I節點)。 當你修改原始檔或者連線檔案

任何一個的時候 ,其他的 檔案都會做同步的修改 。軟連結不直接使用i節點號作為檔案指標,而是使用檔案路徑名作為指標。所以 刪除連線檔案 對原始檔無影響,但

是 刪除 原始檔,連線檔案就會找不到要指向的檔案 。軟連結有自己的inode,並在磁碟上有一小片空間存放路徑名.

(3)軟連線可以對一個不存在的檔名進行連線 。

(4)軟連線可以對目錄進行連線。

rm -rf  b  


注意不是rm -rf  b/

刪除軟連結

[[email protected]]$ touch f1          #建立一個測試檔案f1
[[email protected]]$ ln f1 f2          #建立f1的一個硬連線檔案f2
[[email protected]]$ ln -s f1 f3       #建立f1的一個符號連線檔案f3
[[email protected]]$ ls -li            # -i引數顯示檔案的inode節點資訊
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

結論:
當刪除原始檔案f1後,硬連線f2不受影響,但是符號連線f1檔案無效


參考:
http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
總結
依此您可以做一些相關的測試,可以得到以下全部結論:
1).刪除符號連線f3,對f1,f2無影響;
2).刪除硬連線f2,對f1,f3也無影響;
3).刪除原檔案f1,對硬連線f2沒有影響,導致符號連線f3失效;
4).同時刪除原檔案f1,硬連線f2,整個檔案會真正的被刪除。
 getconf LONG_BIT

或者 file /sbin/init
或者uname -a
linux是32位還是64位

mysql 環境變數配置:

vi .bash_profile 

export MYSQL_HOME=../mysql-5.7.13-osx10.11-x86_64/bin

PATH=$PATH:$MYSQL_HOME

source ~/.bash_profile--讓以上所做的配置生效

mysql新增環境變數
free -m   顯示free是顯示的當前記憶體的使用,-m的意思是M位元組來顯示內容
方法一:  

lsof -i:8080


檢視:
lsof -i:port
殺程序:
kill -9 processId

方法二:

netstat -tunlp |grep 8080

檢視埠號佔用

linux 效能

vmstat 1 5

簡單shell指令碼

  • web java 專案 打成war包, 並直接拷貝到tomat下: run.sh  test myProject(結果將myProject.war部署)
if [ ! $# == 2 ]; then
  echo "the length_in_params is 2"
  exit
fi

jenkinspath=$1
warname=$2

cd /xxx/$jenkinspath/
/yyy/software/apache-maven-3.5.0/bin/mvn clean
/yyy/software/apache-maven-3.5.0/bin/mvn install -Pdev
cp /xxx/$jenkinspath/target/${warname}.war /xxx/apache-tomcat-8.5.15/webapps/


相關推薦

linux常用命令 shell指令碼

從工作中總結了一些非常實用的linux命令如下: 命令例項 功能 curl -I http://127.0.0.1:8088/index.jsp curl -I  http://127.0.0.1:8088/index.jsp 返回200確認服務正常 sudo mv hea

Linux常用命令Shell程式設計基礎

目錄相關 cd - .與.. 分別表示當前目錄和父目錄 - ~與$HOME 都是指當前使用者的主目錄 - cd – 切換到上一次所在的目錄(不一定是父目錄) pwd - pwd 顯示當前目錄 - $PWD與$OLDPWD 兩個變量表示當前目錄和上一次所在的目錄 ls - ls -rtl 檢視

Linux的基礎命令Shell指令碼

一、計算機   1、能接收使用者輸入的指令和資料,經過中央處理器的算術邏輯單元處理,然後會產生或者顯示新資料的,就是計算機。    比如,普通商戶用的計算器,手機,提款機,汽車導航,桌面電腦,手提電腦等   2、計算機

Linux常用命令vim的使用

系統 ctrl+v ctrl+ 環境的使用 新增 常用 linu 命令模式 多行 一、Linux常用命令 - 已學 cd (路徑的切換) rm(後接-rf 可刪除文件或文件夾) ls(查看當前路徑下的文件和文件夾) mkdir(創建文件夾) touch(創建文件)

Linux常用命令常見問題

secure 格式 tmp目錄 prompt nat mys 常見問題 -c 文檔 常用命令 查看系統信息 Linux版本uname -a 查看系統內核信息lsb_release -a 查看LSB(L

linux常用命令快捷鍵

inux linux常用命令 創建 lin 返回 ont 搜索 權限 文本 命令 解壓縮(tar zxf 壓縮包名) 創建文件(mkdir 文件名)權限文件(sudo mkdir 文件名) 編輯退出(vim/vi 名字--點擊i編輯--返回--冒號--qw--回車)

Linux常用命令示例詳解-檔案管理

1、touch 命令 使用說明: Linux touch命令用於修改檔案或者目錄的時間屬性,包括存取時間和更改時間。若檔案不存在,系統會建立一個新的檔案。 使用語法: touch [-acfm][-d<日期時間>][-r<參考檔案或目錄>

Linux常用命令應用配置

**     首先是準備工作,下載工具和編輯工具的安裝 yum install wget yum install vim 一、軟體操作命令 軟體包管理器 yum 安裝軟體 yum install xxx 解除安裝軟體 yum remove xxx 搜尋軟體 yu

Linux常用命令之新手上路

個人說明:對於習慣了Windows平臺的Linux初學者來說,剛接觸Linux時是比較懵逼的,為了幫助和我一樣的小白更加快速的入門,我打算養成學習筆記的習慣,將自己在學習Linux和Java的所學所得都記錄在部落格上。 新手入門8個常見的任務和常用的命令     1、檢視當

Linux 常用命令使用者管理

Linux的基本概念 在用命令列的時候,一定要知道自己當前的目錄。 命令 說明 example 路徑 . .. / ~ 相對路徑 絕對路徑 當前路徑 上一路徑

linux常用命令shell程式設計

1.     echo命令的作用列舉如下:1)打開回顯或關閉回顯功能格式:echo [{ on|off }]如果想關閉“ECHO OFF”命令列自身的顯示,則需要在該命令列前加上“@”。@Echo off2)關閉DOS命令提示符 格式:ECHO OFF在DOS提示符狀態下鍵入

Linux常用命令例項詳解N

N netstat 顯示網路有關的資訊,比如套介面使用情況、路由、介面、協議(TCP等)等 檢視TCP連線的命令是什麼? 正確答案: C 你的答案: A (錯誤) tcpdump top netstat ifconfig O P

linux常用命令關閉防火牆

1.        linux常用命令Mkdir 建立Rm -rf 刪除Chmod -R 777 許可權Mysql -uroot -rquit退出find / -name svn 查詢位置2.        關閉防火牆和selinuxRedhat使用了SELinux來增強安全

linux常用命令-檔案編輯類cat,vim,more

cat 描述: 將資料顯示到基本輸出中 引數: -n:顯示行號(包括空行) -b:顯示行號(不包括空行) -s:將兩個及以上空行合併為一個空行 樣例: cat -sb a.txt b.t

Linux系統命令Shell指令碼學習筆記五:字元處理

管道 管道可以把一個命令的輸出內容當作下一個命令的輸入內容,兩個命令之間只需要使用管道符號連線即可,由管道連線起來的程序可以自動執行。 ls -l /etc/init.d | more 檢視目錄下檔案的詳細資訊,但會因為輸出內容過多而造成翻屏,先輸出的內容就會看不到了,利用

Java遠端呼叫shell指令碼專案實戰

前言        Java遠端呼叫shell指令碼,需要用到SSH建立連結(類似於xshell連線linux),然後再根據合法的引數進行shell指令碼呼叫 1 首先,從業務層開始,我這裡實現重傳指令碼的業務,程式碼如下.       //重傳     public

VPS伺服器備份網站到七牛雲端儲存的shell指令碼第二版

上一篇文章釋出了備份網站到七牛的第一版,這次應回覆要求先公佈同步原理及 shell 原始碼,讓喜歡折騰的人有力可使。其實,這個備份工具的原理非常簡單,就是借用了官方的同步工具,配合簡單的 shell 語句即可完成。 一、備份原理 簡介 qrsync 是一個根據七牛雲端儲存 API 實現的簡易命令

git常用命令速查表值得收藏

(內容同步自小鄒的頭條號:滬漂程式設計師的生活史) Git作為一個分散式版本控制系統,在專案中的作用不言而喻。但很多人可能會忘記一些比較複雜的命令,下面是是一張速查表,希望能給大夥有所幫助。 常用命令速查表   工作原理   以上包括一些簡單而

Linux修改命令提示符字型顏色PS1變數

一、PS1變數的格式: (1) \[\e[F;Bm\] 為字型的顏色設定的格式。其中:F為字型的顏色,編號為30~37;B為字型背景顏色或控制的各種格式。 \[\e[Bm\] 在沒有F項時,也可以設定相應的數字來表示字型的顏色。 (2)   \[\e[0m\]

linux基本命令及操作13磁碟管理

   磁碟管理 1.名詞解釋   mbr   mpt   硬碟有效性標示   主分割槽   擴充套件分割槽   邏輯分割槽 2.磁碟檢視命令 fdisk -l   ##系統中的所有磁碟裝置 df  -TH       ##系統正在掛載的磁碟裝置 blkid