linux重定向进程输出到文件删除,Linux文件编辑器vim输出输入重定向、管道以及进程(示例代码)...
合抱之木,生于毫末;九層之臺,起于累土;千里之行,始于足下。正因基礎的重要性,才又擼起了linux。
linux編輯工具:
VI
VIM
EMACS
vim 是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在里面。vim的這些優勢主要體現在以下幾個方面:
易用性 vi只能運行于unix中,而vim不僅可以運行于unix,windows ,mac等多操作平臺。
語法加亮 vim可以用不同的顏色來加亮你的代碼。
可視化操作(ESC+V) 就是說vim不僅可以在終端運行,也可以運行于x window、mac os、windows。
對vi的完全兼容 某些情況下,你可以把vim當成vi來使用
vim ?文件名
如果文件已存在,則此文件被打開且顯示文件內容
如果文件不存在,則vim在第一次存盤時自動建立在硬盤上
vim的三種模式:
命令模式:控制光標移動,刪除字符,段落復制(按ESC)編輯模式/插入模式:新增文字及修改文字
末行模式:保存文件,離開vi,以及其他設置
vim的基本使用
插入、定位、刪除、復制、剪切、替換、取消、搜索、保存、退出
定位命令
0? ? ? ? ? ?數字0,將光標移動到該行的行首
$? ? ? ? ? ?將光標移動到該行的行末
H? ? ? ? ? ?將光標移動到該屏幕的頂端
M? ? ? ? ? ?將光標移動到該屏幕的中間
L? ? ? ? ? ?將光標移動到該屏幕的底端
gg? ? ? ? ? 將光標移動到文章的首行
G? ? ? ? ? ?將光標移動到文章的尾行
w或W將光標移動到下一單詞
在命令模式下可以直接刪除字符
在命令模式下鍵入v則進入塊操作:
1、移動光標以選定操作塊
2、c剪切選定塊或y復制選定塊
3、p將選定內容貼在光標所在位置右手邊
在vi中刪除
x/:刪除一個字符
nx:刪除下n個字符
dd:刪除當前行
dw:刪至詞尾
ndw:刪除后n個詞
d$:刪至行尾
nd$:刪除后n行
在vi中剪貼
yy:選定光標所在行復制
yw:選定光標所在詞復制
nyw:選定光標所在位置到之后n個單詞復制
y$:選定光標所在位置到行尾的部分復制
p:貼在光標所在位置之右
P:貼在光標所在位置之左
命令模式,取消操作
u:取消上一個更動
U:取消一行內的所有更動
:e! :放棄所有更動,重新編輯
VIM編輯模式
i光標當前處插入
I光標當前行首插入
a光標之后插入
A光標所在行的行尾插入
o光標所在行之后新起一行插入
O光標所在行之前新起一行插入
末行模式在命令模式下輸入“:”進入末行模式
:w [文件名]保存當前文件
:q? 如果未對文件做改動則退出
:wq :x? 保存當前文件并退出
:q!? 放棄存儲并退出
:e 文件名 打開另一文件并開始編輯
:r 文件名 在當前光標插入文件內容
:r! 命令在當前光標插入命令執行結果
set nu ?顯示行號
set nonu 取消行號
/向下查詢
?向上查詢,在查找關鍵字后,可以用n繼續下一個關鍵字查找
Vim使用技巧
:r 文件名 ?導入文件,導入到光標所在位置
:! which 命令
:r!r命令 ?聯合使用,把執行的命令結果導入
定義快捷鍵:我們要給某一行進行注釋的過程是I跳到首字符,i進入編輯模式,然后輸入#號,esc退出
:map ^p I#,(^p是ctrl +v+p一起按出來的),然后我們只要在任意位置按ctrl p就可以了
vim的替換
:起始行,終止行s/^/#/g
:起始行,終止行s/#//g
ab替換:輸入a的內容,自動變成b的內容
ab wozaigongzuo wozaixuexi
重啟后失效,永久存在,編輯家目錄下的vim.rc,有可能空的或者不存在
輸入、輸出、重定向
輸入:過濾器的數據來源
輸出:過濾器的數據去向
重定向:標準輸入、輸出與錯誤輸出,都可以用特定符號改變數據來源或去向
> , >>輸出重定向符
>將屏幕上顯示到文本中,刷新保存(文件的原內容會被覆蓋)
>>將屏幕上顯示到文本中,追加保存
< ,<< 輸入重定向符
輸出重定向
echo 單句輸出
< ?不用鍵盤輸入,用其他輸入
這里用wall來廣播一下之前編輯的test文件,寫法是# wall 0< /mu1/test意思就是將test中的文件內容廣播出去
<< ?輸入,直到end結束
管道操作
將前一個命令的輸出結果作為后一個命令的輸入數據源
進程
系統是通過進程來完成工作的,每一個進程都有一個獨立的進程號,系統通過調用進程號來調度操控進程.
系統的原始進程是init ,init的PID總是1
一個進程可以產生另一個進程,除了init以外,所有的進程都有父進程
pstree以樹狀的方式表現進程的父子關系
init 是第一級的,Linux系統上所有運行的東西都可以稱之為一個進程。每個用戶任務、每個系統管理守護進程,都可以稱之為進程。Linux用分時管理方法使所有的任務共同分享系統資源.分時,也就是時間片。
進程狀態分為:創建態-就緒態-行動態-結束。
然而我們的系統能夠多任務的主要原因就是時間片。一個進程,比如說TELNET的進程,一個進程,比如說TELNET的進程,然后TELNET這個進程就進入就緒態,等待時間片。當CPU分給他的時間片的時間到了的話,他就開始運行,進入運行態.當時間片用玩以后,他就進入阻塞態,然后進入就緒態,等下次CPU分配的時間片。然后又進入運行態.當這個程序運行完了以后,就進入結束態。這就是簡單的進程狀態流程。
linux的進程樹是這樣的:KERNEL-0號進程-1號進程(INIT)-子進程
ps 【選項】
-l 長列表
-a 顯示同一終端下的所有程序
-A 顯示所有進程
-e 等于“-A”
e ?顯示環境變量
f ?顯示程序間的關系
-H 顯示樹狀結構
r ?顯示當前終端的進程
T ?顯示當前終端的所有程序
u ?指定用戶的所有進程
-au 顯示較詳細的資訊
aux 查看系統所有的進程
第一個F表示這個進程的標志FLAG,4表示用戶為超級用戶
第二個S 表示這個進程的狀態STAT,STAT有這幾種狀態
ps顯示中的STAT,可以為:
R:正在運行。
S:進程睡眠中,通常可以因事件發生而被喚醒。
T:進程已停止。
D:進程睡眠中,除非發生指定事件,否則不會被喚醒。
Z:僵尸進程,例如未能被父進程回收的子進程。通常是一個系統bug或非法操作。
< :高優先級進程。
N:低優先級進程。
UID 這個就是使用者識別碼(ID),當UID是0時,代表這個賬號是系統管理員!
PID 這個進程的ID
PPID為父進程的ID
C ?CPU使用的資源百分比
PRI ?PRIORITY(優先級)的縮寫,PRI的值越小,他的優先級越高
NI ?NICE值等下我們也會詳細介紹
ADDR 這個是核心功能,指出該進程在內存的哪一部分,如果是運行的進程,一般是- ,-是個標志
SZ用掉的內存大小
WCHAN當前進程是否正在運行,若為-表示正在運行,若為WAIT就是等待
TTY 登陸者使用的終端
TIME 用掉的CPU時間
CMD 所執行的命令(也就是用什么命令產生的這個進程)
ps -ef顯示所有進程信息,連同命令行
kill ?控制進程
語法:kill 【參數】-PID
-l ?信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱
-a ?當處理當前進程時,不限制命令名和進程號的對應關系
-p ?指定kill命令只打印相關進程的進程號,而不發送任何信號
-s ?指定發送信號
-u ?指定用戶
發送指定的信號到相應進程。不指定型號將發送SIGTERM(15)終止指定進程。如果任無法終止該程序可用“-KILL” 參數,其發送的信號為SIGKILL(9),將強制結束進程,使用ps命令或者jobs命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程。
只有第9種信號(SIGKILL)才可以無條件終止進程,其他信號進程都有權利忽略。
下面是常用的信號:
HUP ???1 ???終端斷線
INT ????2 ???中斷(同Ctrl + C)
QUIT ???3 ???退出(同Ctrl + \)
TERM ??15 ???終止
KILL ???9 ???強制終止
CONT ??18 ???繼續(與STOP相反,fg/bg命令)
STOP ???19 ???暫停(同Ctrl + Z)
init進程是不可殺的
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的linux重定向进程输出到文件删除,Linux文件编辑器vim输出输入重定向、管道以及进程(示例代码)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux复制文件命令cat ,Linu
- 下一篇: linux安装perl编译环境,Cent