學習筆記(7)

學習筆記(7)

1.命令執行錯誤,后續命令繼續執行,語法錯誤后續命令將不再執行
2.bash -n 只檢查語法錯誤,不檢查命令錯誤
3.使用雙引號可以保留文本格式 name=`cat /etc/fstab`,echo “$name”
4.name1=magename2=wang name3=$name1 echo $name3 ?name1=zhangsi echo $name3
5.type if 可以查看是否為關鍵字
6.普通變量只在當前會話有效,在子進程中無效,在其他終端也無效,子shell定義的變量不影響父shell定義的同名變量
7.echo $$ 查看當前進程的進程號 echo $PPID 查看父進程編號
8.pstree -p 查看進程樹
9.子進程不能修改的全局變量
10.export 顯示系統的環境變量,也可以使用declare 來顯示環境變量,declare -x name 創建環境變量,env也可以顯示環境變量
11.declare -x name=xixi 也可以使用declare -x 來顯示系統的環境變量
12.系統自帶的環境變量是通過讀取配置文件讀入的,所以自定義變量(包括環境變量)可以通過退出當前會話來取消,也可以通過unset取消
13.set 顯示系統的所有變量,declare 也為顯示系統的所有的變量(環境變量和普通變量)
14.腳本中定義的變量要記得unset變量,以便系統回收占用的內存
15.lscpu顯示cpu信息
16.查看硬盤大小lsblk ,df 只能查詢分區大小
17.$PATH 中的/root/bin 可以作為腳本的存放目錄,不需要使用路徑,此目錄需要手動創建
18.echo -e “\e[1:31m start backup … \e[0m” 輸出顏色字體, echo -e “\e[1;31m start \e[0m”
#!/bin/bash
color_num=$[RANDOM%7+31]
echo “color_number :$color_num”
echo -e “\e[1;${color_num}mCOLOR \e[0m”
19.echo $SHLVL ?查看shell嵌套深度,可用來查看當前shell的層數 (LVL: level)
20.echo $_ 前一個命令的最后一個字符串,可以使用command $_ 來執行上一條命令的最后一個參數
21.只讀變量不能修改不能刪除,生命期為進程的生命期,退出會話環境變量取消
22.declare -r 顯示系統的只讀變量,declare -r name=zl(readonly name=zl)
23.防止修改系統環境可以使用(umask 666; touch /data/f1),()是開啟了一個子shell,不影響當前系統的umask值,還可以保留原目錄來執行
? (cd /data; rm -rf /data/*) 執行完成之后路徑不切換
24.man bash 中可以查看()的使用說明,注意在bash中搜索$的時候需要轉義符號\
25.{ name=mage; echo $name; } 在當前shell環境中執行,注意空格和分號,()里面的命令可以不使用空格,使用{}一定要有空格,如 { name=mge; echo $name }
26.x=1;echo $$;(echo $$;echo $x;x=2;echo $x);echo $x
27.多腳本傳遞參數,并打印第一個參數 $*,$@ 區別,只有在加””號時有區別
test2.sh
#!/bin/bash
echo “arg1 is $1”
test.sh
#!/bin/bash
echo “=============================”
echo “arg1 is $1, all args is $*”
echo “=============================”
echo “+++++++++++++++++++++++++++++”
/root/bin/test2.sh “$@”
echo “+++++++++++++++++++++++++++++”
# ./test.sh a b c
28.set — 清空所有位置變量,腳本執行完成以后清空變量以便系統回收內存
29.為執行的腳本創建軟連接,可以通過$0判斷來執行不同的功能,系統中給出的示例: # ll /usr/sbin/pidof
30.vim 編輯器使用 V 來復制行,Ctrl + v 來復制列
31.shift 左移位置參數, shift num ?可以指定左移多少位
32.腳本的執行是否成功由最后一條命令來決定的,如果是語法錯誤,后續的命令無法執行,即便正確也是返回非0
33.exit 可以指定退出碼,使用echo $? 查看返回
34.執行的shell腳本是在子進程中執行的,可以使用pstree來查看
35.let z=x+y(let z=$x+$y),$[],declare -i算數運算中里面的變量可以不用加$
36.COLOR=$[RANDOM%7+31] ;color 顏色字體補充
37.expr 是命令 expr 1+2 錯誤,正確 expr 1 + 2, expr 3 \* 2 乘法符號需要使用\轉義
38.a=$[a^b]; b=$[a^b];a=$[a^b]; echo $a $b ?a、b互換
39.help test 可以查看條件判斷的種類,也是[ ] 的幫助說明,因為test 和[] 是等價的
40.[]中的變量建議使用”” 引用,防止一個變量為空另一個變量非空導致報錯
41.[ $# -ne 2 ] && echo “******” && exit 1 最后一個&& 說明
42.=~ 使用擴展的表達式 并且使用[[]], !取非 [[ $filename =~ .+\.sh ]]
43.-w 判斷權限看的是實際權限不是文件的權限設置,針對與root的(ll 查看的) ?[ -w /etc/shadow ]
44.使用()或者{}在比較中可以改變優先級 false ||{ cmd1; cmd2; },() 開啟 了一個子shell,{}不開啟子shell,退出腳本本身要使用{}
45.[ ! $# -eq 2 ] 注意!的位置
46.腳本中只有在使用正則表達式的時候,使用[[]] 來做判斷
47.linux操作系統退格鍵不好用,可以安裝下readline庫# yum install readline-devel.*
48.ls -d 選項查看當前目錄的所有文件時不會遞歸目錄下面的子文件夾,如: ls -d /etc/*/ 顯示/etc 下面所有的文件夾,ls -d /etc/* 顯示目錄下面所有的文件夾和文件
49.ls 中的A選項排除.和..可以結合grep來搜索出當前目錄下的子目錄或是文件有多少(包括隱藏文件),如: ls -Al /etc/ |grep ‘^d’|wc -l
50.df -i 查看磁盤分區的inode利用率
51.if [[ $key =~ [Yy][Ee][Ss] ]] 注意在使用正則表達式的時候不要使用雙引號如 $key =~ “[Yy][Ee][Ss]”,這種會報錯
52.掃描當前新添加的磁盤并識別: echo ‘- – -‘ >/sys/class/scsi_host/host0/scan
53.-a File(-e File): 存在性測試,存在為真,否則為假
53.-h File(-L File): 存在且為符號鏈接文件
54.-s File: 是否存在且非空
55.vi 編輯器可以將指定的行保存至另外一個文件 :3,8w /root/test1111, 將指定的第三行至第8行保存至文件test1111中
? ?也可以讀入命令輸出, :r ls 將ls的輸出輸出至當前vi打開的編輯器中,使用:r /etc/fstab 讀入/etc/fstab 中的文件內容至當前的編輯器中
56.vim編輯器中ctrl + d向屏幕的尾部翻半屏 ctrl + u 向屏幕的首部翻半屏
57.vim編輯器中使用D選項刪除光標位置至行尾

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96809

(0)
滌生滌生
上一篇 2018-04-22
下一篇 2018-04-22

相關推薦

  • Linux第六天筆記(markdown格式)

    文本處理三劍客 grep:grep,egrep,fgrep pattern:模式,類型 sed awk 通用技術:正則表達式 blank和space的區別: `[:blank:]’ Blank characters: space and tab. ? [:space:]’ ? ? ? Space characters: in theC’ locale, th…

    Linux筆記 2018-04-08
  • linux基礎(一)

    初級運維的一些基本命令跟相應的作用。

    Linux筆記 2018-04-01
  • vim的使用方法

    從命令模式到插入模式的幾種方法 i 光標不移動 I 光標移動到光標所在行首 a 光標往后移動一個字符 A 光標移動到光標所在行尾 o 光標所在行下新增一行 O 光標所在行上新增一行 擴展模式: :q 退出 :q! 強制退出,丟棄做出的修改 :wq 保存退出 :x 保存退出 :wq! 對只讀文件強行修改保存? :r file 把文件內容讀入到當前文件中 :w …

    Linux筆記 2018-08-05
  • 配置靜態路由表 – Linux

    查看當前路由表 使用命令netstat或route -n查看當前路由表。 命令 $ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.50.1 0.0.0.0 UG 0 0 0 ens37 19…

    Linux筆記 2018-06-12
  • 源碼編譯安裝 MariaDB

    基礎軟件 yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel lib…

    Linux筆記 2018-06-24
欧美性久久久久