linux(4) vi編輯/刪除、復制、粘貼 /bash shell 環境變量設置/數據流重定向 | 的用法


一.vi文字處理器
1.vi與vim
vi:文字處理器
vim:程序開發工具
2.vi介紹
三種模式:一般模式(vi剛進入的,不可編輯),編輯模式(按i后,左下方是insert)和命令行模式(按esc退出,:wq類)

hjkl(左下右上)
3.一般模式常用命令
(1)移動光標
ctrl+f:向上
ctrl+b:向下
0:移動到這一行最前面
$:移動到這一行最后面
gg:相當於1G,移動到文件第一行
G:移動到文件最后一行
n(數字):光標向下移動n行
(2)搜索和替換
:n1、n2s/word1/word2/g :n1到n2行之間找到word1替換成word2(1、$s第一行到最后一行)
gc替換前確認
(3)刪除,復制與粘貼
x:向前刪除,10x向前刪除10個字符
dd:刪除光標所在行 ndd向下刪除
yy:復制 nyy:向下復制n行
p:粘貼在下一行,P粘貼到上一行 (一定要和yy連用)
u:復原上一個操作
ctrl+r:重做上一個操(和u一起用)
.:重復上一個操作(復制,粘貼)
4.編輯模式常用命令
a/i/o:插入
r:替換
5.命令行模式
:w:寫入硬盤中
:wq! 強制寫入退出
中途遇到的問題(文件的恢復與暫存盤)
未關閉文件就關閉終端,再次打開顯示臨時文件swap,選擇r進行修復,並在tmp下刪除,否則每次都提示
6.vim設置
alias vi vim
alias lm='ls -l '
set nu 在命令行模式下 :set nu 顯示行號 set nonu 去掉行號
vim的環境設置變量:建立一個 vi ~/.vimrc 直接編輯即可起效

二. bash shell
shell:開發者不同,版本很多,不止一個
cd /etc/shells 可以看到linux有幾個shell
root的shell放在 /bin/bash中 ,linux默認的shell

1.如何看命令是外部命令還是bash內置的命令?
type -t 命令:結果為以下三種:
(1)file:外部命令
(2)alias:命令別名所設置的命令
(3)builtin:bash內置的命令
命令太長了用\ 轉義
2.如何查看環境變量的內容或者修改
查看:echo $ PATH
設置:name=內容
累加:PATH=$PATH:/etc/huhu
環境變量作用:家目錄的修改,提示符的顯示,執行文件搜索的路徑
查看有多少環境變量(系統的默認值):env
查看有多少環境變量(系統的默認值+自定義的):set
查看shell的進程號:echo $$
查看shell變量:[yuanyuan@localhost Desktop]$ echo $SHELL 結果:/bin/bash
查看返回狀態:echo $?
export 變量:父程序的變量可以被子程序引用的
常用的情況:兩個shell腳本,a.sh引用b.sh中的變量,則b中的變量只有export后才能被引用。否則無法找到,使用完后,變量無作用。
(1)啟動一個shell,os分配一塊內存給shell,shell區域內的變量可以給子程序訪問
(2)利用export,將變量內容寫到內存塊中
(3)加載另一個shell時(啟動子程序,離開原來的父程序),子shell將父shell的環境變量的內存導入到自己的變量中

3.數據流重定向(stdin,stdout.stderr)注意:輸出的信息都是在文件中而不是目錄中

1.stdin(標准輸入):代碼為0,是<<或<
2.stdout(標准輸出):代碼是1,是>>
3.stderr(標准錯誤):代碼是2,是2>或2>>
例:(1)ls -al yy >d.txt (將yy文件夾下的文件信息都列到d.txt中,若有新的加入,則覆蓋原來的)
(2)find . -name yy >don 2>yy 查的正確的文件列表信息顯示在don中,錯誤信息輸入到yy中
(3)輸出的正確和錯誤信息保存在同一個文件中: 用 >aa 2>&1
find . -name yy >don 2>&1
(4)<常和cat一起用:用鍵盤輸入的內容由文件代替 cat > we 接下來輸入內容,ctrl+d后即可將內容保存到we文件中
cat < a >b 將 a的內容輸出到b
cat >aa <<eof cat內容到eof停止輸入,輸出到aa中
4.命令執行判斷:
(1); 按順序執行
(2)&& 前一個條件滿足則執行
(3)|| 前一個條件不滿足則執行
ls wyy && echo "yes" || echo "no" 若存在wyy,則輸出yes,否則輸出 no

5.管道命令(pipe)

管道命令只處理 前一個命令傳來的正確信息,常用來進行選取命令和排序命令
(1) 選取命令 (cut和grep) 前面一般為顯示很多內容
cut -d '分隔符’ -f 數字 或者 cut -c 12- 顯示幾個字符之后的內容
例:echo $PATH | cut -d ':' -f 3 ,5 顯示第三到第五個路徑
export | cut -c 12- 顯示幾個字符之后的內容
last 顯示這個月登陸者的信息
grep 用於如果有該信息,就整行顯示
last | grep 'root' | cut -d ' ' -f 1
(2)排序命令(sort,uniq,wc)

cat /etc/passwd |sort

 

如果使重復的數據顯示一次,用 sort | uniq
wc :顯示行數,字數,字符數
-l :顯示行數 -w :顯示字數 -m:顯示字符數
如:cat aa |wc
(3)字符轉換命令
tr -d 'a' :刪除a /也可以進行大小寫替換
join -t ':' file1 file2 將兩個文件都各整行成同一行,用;隔開
paste -d file 1 file2 :粘在一起
split -b 文件大小 / -l 行數
(4)xargs參數代換
    該命令的主要功能是從輸入中構建和執行shell命令。       
    在使用find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鍾之后,就會出現溢出錯誤。錯誤信息通常是“參數列太長”或“參數列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。  
    find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,並如此繼續下去。  

具體實例可見:
http://www.cnblogs.com/peida/archive/2012/11/15/2770888.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM