linux命令行與shell腳本大全——學習筆記(1-4章)

第一章、第二章

查看運行層級

runlevel
目前有7個層級,3是有聯網的多用戶模式,5是配有GUI的多用戶模式,等等

第三章

啟動shell

查看/etc/passwd文件,可以看到每個用戶的默認shell程序,如:
christine:x:1001:1001::/home/christine:/bin/bash
表示christine這個用戶登錄后,GNU bash shell會自動啟動

bash手冊

man命令根據關鍵詞搜索,man -k keyword
info
help,可以直接用,如help help,也可以按參數來,大部分命令支持--help參數,如ls --help

文件系統

/usr 是文件系統的第二層次結構,存放的是一些可共享的只讀數據。

列出文件和目錄

ls有個-R參數,選項不僅顯示了當前目錄下的內容,還顯示了目錄下所有子目錄及其內容

鏈接文件

軟鏈接

例如給data.txt創建一個軟鏈接文件
ln -s data.txt data_txt_link.txt
此時查看data_txt_link.txt文件,此文件是鏈接文件:
lrwxrwxrwx 1 xiaojiao docker 11 Feb 28 15:06 data_txt_link.txt -> ../data.txt

硬鏈接

例如給data.txt創建一個硬鏈接文件
ln ../data.txt data_hard_link.txt
但是不能跨存儲設備創建硬鏈接,否則會有如下類型的報錯:
ln: failed to create hard link './sand.py' => '/mnt/d/learn/test/sand/sand.py': Invalid cross-device link

異同

1 軟鏈接/硬鏈接創建鏈接時,原始文件都必須事先存在
2 軟鏈接相當于創建了快捷方式, ls -i可以看到inode編號不同,硬鏈接創建的是一個獨立的虛擬文件,其中包含了原始文件的信息以及位置。但是兩者就根本而言是同一個文件,inode相同
3 軟鏈接與原始文件文件大小一般不同,因為只是創建了一個指向原始文件的快捷方式,但硬鏈接與原始文件大小相同
4 硬鏈接只能對處于同一存儲設備的文件創造,軟鏈接沒有這個限制

處理文件

創造文件

注意:touch命令創建文件時,如果文件已存在,會改變文件的時間,不會對已存在的文件內容造成任何影響

復制文件

cp復制文件時,新文件的創建時間是復制時的時間,但注意,若目標文件已存在,將不會提醒,直接覆蓋,因此最好加上-i選項

移動mv

移動/重命名命令沒什么好說的,已經很熟悉了,但是要注意,mv操作后,文件的時間以及inode是不變的
mv命令也可以不經過允許就覆蓋已存在的文件,所以建議用-i

處理目錄

查看文件內容

查看文件類型

file命令,如:file data.txt

查看整個文件

cat -n 可以顯示行號; -b只給有內容的行加上行號

第四章 更多的bash shell命令

監測程序

探查進程

ps:選項非常多,以下只列出我自己常用的選項的含義:

選項含義
a顯示與任意終端關聯的所有進程(對應,T顯示與當前終端關聯的所有進程)
r僅顯示運行中的進程
e顯示命令使用的環境變量
f用層級格式來顯示進程,顯示哪些進程啟動了哪些進程

實時檢測進程

top,平均負載三個值分別表示最近1/5/15分鐘的平均負載

結束進程

kill 部分任務會忽略kill 命令,可以使用kill -9 pid 或 kill -s HUP pid
pkill 可以直接使用進程名,如pkill http*可以kill所有進程名以http開頭的進程

監測磁盤空間

mount/umount

在默認情況下,mount 命令會輸出當前系統已掛載的設備列表,但是mount 命令的默認輸出非常雜亂
umount 略

df

直接df -h,以易讀方式顯示磁盤空間,其他參數不需要記憶

du

du 命令可以顯示某個特定目錄(默認情況下是當前目錄)的磁盤使用情況
讓輸出更清晰易讀的選項:

選項含義
-c顯示所有已列出文件的總大小
-h按人類易讀格式輸出大小
-s輸出每個參數的匯總信息

處理數據文件

數據排序sort

