Linux學習:初始Linux

目錄

  • 1. 引子:
    • 1.1 簡述:操作系統
    • 1.2 學習工具
  • 2. Linux操作系統中的一些基礎概念與指令
    • 2.1 簡單指令
    • 2.2 ls指令與文件
    • 2.3 cd指令與目錄
    • 2.4 文件目錄的新建與刪除指令
    • 2.5 補充指令1:
    • 2.6 文件編輯與拷貝剪切
    • 2.7 文件的查看
    • 2.8 時間相關指令
    • 2.9 查找指令
    • 2.10 行文本過濾工具與打包壓縮
    • 2.11 補充指令2:

1. 引子:

1.1 簡述:操作系統

在我們日常的認識中,計算機是由硬件(顯示器,鍵盤等)與軟件(視頻,游戲軟件等)組成的。當我們去更深入了解時,可知計算機可以簡單劃分為如下的層狀結構:
在這里插入圖片描述
從圖中可見,操作系統正處于承上啟下的位置。而操作系統也正是一款進行軟硬件資源管理的軟件,它合理高效的調配軟硬件資源來對其上的應用程序提供良好的穩定的運行服務

1.2 學習工具

在學習Linux操作系統的過程中我所使用的工具為Xshell,其是一款遠程終端軟件,通過計算機網絡調用云服務器。

  1. 下載鏈接:Xshell官網
  2. 云服務器將操作系統桌面的部分裁剪掉了,而命令行與圖標的操作方式本質上沒有什么不同,命令行相交于圖標反而更高效。
  3. Xshell中的粘貼(Ctrl + insert)與復制(Shift + insert)快捷鍵。
  4. 于Xshell終端中輸入 ifconfig 指令,可查看ip地址
  5. Xshell終端中登錄遠程服務器的方式:ssh @[用戶名][服務器公網ip]

2. Linux操作系統中的一些基礎概念與指令

注:指令的出現時間早于圖形化界面,二者在本質上并無區別。

2.1 簡單指令

指令1:whoami

指令意義:查看當前賬號

指令2:who

指令意義:查看當前系統中有哪些賬戶

指令3:pwd

指令意義:查看當前所處目錄

2.2 ls指令與文件

<1> 指令:ls

指令意義: 顯示當前目錄下所有可見文件的名稱

在這里插入圖片描述
<2> 指令:ls -l

指令意義:顯示當前目錄下所有可見文件與目錄的信息(文件類型,大小,文件名等)
注:文件信息被也稱為文件與目錄屬性
補充:以d開頭的為目錄,以l開頭的為文件

在這里插入圖片描述

<3> 指令:ls -a

指令意義:顯示當前目錄下的所有文件與目錄名
注:目錄中存在著我們正常情況下不可見的隱藏文件與目錄,隱藏文件的文件名都以 . 開頭

在這里插入圖片描述

<4> 指令:ls -al

指令意義:指令ls -a指令ls -l的復合使用,其意義為查看所有文件(包含隱藏文件)的文件屬性

<5> 指令:ls -d

指令意義:只查看當前目錄的目錄名

<6> 知識拓展:文件的構成

  1. 當我們創建一個新空文件后,其文件內容顯示為0kb,可此文件是否在真的不占用磁盤呢。試試上,空文件并非不占用空間,文件實則由兩部分構成,一是文件內容,二是文件屬性
  2. 注:文件 = 文件信息 + 文件屬性(文件信息:文件名,文件內容代銷,文件創建時間等)

2.3 cd指令與目錄

