linux介紹及基本命令

来源:https://www.cnblogs.com/plyx/archive/2018/05/29/9103186.html
-Advertisement-
Play Games

linux簡介 Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。 Linux能運行主要的UN ...


linux簡介

Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。

Linux能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。

linux啟動過程

Linux系統的啟動過程可以分為5個階段:

內核的引導。

運行 init。

系統初始化。

建立終端 。

用戶登錄系統

內核引導

電腦打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬碟)來啟動。

操作系統接管硬體以後,首先讀入 /boot 目錄下的內核文件

運行init

init 進程是系統所有進程的起點,init 程式首先是需要讀取配置文件 /etc/inittab。

運行級別

許多程式需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。

init進程的一大任務,就是去運行這些開機啟動的程式。

但是,不同的場合需要啟動不同的程式,比如用作伺服器時,需要啟動Apache,用作桌面就不需要。

Linux允許為不同的場合,分配不同的開機啟動程式,這就叫做"運行級別"(runlevel)。也就是說,啟動時根據"運行級別",確定要運行哪些程式。

Linux系統有7個運行級別(runlevel):

運行級別0:系統停機狀態,系統預設運行級別不能設為0,否則不能正常啟動

運行級別1:單用戶工作狀態,root許可權,用於系統維護,禁止遠程登陸

運行級別2:多用戶狀態(沒有NFS)

運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式

運行級別4:系統未使用,保留

運行級別5:X11控制台,登陸後進入圖形GUI模式

運行級別6:系統正常關閉並重啟,預設運行級別不能設為6,否則不能正常啟動

系統初始化

在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。

它主要完成的工作有:激活交換分區,檢查磁碟,載入硬體模塊以及其它一些需要優先執行任務

l5:5:wait:/etc/rc.d/rc5

這一行表示以5為參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作為參數,去執行/etc/rc.d/rc5.d/目錄下的所有的rc啟動腳本,/etc/rc.d/rc5.d/目錄中的這些啟動腳本實際上都是一些連接文件,而不是真正的rc啟動腳本,真正的rc啟動腳本實際上都是放在/etc/rc.d/init.d/目錄下。

而這些rc啟動腳本有著類似的用法,它們一般能接受start、stop、restart、status等參數。

/etc/rc.d/rc5.d/中的rc啟動腳本通常是K或S開頭的連接文件,對於以 S 開頭的啟動腳本,將以start參數來運行。

而如果發現存在相應的腳本也存在K打頭的連接,而且已經處於運行態了(以/var/lock/subsys/下的文件作為標誌),則將首先以stop為參數停止這些已經啟動了的守護進程,然後再重新運行。

這樣做是為了保證是當init改變運行級別時,所有相關的守護進程都將重啟。

至於在每個運行級中將運行哪些守護進程,用戶可以通過chkconfig或setup中的"System Services"來自行設定。

用戶登錄系統

一般來說,用戶的登錄方式有三種:

(1)命令行登錄

(2)ssh登錄

(3)圖形界面登錄

圖形模式與文字模式的切換方式

Linux預設提供了六個命令視窗終端機讓我們來登錄。

預設我們登錄的就是第一個視窗,也就是tty1,這個六個視窗分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。

如果你安裝了圖形界面,預設情況下是進入圖形界面的,此時你就可以按Ctrl + Alt + F1 ~ F6來進入其中一個命令視窗界面。

當你進入命令視窗界面後再返回圖形界面只要按下Ctrl + Alt + F7 就回來了。

如果你用的vmware 虛擬機,命令視窗切換的快捷鍵為 Alt + Space + F1~F6. 如果你在圖形界面下請按Alt + Shift + Ctrl + F1~F6 切換至命令視窗

Linux 關機

在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。

正確的關機流程為:sync > shutdown > reboot > halt

關機指令為:shutdown ,你可以man shutdown 來看一下幫助文檔。

例如你可以運行如下命令關機:

sync 將數據由記憶體同步到硬碟中。

shutdown 關機指令

shutdown –h 10 ‘This server will shutdown after 10 mins’,電腦將在10分鐘後關機,並且會顯示在登陸用戶的當前屏幕中。

