shell與常用命令

虛擬控制臺

一臺計算機的輸入輸出設備就是一個物理的控制臺 ;
如果在一臺計算機上用軟件的方法實現了多個互不干擾獨立工作的控制臺界面,就是實現了多個虛擬控制臺;
Linux終端的工作方式是字符命令行方式,用戶通過鍵盤輸入命令進行操作,可以通過Linux終端對系統進行控制。

Linux 終端

Linux終端其實就是用戶與操作系統之間的一個接口,用戶通過終端與操作系統進行交互.Linux終端包括Shell字符界面終端、圖形界面終端及其他用戶界面的終端;

shell

什么是shell

Shell是一個作為用戶與linux系統間接口的程序,它允許用戶向操作系統輸入需要執行的命令,返回執行結果
。在Linux中可有多種Shell,可用多個Shell,一個用戶同一時刻只能用一個Shell。

Shell的種類 :

  • ash: 是貝爾實驗室開發的Shell,bsh是對ash的符 號鏈接。
  • bash: 是GNU的Bourne Again Shell,是GNU操作系 統上默認的Shell。sh以及bash2都是對它的符 號鏈接。
  • tcsh: 是Berkeley UNIX C Shell。csh是對它的符號 鏈接。
  • ksh: Korn Shell的語法與Bourne Shell相同,同時具 備了C Shell的易用特點。
  • zsh : Korn Shell 的一個增強版本,具備bash Shell 的許多特點。

GNU工具中的使用的是:bash。bash作為/bin/sh被默認安裝。大多數Linux發行版中,Shell程序/bin/sh實際上是對程序/bin/bash的一個鏈接

	echo $SHELL #查看當前使用Shellchsh -l  #查看系統支持的Shell列表chsh -s /path/to/shell username #更改Shell/bin/bash --version #查看bash版本

Shell命令的基本格式是:

命令名 [選項] <參數1> <參數2> ……

