入職學習-----linux

 

使用幫助:man和info 命令幫助

第一部分:基礎

一:文件操作

1:文件顯示

  • ls  顯示當前目錄下的目錄或者文件夾(不顯示以.開頭的的隱藏文件。)

                        ls+目錄名  查看目錄下的所有文件

                       ls -a  查看目錄下的所有文件 包括隱藏文件

                       ls -l 查看文件全部信息  權限 ,所屬人,大小(以字節爲單位),修改時間等

                       ls -lh 查看文件可以查看文件大小

                       ls -r 將結果以倒敘方式顯示

                      ls -s 以文件大小排序

                      ls-t 以修改時間排序

             例子:

                      ls  lsrth :  按時間倒敘(這個老師也沒講明白)我推測-s比較時是根據文件相同的權限,往後看看  再驗證

                    ls  /   :查看電腦根目錄下的文件

  • pwd 顯示當前目錄
  • cd進入目錄

                  cd .  訪問當前目錄

                  cd . .  訪問上一級目錄

                 cd - 返回上一級=次訪問的目錄 

                cd  ~  進入當前用戶的home目錄,相當於我電腦的    /home/sysadmin

2:文件管理

  • cp  複製文件  cp 源文件名 複製後的文件名

            cp  -r 原目錄名  複製後的目錄名  

  • mv  重新命名 或者移動文件  
    修改文件名:mv 原文件名 新文件名 

            移動文件:mv 原文件 新文件目錄

  • rm  刪除文件
    rm 文件名或者目錄/文件名  刪除文件
    rm -r 刪除問價
    rm -rv 告訴我們刪除了啥都
    rm -f 刪除時報的錯誤不顯示

3.鏈接

硬鏈接只能針對文件使用,ln a.sh  b.sh  指b鏈接a  如果cat b.sh 展示的內容和a一樣。如果刪除了a.sh 那麼b.sh仍然可以訪問。

軟鏈接可以針對目錄,ln -s  a.sh  b.sh 指b鏈接a 一個軟連接。如果刪除或修改了a目錄,那麼b無效 了就。

ln -f 可以覆蓋存在的鏈接。

4查看磁盤大小

df -h  查看磁盤大小和使用情況

du 查看文件佔用大小、

5文件查找

find 時間、類型、名稱

例如:find 目錄 -time+3 -type f :在目錄下查找三天前修改的文件

二:權限管理 

root用戶

r=4=讀

w=2=寫

x=1=執行

drwx-rwx-rwx  當前用戶權限-組用戶權限-所有用戶權限     第一個d代表 目錄

-rwx-rwx-rwx  當前用戶權限-組用戶權限-所有用戶權限     第一個-代表 文件

  • 修改權限
    chmod 修改權限  chmod 744 
    chmod -r  遞歸給目錄下的全部修改權限
  • chown修改所有者
  • chgrp修改所屬組

su切換用戶 什麼也不加默認root

sudo -u制定用戶  也可以什麼不加 默認root

三:文本操作

  • cat  查看
  • head 看頭幾行  head  -行數  看頭幾行行數
  • tail -行數  看後幾行行數
  • tail -f 不斷輸出
  • less 查看大文件第一屏:  G 最後  , g最開始, 200g指定第200行,/關鍵字 看關鍵字幾行
  • grep 過濾  grep 關鍵字 文件名
  • sort 排序按字符串進行排序 -r倒序 -k指定列  -n按數字排序
  • uniq 去重(相同的挨着)進行去重 -c輸出重複出現的次數
  • wc統計行數,字節數,單詞數
    例如:sort 文件 | uniq -c | sort -k1,1nr | head   出現重複的去重最多的前十行。
  • vim 文本操作:
    d刪除 dd刪除整行 u撤銷刪除 w刪除一個單詞
    i進入編輯模式,:q 退出不保存。:wq! 保存病退出。

四:打包與壓縮

壓縮 tar -zcvf 文件.tgz  bakup/

解壓 tar -xzf 文件.tgz

zip  unzip

zcat和zgrep

 

第二部分:進階

一:http請求與傳輸

  • curl 模擬http請求 
    -x 指定resquest的method,如post get等
    -h 指定請求的header,如“content-type:application/json”
    -d 指定post請求的detd,消息體
    -b 指定請求的cookie,可以在-h裏面設置
    -c 輸出響應的set-cookie的內容輸出到文件
    -i 指定輸出去response的header信息等
    -w 指定輸出部分格式化的數據,如請求時間,http_code等%{http_code}
  • wget下載文件 wget+地址

