日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell入门01

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell入门01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Shell入門

1.基于硬件的虛擬化

2.基于平臺的虛擬化

3.基于服務的虛擬化

4.基于庫的虛擬化

5.基于操作系統的虛擬化

管理員使用Shell程序與操作系統進行交互,之前學習的shell腳本都是以單行命令來執行的,缺乏邏輯關系,將單行的命令統一并建立邏輯關系的過程,就是shell腳本編程。

Sum _ = 0

For I in range(1,101):

???????? Sum_? += i

Print(sum_)

--------------------------------------------------------------------

sum_= 0

for i in $(seq 100);do

…………..

done

輸出echo

?

格式化輸出 awk – printf

與其他編程語言的區別:使用shell來實現linux的批量管理,而不是去開發應用程序

學習內容:shell(python、perl、)

Pip install ipython----交互式工具執行單行命令比較方便

1.bash的基本特性

python可以通過調用庫來實現各種行業的需求

ctrl + l

上鍵

History

2.IO重定向與管道符---shell的功能特性?? 命令是一個可執行的二進制程序

???????? Which ls

3.編程基礎

???????? 程序是什么?----程序是執行以某個功能的代碼,而算法是程序中的其中一種。

???????? #/!bin/bash ------制定解釋器

Path路徑來執行shell? ./aa.txt

變量:是指一段命名的內存空間

數據有變量來提供

指令---命令