功能&特點

  • 命令自動補齊(tab鍵)
    兩下tab
  • 歷史記錄查看(鍵盤上下鍵)
    上下翻看歷史輸入命令/ctrl + r
  • shell提示符(#, $)
    #:超級管理員root的命令提示符

$: 其他用戶的命令提示符

  • 輸入輸出重定向(>, >>, <)
    在Linux中每一個程序的執行,都有輸入、輸出和錯誤輸出;Linux系統中所有的設備都是以文件的形式存在(鍵盤、鼠標、顯示器…);系統啟動時自動打開了三個文件描述符

image.png

  1. … < 文件
    輸入重定向wc -l < list.txt

  2. … > 文件
    輸出重定向 覆蓋原有內容ls > out.txt

  3. … >> 文件
    追加重定向 文件末尾添加echo abc >> out.txt

  4. 高級重定向

ls /usr /abc >ok.txt
ls /usr /abc 1>ok.txt  2>error.txtls /usr /abc 2>/dev/null
  • 管道(|)

作用:把前一個命令的輸出作為下一個命令的輸入

符號: |

例子:
ls /var/log | grep log | wc -l

Linux文件命令

文件概述

文件是Linux用來存儲信息的基本結構,它是被命名的存儲在某種介質上的一組信息的集合。

Linux中所有內容都以文件的形式保存,分為:

  • 普通文件
  • 目錄文件
  • 設備文件

文件的成分:無論文件是一個程序、一個文檔、一個數據庫、一個目錄,都有以下同樣的結構

  1. 名字
  2. 索引節點,又稱i節點,存放文件的狀態信息的一個數據結構。包含文件的長度、創建及修改時間、權限、所屬關系、磁盤位置等。
  3. 數據

Linux目錄

image.png
目錄文件也包含數據,它與普通文件的差別是:內核對這些數據進行結構化處理,它是由成對的“i節點號/文件名”構成的列表。

  • 當把文件添加到一個目錄中時,該目錄的尺寸會增大,以便容納新文件名。
  • 當刪除文件時,目錄的尺寸并不減小,而是內核對該目錄項做上特殊標記,以便下次添加一個文件時重新使用它

工作目錄:用戶登錄到Linux系統后,每時每刻都處在某個目錄之中,此目錄被稱為“工作目錄” 或“當前目錄”

用戶主目錄(Home Directory):是系統管理員在增加用戶時為該用戶建立起來的目錄,每個用戶都有自己的主目錄。 使用符號~表示

絕對路徑是指從“根”開始的路徑,也稱為完全路徑;
cd /usr/local/bin

相對路徑是指從用戶工作目錄開始的路徑。
cd /usr
cd local/bin

特殊目錄

  • “.”代表該目錄自己,
  • “…”代表該目錄的父目錄,
  • 對于根目錄,“.”和“…”都代表其自己

隱藏文件

以.開頭的都是隱藏文件

Linux文件屬性

image.png

image.png

Linux文件種類

  • 普通文件( regular file ) :[ - ]
    純文字文件(ascii) 或 二進制文件(binary)
  • 目錄文件 (directory): [ d ]
  • 鏈接文件 (link):[ l ]
  • 設備文件 (device):
    區塊 (block) 設備文件:[ b ];

字符 (character) 設備文件:[ c ]。

  • 管道文件(Pipe): [ p ]
  • Socket文件(Socket): [ s ]

ls

顯示目錄與文件操作命令
ls [-a] [-l] [-i] [-t] [-S] [-d][-R]

  • -a all 列出所有,包括隱藏文件
  • -l long 長格式
  • -i inode節點
  • -t time排序
  • -S size排序
  • -d directory 只顯示目錄,而不是顯示其下的內容
  • -R recursive 顯示指定目錄及子目錄下的內容

image.png

cd

切換工作目錄命令cd

cd <dirName>
image.png

pwd

顯示當前路徑命令pwd

cp

image.png

mv

image.png

cat

文件查看和連接命令
cat [選項] <file1> <file2> …

[-n] : 給每行編號

[-b] : 給每行編號,除了空白行

cat -n file1 /usr/local/file2

more

image.png

less

image.png

image.png

head

image.png

tail

image.png

mkdir

創建目錄命令
mkdir [-p] <dirName>…
-p 中間路徑不存在,會自動創建

rmdir

刪除空目錄命令
rmdir [-p] <dirName>
-p 刪除路徑中的空目錄

touch

image.png

rm

image.png

locate/slocate

文件定位命令

locate [選項] <search string>

建立所有文件以及路徑的數據庫,快速從系統數據庫中查找指定的內容

先要更新數據庫 updatedb

find

查找文件或者目錄命令

find [path…] [expression][-name][-perm][-size][-user][-type][-exec]

find /etc -name “*.conf”
find . -type f -exec ls -l ‘{}\; 

image.png

ln

ln [選項] <source> <dest>
[-s] 軟鏈接

  • 硬鏈接(hard link):給文件一個副本(別名),同時建立兩者之間的連接關系,修改其中一個,與其連接的文件同時被修改,如果刪除其中一個,其余的文件不受影響。磁盤上只有一份數據。硬鏈接是存在同一個文件系統中。
  • 軟鏈接(symbolic link):軟鏈接的方式則是產生一個特殊的文件,該文件的內容是指向另一個文件的位置。它只是一個快捷方式,刪除了源文件,這個連接文件就沒用了。軟鏈接可以跨越不同的文件系統。

chmod

  • 作用:改變指定目錄或文件的權限。
  • 語法:chmod [選項] mode文件名或目錄
    該命令語法中mode代表權限設定字串,格式如下:
  1. 字符方式:[ugoa…][±=][rwxX]…][,…]
  2. 數字方式:rwx 421 0
  3. [-R] :遞歸遍歷
chmod a=rwx,u-x,g-wx,o-rwx  test.txt
chmod 640 test.txt
chmod -R 764 DirectoryPath

image.png

chown

  • 作用:改變指定目錄或文件的所屬用戶、所屬組。
  • 語法:chown [選項] 用戶名[:組名] 文件名或目錄
  • root權限
  • [-R] : 遞歸遍歷

chgrp

  • 作用:改變指定目錄或文件的所屬組。
  • 語法:chgrp [選項] 組名 文件名或目錄
  • [-R] :遞歸遍歷

cut

  • 作用:從指定文件中過濾或提取特定內容,并顯示在當前屏幕上。
  • 提取/etc/passwd文件中的第1,3,5列
cut -d: -f1,3,5 /etc/passwd
cut -d: -f 1-5 /etc/passwd
  • 將/etc/passwd文件從第2個字母至第5個字母的內容提取出來
cut -c2-5 /etc/passwd
cut -c2,5,7 /etc/passwd

wc

默認統計文件內的行/字和字節數

wc [-l](lines)[-w](words)[-m](chars)[-c](bytes) 文件路徑

可以與管道結合使用

sort

排序

sort [-r](reverse)[-u](unique)[-f](nocase) 文件路徑

可以與管道結合使用

tr

文件處理工具

tr [選項] [字符串1] [字符串2]

常用選項/參數含義如下。
-d:刪除字符串1中所有輸入字符。

cat /etc/passwd | tr ‘a-z’ ‘A-Z’ #替換
tr -d ‘a-b’ < test.txt  #刪除
tr ‘a-z’ ‘A-Z’ < /etc/passwd #重定向