<1> 知識拓展:Linux操作系統中的目錄結構

  1. 目錄的結構為一棵多叉樹
    圖1:
    在這里插入圖片描述

  2. 路徑:本質上,路徑為多叉樹的一條條搜索路徑
    <1> 絕對路徑從根目錄開始一直到達指定目錄的路徑(只有一條,具有唯一性)
    <2> 相對路徑相對自身為參考點到達指定目錄的路徑

  3. 路徑的寫法
    <1> 根目錄:在樹這一數據結構的學習中,我們知道根結點為沒有父親結點(父親結點為其自身)的結點。根目錄的概念亦是相同,根目錄,即為沒有上級目錄的目錄其名稱為 /
    <2> 路徑的表示方式:當我們想要表示一個目錄的絕對路徑時,我們需從根目錄開始逐步進入下級目錄,直至到達尋找目錄停止。在這一過程中我們經過所有目錄,按照先后順序將他們串聯起來其間以 路徑分隔符/ 分開,即為這一目錄的絕對路徑
    注:以圖1中的目錄dir_b1為例,其絕對路徑/dir_b/dir_b1
    <3> 隱藏目錄與相對路徑:每個目錄下都存在著兩個隱藏目錄,在我們使用指令ls -l查看目錄中的文件信息時,我們會發現名為..與.的兩個目錄,其中..代表上級目錄.代表此目錄。因此,同樣表示dir_d1目錄的路徑時我們所處dir_a目錄,可以使用相對路徑的表示方式,進行如下操作:
    ../dir_b/dir_b1

  4. 補充:
    <1> 目錄結構的葉子結點一定是普通文件或者空目錄
    <2> 目錄結構的路上結點一定時目錄

<2> 指令:cd [目錄路徑](change dir)

指令意義:更改所處目錄

<3> 指令:cd ~

  1. 指令意義:跳轉回當前用戶的家目錄。
  2. 補充:在操作系統中用戶都有一個屬于自己的家目錄,超級用戶為/root,普通用戶為/home/用戶名

<4> 指令:cd -

指令意義:跳轉回最近上一次所處的目錄

<5> 指令:tree [目錄路徑]

  1. 指令意義:將指定目錄中的文件與子目錄以樹狀的結構表示出來
  2. 例:tree.列出當前目錄
  3. 安裝指令:yum install -y tree

在這里插入圖片描述

2.4 文件目錄的新建與刪除指令

<1> 指令:touch [文件]

  1. 指令意義:新建一個不存在的文件
  2. 補充:一個目錄下不能存在同名的文件和目錄

<2> 指令:mkdir [目錄]

  1. 指令意義:創建一個新目錄
  2. 補充:midir -p [目錄路徑]
    遞歸創建多級目錄

<3> 指令: rmdir [目錄]

  1. 指令意義:刪除目錄(只能刪除空目錄)
  2. 補充:rm -f[目錄/文件]
    強制刪除目錄或文件
  3. 補充:rm -rf[目錄/文件]
    強制性遞歸刪除目錄及其中的內容不再詢問

2.5 補充指令1:

<1> 拓展指令:stat [文件名]

指令意義:查看文件更多的屬性列表,ACM時間等

<2> 指令:man [指令]

  1. 指令意義:查看參數指令的意義
  2. 安裝額外手冊:yum install -y man-pages
  3. 補充:man [手冊編號] [指令]
    在指定手冊中查找參數指令
  4. 注:指令的本質是可執行程序,printf 在Linux操作系統中也是一條指令(C語言編寫的可執行文件)

2.6 文件編輯與拷貝剪切

