linux基礎學習筆記

来源:https://www.cnblogs.com/yuzly/archive/2019/03/18/10514003.html
-Advertisement-
Play Games

linux基礎學習筆記 目錄: 1.磁碟分區 2.目錄結構 3.linux命令的分類 4.常見的linux命令 1.命令編輯的幾個輔助操作 2.命令幫助 3.查看文件內容cat,more,less,head,tail 4.統計命令wc 5.檢索和過濾文件內容grep命令 6.壓縮和解壓縮:gzip( ...


linux基礎學習筆記

目錄:

1.磁碟分區

2.目錄結構

3.linux命令的分類

4.常見的linux命令

  1.命令編輯的幾個輔助操作

  2.命令幫助

  3.查看文件內容cat,more,less,head,tail

  4.統計命令wc

  5.檢索和過濾文件內容grep命令

  6.壓縮和解壓縮:gzip(gunzip)和bzip2(bunzip2)

  7.歸檔及解歸檔:tar

  8.vim編輯器

  9.防火牆狀態查看以及關閉等

       10.查找文件或目錄    find  指定查找路徑  -name  指定查找的文件名及目錄名  例如find  /etc -name passwd

        11.yum安裝

        12.創建用戶 

5.linux init進程

一、磁碟分區

linux分區不同於windows,linux下硬碟設備名為(IDE硬碟為hdx(x為從a—d)因為IDE硬碟最多四個,SCSI,SATA,USB硬碟為sdx(x為a—z)),硬碟主分區最多為4個,用fdisk –l查看設備名。

sd:串口,SCSI,SAS,USB存儲

hd:並口

主分區:sdb1-sdb4 主分區存放操作系統  #硬碟主分區最多為4個,這裡以sdb硬碟為例

擴展分區:sdb5

邏輯分區:從sdb6開始

 

硬碟編號:a、b、c、....z
分區編號:1、2、3、...

例如:

sdb3(第2塊SCSI硬碟的第3個主分區)
hda7(第1塊IDE硬碟的第2個邏輯分區)

啟動分區的掛載點是/boot  建議200M(centos6.5)

交換分區沒有掛載點,文件系統類型是swap,虛擬記憶體至少物理記憶體的2倍

根分區 存放os,掛載點/

二、目錄結構

linux目錄結構如下圖: 

  

2.根目錄,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中。

/bin 普通用戶執行的命令存放的地方

/sbin 管理員執行的命令存放的地方

/usr應用程式存放的目錄

  /usr/bin 存放應用程式  

  /usr/lib 存放不能直接運行的,卻是許多程式運行所必需的一些函數庫文件

  /usr/local 存放軟體升級包

/lib 系統使用的函數庫的目錄

/root 管理員的家目錄(宿主目錄)

/home 普通用戶的家目錄

/var 放置系統執行過程中經常變化的文件,如隨時更改的日誌文件 

/etc 存放各種配置文件

/srv 服務啟動之後要訪問的目錄

/mnt 光碟預設掛載點

/dev 存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備

/opt 給主機額外安裝軟體所存放的目錄

/tmp 一般用戶或正在執行的程式臨時存放文件的目錄

三、linux命令的分類

linux命令概念:用於實現一類功能的指令或程式,命令的執行依賴於解釋器程式

內部命令:屬於shell解釋器的 一部分,在硬碟上找不到,系統啟動自動載入到記憶體中

外部命令:獨立於shell解釋器之外的程式文件,一般在硬碟中可以找到

四、常見的linux命令

1.命令編輯的幾個輔助操作(快捷鍵不區分大小寫)

Tab鍵,自動補全

反斜杠"\":強制換行

快捷鍵ctrl+U:清空至行首

快捷鍵ctrl+K:清空至行尾

快捷鍵ctrl+L:清屏

快捷鍵ctrl+C:取消本次命令編輯

2.命令幫助  

help 內部命令(例如:help cd)
外部命令 --help (例如:ls --help)

獲取外部命令線上手冊:man 外部命令(例如:man ls)

3.查看文件內容cat,more,less,head,tail

cat /root/lshelp.txt(無分屏瀏覽功能,只適合於文件內容在一屏以內的文件)
cat /etc/resolv.conf /etc/hosts(查看多個文件內容)
more /root/lshelp.txt(有分屏瀏覽功能)
less /root/lshelp.txt(有分屏瀏覽功能)
也可以:cat /root/lshelp.txt | more
或者:cat /root/lshelp.txt | less

head /root/lshelp.txt(預設顯示lshelp.txt文件頭部的前10行內容)
head -5 /root/lshelp.txt(顯示lshelp.txt文件頭部的前5行內容)

tail /root/lshelp.txt(預設顯示lshelp.txt文件尾部的後10行內容)
tail -5 /root/lshelp.txt(顯示lshelp.txt文件尾部的後5行內容)

tail -f /root/lshelp.txt(動態顯示lshelp.txt文件尾部新增加的內容) #測試另開一個終端視窗,用echo  "sfdfdds" > lshelp.txt

4.統計命令wc  

-l:統計行數 例如:wc -l /root/lshelp.txt(統計lshelp.txt文件中有多少行)
-w:統計單詞數 例如:wc -w /root/lshelp.txt(統計lshelp.txt文件中有多少單詞)
-c:統計位元組數 例如:wc -l /root/lshelp.txt(統計lshelp.txt文件的位元組數)

還可以:ps -aux | wc -l (統計有多少個進程,一行一個進程)

5.檢索和過濾文件內容grep命令 

作用:在文件中查找並顯示指定包含字元串的行

選項:-i(忽略大、小寫) -v(反轉查找)

查找條件:

查找"要查找的字元串": "要查找的字元串" 例如:grep "NAME" /root/lshelp.txt
查找以某字元串為開頭: "^某字元串" 例如:grep "^NAME" /root/lshelp.txt
查找以某字元串為結尾: "某字元串$" 例如:grep "NAME$" /root/lshelp.txt
查找空行: "^$" 例如:grep "^$" /root/lshelp.txt
其它例子:
grep -i "NAME" /root/lshelp.txt(查找包含NAME字元串的行,忽略大小寫)
grep -v "^$" /root/lshelp.txt(不顯示空行)
grep -v "^$" /root/lshelp.txt | grep -v "^#" (不顯示空行和帶#號的行)

6.壓縮和解壓縮:gzip(gunzip)和bzip2(bunzip2)

1)壓縮
cp /etc/yum.conf /root(複製一個文件到root目錄,對該文件進行壓縮操作)
cd /root
gzip yum.conf
ls yum.conf.gz(查看是否有壓縮文件)

cp /etc/yum.conf /root/yum1.conf
cd /root
gzip yum1.conf
ls yum1.conf.bz2(查看是否有壓縮文件)

2)解壓縮
gzip -d yum.conf.gz
gunzip yum.conf.gz