tar

tar [選項] 壓縮文件名 文件或目錄

tar后綴:cvf xvf (c:create v:view f:file)

tar.gz后綴:zcvf zxvf z:gzip

tar cvf/zcvf a.tar /tmp/a
tar xvf/zxvf a.tar -C /tmp/b (指定目錄解壓,默認解壓路徑為當前目錄)

gzip

打包文件(文件夾不行)[gz后綴]
[-d](解壓)[-r] (遞歸)[-v] (view)[-t] (test)

gzip -rv /tmp/a

unzip

zip后綴
[-x](解壓)[-v][-t][-d](指定目錄)

unzip -x /tmp/a.zip -d /tmp/bb

echo

image.png

cal

可以用戶顯示公歷(陽歷)日歷如只有一個參數,則表示年份(1-9999),如有兩個參數,則表示月份和年份:

常用參數:

-3 顯示前一月,當前月,后一月三個月的日歷
-m 顯示星期一為第一列
-j 顯示在當前年第幾天
-y [year]顯示當前年[year]份的日歷

date

顯示或設定系統的日期與時間。
date +%Y-%m-%d

-d<字符串>  顯示字符串所指的日期與時間。字符串前后必須加上雙引號。
-s<字符串>  根據字符串來設置日期與時間。字符串前后必須加上雙引號。
-u  顯示GMT。
%H 小時(00-23)
%I 小時(00-12)
%M 分鐘(以00-59來表示)
%s 總秒數。起算時間為1970-01-01 00:00:00 UTC。
%S 秒(以本地的慣用法來表示)
%a 星期的縮寫。
%A 星期的完整名稱。
%d 日期(以01-31來表示)。
%D 日期(含年月日)。
%m 月份(以01-12來表示)。
%y 年份(以00-99來表示)。
%Y 年份(以四位數來表示)

which #查看命令路徑

which 是在 PATH 就是指定的路徑中,搜索某個系統命令的位置,并返回第一個搜索結果。使用 which 命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

-n  指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。

whereis #查看命令路徑

whereis 命令只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。whereis 及 locate 都是基于系統內建的數據庫進行搜索,因此效率很高,而find則是遍歷硬盤查找文件。

- b   定位可執行文件。
- m   定位幫助文件。
- s   定位源代碼文件。
- u   搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。

grep

強大的文本搜索命令,grep(Global Regular Expression Print) 全局正則表達式搜索。

grep 的工作方式是這樣的,它在一個或多個文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板后的所有字符串被看作文件名。搜索的結果被送到標準輸出,不影響原文件內容。

命令格式:

grep [option] pattern file|dir
常用參數:

-A n --after-context顯示匹配字符后n行
-B n --before-context顯示匹配字符前n行
-C n --context 顯示匹配字符前后n行
-c --count 計算符合樣式的列數
-i 忽略大小寫
-l 只列出文件內容符合指定的樣式的文件名稱
-f 從文件中讀取關鍵詞
-n 顯示匹配內容的所在文件中行數
-R 遞歸查找文件夾

awk

AWK 是一種處理文本文件的語言,是一個強大的文本分析工具。

awk [選項] '腳本命令' 文件名

cat filename | awk  -F: ‘{print $n}cat /etc/passwd | awk -F: ‘{pirnt $1}awk -F: ‘{print $n}’ /etc/passwd

seq

sed 利用腳本來處理文本文件

  • 全局替換
    sed -i 's/old_str/new_str/g' /path/to/file

直接編輯文件選項-i,會匹配file文件中每一行的第一個old_str替換為new_str

  • 指定位置插入
    sed -i 'line_number a insert_content' /path/to/file

yum

yum( Yellow dog Updater, Modified)是一個在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟件包管理器。

基于 RPM 包管理,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。

yum 提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。

yum install | remove | list | search

Linux 用戶

用戶分類

  1. 超級用戶
    root,根用戶,類似Windows中的超級管理員賬戶,有最高的權限,可以對Linux做任何操作。

  2. 普通用戶
    受限的權限,普通用戶沒有對系統的完全控制權,而且用戶之間私人的資源是相互隔離的。

  3. 特殊用戶
    與系統和程序服務相關的用戶(shutdown、mail、mysql……)。
    默認情況下,這些特殊用戶是無法登錄的,如果給這些用戶授權登陸口令后,就可以使用這些用戶登錄系統。(為了安全,一般不授權口令)
    一般shell被設定為:/sbin/nologin 無法登陸shell

用戶信息文件

/etc/passwd