<1> 指令:cp [文件/目錄] [目錄]

  1. 指令意義:將文件拷貝至指定目錄(當目錄不為空時,無法正常拷貝)
  2. 補充: cp -rf [目錄][目錄]
    將目錄即中的所有內容強制遞歸拷貝至指定目錄
  3. 補充:cp -rf指令 在拷貝目錄時,若不存在指定目錄,則會將拷貝過去的目錄更改為指定目錄參數的名字
  4. 補充: 拷貝目錄時,不會拷貝目錄中的隱藏文件
  5. 補充:cp -rf * [目錄] ,將當前目錄下的所有內容拷貝至指定目錄(通配符*,代表指定目錄下的全部內容

<2> 指令:mv [文件/目錄] [目錄]

  1. 指令意義:剪切目錄或文件到指定目錄
  2. 補充:當參數目錄不存在時,剪切目錄會更改為參數目錄的名字。
    因此,我們可以通過在當前目錄異名剪切指定目錄/文件來實現重命名

<3> 補充:指令:alias [新指令別名]=‘指令’

  1. 指令意義:將指令重命名(重啟系統后失效)
  2. 指令:which [指令]
    可查看到指令在系統的位置
  3. 指令的本質時可執行程序,所以實際上指令的
    安裝就是將可執行程序拷貝到系統可以識別的路徑下
    刪除就是從此路徑下移除。

<4> 指令:nano [文件]

  1. 指令意義:打開文件,對文件進行編輯
  2. nano編輯器安裝指令yum install -y nano

2.7 文件的查看

<1> 指令:echo [字符] / echo “字符”(自帶換行)

  1. 指令意義:在顯示器上打印指定內容

補充1:Linux操作系統的設計思想

echo(回響)指令向顯示器上打印內容,我們亦可以理解為向顯示器上寫入內容,然后顯示器進行了回顯
在Linux操作系統中,我們將一切軟硬件資源都理解為文件,這樣減少了編碼維護的成本。大部分的硬件都由其的讀寫方法,根據作用不同,有些為空,鍵盤有寫方法,讀方法為空。

補充2:輸入輸出重定向

指令:echo “字符” > [文件]
此條指令的含義為將原本向顯示器輸出的內容,寫入到一個指定文件中(當文件不存在,新建一個文件)

! 輸出重定向操作符> 與輸入重定向操作符<

  1. 使用輸出重定向>向文件寫入內容時,每次寫入都會將文件內的已有內容清空
  2. 在我們想要向文件追加內容而不清空原有內容時,我們應使用追加重定向操作符>>

<2> 指令:cat [文件]

  1. 指令意義:打印文件內容
  2. 指令:cat(從鍵盤中讀取打印,不自帶換行)
    鍵盤文件讀取什么,就像顯示器寫入什么(輸入什么,打印什么)
  3. 指令:cat -n(帶行號的打印)
  4. 指令:cat -s(不輸出多行空行的打印)
  5. 指令:tac [文件](逆向輸出文件內容)
  6. 指令:cat < [文件](從文件中讀取內容打印)
    (聯系C中的fopen函數)

<3> 指令:more [文件] / less [文件]

注:cat只適合查看小文件,當我們需要查看大文件時,我們應使用more/less命令。

  1. 指令:more(通過 Ctrl + Enter鍵換行,Ctrl + C中斷)
  2. 指令:less(可使用上下鍵,輸入跳轉至指定行號,更加靈活,q鍵退出)
  3. 大文件創造命令i=0; while [ $i -le 100000 ]; do echo "hello $i"; let i++; done > file.txt

<4> 指令: head -[行數] [文件] / tail -[行數] [文件]

  1. 指令:head查看前n行的文件內容
  2. 指令:tail查看后n行的文件

補充:獲取大文件指定區間內的內容

讀取[80000, 80010]之間的內容:

  1. 先讀取前80010行的內容創建一個文件,再讀取新建文件的后10行內容。
  2. 命令行通道|(將前一個命令的輸出結果傳輸給下一個命令)
    由此,可以將創建中間文件的步驟優化,實際指令如下:
    head -80010 file.txt | tail -10

2.8 時間相關指令

<1> 指令:date

  1. 指令意義:顯示時間
  2. 補充:(格式化輸出選項)
    <1> date +%Y(輸出年份)
    <2> date +%m(輸出月份)
    <3> date + %d(輸出日期)
    <4> date + %H(輸出小時)
    <5> date + %M(輸出分鐘)
    <6> date + %S(輸出秒數)
    注:格式化輸出選項可進行復合使用
    date +%Y-%m-%d / %H:%M:%S
    (以年-月-日 / 時:分:秒的格式輸出時間,分隔符可以任意替換)
  3. date -d @0
    (返回時間戳,1970年1月1日00:00:00,根據時區略有不同)
  4. 時間在軟件開發,操作系統中的意義:
    因為時間戳的連續性唯一性,其衍生出的使用開發日志,記錄軟件開發的關鍵結點,當項目出現問題時可以輔助程序員進行問題查找

<2> 指令:cal

  1. 指令意義:打印當前月份的日歷
  2. cal [年份](打印指定年份的日歷)
  3. cal -1,cal -3(打印當前一個月的日歷,打印先在往后三個月的日歷)

2.9 查找指令

<1> 指令:find -name [文件名]

注:此指令的指令選項很多,日后慢慢了解學習。

  1. 指令意義:查找當前目錄下所有文件名為文件參數的文件。
    (以深度優先的算法遍歷樹狀結構,初次較慢,其后調用有緩存)

<2> 指令: which [指令]

  1. 指令意義:在系統中查找參數指令的位置

<3> 指令 whereis [關鍵字符]

  1. 指令意義:查找文檔
    (whereis test.*,含test的文檔,文件后綴任意,通配符)

2.10 行文本過濾工具與打包壓縮

<1> 指令:grep ‘字符’ [文件]

  1. 指令意義:篩選出文件存在指定字符的行
  2. grep -i ‘字符’ [文件](忽略字符大小寫篩選)
  3. grep -n ‘字符’ [文件](打印刪選行時標識行號)
  4. grep -v ‘字符’ [文件](篩選出不含指定字符的行)
  5. ps指令,查看進程,ps ajx指令查看所有進程
    ps 指令配合使用可篩選出指定日志等級(error等)的信息
    ps ajx | grep ‘sleep’

<2> 指令:sort [文件]

  1. 指令意義:將文件中的內容按照特定排序規則排序
  2. sort -r [文件] (反向排序)

<3> 指令:uniq [文件]或uniq -u [文件]

  1. 指令意義:將文件相鄰且內容相同的行去重合并
  2. uniq -d [文件](顯示出重復的行)
  3. uniq -c [文件](列出所有行重復的次數)
  4. 補充:wc [文件](統計文件中的字符數)
    wc -l [文件](統計出文件的行數)

補充:sort指令與uniq指令一起使用可以將文件去重(sort [文件] | uniq)

<5> 指令:zip 與 unzip

補充:壓縮與打包
文件項目的打包與壓縮是文件傳輸的常用手段

  1. 打包:將多個文件合并為一個文件,防止文件丟失
  2. 壓縮:通過各種壓縮算法將文件內容減少
    (網絡傳輸更節省時間,不同的壓縮文件有不同的壓縮算法)
  1. 指令:zip [文件.zip] [文件]
  1. 指令意義:將文件壓縮(當目錄不為空是,無法正常將整個目錄壓縮,只能壓縮為一個空目錄)
  2. zip -r [文件.zip] [目錄](遞歸式的將整個目錄壓縮為一個文件)
  1. 指令:unzip [文件.zip] -d [目錄]
  1. 指令意義:將壓縮的文件解壓縮到一個目錄中或解壓縮為一個新目錄

<6> 指令:tar -cxf [文件.tar] [目錄]

  1. 指令意義:(-c創建,-z壓縮,-f檔名)以tar的方式壓縮真個目錄
  2. tar -cvxf [文件.tar] [目錄] (壓縮目錄,顯示過程)
  3. tar -xvzf [文件.tar] -C [目錄](解壓縮文件到指定目錄,顯示過程)(-v 顯示過程)

2.11 補充指令2:

<1> 指令:uname -a

  1. 指令意義:查看系統體系結構
  2. 補充: uname -r
    查看計算機架構(發行版,內存信息等)

<2> 指令:historty

  1. 指令意義:查看登錄開始目前為止輸入過的所有指令

<3> 指令:‘字符提示’ + 雙擊Tab鍵

  1. 指令意義:檢索含提示字符的所有指令

<4> 快捷鍵 Ctrl + C(中斷)快捷鍵 Ctrl + D(直接退出系統)

<5> 指令:shutdown

  1. 指令意義:關機
  2. shudown -t [秒數]
    多少秒后關機
  3. shutdown -h
    立即關機
  4. reboot(直接關機)

<6> 指令:sz [文件]

  1. 指令意義:從Linux操作系統中傳輸文件至windows系統
  2. 安裝指令:yum install -y lrzsz

<7> 補充:Linux系統向另一個Linux系統中傳輸文件

指令:scp [文件.tgz] [用戶]@[公網ip] : [指定目錄]

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

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

相關文章

洛谷P1256 顯示圖像

廣搜練手題 題目鏈接 思路 打印每個數與其最近的 1 1 1的曼哈頓距離&#xff0c;顯然廣搜&#xff0c;存儲每一個 1 1 1&#xff0c;針對每一個 1 1 1開始廣搜&#xff0c;逐層更新&#xff0c;每輪后更新的為兩輪之中的最小曼哈頓距離 ACcode #include<bits/stdc.h>…

波動數列(藍橋杯)

問題描述&#xff1a; 觀察如下數列&#xff1a; 1 3 0 2 -1 1 -2 … 這個數列中后一項總是比前一項增加 2 或者減少 3。 棟棟對這種數列很好奇&#xff0c;他想知道長度為 n nn 和為 s ss 而且后一項總是比前一項增加 a aa 或者減少 b bb 的整數數列可能有多少種呢&#xff1f…

非專業程序員常用vscode插件

牙叔教程 簡單易懂 我常用的腳本語言是js, python. AutoHotkey v2 Language Support vscode-autohotkey-debug 由于工作有寫重復, 要用到autohotkey, 所以裝這個插件 Black Formatter 格式化python代碼 Bookmarks 書簽 change-case 命名方式: 小駝峰, 下劃線, 等命名風格轉…

【網站項目】202物流管理系統

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

不會代碼的時候,如何使用Jmeter完成接口測試

1.接口測試簡介 接口測試是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換&#xff0c;傳遞和控制管理過程&#xff0c;以及系統間的相互邏輯依賴關系等。 2.接口測試流程 接口測試的…

【貪玩巴斯】VisualStudio+Github聯合工作指令

實現在本地VisualStudio進行代碼改寫&#xff0c;同時上傳Github和項目組成員實時更新代碼。 格式指令&#xff1a; alt z ctrl shift p后 輸入 wordwrap —— 進行格式排盤&#xff08;在一頁中能夠完全顯示&#xff0c;代碼會自動換行&#xff09; git pull origin mast…

2024.3.1 小項目

1、機械臂 #include <myhead.h> #define SER_IP "192.168.125.32" //服務器端IP #define SER_PORT 8888 //服務器端端口號#define CLI_IP "192.168.68.148" //客戶端IP #define CLI_PORT 9999 /…

串的BF算法(樸素查找算法)

串的模式匹配&#xff1a;在主串str的pos位置查找子串sub&#xff0c;找到返回下標&#xff0c;沒有找到返回-1。 1.BF算法思想 相等則繼續比較&#xff0c;不相等則回退&#xff1b;回退是i退到剛才位置的下一個&#xff08;i-j1&#xff09;;j退到0&#xff1b;利用子串是否…

Python matplotlib

目錄 1、安裝 matplotlib 2、繪制折線圖 修改標簽文字和線條粗細 校正圖形 3、繪制散點圖 繪制單點 繪制一系列點 自動計算數據 刪除數據點的輪廓 自定義顏色 使用顏色映射 自動保存圖表 4、隨機漫步 創建 RandomWalk() 類 選擇方向 繪制隨機漫步圖 給點著色 …

最簡單的ubuntu遠程桌面方法

最簡單的ubuntu遠程桌面方法 部署環境&#xff1a;Ubuntu 20.04 LTS 現在最常用的遠程控制Linux系統的方法是通過XRDP、VNC等&#xff0c;但是安裝配置過程繁瑣復雜&#xff0c;經常出現各種問題導致連接失敗&#xff0c;另外一方面延遲較高&#xff0c;操作卡頓。 經過我堅…

【Java項目介紹和界面搭建】拼圖小游戲——鍵盤、鼠標事件

&#x1f36c; 博主介紹&#x1f468;?&#x1f393; 博主介紹&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高興認識大家~ ?主攻領域&#xff1a;【滲透領域】【應急響應】 【Java】 【VulnHub靶場復現】【面試分析】 &#x1f389;點贊?評論?收藏 …

DDS數據分發服務——提升汽車領域數據傳輸效率

1.引言 隨著智能化技術的快速發展&#xff0c;汽車行業正經歷著一場革命性的變革。如今的分布式系統變得越來越復雜且龐大&#xff0c;對網絡通信基數要求在功能和性能層面越來越高。數據分發服務&#xff08;DDS&#xff09;作為一項先進的數據傳輸解決方案&#xff0c;在汽車…

2369. 檢查數組是否存在有效劃分(動態規劃)

2024-3-1 文章目錄 [2369. 檢查數組是否存在有效劃分](https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/)思路&#xff1a;代碼&#xff1a; 2369. 檢查數組是否存在有效劃分 思路&#xff1a; 1.狀態定義:f[i]代表考慮將[0,i]是否能被有效劃…

電腦要用多少V的電源?電腦電源輸入電壓是市電

臺式電源的輸出電壓是多少&#xff1f; 電腦電源輸出一般有三種不同的電壓&#xff0c;分別是&#xff1a; 12V、5V、3.3V。 電腦電源負責給電腦配件供電&#xff0c;如CPU、主板、內存條、硬盤、顯卡等&#xff0c;是電腦的重要組成部分。 工作電流根據不同的硬件及其使用狀…

LeetCode15:三數之和

題目描述 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k &#xff0c;同時還滿足 nums[i] nums[j] nums[k] 0 。請 你返回所有和為 0 且不重復的三元組。 注意&#xff1a;答案中不可以包含重復的三元組…

【48天筆試強訓】day04

計算糖果 描述 A,B,C三個人是好朋友,每個人手里都有一些糖果,我們不知道他們每個人手上具體有多少個糖果,但是我們知道以下的信息&#xff1a; A - B, B - C, A B, B C. 這四個數值.每個字母代表每個人所擁有的糖果數. 現在需要通過這四個數值計算出每個人手里有多少個糖果…

編程語言:SQL Server數據庫使用教程,SQL Server增刪改查語句

「作者主頁」&#xff1a;士別三日wyx 「作者簡介」&#xff1a;CSDN top100、阿里云博客專家、華為云享專家、網絡安全領域優質創作者 「推薦專欄」&#xff1a;對網絡安全感興趣的小伙伴可以關注專欄《網絡安全自學教程》 SQL Server是微軟提供的一種關系型數據庫&#xff0c…

Python算法100例-3.3 阿姆斯特朗數

完整源代碼項目地址&#xff0c;關注博主私信源代碼后可獲取 1.問題描述2.問題分析3.算法設計4.確定程序框架5.完整的程序6.問題拓展 1&#xff0e;問題描述 如果一個整數等于其各個數字的立方和&#xff0c;則該數稱為“阿姆斯特朗數”&#xff08;亦稱為自戀性數&#xff…

nacos開啟鑒權+springboot配置用戶名密碼

nacos默認沒有開啟鑒權&#xff0c;springboot無需用戶名密碼即可連接nacos。從2.2.2版本開始&#xff0c;默認控制臺也無需登錄直接可進行操作。 因此本文記錄一下如何開啟鑒權&#xff0c;基于nacos2.3.0版本。 編輯nacos服務端的application.properties&#xff1a; # 開…

Linux/Docker 修改系統時區

目錄 1. Linux 系統1.1 通過 timedatectl 命令操作1.2 直接修改 /etc/localtime 文件 2. Docker 容器中的 Linux 操作環境&#xff1a; CentOS / AlmaOSMySQL Docker 鏡像 1. Linux 系統 1.1 通過 timedatectl 命令操作 使用 timedatectl list-timezones 命令列出可用的時區…