Linux基礎和命令

来源:https://www.cnblogs.com/fengxia6/archive/2022/09/15/16697151.html
-Advertisement-
Play Games

Linux的哲學思想 優勢 一切都是一個文件。(包括硬體,文本,二進位,源代 碼) 系統中擁有小型,單一用途的程式。(一個程式只負責 做好自己的本職工作) 當遇到複雜任務,通過不同功能用途的程式組合起來 完成。 輕量級,一臺服務 dhcp ip 資料庫服務 網 頁 避免令人困惑的用戶界面就是沒有複雜 ...


Linux的哲學思想

優勢

  1. 一切都是一個文件。(包括硬體,文本,二進位,源代 碼)
  2. 系統中擁有小型,單一用途的程式。(一個程式只負責 做好自己的本職工作)
  3. 當遇到複雜任務,通過不同功能用途的程式組合起來 完成。 輕量級,一臺服務 dhcp ip 資料庫服務 網 頁
  4. 避免令人困惑的用戶界面就是沒有複雜的圖形界面。 ()我想怎麼使用程式,win程式
  5. 連配置文件都存儲在文本中,方便增刪改查。
  6. 不在乎尾碼名,有沒有都無所謂,不是通過尾碼名來 定義文件的類型。

基礎知識


root             #表示用戶
localhost                  #主機名
~                     #家目錄
#                #管理員用戶
$                 #普通用戶
root                #root的家目錄
opt             #opt目錄

關機命令:
1、halt            #立刻關機
2、poweroff                   #立刻關機
3、shutdown -h now      #立刻關機(root用戶 使用)
4、shutdown -h 10       #10分鐘後自動關機

重啟命令:
reboot
init 6
shutdown -r now

Linux命令

shell

shell的定義

 

 

 用戶使用應用程式發佈指令比如 (使用瀏覽器訪問網頁) 

shell去通知操作系統需要進行什麼樣的操作(相當於解釋層)
內核相當於操作系統去指揮硬體 硬體才能工作,否則無法交互

不同的shell環境

bash是linux裡面預設的shell程式位於/bin/bash csh ksh 語言不同比如中文英文都是交流的語言

[root@localhost ~]  # echo $SHELL //顯示當前shell
/bin/bash
[root@localhost ~]  # cat /etc/shells //顯示當前系統所有使用的shell
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost mnt]# sh 切換shell環境 sh-4.2# [root@localhost mnt]# pstree 查看使用過的shell環境 ├─sshd───sshd───bash───csh───bash───tcsh ───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
├─upowerd───2*[{upowerd}]
├─vmtoolsd───{vmtoolsd}
├─wpa_supplicant
└─xdg-permission-───2*[{xdg-permission-}]

 

shell與內、外部命令

(1) shell 分為內部命令和外部命令,一般先執行內部命令,hash 再執行外部命令

內部命令 外部命令
集成於Shell解釋器程式內部 的一些特殊指令,也稱為內 建(Built-in)指令 Linux系統中能夠完成 特定功能的腳本文件 或二進位程式
屬於Shell的一部分 屬於Shell解釋器程式 之外的命令
沒有單獨對應的系統文件 每個外部命令對應了 系統中的一個文件
自動載入記憶體,可以直接使 用 必須知道其對應的文 件位置,由Shell載入 後才能執行

 

 

 

 

 

 

 

(2)help命令可以查看內部命令

[root@localhost ~]# help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.

Change the current directory to DIR. The default DIR is the value of the
HOME shell variable.

The variable CDPATH defines the search path for the directory containing
DIR. Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory. If DIR begins
with a slash (/), then CDPATH is not used.

If the directory is not found, and the shell option 'cdable_vars'is set,
the word is assumed to be a variable name. If that variable has a value,
its value is used for DIR.

Options:
-L        force symbolic links to be followed
-P       use the physical directory structure without following symbolic
links
-e            if the -P option is supplied, and the current working directory


cannot be determined successfully, exit with a non-zero status

The default is to follow symbolic links, as if '-L' were specified.

Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
-P  is used; non-zero otherwise.

 

(3)可以使用type 命令來區分內外部命令

[root@localhost /]             # type cd // 內嵌代表內部命令
cd 是 shell 內嵌
[root@test1 /]               # type -a ls
ls 是 'ls --color=auto' 的別名               //別 名代表外部命令
ls 是 /usr/bin/ls                   //外部命令會有程式路徑
[root@localhost /]# whereis ls //whereis 可以查找命令具體的位置所在
ls: /usr/bin/ls
/usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# type -a
echo echo 是 shell 內嵌
echo 是 /usr/bin/echo

