linux之管道重定向

管道與重定向

一、重定向

將原輸出結果存儲到其他位置的過程

標準輸入、標準正確輸出、標準錯誤輸出

?

進程在運行的過程中根據需要會打開多個文件,每打開一個文件會有一個數字標識。這個標識叫文件描述符。
進程使用文件描述符來管理打開的文件(FD----file descriptors).
文件描述符:每打開一個程序都會有文件描述

0,標準輸入(鍵盤)
1,標準輸出(默認)
2,標準錯誤
3+,進程在執行過程中打開的其他文件 ?
&:表示正確錯誤混合輸出

二、輸出重定向 (覆蓋,追加)

> ? ----覆蓋:直接把內容生成到指定文件,會覆蓋源文件中的內容。
>> ?----追加:尾部追加,不會覆蓋掉文件中原有的內容,相當于append
正確輸出: 1> 1>> 等價于 > >>
錯誤輸出: 2> 2>>

2.1. 案例1:輸出重定向(覆蓋)

[root@linux-server ~]# date 1> date.txt  #正確輸出--覆蓋
# 注意:如果 > 前面什么都不加默認為1,標準正確輸出

2.2.案例2:輸出重定向(追加)

[root@linux-server ~]# date >> date.txt #正確輸出--追加

2.3. 案例3:錯誤輸出重定向

[root@linux-server ~]# ls /home/  /aaaaaaaaa >list.txt
ls: cannot access /aaaaaaaaa: No such file or directory
[root@linux-server ~]# ls /home/  /aaaaaaaaa >list.txt 2>error.txt #重定向到不同的位置
[root@linux-server ~]# cat error.txt 
ls: cannot access /aaaaaaaaa: No such file or directory

2.4.正確和錯誤都輸入到相同位置

[root@linux-server ~]# ls /home/  /aaaaaaaaa &>list.txt  #混合輸出到相同文件

2.5.重定向到空設備/dev/null

[root@linux-server ~]# ls /home/  /aaaaaaaaa >list.txt 2>/dev/null #空設備,將錯誤的輸出丟掉
[root@linux-server ~]# ls /home/  /aaaaaaaaa &>/dev/null #空設備,將正確與錯誤的輸出丟掉
echo 會將輸入的內容送往標準輸出(打印)
echo 內容 >> 文件名或腳本 (使用重定向的方式創建文件或腳本)

2.6.腳本中使用重定向

實戰一(沒有使用重定向)

[root@linux-server ~]# vim ping1.sh
#!/bin/bash
ping -c1 10.18.40.100
if [ $? -eq 0 ];then ? ? # $?判斷上一條命令的執行返回值,0為真,非0為執行失敗echo "10.18.40.100 is up."
elseecho "10.18.40.100 is down!" 
fi
[root@linux-server ~]# chmod +x ping1.sh 
[root@linux-server ~]# ./ping1.sh #執行文件(執行腳本)
PING 10.18.40.100 (10.18.40.100) 56(84) bytes of data.
?
--- 10.18.40.100 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
?
10.18.40.100 is down!

實戰二(使用重定向)

[root@linux-server ~]# vim ping1.sh
#!/bin/bash
ping -c1 10.18.40.100 &>/dev/null
if [ $? -eq 0 ];thenecho "10.18.40.100 is up." >>up.txt
elseecho "10.18.40.100 is down!"
fi
[root@linux-server ~]# ./ping1.sh

實戰三

[root@linux-server ~]# vim ping.sh
#!/bin/bash
ip=10.31.160
for i in {10..20} ? #變量i取值
do
ping -c1 $ip$i &> /dev/null
if [ $? -ne 0];then ? ? ?  # -ne不等于echo "network is not ok";
elseecho "$ip.$i" >> /mnt/up.txt
fi
dine
[root@linux-server ~]# bash ping.sh
[root@linux-server ~]# cat /mnt/up.txt

三、輸入重定向 <