bzip2 -d yum1.conf.bz2
gunbzip2 yum1.conf.bz2

7.歸檔及解歸檔:tar

常見選項:
-c:建立歸檔文件
-x:解歸檔
-v:顯示過程
-f:指定歸檔文件
-p:保留原有許可權
-t:查看歸檔包中的文件
-z:啟用gzip壓縮
-j:啟用bzip2壓縮
-C:釋放歸檔時,指定目標路徑
例子:
cd /root
tar -cvf etc.tar /etc/*
(對/etc目錄進行歸檔,存放在當前路徑,歸檔文件名為:etc.tar)

mkdir /backup(在根下創建backup目錄
tar -cvf /backup/etc.tar /etc/*
(對/etc目錄進行歸檔,存放在/backup目錄,歸檔文件名為:etc.tar)
mkdir test1 test2(在當前路徑下創建test1、test2目錄)
tar -xvf etc.tar -C test1
(對當前路徑下的歸檔文件etc.tar,進行解歸檔至當前路徑下的test1目錄中)

tar -zcvf etc.tar.gz /etc/*(創建歸檔並壓縮,壓縮方式為:gzip) #所有的操作都有f選項 必須放在所有選項的最後
tar -jcvf etc.tar.bz2 /etc/*(創建歸檔並壓縮,壓縮方式為:bzip2)

tar -zxvf etc.tar.gz -C /test/   解壓歸檔

tar -tf etc.tar.gz(查看gzip格式的歸檔文件中的文件列表)
tar -tf etc.tar.bz2(查看bzip2格式的歸檔文件中的文件列表)

8.vim編輯器

1)三種模式:命令模式、輸入模式、末行模式
命令模式----按a、i、o等鍵----->輸入模式
輸入模式----按esc鍵----->返回命令模式
命令模式----輸入冒號:----->末行模式
末行模式----按esc鍵----->返回命令模式

輸入模式和末行模式之間不能直接轉換,只能通過命令模式間接轉換
cd /root
cp /etc/sudo.conf /root
vim /root/sudo.conf(使用vim編輯器打開某文件,直接進入命令模式)

2)游標移動
行內快速跳轉:(命令模式)
跳轉至行首:Home鍵或“^”(shift+6)、數字“0”
跳轉至行尾:End鍵或“$”鍵

行內快速跳轉:(命令模式)
跳轉至文檔的首行:1G或者gg
跳轉至文檔的尾行:G
跳轉到文件中的第#行: #G

行號:(末行模式)
:set nu(顯示行號)
:set nonu (取消顯示行號)
3)複製、粘貼、刪除:(命令模式)
複製:
游標所在行(當前行):yy
從游標所在行開始的#行:#yy

粘貼:
p:粘貼到目標位置的游標前面
P:粘貼到目標位置的游標後面

刪除:
單個字元:x、del、delete、
行:
當前游標所在行:dd
從游標所在行開始的#行:#dd
刪除當前游標之前到行首的所有字元:d^
刪除當前游標之前到行首的所有字元:d$

4)內容查找:(命令模式)
從上到下進行查找:/要查找的字元串
從下到上進行查找:?要查找的字元串

向下定位:n
向上定位:N

5)撤銷及保存:(命令模式)
撤銷一次:u
撤銷多次:多執行幾次u命令
撤銷全部操作:U(大寫)

保存:ZZ(大寫)

6)保存及退出:(末行模式)
:w (保存)
:w /root/test.txt (另存)
:q (退出,未作修改)
:q! (退出,修改內容後,不保存退出)
:wq (保存退出)

7)打開或編輯文件:(末行模式)
:e /root/yum.conf (編輯文件)
:r /root/test.txt (打開文件)
8) 文件內容替換:(末行模式)
:s /old/new (在游標所在行查找第一個old字元串,並替換為new字元串)
:s /old/new/g (在游標所在行查找所有的old字元串,並都替換為new字元串)
:#,# s /old/new/g (在指定的行之間查找所有的old字元串,並都替換為new字元串)
:% s /old/new/g (在全文中查找所有的old字元串,並都替換為new字元串)
:% s /old/new/gc (在全文中查找所有的old字元串,並都替換為new字元串,但要確認)

9.防火牆狀態以及關閉

chkconfig --list iptables(查看iptables防火牆狀態)

chkconfig iptables off(修改iptables服務開機後自動關閉)

service iptables stop(停止iptables防火牆服務)

iptables  -F  清除防火牆策略 

setenforce 0(臨時關閉selinux)  #永久關閉selinux需要在/etc/selinux/config修改SELINUX=enforcing為SELINUX=disabled

10.查找文件或目錄    find  指定查找路徑  -name  指定查找的文件名及目錄名  例如find  /etc -name passwd

11.yum

yum erase  軟體名    yum remove 軟體名    卸載軟體

yum install  軟體名   安裝

yum list  軟體名     列出某個軟體的信息

yum  info  軟體名   查詢某個軟體的信息

yum search 軟體名  搜索某個軟體

 五、linux init進程

所謂的init進程,它是一個由內核啟動的用戶級進程。

init 進程是系統中第一個進程,它的進程ID(pid)是1

init服務的配置文件是/etc/inittab

init服務的配置文件如下: 

運行級別:

0:關機

1:單用戶模式

2: 多用戶,沒有 NFS

3:多用戶

4:是不使用的

5:是xwindows,也就是有界面的

6:重啟

如果不小心把init預設運行級別設置為0或6的解決辦法
我們知道init0和6級別分別對應的是關機和重啟,如果把這兩個設為預設運行級別我們是無法進入系統的,所以我們就要藉助救援系統了,在開機GRUB界面按e如下:

  

選擇第二個接著按e

  

在命令行最後輸入1(進入單用戶模式),回車退後到上個界面  

接著按b進入單用戶模式,我們這就進入到單用戶模式了

  

我們只需要進入/etc/inittab配置文件中把最後的0或6改為3,重啟系統就可以

  

重啟系統之後就可以 

init的運行級別配置是在/etc/init,而這些級別的定義是在/etc/rc.d目錄內,如下圖 

這裡的rc{0..6}.目錄對應相應的級別裡面放的都是要啟動和關閉的進程,查看當前運行的級別,併進入級別配置文件 

這裡以K開頭的都是要關閉的進程(當前運行級別下),而以S開頭的則是要啟動的進程,我們可以隨便找一個測試下 

 


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

-Advertisement-
Play Games
更多相關文章
  • 最近要使用VS2017+EF+Mysql,在生成實體數據模型踏過一些坑,在此做個總結。 1.先下載並安裝 mysql-connector-net-6.9.10.msi 和 mysql-for-visualstudio-1.2.7.msi ,現在官網提供的是mysql-connector-net-6. ...
  • 數字證書是一個經權威授權機構數字簽名、包含公開密鑰擁有者信息以及公開密鑰的文件,是權威機構頒發給網站的可信憑證。最簡單的證書包含一個公開密鑰、證書名稱以及證書授權中心的數字簽名,只在特定的時間內有效。我們可以在阿裡雲上購買SSL證書來用於我們網站等應用的部署,通過SSL證書來加強我們網站以及應用的安 ...
  • 在網站運維過程中,有些人的網站遭遇過DDoS攻擊,DDos攻擊又叫做分散式拒絕服務攻擊。DDos攻擊將多個電腦聯合起來作為攻擊平臺,對一個或多個目標發動DDoS攻擊,從而成倍地提高拒絕服務攻擊的威力。該攻擊方式利用目標系統網路服務功能缺陷或者直接消耗其系統資源,使得該目標系統無法提供正常的服務。該 ...
  • 對於很多運維人員來說,伺服器安全是至關重要的,必須確保雲伺服器上的網站不被惡意入侵以及安裝木馬病毒程式。現在很多公司以及個人習慣使用雲伺服器,如阿裡雲、騰訊雲、百度雲等,當雲伺服器被黑客入侵的時候,排查的相關方法依舊跟自建伺服器類似。如果使用的是阿裡雲伺服器,在網站等應用程式被掛馬蠕蟲或者伺服器被入 ...
  • 本文介紹樹莓派(raspberry pi)在linux c 環境下的硬體pwm配置及使用方法。 1. 下載安裝wiringPi 此步驟建議參考官網指南 http://wiringpi.com/download-and-install/,wiringPi提供了對樹莓派的硬體IO訪問,包括GPIO/I2 ...
  • 首先,請廣大win10受害者原諒小菜用一個如此長的標題來吸引你們,為了盡最大努力幫助那些飽受win10自動更新折磨的朋友們,小菜不得已出此下策,望見諒! windows 10是一個神奇的操作系統,當你沉浸在快樂的游戲中,當你痴迷的研究頂尖技術,當你專心撰寫文檔,當你安靜的欣賞一部奧斯卡電影,win1 ...
  • 轉載自:“趣IT”微信公共號 前言 批處理文件(batch file)包含一系列 DOS命令,通常用於自動執行重覆性任務。用戶只需雙擊批處理文件便可執行任務,而無需重覆輸入相同指令。編寫批處理文件非常簡單,但難點在於確保一切按順序執行。編寫嚴謹的批處理文件可以極大程度地節省時間,在應對重覆性工作時尤 ...
  • 詳見鏈接https://blog.csdn.net/weixin_42266606/article/details/80879571 (此處我的本地用戶名root,密碼root;遠程用戶名root,密碼12345) 1.下載 MySQL 所需要的安裝包 網址:https://dev.mysql.co ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...