sort命令將數字視為字符并按標準的字符排序,如1000會排在2的前面,要想按照數字排序,使用sort -n,注意,如果文件有多行,sort會按照第一列的數字排序。
常用選項:

選項含義
-n將數字按值排序
-c不排序,但檢查輸入數據是否有序,無序的話就報告,形如sort: test_sort1.txt:2: disorder: 2
-M用三字符的月份名按月份排序,如Jan, Feb等
-t指定字段分隔符
-k排序鍵從 POS1 位置開始,到 POS2 位置結束(如果指定了 POS2的話)
-r逆序排序(升序變成降序)
-u相當于sort | uniq

-t -k可以結合使用,例如/etc/passwd 文件,以冒號分隔,按照第三列來排序,可以寫作:
sort -t ':' -k 3 -n /etc/passwd

數據搜索grep egrep

常用選項:

選項含義
-v反向搜索
-n顯示匹配到的行的行號
egrep 命令是 grep 的一個衍生,支持 POSIX 擴展正則表達式,其中包含更多可用于指定匹配模式的字符
其他略

數據壓縮

gzip 壓縮,可以正則匹配一次壓縮多個,如gzip test*
gunzip 解壓

數據歸檔

tar,選項很多,但我一般壓縮用zcvf(tar -zcvf test.tar.gz test*,這里是創建了一個名為test.tar.gz的文件,包含test開頭的所有文件和目錄,其實test*這里可以是空格分隔的多個參數,可包含文件或目錄),解壓用zxvf,目前看來夠用了,且使用沒出錯,所以略

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

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

相關文章

面條機水箱低液位提醒功能如何實現

光電液位傳感器在面條機水箱低液位功能的實現中發揮著重要作用。該技術通過光學原理和分離式設計,實現了面條機水箱液位的精準檢測和智能控制,為面條生產提供了穩定的保障。 采用分離式液位傳感器,將菱鏡部分設計直接置于面條機水箱上&#…

nvidia a100-pcie-40gb環境安裝

1.conda create --name torch_li python3.8 2. conda install pytorch1.7.1 torchvision0.8.2 torchaudio0.7.2 cudatoolkit11.0 -c pytorch 環境測試:torch.cuda.is_available() 3.conda remove -n torch_li --all 4.pip install opencv-python-headless 5.pip ins…

SOCKS55代理與Http代理有何區別?如何選擇?

在使用IPFoxy全球代理時,選擇 SOCKS55代理還是HTTP代理?IPFoxy代理可以SOCKS55、Http協議自主切換,但要怎么選擇?為解決這個問題,得充分了解兩種代理的工作原理和配置情況。 在這篇文章中,我們會簡要介紹 …

overleaf上傳到arxiv 參考文獻無法引用(?)

記一下overleaf上傳到arxiv的bug 參考文獻無法引用(?) 因為需要上傳bbl文件而不是bib 用overleaf生成bbl 另外需要將bbl和txt的文件名設置成一樣的

Linux筆記--解壓縮

一、tar指令 Linux打包文件通常以.tar結尾,壓縮文件以.gz(.bz2)結尾。通常壓縮和打包是一起進行的,打包壓縮后文件后綴名一般為.tar.gz。 z∶使用gzip進行解壓縮 j:使用bzip2進行解壓縮 c: create,創建文件 x : extract,解壓 v:…

RocketMQ消息積壓如何處理

在高并發的場景下,由于消息產生速度超過消費速度,可能會導致消息積壓的問題。本文將介紹 RocketMQ 消息積壓的原因和如何處理積壓問題。 什么是消息積壓 消息積壓是使用 MQ 消息隊列系統中,最常見的一種性能問題。如下圖所示,當生…

2、Redis-Hash【常用】

目錄 一、Hash和String的區別 二、常用命令與演示 三、Redis中Hash類型應用場景 一、Hash和String的區別 這是String, keyvaluenameTrxcx 這是Hash, keyvaluestudentTrxcxnameTrxcxage21sexmale 可以明顯的看出,String的value就是一條數據&#…

手動實現一個簡單的 HTTP 請求