Shutdown –h now 立馬關機

Shutdown –h 20:25 系統會在今天20:25關機

Shutdown –h +10 十分鐘後關機

Shutdown –r now 系統立馬重啟

Shutdown –r +10 系統十分鐘後重啟

reboot 就是重啟,等同於 shutdown –r now

halt 關閉系統,等同於shutdown –h now 和 poweroff

關機的命令有 shutdown –h now halt poweroff和 init 0 , 重啟系統的命令有 shutdown –r now reboot init 6

linux基本操作命令

目錄結構

/bin:bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。

/boot:這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。

/dev :dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

/etc:這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。

/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。

/lib:這個目錄里存放著系統最基本的動態連接共用庫,其作用類似於Windows里的DLL文件。幾乎所有的應用程式都需要用到這些共用庫。

/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文件。

/media:linux系統會自動識別一些設備,例如U盤、光碟機等等,當識別後,linux會把識別的設備掛載到這個目錄下。

/mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機里的內容了。

/opt:這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。

/proc:這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以通過直接訪問這個目錄來獲取系統信息。這個目錄的內容不在硬碟上而是在記憶體里,我們也可以直接修改裡面的某些文件,比如可以通過下麵的命令來屏蔽主機的ping命令,使別人無法ping你的機器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root:該目錄為系統管理員,也稱作超級許可權者的用戶主目錄。

/sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。

/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

/srv:該目錄存放一些服務啟動之後需要提取的數據。

/sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

  sysfs文件系統集成了下麵3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。

  該文件系統是內核設備樹的一個直觀反映。

  當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。

/tmp:這個目錄是用來存放一些臨時文件的。

/usr:這是一個非常重要的目錄,用戶的很多應用程式和文件都放在這個目錄下,類似於windows下的program files目錄。

/usr/bin:系統用戶使用的應用程式。

/usr/sbin:超級用戶使用的比較高級的管理程式和系統守護程式。

/usr/src:內核源代碼預設的放置目錄。

/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。

在linux系統中,有幾個目錄是比較重要的,平時需要註意不要誤刪除或者隨意更改內部文件。

/etc: 上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。

/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。

值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的普通用戶),而/sbin, /usr/sbin 則是給root使用的指令。

/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。

文件屬性

當為[d]則是目錄當為[-]則是文件;

若是[l]則表示為鏈接文件(link file);

若是[b]則表示為裝置文件裡面的可供儲存的介面設備(可隨機存取裝置);

若是[c]則表示為裝置文件裡面的串列埠設備,例如鍵盤、滑鼠(一次性讀取裝置)

若是[p]則表示為管道文件

基本命令

--ls  列出當前目錄文件

語法 ls-l 目錄或文件

ls-l    #列出文件的詳細信息,如創建者,創建時間,文件的讀寫許可權列表等等

ls-d   #列出目錄下所有的文件,包括以“.“開頭的隱藏文件

ls-a   #查看目錄(不查看裡面的內容)

ls-s   #以文件的大小進行排序

--pwd 列印當前用戶所在的當前目錄位置

語法 pwd

--cd 切換目錄

語法  cd  目錄

cd..     #表示返回到上級目錄位置,也就是父目錄

cd.      #表示進入到當前用戶所在的目錄

--history 歷史命令

語法 history

游標上下鍵   #查看歷史命令

ctrl+r        #搜索歷史命令(輸入一段某條命令的關鍵字:必須是連續的)

!168        #執行歷史命令中第168條命令

!字元串   #搜索歷史命令中最近一個以xxxx字元開頭的命令

別名使用

語法 alias 別名='commint'

alias ab='ls -l /opt'

ab

刪除別名

un alias ab

設置別名永久生效

局部生效

echo"alias ab='ls -l /opt' >> .bashrc

全局生效

echo'ab='ls-l/opt'>> /etc/bashrc

快捷鍵

ctrl+C  #終止前臺運行的程式

ctrl+D  #退出

cutl+L  #清屏

curl+A  #跳到命令行的開頭

ctrl+E  #跳到命令行的結尾