二:網絡常用工具命令

  • ping  檢測網絡連通性
    -c 數字 ping幾次
    -W  數字 超時時間
  • host
    host ip 解析ip: 獲取有 主機名

    host 主機名  :獲取ip地址

  • nc  網絡發包
  • netstat 查看端口使用情況   netstat -an 所有的端口以 ip形式
  • tcpdump

三:遠程命令

ssh 遠程登錄工具

scp遠程拷貝:  本地和遠程文件間的拷貝

scp ./本地文件.txt haibo.liu@遠程機器:/遠程目錄     本地拷到遠程

scp  haibo.liu@遠程機器:/遠程目錄  /遠程文件   ./ 本地目錄     遠程拷到本地

四:進程與系統

  • ps 顯示進程與線程信息
  • free 查看內存使用情況

                         free -m 以m爲單位

                        free -h 根據文件大小,自動選擇單位跟在後面

  • top 動態顯示cpu 內存和進程的使用情況
    1:展示多核cpu使用情況
    load average 指平均每一分鐘處理的任務數。
  • kill 向指定進程發信號 
    kill -l  中斷,正常退出,暫停,繼續進程
    kill -9 pid(進程id)結束進程

五:其他

hostname :看主機名

ifconfig :查看個網卡ip

 

第三部分:shell腳本

#!/bin/sh                                1:腳本解析器:

mkdir shell_test                    2:生成文件夾

cd shell_test

for((i=0;i<5;i++));do              3:循環操作,touch 生成空文件

touch test_$i.txt

done

 

  • 數組

    定義:array_name=(value0 value1 value2)

    讀取:value1=¥{array_name[1]}

    獲取數組中的所有元素:使用@或者× 可以獲取數組中國的所有元素

例如:touch haiboa.sh創建一個腳本文件 將他的權限修改成777

 #!/bin/sh

my_ary=(1 2 3 4)
my_ary[5]=6
#my_ary[7]=6

echo "第一個數組爲" :${my_ary[0]}
echo ${#my_ary[@]}
echo ${#my_ary[@]}
echo "數組的長度" :${#my_ary[0]}

結果:

第一個數組爲 :1
5
5
數組的長度 :1

  • 參數傳遞

    $n  n代表一個數字;0爲執行的文件名;1爲執行的腳本的第一個參數,以此類推
    $# 傳遞到腳本的參數個數
    $*以一個單字符串顯示所有有向腳本傳遞的參數,以“$1...$n”的形式輸出所有參數
    $@與$*相同,但是使用時加引號,並在引號中返回每個參數,以“$1...$n”的形式輸出所有參數。
     

例如:

#!/bin/sh

echo '$#:'$#
echo '$0:'$0
echo '$1:'$1
echo '$2:'$2
echo '$*:'$*
echo '$@:'$@
echo '----$* start----'
for i in "$*"
do
echo $i
done
echo '----$* end----'
echo '----$@ start----'
for i in "$@"
do
echo $i
done
echo '----$@ end----'

運行:./haiboa.sh 1 2 3 4 5 6

結果:
$#:6
$0:./haiboa.sh
$1:1
$2:2
$*:1 2 3 4 5 6
$@:1 2 3 4 5 6
----$* start----
1 2 3 4 5 6
----$* end----
----$@ start----
1
2
3
4
5
6
----$@ end----

  • shell運算符

    算數運算符、關係運算符、布爾運算符、邏輯運算符、字符串運算符、文件測試運算符(-b,-c,-d,-e文件存在不,-d文件是目錄不,-s文件是空不,-f 是普通文件不,)

    例子
    #!/bin/sh

    a=20
    b=4
    echo "a="$a
    echo "b="$b

    val=expr$a+$bexpr$a+$b
    echo "a + b : $val"

    val=expr$a−$bexpr$a-$b
    echo "a - b : $val"

    val=expr$a⋅$bexpr$a⋅$b
    echo "a*b : $val"

    val=expr$a$bexpr$a$b
    echo "a / b : $val"

    if [ $a == $b ]
    then 
    echo "a等於b"

    fi
    if [ $a != $b ]
    then 
    echo "a不等於b"
    fi

結果:

a=20
b=4
a + b : 24
a - b : 17
a*b : 80
a / b : 5
a不等於b

!!!!!!!!!!!注意  !!!!!!!!val=expr$a$bexpr$a$b 的符號是  不是'  '   

!!!!!!!!!!!注意  !!!!!!!!if [ $a == $b ]  的[] 與字符之間的空格

!!!!!!!!!!!注意  !!!!!!!!a \* $ 乘法加一個轉義字符

 

  • shell流程控制

if,for,while.,until,case,break,continue

 

  • shell函數

[function] funname [()]
{
  action;
[return int;]
}

  • 其他

    xargs   分組
    alias  設置別名
     

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章