Shell基礎命令(一)

来源:https://www.cnblogs.com/q455674496/archive/2019/04/03/10601416.html
-Advertisement-
Play Games

Shell 教程 Shell 是一個用 C 語言編寫的程式,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程式設計語言。 Shell 是指一種應用程式,這個應用程式提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。 Ken Thompson 的 sh 是第一種 Uni ...


Shell 教程

Shell 是一個用 C 語言編寫的程式,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程式設計語言。

Shell 是指一種應用程式,這個應用程式提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。

Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。

Shell 線上工具


Shell 腳本

Shell 腳本(shell script),是一種為 shell 編寫的腳本程式。

業界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。

由於習慣的原因,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。


Shell 環境

Shell 編程跟 java、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。

Linux 的 Shell 種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

 

Shell 基本命令

快捷鍵

1.tab鍵    用於自動補全命令/文件名/目錄名
2.ctrl + l  清理終端顯示 
3.clear/cls  清理終端顯示
4.ctrl + c 終止當前操作
echo命令

 

普通用戶跟root切換 su:

# 切換到普通用戶:su 用戶名
# 切換到root用戶:su
[root@localhost test]# su lrj
[lrj@localhost /]$ su
Password: 
[root@localhost /]# 

 


 

創建目錄:

[root@localhost /]# mkdir qiyue
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  oldboy  opt  proc  qiyue  root  run  sbin  srv  sys  tmp  usr  var
# 在qiyue目錄下遞歸創建目錄 a/b c/d /子目錄

 [root@localhost /]# cd qiyue/
 [root@localhost qiyue]# mkdir a/b c/d
 [root@localhost qiyue]# mkdir -p a/b c/d
 [root@localhost qiyue]# ls
 a c
 [root@localhost qiyue]# cd a  # 改變當前的目錄/位置
 [root@localhost a]# ls
 b
 [root@localhost a]# cd ../c
 [root@localhost c]# ls
 d

#遞歸創建test/a,b,c,d四個目錄 {}同級

 [root@localhost qiyue]# mkdir -p test/{a,b,c,d}
 [root@localhost qiyue]# ls  # 查看當前目錄下的所有文件
 a c test
 [root@localhost qiyue]# ls test #顯示/test下的內容(查看指定目錄下的所有內容)

 a b c d

[root@localhost qiyue]# pwd # 列印當前工作目錄
/qiyue
 



文本編輯:
vi # 記事本打開
vim # notepad++ 打開
使用vi打開oldboy.py,預設是命令模式,需要輸入a/i進入編輯模式,然後輸入文本"Life is short,i use python"
按下esc鍵,回到命令模式
輸入  :wq!  強制保存退出
w write 寫入
q quit 退出
! 強制
或者  :x 保存退出
------
:q  不保存退出
:q! 不保存強制退出

 


 

 

查看純文本內容: cat

[root@localhost qiyue]# cat liu.txt 
今天學習linux中的Shell命令.
[root@localhost qiyue]# 

 

more命令

1.more命令用於查看內容較多的文本,例如要看一個很長的配置文件,cat查看內容屏幕會快速翻滾到結尾。

2.more命令查看文本會以百分比形式告知已經看到了多少,使用回車鍵向下讀取內容

more /etc/passwd
按下空格space是翻頁
按下b鍵是上一頁
回車鍵向下讀取內容

 


 

移動, 改名:mv

將liu.txt 移動到test目錄下, 將test目錄下的a改成aa

[root@localhost qiyue]# ls
a  c  liu.txt  test
[root@localhost qiyue]# mv liu.txt test
[root@localhost qiyue]# ls
a  c  test
[root@localhost qiyue]# ls test
a  b  c  d  liu.txt
[root@localhost qiyue]# cd test/ [root@localhost test]# mv a aa [root@localhost test]# ls aa b c d liu.txt [root@localhost test]#

 


 

 

刪除命令rm:

[root@localhost test]# rm liu.txt # #預設有提示刪除,需要輸入y, 加上參數-f 不提醒
rm: remove regular file ‘liu.txt’? y
[root@localhost test]# ls
aa  b  c  d
[root@localhost test]# rm -rf b #rm預設無法刪除目錄,需要跟上參數-r
[root@localhost test]# ls
aa  c  d