標準輸入: < ? 等價 0<
通過輸入重定向創建文件

(cat > file <<EOF )是用來創建文件或者在腳本中使用,并向文件中輸入信息輸入的任何東西會被寫入文件中,EOF命令結束。

?語法:cat > filename <<EOF ?#可以寫到腳本或者文件里面
EOF:開始和結束的標記。命令不是固定的,可以是任意字符,但結尾字符必須與開始字符一致,成對使用;
結尾字符必須頂格寫。如果不是在腳本中,可以用Ctrl-D輸出EOF的標識;
在腳本輸入多行文本內容時,<<-EOF可以去除結尾分界符EOF所在行開頭部分的制表符,忽略所有的前導制表符(tab)字符。

實戰案例一:

[root@linux-server ~]# cat >file4 <<EOF
> 111
> 222
> 333
> 444
> EOF
[root@linux-server ~]# cat file4 
111
222
333
444

實戰案例二

利用重定向建立多行的文件 腳本創建多行文件

[root@linux-server ~]# vim create_file.sh
#!/bin/bash
cat >file200.txt <<EOF
111
222
333
yyy
ccc
EOF
[root@linux-server ~]# chmod +x create_file.sh 
[root@linux-server ~]# ./create_file.sh 
[root@linux-server ~]# cat file200.txt 
111
222
333
yyy
ccc

四、管道 |

進程間通信的一種方式

用法:command1 | command2 |command3 |...

實戰案例一

[root@linux-server ~]# rpm -qa  | grep 'httpd'#查詢所有安裝的軟件包,過濾包含httpd包
httpd-tools-2.4.6-90.el7.centos.x86_64
httpd-2.4.6-90.el7.centos.x86_64
?
[root@linux-server ~]# ps aux | grep 'sshd'

實戰案例二

將/etc/passwd中的用戶按UID大小排序

[root@linux-server ~]# sort -t":" -k3 -n /etc/passwd  
#以: 分隔,將第三列按字數升序
[root@linux-server ~]# sort -t":" -k3 -n /etc/passwd -r 
#以: 分隔,將第三列按字數降序
[root@linux-server ~]# sort -t":" -k3 -n /etc/passwd |head 
#以: 分隔,將第三列按字數升序看前十行
[root@linux-server ~]# sort -t":" -k3 -n /etc/passwd |tail 
#以: 分隔,將第三列按字數升序看后十行
參數詳解:
sort 排序,默認升序
-t 指定分隔符
-k 指定列
-n 按數值
-r 降序
uniq -c 去重
head 默認輸出前十行
tail 默認輸出后十行

實戰案例三

[root@linux-server ~]# netstat -lntp | awk 'NR==3 {print $4}' | awk -F':' '{print $2}'# awk截取 NR指定截取的行 print打印 $指定截取的列, -F指定截取的分隔符
22        

五、參數傳遞:xargs

對:ls cp rm  管道不能執行。所以通過xargs。
 語法:
 cat a.txt | xargs ?-i cp {} /目錄 ?{}:前面傳過來的內容-i :為了讓大括號生效目錄 ?-r解釋:前面傳過來的東西交給大括號{}cat file.txt |xargs ls -l ? ? ? ? ?前面是目錄或者目錄的路徑。 ?ls - l  后面可以不加大括號,直接執行。

實戰案例一

[root@linux-server ~]# touch /home/file{1..5}
[root@linux-server ~]# vim files.txt
/home/file1
/home/file2
/home/file3 
/home/file4
/home/file5
[root@linux-server ~]# cat files.txt |ls -l #不加xargs傳參,看輸出結果
[root@linux-server ~]# cat files.txt |rm -rvf  #不加xargs傳參,看輸出結果
[root@linux-server ~]# cat files.txt |xargs ls -l
-rw-r--rwx. 1 root root 12 Nov ?7 21:57 /home/file1
-rw-r--r--. 1 root root ?0 Nov ?7 21:57 /home/file2
-rw-r--r--. 1 root root ?0 Nov ?7 21:57 /home/file3
-rw-r--r--. 1 root root ?0 Nov ?7 21:57 /home/file4
-rw-r--r--. 1 root root ?0 Nov ?7 21:57 /home/file5
[root@linux-server ~]# cat files.txt | xargs rm -rvf
removed ‘/home/file1’
removed ‘/home/file2’
removed ‘/home/file3’
removed ‘/home/file4’
removed ‘/home/file5’