每一行存儲一個用戶的賬號信息

#用戶名:加密密碼:用戶ID:用戶組ID:用戶信息:用戶主目錄: 登錄Shell
tak:x:1000:1000::/home/tak:/bin/bash

超級用戶root的UID是0,系統用戶的UID在100以內,而普通用戶的UID從500開始往上編號(CentOS 7是1000開始)

口令文件

/etc/shadow

每一行存儲一個用戶的登錄密碼信息,加密。只有root用戶才能讀取這個文件

用戶名:加密口令:上次更新時間:允許更改時間:要求更改時間:取消口令之前的警告時間:取消和停用之間的時間:賬戶口令的天數:賬戶終止時間:特殊標志

image.png

組信息

/etc/group

每一行記錄系統中的用戶組信息

組名:密碼字段:用戶組ID:用戶名列表

image.png
用戶名列表用逗號分隔多個用戶名(只顯示附加用戶)

用戶管理/命令

增加用戶: useradd [選項] <newusername>

  • d :指定用戶主目錄,默認情況下,將會在/home目錄下新建一個與用戶名相同的用戶主目錄。

  • s :指定用戶登錄時使用的shell,默認的shell為/bin/bash。

  • g :指定用戶歸屬的組名。默認地,每當創建一個新用戶的時候,一個與用戶名相同的組就會被創建,而這個用戶就是該組的成員。

  • G <組列表>:在Linux系統中,一個用戶可以屬于一個組,也可以屬于多個組,其中用戶在初始化時屬于的組稱為主組(主組只能有1個)。如果要讓用戶屬于其它的組,應該使用選項-G <組列表>。

  • u :指定新用戶的UID。

修改密碼

設置和修改口令 :passwd [用戶名]

只有超級用戶可以使用“passwd 用戶名”修改其他用戶的口令,普通用戶只能用不帶參數的passwd命令修改自己的口令

刪除用戶

刪除用戶的命令為userdel,該命令的格式為:userdel <用戶名>

  • r:刪除用戶的同時刪除用戶的全部用戶主目錄

修改用戶屬性

usermod [-g<主組名> -G <組名> -d <用戶主目錄> -s <用戶shell>] <username>

增加用戶組

groupadd <新組名>

刪除用戶組

groupdel <組名> (沒有用戶作為主組時)

修改組成員

直接編輯/etc/group文件,將用戶名寫到對應的組名的后面。

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

C中的malloc:C中的動態內存分配

什么是C中的malloc()&#xff1f; (What is malloc() in C?) malloc() is a library function that allows C to allocate memory dynamically from the heap. The heap is an area of memory where something is stored.malloc()是一個庫函數&#xff0c;它允許C從堆動態分配…

Linux文本編輯器

Linux文本編輯器 Linux系統下有很多文本編輯器。 按編輯區域&#xff1a; 行編輯器 ed 全屏編輯器 vi 按運行環境&#xff1a; 命令行控制臺編輯器 vi X Window圖形界面編輯器 gedit ed 它是一個很古老的行編輯器&#xff0c;vi這些編輯器都是ed演化而來。 每次只能對一…

Alpha第十天

Alpha第十天 聽說 031502543 周龍榮&#xff08;隊長&#xff09; 031502615 李家鵬 031502632 伍晨薇 031502637 張檉 031502639 鄭秦 1.前言 任務分配是VV、ZQ、ZC負責前端開發&#xff0c;由JP和LL負責建庫和服務器。界面開發的教輔材料是《第一行代碼》&#xff0c;利用And…

Streamlit —使用數據應用程序更好地測試模型

介紹 (Introduction) We use all kinds of techniques from creating a very reliable validation set to using k-fold cross-validation or coming up with all sorts of fancy metrics to determine how good our model performs. However, nothing beats looking at the ra…

Spring MVC Boot Cloud 技術教程匯總(長期更新)

昨天我們發布了Java成神之路上的知識匯總&#xff0c;今天繼續。 Java成神之路技術整理&#xff08;長期更新&#xff09; 以下是Java技術棧微信公眾號發布的關于 Spring/ Spring MVC/ Spring Boot/ Spring Cloud 的技術干貨&#xff0c;本文長期更新。 Spring 系列 Java 必看的…

X Window系統

X Window系統 一種以位圖方式顯示的軟件窗口系統。誕生于1984&#xff0c;比Microsoft Windows要早。是一套獨立于內核的軟件 Linux上的X Window系統 X Window系統由三個基本元素組成&#xff1a;X Server、X Client和二者通信的通道。 X Server&#xff1a;是控制輸出及輸入…

冒名頂替上大學羅彩霞_什么是冒名頂替綜合癥,您如何克服?

