1. 程式人生 > >linux常用命令總結二(chown/sed/echo/ls/vim/scp/awk)

linux常用命令總結二(chown/sed/echo/ls/vim/scp/awk)

####chown
通過chmod可以修改一個檔案的許可權,也可以修改檔案所有者及使用者組。chown是change owner 的縮寫。chown -R用來同時修改目錄下的子目錄和檔案(-R表示遞迴)。
建立使用者

useradd changhf
passwd changhf

將目錄/usr/test及其下面的所有檔案和子目錄的使用者組改成changhf

su //到root目錄下執行下面的命令
chown -R changhf:changhf /usr/test

將目錄/home/admin/music及其下面的所有檔案、子目錄的使用者組改成 admin

chown -R admin:admin /home/admin/music

檢視使用者所在的使用者組

groups admin //輸出admin : admin

檢視所有使用者組

cat /etc/group

sed

-i :直接修改讀取的檔案內容,而不是輸出到終端。

sed 's/要被取代的字串/新的字串/g'
//對當前目錄下的所有xml檔案修改${user.home}為/opt/rocketmq
sed -i 's#${user.home}#/opt/rocketmq#g' *.xml
//$ 代表的是最後一行,a是新增,因此該檔案最後新增『# This is a test』!
sed -i '$a # This is a test' abc.txt 

如果你有一個 100 萬行的檔案,你要在第 100 行加某些文字,此時使用 vim 可能會瘋掉!因為檔案太大了!

config_band(){
    if [ "${band_version}" == "real" ]; then
        if [-d "/usr/band/"]; then
        rm -rf /usr/band/
        fi
        mkdir /usr/band/
        cp -R /install/band/* /usr/band/
        cp /install/base-client-1.0.0.jar /usr/band/

        sed -i  -e "s/{band_endpoint}/${secure_band_endpoint}/g"  /usr/band/config/variables.properties
        sed -i  -e "s#{band_url}#${secure_band_url}#g"  /usr/band/config/variables.properties

        cd /usr/band/
        java -jar yundun-base-client-1.0.0.jar
    fi
}

####echo

  • 文字、變數的輸出
echo "helloworld"  //輸出文字
echo $JAVA         //輸出變數
  • 使用>指令覆蓋檔案原內容並重新輸入內容,若檔案不存在則建立檔案。
echo "123" > test
chmod +x test && /bin/bash ./test
// 輸出:123
  • 使用>>指令向檔案追加內容,原內容將儲存。
echo "123" >> test
echo "456" >> test
chmod +x test && /bin/bash ./test
// 輸出:
123
456

####ls

ls -al
drwxr-xr-x+ 
//d表示目錄,-表示檔案
//後面是許可權rwx,三個為一組,一次為擁有者,同用戶組,其他使用者組的許可權。

linux下每個檔案、目錄都是有特定許可權的,分別為檔案擁有者,群組和其他使用者。

####vim

vim進入一個檔案,敲 / 進入關鍵字搜尋,輸入要搜尋的關鍵字,回車開始查詢,n 向下查詢,N 向上查詢;shift + G 進入檔案末尾。
####scp

//scp 傳送中目錄下的檔案到另一臺伺服器指定目錄
scp /root/abc.sql   [email protected]:/root  
//scp -r "目標機器地址" "當前物理機地址",目標機器的地址傳輸到當前物理機地址
scp -r [email protected]:/opt/temp /tmp/helloworld

####awk
awk是Aho、Weinberger、Kernighan三位發明者名字首字母,它是一個行文字處理工具。

netstat -tlp | grep 8080 | awk '{print $7}' //列印佔用埠的程序名程序號
ps -ef|grep ezrl|awk '{print $1}'//列印ezrl的程序號

以下是引數說明

NF 當前記錄欄位個數
$NF 當前記錄最後一列
$0 當前記錄
$1~$n 當前記錄第n個欄位