實戰案例二

[root@linux-server ~]# touch /home/file{1..5}
[root@linux-server ~]# # cat files.txt | xargs -i cp -rvf {} /tmp/
‘/home/file1’ -> ‘/tmp/file1’
‘/home/file2’ -> ‘/tmp/file2’
‘/home/file3’ -> ‘/tmp/file3’
‘/home/file4’ -> ‘/tmp/file4’
‘/home/file5’ -> ‘/tmp/file5’
常用小命令

du:查看文件大小

wc:(word count)計算文件的行數、字數和字節數

[root@linux-server ~]# du -h /etc/ ? #查看目錄及目錄中的文件大小
[root@linux-server ~]# du -sh /etc/  #查看目錄的總大小
[root@linux-server ~]# ls /etc/ | wc -l #查看目錄中有多少個文件(一級目錄下的)
[root@linux-server ~]# ls -R /etc/ | wc -l #-R遞歸目錄,可查看目錄下的所有文件

作業

1.cat /2.txt 將它的結果混合輸出到/opt/file.txt
cat /2.txt &> /opt/file.txt
2.怎么判斷一個賬戶是否存在??
id user_name
3.將22覆蓋到a.txt文件中
echo 22 > a.txt
4.>與>>區別是什么
>(1)直接把內容生成到指定文件,會覆蓋源文件中的內容(2)直接生成一個空白文件,相當于touch命令
>>尾部追加,不會覆蓋掉文件中原有的內容
5.將cat /home/b.txt中將正確的輸出重定向到a.txt中將錯誤的輸出重定向到c.txt
cat /home/b.txt >a.txt 2>c.tst
6.請將vsftpd的進程殺掉,他的IPD為11223? ? ?kill -9 11223
7.請描述一下kill與pkill的區別
kill 指定pid進程號
pkill 指定進程名,可以刪除某個終端,或者某個用戶的進程
8.請描述一下什么是nice值
進程優先級,范圍是-20到+19,nice值越大意味著更低的優先級,低nice值會獲得更多的處理器時間。
nice值并不是優先級,但會影響優先級:PRI = PRI(old) + nice(PRI就是優先級值,越小越先被調度)
9.如何刪除當前目錄下以.log結尾的文件? ? rm -rf ./*.log
10.打印當前工作目錄的Linux命令是? ? ? ? pwd
11.如何查看在后臺運行的程序? ? ? ? ? ?  jobs
12.如何將后臺運行的程序調出之前臺運行? ? fg 工作號
13.2>與&>是什么意思?
標準錯誤的內容輸出覆蓋到指定文件
正確和錯誤混合輸出到指定文件
14.請用輸入重定向將123456寫入a.txt文件中。 echo 123456 > a.txt
15.動態查看進程的命令你知道哪幾個?top,htop,uptime
擴展--閱讀

什么是CC攻擊?

攻擊者借助代理服務器生成指向受害主機的合法請求,實現DDOS和偽裝就叫:CC(ChallengeCollapsar)。
CC主要是用來攻擊頁面的。大家都有這樣的經歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,
訪問的人越多,論壇的頁面越多,數據庫壓力就越大,被訪問的頻率也越高,占用的系統資源也就相當可觀。

如何防御CC攻擊

1.開啟防火墻,過濾掉訪問次數多的IP地址
2.拒絕代理服務器訪問你服務器
怎么拒絕代理服務器訪問呢?
代理服務器有固定的IP地址,將這些IP地址都加到防火墻下,全部drop掉

CC攻擊危害是什么?

大量的流量不斷沖擊你的服務器,會讓你的服務器負載及壓力越來越大,直到服務器崩潰宕機

6.什么是DOS攻擊

DoS是Denial of Service的簡稱,即拒絕服務,造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計算機或網絡無法提供正常的服務。最常見的DoS攻擊有計算機網絡帶寬攻擊和連通性攻擊。

云計算基礎 練習試題I

第一題:如何查看你的服務器IP地址?

ip a
ifconfig

第二題:你所使用的linux是哪個版本?請描述一下你所知道的其他發行版?

Centos7
Debian, RHEL, Ubuntu, openSUSE

第三題:請簡述一下什么是絕對路徑什么是相對路徑?

絕對路徑以/開頭的路徑,相對路徑是從非/開始的路徑,從當前目錄開始

第四題:請給jack用戶設置密碼,密碼為123456

useradd jack && passwd jack 123456

第五題:請創建用戶tom,登錄shell為/sbin/nologin,并指定uid為1200

useradd -u 1200 -s /sbin/nologin tom

第六題:請描述下面目錄的作用

/root:root用戶的家目錄
/home:普通用戶的家目錄
/usr/local:安裝軟件的目錄
/etc:存放配置文件
/bin:普通用戶使用的命令文件
/sbin:管理員使用的命令文件

第七題:如何查看系統中alice用戶是否存在?

id alice 

第八題:在權限設置中請說明下面內容

r是什么? 對應數字是幾?讀取 ?4
w是什么? 對應數字是幾?寫入 ?2
x是什么? 對應數字是幾?執行 ?1

第九題:請回答下面的問題

root:x:0:0:root:/root:/bin/bash
分隔符是什么?冒號
第一列是什么?用戶
第二列是什么?密碼
第四列是什么?gid
第六列是什么?家目錄
第七列是什么?登錄的shell

第十題: 請簡述vim編輯器中的如下命令

i ----- 光標所在處進入編輯模式
o -----  在光標下一行進入編輯模式
yy -----復制光標所在行
dd -----刪除光標所在行
u -----撤銷
G ------到頁尾
shift+v -----進入可視行模式
x ------刪除光標處的字符
gg ------到頁首
r ------修改光標所在字符
p ------在光標下一行粘貼

第十一題:請簡述一下rwx對文件和對目錄的影響和對應的命令

對文件:
r: 讀--cat、less
w: 寫--vi、vim
x: 執行--bash ./file_name
?
對目錄:
r: 讀--ls 
w: 寫--touch、mv、rm ?
x: 執行--cd
?

第十二題:創建用戶jack和it組,并將jack添加到it組里面,同時it組對文件a.txt有讀寫權限

groupadd it
useradd jack -G it
chmod g+w a.txt
chown .it a.txt

第十三題:如何查看/opt/目錄下面的所有文件包括隱藏文件

ls -a /opt

第十四題:請將/opt/test/目錄以及目錄中的所有文件設置為讀和執行權限

chomd -r g=rx o=rx /opt/test/

第十五題:請簡述一下在公司里面為什么不能使用root用戶

?root用戶為管理員用戶,權限太高,使用root用戶容易造成誤操作,帶來安全隱患,因此使用普通用戶

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41592.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

windows USB 設備驅動開發-控制傳輸的數據包

每次在主機控制器和 USB 設備之間移動數據時&#xff0c;都會發生傳輸。 通常&#xff0c;USB 傳輸可大致分為控制傳輸和數據傳輸。 所有 USB 設備都必須支持控制傳輸&#xff0c;并且可以支持用于數據傳輸的端點。 每種類型的傳輸都與設備緩沖區USB 端點 的類型相關聯。 控制傳…

泛微開發修煉之旅--32ecology對接海康威視綜合安防管理系統,人臉識別機器數據同步代碼方案及源碼

文章鏈接&#xff1a;32ecology對接海康威視綜合安防管理系統&#xff0c;人臉識別機器數據同步代碼方案及源碼

解鎖深度學習黑箱:注意力機制的神秘力量

標題&#xff1a;解鎖深度學習黑箱&#xff1a;注意力機制的神秘力量 在深度學習領域&#xff0c;注意力機制&#xff08;Attention Mechanism&#xff09;是一種資源分配策略&#xff0c;它使得模型能夠集中于數據中最重要的部分。注意力機制在自然語言處理&#xff08;NLP&a…

Open3D 在點云中構建八叉樹

目錄 一、概述 二、代碼實現 2.1關鍵函數 2.2完整代碼 三、實現效果 3.1原始點云 3.2構建后點云 一、概述 八叉樹&#xff08;Octree&#xff09;是一種樹狀數據結構&#xff0c;用于遞歸地將3D空間分割成較小的立方體。八叉樹特別適用于3D計算機圖形學、點云處理和空間…

[圖解]企業應用架構模式2024新譯本講解22-標識映射

1 00:00:01,080 --> 00:00:04,710 我們來看一下標識映射這個模式 2 00:00:08,030 --> 00:00:10,110 它是屬于對象-關系 3 00:00:10,120 --> 00:00:11,150 行為模式 4 00:00:11,160 --> 00:00:13,890 就是說&#xff0c;在動態的時候 5 00:00:15,770 --> 00:…

華為OD機考題(HJ65 查找兩個字符串a,b中的最長公共子串)

前言 經過前期的數據結構和算法學習&#xff0c;開始以OD機考題作為練習題&#xff0c;繼續加強下熟練程度。 描述 查找兩個字符串a,b中的最長公共子串。若有多個&#xff0c;輸出在較短串中最先出現的那個。 注&#xff1a;子串的定義&#xff1a;將一個字符串刪去前綴和后…

【Git 】規范 Git 提交信息的工具 Commitizen

Commitizen是一個用于規范Git提交信息的工具&#xff0c;它旨在幫助開發者生成符合一定規范和風格的提交信息&#xff0c;從而提高代碼維護的效率&#xff0c;便于追蹤和定位問題。以下是對Commitizen的詳細介紹。 1、Commitizen的作用與優勢 規范提交信息&#xff1a;通過提供…

C# Application.DoEvents()的作用

文章目錄 1、詳解 Application.DoEvents()2、示例處理用戶事件響應系統事件控制臺輸出游戲和多媒體應用與操作系統的交互 3、注意事項總結 Application.DoEvents() 是 .NET 框架中的一個方法&#xff0c;它主要用于處理消息隊列中的事件。在 Windows 應用程序中&#xff0c;當一…

Oracle PL / SQL INTERVAL數據類型

INTERVAL YEAR TO MONTH數據類型 INTERVAL YEAR TO MONTH存儲和操作年和月的間隔。 語法是&#xff1a; INTERVAL YEAR[(precision)] TO MONTH precision指定“years”字段中的數字位數。 我們必須在0..4的范圍內使用整數字面值。默認值為2。 以下代碼顯示如何將字面值分配…

基于16通道AD采集(CL1616和AD7616)的FPGA設計簡介

Cl1616是一款 16 位 DAS,支持對 16 個通道進行雙路同步采樣。CL1616 采用 5 V 單電源供電,可以 處理10 V、5 V 和2.5 V 真雙極性輸入信號,同時每對通道均能以高達 1 MSPS 的吞吐速率和 90 dB SNR 采樣。利用片內過采樣模式可實現更高的 SNR 性能。 AD7616與CL1616軟硬件兼容…

實驗四 圖像增強—灰度變換之直方圖變換

一&#xff0e;實驗目的 1&#xff0e;掌握灰度直方圖的概念及其計算方法&#xff1b; 2&#xff0e;熟練掌握直方圖均衡化計算過程&#xff1b;了解直方圖規定化的計算過程&#xff1b; 3&#xff0e;了解色彩直方圖的概念和計算方法 二&#xff0e;實驗內容&#xff1a; …

ArcGIS Pro SDK (八)地理數據庫 1 地理數據庫和數據存儲

ArcGIS Pro SDK &#xff08;八&#xff09;地理數據庫 1 地理數據庫和數據存儲 文章目錄 ArcGIS Pro SDK &#xff08;八&#xff09;地理數據庫 1 地理數據庫和數據存儲1 打開給定路徑的文件地理數據庫2 使用連接屬性打開企業級地理數據庫3 使用 sde 文件路徑打開企業級地理數…

Bootstrap 提示工具

Bootstrap 提示工具 Bootstrap 是一個流行的前端框架,它提供了一套豐富的工具和組件,用于快速開發響應式和移動設備優先的網頁。其中,提示工具(Tooltip)是 Bootstrap 提供的一個非常有用的組件,它可以在用戶將鼠標懸停在某個元素上時顯示額外的信息。本文將詳細介紹 Boo…

課設:選課管理系統(Java+MySQL)

在本博客中&#xff0c;我將介紹用Java、MySQL、JDBC和Swing GUI開發一個簡單的選課管理系統。 技術棧 Java&#xff1a;用于編寫應用程序邏輯MySQL&#xff1a;用于存儲和管理數據JDBC&#xff1a;用于連接Java應用程序和MySQL數據庫Swing GUI&#xff1a;用于構建桌面應用程…

555 定時器芯片工作原理

在本教程中&#xff0c;您將學習如何使用 555 定時器做一些有趣的事情。許多人用它做的第一件事就是制造閃爍的燈光。但這只是用該芯片可以做很多事情的簡單示例之一。您還可以控制電機、創建鬧鐘、創建樂器等等。 讓我們先來概覽一下這些引腳。 555 定時器引腳排列 引腳 1 接地…

【SpringCloud】概述 -- 微服務入門

在Java的整個學習過程中&#xff0c;大家勢必會聽見一些什么分布式-微服務、高并發、高可用這些專業術語&#xff0c;給人的感覺很高級&#xff0c;有一種高深莫測的感覺。可以看一下這篇博客對這些技術架構的演變有一個初步的認識: 服務端?并發分布式結構演進之路-CSDN博客文…

image媒體組件屬性配合swiper輪播

圖片組件&#xff08;image&#xff09; 先插入個圖片試試&#xff0c;插入圖片用src屬性&#xff0c;這是圖片&#xff1a; 代碼如下&#xff1a; <template><view><swiper indicator-dots indicator-color "#126bae" indicator-active-color &…

Jectpack Navigation組件設置統一跳轉動畫

Activity的跳轉一般通過Theme設置即可&#xff0c;但是Framment的跳轉除了NavigationUI類提供的方法會有動畫以外&#xff0c;直接調用navigate方法是沒有動畫的。 網上的實現個人認為比較麻煩&#xff0c;幫自己寫了一套&#xff0c;主要就是自定義NavHostFragement和Fragmen…

CobaltStrike的內網安全

1.上線機器的Beacon的常用命令 2.信息收集和網站克隆 3.釣魚郵件 4.CS傳遞會話到MSF 5.MSF會話傳遞到CS 1上線機器的Beacon的常用命令 介紹&#xff1a;CobaltStrike分為服務端和客戶端&#xff0c;一般我們將服務端放在kali&#xff0c;客戶端可以在物理機上面&#xff0…

tongweb 部署軟航流版簽一體化應用示例 提示跨域錯誤CORS ERROR

目錄 問題現象與描述 解決辦法 原理解析 什么是CORS 瀏覽器跨域請求限制 跨域問題解決方法 跨域請求流程 瀏覽器請求分類解析 http請求方法簡介 問題現象與描述 重慶軟航科技有限公司提供了一套針對針對word、excel等流式文件轉換成PDF版式文件并進行版式文件在線簽章…