rm -rf /* #
跑路跑路跑路跑路跑路跑路跑路跑路跑路跑路


 

echo命令

echo命令用於在終端輸出字元串或變數提取後的值,格式是“echo 【字元串|$變數】”

#預設吧內容顯示到終端上    
echo "七月"
#把“七月”寫入到文件里!
echo "七月" > /tmp/qiyue.txt
echo $PATH #取出列印PATH的值

 

查找

#Linux里如何找到需要的文件 例如 oldboy.py
find 在哪裡(目錄) 什麼類型(文件類型) 叫什麼名字(文件名)
參數

-name 按照文件名查找文件
-type 查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字元設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
s - socket文件


find /tmp/ -type f  -name "oldboy.py"

#找出/tmp所有以 .txt 結尾的文件
find /tmp/ -type f -name "*.txt"

#找到/etc下所有名字以host開頭的文件
find /etc -name 'host*'

#找到/opt上一個名為settings.py
find /opt -name 'settings.py'


管道命令: |

Linux提供的管道符“|”講兩條命令隔開,管道符左邊命令的輸出會作為管道符右邊命令的輸入。
常見用法:
#檢查python程式是否啟動
ps -ef|grep "python"

#找到/tmp目錄下所有txt文件
ls /tmp|grep '.txt'

#檢查nginx的埠是否存活
netstat -tunlp |grep nginx

 

grep

語法:
grep [參數] [--color=auto] [字元串] filename
參數詳解:
-i : 忽略大小寫
-n : 輸出行號
-v : 反向選擇
--color = auto : 給關鍵詞部分添加顏色

grep "我要找什麼" /tmp/oldboy.txt
#排除 -v,排除我要找的東西
grep -v "我要找什麼 /tmp/oldboy.txt

 

head、tail命令

head顯示文件前幾行,預設前10行
tail顯示文件後幾行,預設後10行
#查看前兩行
head -2 /tmp/oldboy.txt
#查看後兩行
tail -2 /tmp/oldboy.txt
#持續刷新顯示
tail -f xx.log

#顯示文件10-30行
head -30 /tmp/oldboy.txt |tail -21

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 檢查系統自帶的Mysql,並卸載自帶的版本 2. 卸載系統自帶的mysql及其依賴 3. 給CentOS添加rpm源,並且選擇較新的源 1)下載rpm包 2)安裝本地mysql源 3)驗證是否安裝成功 4)修改預設版本為5.7 註:如下是截取的老徐之前文章 -》原文 http://istest ...
  • HTTP/HTTPS抓包工具--Fiddler Fiddler[ˈfɪdlə(r)] 1. HTTP代理神器Fiddler Fiddler是一款強大Web調試工具,它能記錄所有客戶端和伺服器的HTTP請求。 Fiddler啟動的時候,預設IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需 ...
  • 參考資料: RAID data striping spanned volume 從raid0到raid7,raid陣列各級別介紹 本文所使用的圖片來源於互聯網,若有侵權,煩請聯繫,謝謝。 簡介 RAID出現的目的是為了數據的冗餘,或者性能的提升,或者兩者兼顧。早期想實現這樣的功能,可能需要購買一些基 ...
  • 第一階段 start.S 首先我們可以在u boot.lds中看到 ,即指定了入口 ,`_start start.S`的最開始; 1. reset 在 中的 normal_start_flow: / set stack for C code / ldr x0, =(CONFIG_SYS_INIT_S ...
  • rpmbuild├── BUILD #當我們rpmbuild -ba 構建rpm時會自動在這個目錄下進行編譯├── BUILDROOT #會當成臨時根,會將編譯好的軟體包生成在這個目錄下├── RPMS #編譯好的rpm包會存放在這個文件夾├── SOURCES #放源碼包,一般為tar.gz格式├ ...
  • 1.poweroff 關閉系統(1) 2.halt 關閉系統(2) 3.reboot 重啟系統 4.pwd 查看當前所在目錄的絕對路徑 5.mkdir 文件名 創建一個目錄文件 6.rm 文件名 刪除文件(如果刪除目錄文件需要加上-r,如果強制刪除需要加上-f) 7.cat 文件名 查看文件內容(適 ...
  • Windows 2008 Server在預設情況下,是禁止使用桌面桌面連接後播放聲音的(提示音頻服務未啟用)。可以通過下麵的方法啟用音頻: 管理工具->遠程桌面服務->遠程桌面會話主機配置, 在配置界面中的“連接”項下,打開RDP-Tcp的屬性->客戶端設置選項卡中,把重定向里的“禁用以下項目”中的 ...
  • -L -Wl,-rpath-link -Wl,-rpath區別精講 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...