Bash Shell学习笔记五
?
1.vim的模式下復制與粘貼
視圖模式下:
shift+d剪切
shift+p粘貼
shift+y復制
按下D可以整行刪除
按delele鍵,可以逐一字符刪除。
?
?
2.vim中的幾個用法
?
1.搜索上一個匹配用N下一個匹配用n
?
2.轉換dos格式為unix格式方法為 :set ff=unix
?
3.顯示行號的設置為 :set number on
?
4.vim中用 . 表示當前行。
?
5.:co 12?????????????????? //vim中把當前行 copy 到行 12 的地方
?
6.vim命令前面指明范圍是 "%",會作用于整個文件。
?
7.vim v模式下選擇文本后用 < > 來調整選擇部分的縮進
?
8.ggVG 全部選擇
?
9.set background=dark?? :set backgruond=light??????????????? //設置背景亮度:
?
10. :syntax on //顏色on
?
11.
s 是最基本的替換命令,象大多數文本操作命令一樣,它也可以帶一個表示操作范圍的前綴。有空了我會給大家講講范圍前綴的語法和常見的用法。
一個簡便的方法是,先在 visual 模式下想辦法選中你要操作的范圍,然后再輸入 s 命令就可以替換了。
比如你要操作一個段落,可以先用 { 或者 [[ 挪到段落的開始處,然后再用 v 進入 visual 模式,然后再用 } 或者 ]] 挪到段落的結尾處,然后再輸入 s 命令就可以實現你的目的了。
用view模式選中以后要打":"才成進入替換啊。
它下面就變成 :'<,'>;,你繼續輸入s就可以了
?
12.set backspace=0/1/2
可以改變backspace鍵在vim里的行為。具體請:h 'backspace'注意前后有單引號。
13.在vim中,如果我不小心按錯了鍵,跑到文件頭或者文件尾了,怎么能快速回到剛才光標所在的位置?
可以用 Ctrl+o 或者用``就可以回到剛才的位置。
?
14.ctrl w??????????? //多窗口之間的移動
?
15.:sp input.file //打開多個文件
?
?
3. 小知識
1.grep -v 取不匹配的行
2.grep -i 匹配時忽略大小寫
3.壓縮空格,用tr -s ' '
4.ssh遠程執行命令的方法為 ssh "commond",注意的是,command中的$需要用/$
5./s 匹配所有空白字符,包括回車,換行,制表。
6.模式匹配中 ^表示行首,$表示行尾
7.tar 命令如果要將某個文件或目錄排除? tar cvf test.tar.gz? /tmp/test? --exclude=/tmp/test/test2/test1
?
4.后臺與前臺執行任務
jobs -l 顯示了當前 shell 環境中已啟動的作業狀態
bg %id 將任務后臺執行
fg %id 將任務前臺執行
nice 給程序賦予一定的優先級大小
renice 重新賦予程序優先級大小
!$ 剛剛執行得命令
nohup commond & 后臺運行commond并且不會因為終端關閉而關閉
5.建立虛擬內存的方法
方法一
--------------------------//分區
fdisk /dev/sda
n
+100
82
w
-----------------------//更新內核分區表
partprobe
-------------------------//設置交換分區
mkswap /dev/sda6
swapon /dev/sda6
------------------------//取消交換分區
swapoff /dev/sda6
------------------------
方法二
------------------------設置交換文件
dd </dev/zero>/tmp/swap bs=4k count=25000
mkswap /tmp/swap
free
swapon /tmp/swap
free
-------------------------取消交換文件
swapoff /tmp/swap
free
--------------------------
6.文件系統相關的命令
dumpe2fs /dev/sda5 //顯示超級塊信息
lsattr install.log 顯示文件屬性? A,a,c,D,d,i,j,s,S,e,u
/lib/modules/`uname -r`/kernel/fs //查看linux支持的文件系統
mke2fs -i inodesize
mke2fs -b blocksize
mke2fs -N inodenumber
mke2fs -m number?????? //number% size to give to root,default is 5%
mke2fs -L label
mke2fs -j ? ? ? ? ? ? ? ? ? ?? //make ext3 file system
e2label 查看,創建卷標
fsck -y /dev/sda3 檢查ext2文件系統
tun2fs -j /dev/sda3 convert ext2 to ext3
7.掛載相關的命令
/etc/fstab 中的參數
rw,read and write
suid,運行使用suid
dev,允許包括設備文件
exec,允許二進制文件
auto,允許自動判斷文件系統類型
nouser,只允許超級用戶掛在文件系統
async,異步管理的改變
user?? 允許一般用戶掛載
ro?? read only
loop 回環設備掛載
1每天備份 2每2天備份
1是否用fsck檢查 0,不檢查,1,檢查,2,第二個檢查的分區。
?
檢查當前掛載的文件系統
1. mount
2. /etc/mtab
3. cat /proc/mounts
8.不常用的命令
uptime?????????????????????????????????? 查看系統負載
pstree??????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查看進程數
newgrp user?????????????????????????? 修改user默認用戶組
gpasswd -a jack group
useradd -r user/group??????????? 創建系統賬戶或用戶組(1<=uid/gid<=499)
/etc/default/useradd?????????????? 修改useradd命令的默認群組
usermod -L user???????????????????? 鎖定用戶密碼
usermod -U user ? ? ? ? ? ? ? ? ?? 釋放用戶密碼
passwd -S user ? ? ? ? ? ? ? ? ? ? ? 查看是否鎖定
?
arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC). 修改MAC地址
/etc/sysctl.conf???????????????????????? 修改系統啟動時的內核參數
rpm -ql?????????????????????????????????? 查詢軟件包安裝的所有文件
rpm -qf?????????????????????????????????? 根據安裝的文件查詢軟件包
ssh 遠程執行一條命令,如何退出?? 在命令的后面加上0</dev/null;1>/dev/null;2>/dev/null; 是輸出設備重定向一下
9.手動配置ip,gateway和dns
~$ sudo gedit /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.23.23
netmask 255.255.255.0
gateway 192.168.23.1
接下來添加DNS
~$ cat /etc/resolv.conf
# Generated by NetworkManager // 需要刪除改行,否則每次重啟ubuntu之后,/etc/resolv.conf將被清空
~$ sudo gedit /etc/resolv.conf
nameserver 202.106.0.20
~$ sudo /etc/init.d/networking restart
或者
~$ sudo service networking restart
如果配置失敗,可以使用手工配置方法:
~$ sudo ifconfig eth0 192.168.23.23 netmask 255.255.255.0 up
~$ sudo route add default gw 192.168.23.1 eth0
10 .一些shell特性
(ls;pwd;date) > tmp.txt
在當前shell中執行
source test.sh
. test.sh
{test.sh}
eval '. test.sh'
在子shell中執行
test.sh
/bin/bash test.sh
(. test.sh;)
exec test.sh
${variable:-word} 若variable已被設置或非空,則帶入原來的值,否則帶入word
${variable:=word} 若variable已被設置或非空,則帶入原來的值,否則將variable設置為word
${variable:+word} 若variable已被設置或非空,則帶入word,否則什么都不帶入
${variable:?word} 若variable已被設置或非空,則帶入原來的值,否則輸出word并從shell推出
${variable:offset} 獲得變量variable值中位置從offset開始的字串
${variable:offset:length} 獲得變量variable值中位置從offset開始長度為length的字串
readonly variable
變量擴展
${var:pos}
${var:pos:len}
${var/Pattern/Replacement}
${var//Pattern/Replacement}
var="what is your name"
echo ${var:3}
declare -r var= readonly var
declare -i number
declare -a? 數組
declare -f? 函數
declare -x? export
command <&- 關閉標準輸入
command >& m 把標準輸出重定向到文件描述符m中
command <& 把標準輸入重新定向到文件描述如m中
command >filename 2>&1 把標準輸出和標準錯誤一起重新定向到一個文件中
?
總結
以上是生活随笔為你收集整理的Bash Shell学习笔记五的全部內容,希望文章能夠幫你解決所遇到的問題。