ctrl+U   #將游標處到命令行開頭的內容刪除

ctrl+K   #將游標處到命令行末尾的內容刪除

系統時間

hwclock –s          #將系統時鐘調整為與目前的硬體時鐘一致

hwclock –w         #將硬體時鐘調整為與目前的系統時鐘一致

修改時間

date-s"2018-6-8 22:21"

date-s"2018-6-8"

修改時間顯示方式

date"+%Y%m%d %H:%M:%S"

20180518 17:44:19

date"+%Y/%m/%d %H:%M:%S"

2018/05/1817:44:19

計算程式運行時間

time ls-l/etc

real    0m0.022s         #實際使用時間

user    0m0.005s        #用戶狀態使用的時間

sys      0m0.017s        #內核狀態使用的時間

我是MIkel Pan,雲計算愛好者,定期更新生活感悟,心靈進化者就在MIkel Pan,喜歡我就來找我吧!

博客園地址:http://www.cnblogs.com/plyx/

簡書地址:https://www.jianshu.com/u/5986765934f4

 


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

-Advertisement-
Play Games
更多相關文章
  • 一:Hash結構集合 Hash結構的特點是無序和唯一,無序即添加元素的順序和輸出元素的順序不一致,唯一是指元素不重覆。那是什麼來保證Hash結構元素唯一的呢? 元素所在類的HashCode()和equals()方法來保證元素的唯一性的,所以自定義的類用Hash結構集合存儲元素時,需要重寫這兩個方法。 ...
  • 登錄百度 先清理瀏覽器緩存,打開Charles,登錄一次百度主頁,抓取到登錄過程。 參數分析 確定了需要分析的參數,從哪個開始分析呢?隨意吧 一般有些參數之間是有關係的,比如token的請求參數里需要gid參數 這裡我就不一一去分析參數間的關係了,直接來了啊 參數 gid 一方面其他參數需要它,另外 ...
  • 資料庫就是存儲數據的倉庫,其本質是一個文件系統,數據按照特定的格式將數據存儲起來,用戶可以對資料庫中的數據進行增加,修改,刪除及查詢操作。 mysql的dos視窗啟動關閉命令:net start mysql和net stop mysql 登錄命令:(1)mysql -u用戶名 -p密碼 (2)mys ...
  • 我根據自己的理解,對原文的精華部分進行了提煉,併在一些難以理解的地方加上了自己的“可能比較準確”的「翻譯」。 Chapter4 設計與聲明 Designs and Declarations 條款18: 讓介面容易被正確使用,不易被誤用 欲開發一個“容易被使用,不容易被誤用”的介面,首先必須考慮客戶可 ...
  • 環境配置:windows ,VS,SQLite(點擊下載),System.Data.SQLite.DLL(點擊下載)。 目錄: 一、新建項目,添加引用 二、創建資料庫 三、創建表 四、插入數據 五、查詢數據 一、新建項目,添加引用 1.在VS中新建一個控制台應用程式,如下圖 2.添加引用 將下載的S ...
  • 關聯刪除通常是一個資料庫術語,用於描述在刪除行時允許自動觸發刪除關聯行的特征;即當主表的數據行被刪除時,自動將關聯表中依賴的數據行進行刪除,或者將外鍵更新為 或預設值。 資料庫關聯刪除行為 我們先來看一看SQL Server中支持的行為。在創建外鍵約束時,可以指定關聯表在主表刪除行時,對依賴的數據如 ...
  • 上一回實現了一個寬度不均勻的Panel,這次我們編寫一個簡單的BigbangView主體。 首先創建一個模板化控制項,刪掉Themes/Generic.xaml中的<Style TargetType="BigbangView">...</Style>段。 然後打開C:\Program Files (x ...
  • 前言 小李:“胖子,上頭叫你對接我的數據好了沒有?” 胖子:“那是你的事,你都不提供數據源,我咋接?” 小李:“你想要什麼樣的數據源?” 胖子:“我想要一個調用簡單點的!” 小李:“我這個數據源是在linux平臺使用docker封裝發佈的,webapi的怎麼樣?” 胖子:“也行,這項目工期快用完了, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...