???????? 程序必須包含 指令 + 數據?????? + (邏輯關系

編程原理----面向對象()和面向過程?

4.!!!!!!!!!!!!!!!!grep和正則表達式!!!!!!!!!!!!!

???????? Linux三劍客 **grep過濾(行)

Pattern“模式”

5.語句的邏輯關系

分支

if

?

循環

for? 工作中常用—不容易進入死循環? 放入for循環的列表

while 指定初始值,循環條件為True 不要進入死循環

until 與while相反 循環條件為False不要進入死循環

?

case------**編寫linux的程序啟動腳本**

?

打斷循環的語句

break 跳出循環

continue跳出當前循環

exit 退出當前程序,指定程序的返回值

echo $? 命令執行情況

?

read –--input()

echo---print()

?unix bsd

6.**變量**

network:宣告路由,讓路由器發送helllo包,攜帶路由信息,組播

Linux三劍客

???????? **sed---編輯器? stream edit d。。 流編輯器

???????? 數據存儲在磁盤里就是“流”

換行 輸出數據時手動添加/n,計算機識別后展示

流設備基于流編輯器。。。

兩種模式的切換

???????? **awk 報告生成器-----一個獨立的編程語言

函數? ----- 一段固定功能的代碼塊

數組? ---- 列表、元組、字典

字符串----- 字符串的處理太復雜 方法多

重復:必須連續且相同的數據 先排序再去重(Sort 去重)

練習:

?

line = `wc –l /etc/inittab | cat –d’ ’ –f1 `? 查看行數

echo $line

cat –n /etc/inittab

if test $line -gt 100 ;then???????????????????? if [ $line -gt 100 ];then

???????? echo “ /etc/inittab is a big file ”????????????????? echo “ /etc/inittab is a big file ”

else???????????????? ????????????????????else

???????? echo “/etc/inittab is a small file”????????????????? echo “/etc/inittab is a small file”

fi??????????????????????????????????????? fi

test 相當于一個[]? test $line –gt 100 ==[$line –gt 100]

-gt ----大于

bash的基本特性

linux的時間:系統時鐘和硬件時鐘

系統時間—date

硬件時間---clock? hwclock

1.命令歷史? 根----加載驅動

???????? 作用:查看之前使用的命令

關于命令歷史的文件------每個用戶家目錄下面的.bash_history

??????????????????????????????????????????? ? 在關機的時候,會自動寫入一次

history是內置命令 history –r 將內存中的命令歷史寫入文件

useradd xls –l

echo “123456” | passwd –stdin(標準輸入) “xls -l”

cd /home/xls-l

ls

ls -a

關于命令歷史的變量(環境變量) path只是環境變量的一種???? chroot 切換文件根目錄

???????? Env?? ?//查看環境變量

Set??? //查看更加詳細的環境變量參數

HISTSIZE = 1000? 總量是1000條歷史命令。超過1000刪除重存

HISTCONTROL = ignoredups/ignorespace/ignoreboth

?

Set|grep“HIST”

History的常見操作

???????? 查看命令歷史

???????? !+編號----!#---執行#號行的命令(#表示數值)

???????? !+string----匹配最近一次的字符串

???????? !!-------上一條命令

???????? *!$*------- 上一條命令的最后一個參數

????????????????? ls /etc == ls !$

????????????????? ESC+.---上一條命令的最后一個參數

???????? 常見的選項:

???????? -a? 追加歷史行到歷史文件

???????? -d? 刪除

???????? -c? 清空

???????? History # 顯示最近#行的命令

?

2.命令補全

Tab :擴展:制表符 \t 四個空格鍵

???????? ??????? ? 1.提示2.自動補全

3.目錄補全

???????? Tab 1.提示2.自動補全

4.命令展開—date命令

???????? {}

???????? Linux的目錄遵循的規則------FHS(文件系統層次化標準)目錄規則

?

Mkdir –pv mylinux{bin,boot/grub,dev,etc{/rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys}

?

屬性一?????? 屬性二

A ?????????????1

B ?????????????2

Mkdir –pv /var/{a,b}-{1,2}

dateclockhwclock

基于date命令來創建目錄文件

date +%F---改變date輸出的格式 –日期格式? 年-月-日 CCYY-mm-dd

date+%F-%H-%M-%S

%H---小時 hh

%M---分鐘 MM

%S---秒 ss

%T---hh:MM:ss

%D---mm/dd/CCYY(月/日/年)

%Y---顯示年份CCYY? %y

練習:

???????? 通過for語句循環創建一個月的日志文件;.log ?2019-08-06.log

???????? Crontab ?–e * * * * *(分、時、日、月、星期)

touch `date +%F`.http.log

for ?i ?in ?{1..30};do

???????? touch `date +%Y-%m-$i`.http.log

done

for ?i ?in ?{1..30};do? touch `date +%Y-%m-$i`.http.log; done --- 一行執行

tar

歸檔命令 壓縮解壓縮

壓縮工具 gzip、bzip、xz、zcat(不解壓查看壓縮文件)

文本文件壓縮效果較好,壓縮只能對文件進行操作,不能對目錄進行操作

Tar的常見參數:

???????? 歸檔工具???????

-j????? bzip2

???????? -J????? xz

???????? -z????? gzip

???????? -c???? create(壓縮)

???????? -x???? extract (解壓)//可以不用指定解壓的工具

???????? -f????? 指定文件名

???????? -v???? 顯示詳細信息 verbose

???????? -t????? 不解壓查看內容和zcat一樣

???????? Tar歸檔工具可以對目錄進行操作

gzip /etc/inittab

壓縮 tar cjvf 2019-08.http.log.bz2 2019-08-*.http.log

解壓 tar xvf 2019-08.http.log.bz2 ?–C abc

解壓可以不選擇解壓方式

.*---正則表達式 *---不是正則表達式

?

crontab ?–e * * * * *(分、時、日、月、星期) 寫全路徑 ?除/以外的符號都可以當作文件名

20 02 * * * /root/xxx.sh

編寫xxx.sh腳本文件

Vim xxx.sh

????????????????? #!/bin/bash

????????????????? #

????????????????? tar ?cJvf ?/var/`date +%F` .xz? /etc/

chmod +x xxx.sh

?

補充:

???????? clock、hwclock ---- 查看硬件時鐘(如何同步系統時鐘和硬件時鐘,以哪一個為準)

???????? cal??? 日歷 cal 1997

5.命令的執行狀態

???????? 在linux中,每一條命令執行后都會有兩個結果:

????????????????? 命令本身放回的內容

????????????????? 其次,命令執行的結果狀態

???????? $? 變量,就是用來存放命令執行狀態的變量;

????????????????? 0 表示成功的狀態(與python相反)

????????????????? 1-255 表示失敗的狀態

[$? –eq 0] && exit 0|| exit 1

?

在程序執行中,我們可以使用exit來手動制定返回的狀態碼

6.命令的快捷鍵

???????? Ctrl + l //清屏

???????? Ctrl + c

???????? Ctrl + u //刪除光標前的字符

???????? Ctrl + k //刪除光標后的字符

???????? Ctrl + a //光標頭

???????? Ctrl + e //光標尾

???????? Ctrl + e

???????? Ctrl + w //以空格為分隔符,去刪除文件

???????? Ctrl + r //搜索命令(進入交互式界面,搜索最近一次使用的命令要輸入字符串)

7.alias別名

?????? 系統啟動時讀取一些特殊文件的順序;

???????? alias 文件別名

???????? alias cdnet=”cd /etc/sysconfig/network-scripts”?? //這種方式定義的alias只能在當前shell使用

???????? pstree

???????? 如果想要別名所有人都可以使用,寫入下面兩個文件中

???????? /etc/profile?

???????? /etc/bashrc

???????? 如果想要別名自己使用,寫入下面兩個文件中

???????? ~ /.bash_profile

???????? ~/.bashrc

???????? PEP代碼標準

?

?

?

?

8.文件通配符

? ? ? ?**文件通配符不是正則表達式**

? 任意單個字符

* 任意長度的任意字符

[] 指定范圍內的任意字符

^ ?1.以什么開頭

? ?2.[^]指定范圍以外的任意一個字符

?[^0-9A-Za-z]? [0-9] [A-Z] [a-zA-Z]

指定字符類:

1.[:alnum]----- [^0-9A-Za-z]字母+數字

2.[:upper:]-----字母大小寫

3.[:digit:]-------數字

4.[:punct:]-----特殊字符

5.[:space:]-----空格?? ^*[[:space:]]*$-----匹配空白行

轉載于:https://www.cnblogs.com/KAJIA1/p/11307887.html

總結

以上是生活随笔為你收集整理的Shell入门01的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。