外部命令存放於 echo $PATH 一個一個找,找到為 止,找不到就報無命令

[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin :/usr/bin:/root/bin

外部命令使用過後會被記錄在記憶體(緩存,但是會占用 記憶體,臨時性的)加快讀取速度

[root@localhost ~]# type useradd useradd 是 /usr/sbin/useradd [root@localhost ~]# useradd wu [root@localhost ~]# type useradd
useradd 已被hash (/usr/sbin/useradd)
[root@localhost ~]# hash //或者使用hash
hash 緩存

(4)開啟或關閉內部命令

關閉:enable -n 內部命令

開啟:enable 內部命令

[root@localhost opt]# enable -n cd
[root@localhost opt]# cd /mnt/
[root@localhost opt]#

(5)hash 緩存空間

                      選項                                       說明                                 
-d<指令> 在哈希表中清除某個命令記錄
-r 清除哈希表中的所有記錄
-L 顯示哈希表中的命令
-p<指令> 將具有完整路徑的命令加入到哈希表中
-t<指令> 顯示哈希表中命令的完整路徑
# 命令行格式            

 

 

 

 

 

 

 

 

  • 在Linux 操作系統中,凡是在字元操作界面中輸入能夠完成特定操作和任務的字元串都可以稱為命令。
  • 嚴格來說,命令通常只代表實現某一類功能的程式的名稱。

    格式

    命令字 空格 [選項] 空格 [參數]

    解釋命令字 選項 參數各自的意思及具體使用方法

    • 命令字

      是整條命令中最關鍵的一部分,唯一確定。

    • 選項

      短格式選項:使用“-”符號引導,通常是一個字母;

      長格式選項:使用“--”符號引導,通常是完整的單詞。

    • 參數

      命令字的處理對象,可以是文件名、目錄(路徑)名或用戶名等內容,個數可以是零到多個。

    ;可以隔開命令

    ,執行多個命令

    編輯Linux命令行的輔助操作

 

                              快捷鍵                                                     功能                                 
Tab 鍵 自動補齊(兩次可以顯示所有選項)
反斜杠“\” 強制換行或轉義
Ctrl+a 游標移到最前
Ctrl+e 游標移到最後
Ctrl+U 清空至行首不包括當前游標處的 字元
Ctrl+K 清空至行尾包括當前游標處的字元
Ctrl+w 從當前游標刪除到開頭
ALT+d 從當前游標刪除末尾
Ctrl+l 清屏
Ctrl+c 取消本次命令編輯
Ctrl+s/Ctrl+q 鎖屏/解鎖
向上下箭頭 回看執行過的命令
# 獲得命令幫助  
## help  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • [ ]表示可選項
  • CAPS或<>表示可變化的數據
  • ...表示一個列表可加多個
  • x|y|z 表示或的意思
  • -abc 是-a -b -c (有些命令選項有先後順序)

只能查看內部命令的使用方法

[root@localhost ~]# help echo
#內部命令查看幫助
echo: echo [-neE] [參數 ...]
將參數寫到標準輸出。
在標準輸出上顯示 ARG 參數後跟一個換行。

選項:
-n 不要追加換行
-e 啟用下列反斜杠轉義的解釋
-E 顯式地抑制對於反斜杠轉義的解釋

'echo' 對下列反斜杠字元進行轉義:
\a 警告(響鈴)
\b 退格
\c 抑制更多的輸出
\e 轉義字元
\f 格式提供
\n 換行
\r 回車
\t 橫向製表符
\v 縱向製表符
\\ 反斜杠
\0nnn 以 NNN (八進位)為 ASCII 碼的字 符。
NNN 可以是 0到3個八進位數字
\xHH 以 HH (十六進位)為值的八比特字 符。
HH可以是 一個或兩個十六進位數字

退出狀態:
返回成功除非有寫錯誤發生。

--help

查看外部命令幫助

[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help

man

man分九個章節預設打開第一章節

[root@localhost ~]# whatis ls
ls (1)               - 列目錄內容
   1代表第一章手冊
ls (1p)              - list directory contents
1p 代表開發程式使用

[root@localhost ~]# whatis passwd   //可以查看命令的章節
passwd (5)           - (未知的主題)
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
[root@localhost ~]# man 5 passwd   //查看第五章內容,第5章一般是配置文件格式詳細解釋
[root@localhost ~]# man 7 ascii
[root@localhost ~]# man 7 UTF-8
[root@localhost ~]# mandb           //生成man資料庫,man命令無效時
正在刪除 /usr/share/man 里的舊資料庫條目...
mandb: 警告:/usr/share/man/man8/fsck.fat.8.manpage-fix.gz:忽略錯誤的文件名
正在處理 /usr/share/man 下的手冊頁...
正在刪除 /usr/share/man/hu 里的舊資料庫條目...
正在刪除 /usr/share/man/pl 里的舊資料庫條目...


[root@localhost ~]# man man

該清單是一組用冒號分隔的欲查找的手冊清單。此選項將覆蓋               MANSECT               環境變數。
            有些指令或程式可能有一個以上的主題,它們位於不同的區段中。因此,要查看較後的區 段,你可以在此指定 man
            查找區段的順序。具體區段劃分如下所示:
            區段1:用戶指令
            區段2:系統調用
            區段3:程式庫調用
            區段4:設備
            區段5:文件格式     shadow passwd fstab
            區段6:游戲
            區段7:雜項
            區段8:系統指令
            區段9:內核內部指令
            區段n:Tcl或Tk指令

info

[root@localhost dev]# info ls

                                                                   百度是最快解決方式不拘泥形式                                                                   

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

-Advertisement-
Play Games
更多相關文章
  • 前言 最近想做一個Web版的即時聊天為後面開發的各項功能做輔助,就需要瀏覽器與伺服器能夠實時通訊。而WebSocket這種雙向通信協議,就很合適用來實現這種需求。 本篇文章主要解決C#如何實現WebSocket服務端和Javascript客戶端基於wss協議的安全通信問題。 本文代碼已開源至Gith ...
  • 日常工作中有時候會遇到需要將程式直接在伺服器上運行,而不依賴於 IIS 托管的情況,直接運行有兩種方式,一種是部署為 服務模式,另一種則是 直接啟動 .NET 發佈之後的 exe 文件以 控制台模式運行,控制台模式運行主要問題是伺服器在重新啟動之後不會自動啟動,當然也可以選擇配置 Windows 計 ...
  • 今天我們來介紹一下 Bootstrap Blazor 中 Table 組件的虛擬滾動行,什麼是虛擬滾動呢,我查到的解釋是:只渲染可視區域的列表項,非可見區域的 完全不渲染,在滾動條滾動時動態更新列表項。 然後很明顯,在實際應用中不可能實現“非可見區域的 完全不渲染”,這樣的體驗效果太差了,下拉直接空 ...
  • 在VMware虛擬機下centOS7下配置橋接網路 首先,在以下的配置都操作好之後,要確認宿主機的網路連接方式, 若為需要認證的網路,則可能會出現宿主機與虛擬機能互相ping,但虛擬機不能ping外網的情況 一、虛擬機配置 確保虛擬機為關機的狀態,在VMware中編輯一欄打開虛擬網路編輯器,點擊更改 ...
  • 數據結構概述: 程式 = 數據結構 + 演算法 演算法:一些計算方法,解決問題的流程/步驟(順序、分支、迴圈......),通俗的說,演算法相當於邏輯,小部分已經被人們發掘出來了(這裡的小部分指的是書本上講的一些經典的解決一類問題的方法),解決問題的一種模式。 數據結構:將數據按照某一種特定的結構(方法) ...
  • Set A Light 3D Studio for Mac是一款可以幫助攝影工作者對3D室內攝影進行燈光位置調整的軟體,你可以清楚的瞭解到不同位置的燈光怎麼佈局。Set A Light 3D Studio Mac模擬影樓的效果,使用它可以預先在PC或Mac上搭建的照明設置,逼真地模擬預期的畫面效果和 ...
  • sed用法 基礎sed命令 sed命令的基本語法 sed OPTIONS… [SCRIPT] [INPUTFILE…] 常用的選項: -n,–quiet: 不輸出模式空間中的內容 -i: 直接編輯原文件,預設不對原文件進行操作 -e: 可以使用多個命令(腳本)進行操作 -f /path/from/s ...
  • 超級熱鍵可通過簡單編程 —— 自動化完成複雜操作,提升效率。 ▶ 快速上手 本教程需要一個很小的開源軟體 ImTip ( 體積 639 KB ), 請右鍵點開 ImTip 托盤菜單,然後點擊「管理超級熱鍵」: 然後將熱鍵配置改為如下代碼,並且勾選「啟用超級熱鍵」,再點擊「保存」按鈕使熱鍵生效。 // ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...