###########################
########## unit4 ##########
###########################
################################
######## 1.管理輸入輸出 ########
################################
########1.輸出重定向########
在linux系統中,正確輸出的編號爲1,錯誤輸出編號爲2
在系統中用普通用戶執行 "student"
find /etc -name passwd
因爲student用戶權限問題會有以下輸出
find: ‘/etc/pki/CA/private’: Permission denied ##沒有進入權力,報錯
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
/etc/passwd ##正確輸出
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
/etc/pam.d/passwd ##正確輸出
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/named’: Permission denied
find /etc -name passwd > file ##重定向正確輸出
find /etc -name passwd 2> file ##重定向錯誤輸出
find /etc -name passwd &> file ##重定向所有輸出
注意: >, 2> ,&> 都會覆蓋源文件內容
>file ##清空file。注意:必須是root權限
find /etc -name passwd >> file ##追加正確輸出
find /etc -name passwd 2>> file ##追加錯誤輸出
find /etc -name passwd &>> file ##追加所有輸出
注意:>> 2>> &>> 不會覆蓋源文件內容,會把相應的輸出字符方到文件的最後
##########2.管道符###########
[student@localhost ~]$find /etc/ -name passwd |cat -b ##cat -b是顯示輸出的行號
1 /etc/passwd
2 /etc/pam.d/passwd
[student@localhost ~]$find /etc/ -name passwd 2>&1|cat -b ##2>&1是將錯誤輸出轉爲正確輸出
1 find: ‘/etc/pki/CA/private’: Permission denied
2 find: ‘/etc/pki/rsyslog’: Permission denied
3 find: ‘/etc/selinux/targeted/modules/active’: Permission denied
4 find: ‘/etc/lvm/archive’: Permission denied
5 find: ‘/etc/lvm/backup’: Permission denied
6 find: ‘/etc/lvm/cache’: Permission denied
7 find: ‘/etc/audit’: Permission denied
8 /etc/passwd
9 find: ‘/etc/polkit-1/rules.d’: Permission denied
10 find: ‘/etc/polkit-1/localauthority’: Permission denied
11 find: ‘/etc/cups/ssl’: Permission denied
12 find: ‘/etc/dhcp’: Permission denied
13 /etc/pam.d/passwd
14 find: ‘/etc/firewalld’: Permission denied
15 find: ‘/etc/grub.d’: Permission denied
16 find: ‘/etc/ipsec.d’: Permission denied
17 find: ‘/etc/libvirt’: Permission denied
18 find: ‘/etc/audisp’: Permission denied
19 find: ‘/etc/sudoers.d’: Permission denied
| 管道,管道的作用是將前一條命令的輸出變成管道後命令的輸入
ls /bin | wc -l ##統計ls /bin 命令輸出的行數
注意:系統中錯誤的輸出是無法通過管道的。
用 2>&1 可以把錯誤的輸出編號由2變成1
tee 複製輸出到指定位置
date |tee file |wc -l ###tee命令複製date命令的輸出到file中,並統計輸出行數
補充:
/dev/pts/下的一般是默認shell的設備輸出文件(具體序號根據實際情況來看),顯示在當前shell的信息會顯示在該文件裏。
date > /dev/pts/1
所以,當要即要在當前shell顯示輸出結果,又要通過管道符號作爲後面的輸入時,可以先將輸出複製一份到/dev/pts下
date | tee /dev/pts/0 |wc -l
#################################
############# 2.vim #############
#################################
####1.vim 命令模式####
在vim的命令模式下可以配置vim的工作方式
:set nu ##行號添加
:set nonu ##取消行號
:set mouse=a ##添加鼠標選擇
:set cursorline ##行線顯示
以上設定都是臨時的,
永久設定方式:
vim /etc/vimrc ###此文件爲vim的配置文件,在此文件最後加入以下參數
set nu ##行號添加
set nonu ##取消行號
set mouse=a ##添加鼠標選擇
set cursorline ##行線顯示
注意:加到文件中的才數不需要:
####2.vim命令模式下關鍵字搜索####
/關鍵字
n向下匹配
N向上匹配
####3.vim命令模式下字符的管理####
1.字符的複製
yl ##複製一個字母
y3l ##複製3個字母
yw ##複製一個單詞
y3w ##複製3個單詞
yy ##複製一行
y3y ##複製3行
p ##複製完成後按“P”粘貼
2.字符的刪除
dl ##刪除一個字母
d3l ##刪除3個字母
dw ##刪除一個單詞
d3w ##刪除3個單詞
dd ##刪除一行
d3d ##刪除3行
3.字符的剪切
cl ##剪切一個字母
c3l ##剪切3個字母
cw ##剪切一個單詞
c3w ##剪切3個單詞
cc ##剪切一行
c3c ##剪切3行
esc ---> p ##剪切過後會進入到插入模式,在執行粘貼動作時一定要退出插入模式
補充:
vim編輯器裏,在非插入模式下按u是恢復上次操作
在vim編輯器中,非插入模式下打“/關鍵字”則關鍵字會高亮顯示
####4.vim的可視化模式####
在命令模式下按“ctrl+v”進入到可視模式
在可視模式下可以區域選擇字符
可視模式下批量添加字符
*>> ctrl+v 選中要加入字符所在列
*>> 按“I”進入插入模式,寫入要加入的字符
*>> 按esc
####5.批量修改字符####
:起始行數,結束行數s/原有字符/替換後字符 ##將起始行到結束行中的指定字符替換(eg.:5,10s/root/kiosk 將5到10行的
root替換爲kiosk)
:%s/原有字符/替換後字符 ##只替換每一行中出現的第一個原有字符
:%s/原有字符/替換後字符/g ##替換所有
:%s/\t//g ##把全文的tab鍵替去掉,\t 表示tab鍵
:%s/^\ *//g ##把全文行首的空格去掉,"^\ *"表示行首的空格
:%s/^\#\ */#/g ##把全文#後的空格去掉
####6.vim的分屏功能###
ctrl+w s ###上下分屏
ctrl+w v ###左右分屏
ctrl+w c ###關閉光標所在屏幕
ctrl+w 上下左右 ###光標移動到指定屏幕
####7.vim光標移動#####
在命令模式下
:數字 ##移動到指定的行
G ##文件最後一行(最底端)
gg ##文件第一行(最頂端)
在插入模式下
i ##光標所在位置插入
I ##光標所在行行首
a ##光標所在字符的下一個位置
A ##光標所在行行尾
o ##光標所在行下一行
O ##光標所在行上一行
s ##刪除光標所在字符插入
S ##刪除光標所在行插入
####8.vim的退出模式
:q ##當用vim打開文件但沒有對字符作任何操作時可直接退出
:q! ##當用vim打開文件並對字符作操作,放棄所有操作退出
:wq ##保存退出
:wq! ##強行保存退出,對超級用戶及文件所有人生效
####9.vim手冊####
vimtutor ##vim的手冊
:q ##退出vimtutor
####10.vim後臺操作####
ctrl+z ##將當前vim編輯器打入後臺
fg ##回到之前打入後臺的vim編輯器
補充:
vimdiff file1 file2 ##建立兩個文件file1,file2,並以分屏的形式顯示編輯兩個文件
vimtutor ##打開一個vim的教學文件,:q退出
#################
#### 3.gedit ####
#################
ctrl+n ##在gedit中打開一個新的tab
ctrl+s ##保存文件
ctrl+o ##打開文件
ctrl+x ##剪切字符
ctrl+v ##粘貼字符
ctrl+c ##複製字符
yelp help:gedit ##gedit的圖形手冊(即gedit幫助手冊)