本文我們通過 Socket,寫一個 HTTP 協議,直觀的感受一下上篇文章中的請求和響應。 定義 socket server 通過上篇文章,我們知道 HTTP 協議底層是通過 Socket 實現的,所以我們先通過 socket 定義一個 server import socket#初始化 …

復試PAT乙級day34

1111~1115 1113 很難,看了題解 人類習慣用 10 進制,可能因為大多數人類有 10 根手指頭,可以用于計數。這個世界上有一種叫“錢串子”(學名“蚰蜒”)的生物,有 30 只細長的手/腳,在它們的世界里…

【探索AI】十六 深度學習之第2周:深度神經網絡(五)實踐與應用

實踐與應用 實現步驟 當您想要使用深度學習框架構建簡單的深度神經網絡并進行訓練與評估時,您可以按照以下步驟進行操作: 步驟一:選擇深度學習框架 選擇您熟悉或希望學習的深度學習框架,比如TensorFlow、PyTorch、Keras等。 …

算法題目跟連系列之“手把手刷鏈表”

第一道 題目:https://leetcode.cn/problems/partition-list/description/ 86 Partition List 這個題解決的時候,無非就是把鏈表中小于X的元素摘出來形成一個鏈表,同時也把大于等于X的元素摘出來形成另外一個鏈表。最后把這兩個鏈表合并。這個…

卷積神經網絡介紹

卷積神經網絡(Convolutional Neural Networks,CNN) 網絡的組件:卷積層,池化層,激活層和全連接層。 CNN主要由以下層構造而成: 卷積層:Convolutional layer(CONV)池化層&#xff1a…

docker報錯 fatal error: runtim: out of memory

fatal error: runtim: out of memory 真無語了 系統內存也夠用 原來是虛擬機的不夠用了 (原本1g已經加到2g還是會報錯) 直接3臺虛擬機都加到4g

多線程(進階四:線程安全的集合類)

目錄 一、多線程環境使用ArrayList 二、多線程環境使用隊列 三、多線程環境使用哈希表 1、HashMap 2、Hashtable 3、ConcurrentHashMap (1)縮小了鎖的粒度 (2)充分使用了CAS原子操作,減少一些加鎖 (3)針對擴容操作的一些優化(化整為零&#xff…

maven 項目的創建入門

拓展閱讀 maven 包管理平臺-01-maven 入門介紹 Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的詳細對比表格 maven 包管理平臺-02-windows 安裝配置 mac 安裝配置 maven 包管理平臺-03-maven project maven 項目的創建入門 maven 包管理平臺-04-maven archetype 項目原型 ma…

藍橋杯Python B組練習——python復習2

藍橋杯Python B組練習——python復習2 一、簡介 復習python,參考書《Python編程從入門到實踐》,[美]Eric Mathes著。前一部分見專欄——藍橋杯Python B組練習 這一部分不全,不想寫了 二、字典 1.一個簡單的字典 來看一個游戲&#xff0…

LeetCode -55 跳躍游戲

LeetCode -55 跳躍游戲 給你一個非負整數數組 nums ,你最初位于數組的 第一個下標 。數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個下標,如果可以,返回 true ;否則,返回 false 。…

模擬服務器響應的測試框架:moco

第1章:引言 大家好,我是小黑,在這篇博客中,咱們要聊聊Moco測試框架。這個框架,可不是一般的小伙伴,它在模擬服務器響應這塊兒,可是有不少看家本領。 首先,Moco是啥呢?簡…

stable diffusion webUI之賽博菩薩【秋葉】——工具包新手安裝與使用教程

stable diffusion webUI之賽博菩薩【秋葉】——工具包新手安裝與使用教程 AI浪潮襲來,還是學習學習為妙賽博菩薩【秋葉】簡介——(葉ye,四聲,同葉)A繪世啟動器.exe(sd-webui-aki-v4.6.x)工具包安…

【面試題解析--Java基礎】回顧與加深,淺淺回顧JAVA常規八股,利用起碎片化時間。

一、Java基礎 1. final 關鍵字的作用: 修飾類時,被修飾的類無法被繼承。修飾方法時,被修飾的方法無法被重寫。修飾變量時,變量為常量,初始化后無法重新賦值。 2. static 關鍵字的作用: 修飾變量和方法時…