冒名頂替上大學羅彩霞冒名頂替綜合癥 (Imposter Syndrome) Imposter Syndrome is a feeling of being a fraud or not being good enough to get the job done. Its common among software engineers, developers and designers working in tech companies, especially those n…

Linux命令----用戶管理

修改用戶密碼&#xff1a; sudo passwd &#xff08;當前&#xff09;用戶名  【sudo是super user do的簡寫&#xff0c;passwd是password的簡寫】 顯示當前正在操作系統的用戶&#xff1a;whoami   顯示當前登錄系統的用戶信息&#xff1a;who am i 注意&#xff1a; 普通…

lasso回歸和嶺回歸_如何計劃新產品和服務機會的回歸

lasso回歸和嶺回歸Marketers sometimes have to be creative to offer customers something new without the luxury of that new item being a brand-new product or built-from-scratch service. In fact, incrementally introducing features is familiar to marketers of c…

python代碼

原始字符串&#xff0c;不做任何特殊的處理 print("Newlines are indicated by \n")#Newlines are indicated by print(r"Newlines are indicated by \n")#Newlines are indicated by \n 格式輸出&#xff0c;轉化為字符串由format自動完成 ag…

Linux 設備管理和進程管理

設備管理 Linux系統中設備是用文件來表示的&#xff0c;每種設備都被抽象為設備文件的形式&#xff0c;這樣&#xff0c;就給應用程序一個一致的文件界面&#xff0c;方便應用程序和操作系統之間的通信。 設備文件集中放置在/dev目錄下&#xff0c;一般有幾千個&#xff0c;不…

樂高ev3涉及到的一些賽事_使您成為英雄的前五名開發者技能(提示:涉及LEGO)

樂高ev3涉及到的一些賽事Programming is like building something with LEGOs. Any developer can pick up a brand new LEGO set and build it following the instructions. This is very easy. Think of it as coding school assignments or entry level tutorials.編程就像用…

貝葉斯 定理_貝葉斯定理實際上是一個直觀的分數

貝葉斯 定理Bayes’ Theorem is one of the most known to the field of probability, and it is used often as a baseline model in machine learning. It is, however, too often memorized and chanted by people who don’t really know what P(B|E) P(E|B) * P(B) / P(E…

winfrom 點擊按鈕button彈框顯示顏色集

1.窗體托一個按鈕button&#xff1b; 2.單擊事件&#xff1a; 1 private void btnForeColor_Click(object sender, EventArgs e)2 {3 using (ColorDialog cdialog new ColorDialog())4 {5 cdialog.AnyColor true;6 …

JavaScript時間事件:setTimeout和setInterval

Programmers use timing events to delay the execution of certain code, or to repeat code at a specific interval.程序員使用時序事件來延遲某些代碼的執行&#xff0c;或以特定的時間間隔重復代碼。 There are two native functions in the JavaScript library used to …

webservice 基本要點

webservice的特點 webservices是自我包含的 webservices是自我描述的 webservices是跨平臺和語言的 webservices是基于開放和標準的 webservices是可以組合的 webservices是松散耦合的 webservices提供編程訪問的能力 webservices通過網絡進行發布&#xff0c;查找和使用 發布w…

文本數據可視化_如何使用TextHero快速預處理和可視化文本數據

文本數據可視化自然語言處理 (Natural Language Processing) When we are working on any NLP project or competition, we spend most of our time on preprocessing the text such as removing digits, punctuations, stopwords, whitespaces, etc and sometimes visualizati…

Less變量

Less變量 定義變量 Less 中的變量和其他編程語言一樣&#xff0c;可以實現值的復用&#xff0c;同樣它也有作用域&#xff08;scope&#xff09;。簡單的講&#xff0c;變量作用域就是局部變量和全局變量的概念。 Less 中&#xff0c;變量作用域采用的是就近原則&#xff0c;換…

漸進式web應用程序_如何在漸進式Web應用程序中添加到主屏幕

漸進式web應用程序添加到主屏幕 (Add To Homescreen) Here the web app install banner is focused on web app, with the feature of add to homescreen.在此&#xff0c;Web應用程序安裝標語專注于Web應用程序&#xff0c;具有添加到主屏幕的功能。 瀏覽器對“添加到主屏幕”…

linux shell 編程

shell的作用 shell是用戶和系統內核之間的接口程序shell是命令解釋器 shell程序 Shell程序的特點及用途&#xff1a; shell程序可以認為是將shell命令按照控制結構組織到一個文本文件中&#xff0c;批量的交給shell去執行 不同的shell解釋器使用不同的shell命令語法 shell…