Linux命令萬字總結(jié)随橘,帶你實(shí)現(xiàn)基礎(chǔ)Linux命令自由

前言

Linux系統(tǒng)的基本操作,對(duì)于大多數(shù)計(jì)算機(jī)類相關(guān)學(xué)生或者相關(guān)從業(yè)人員都很重要锦庸,本文以樹莓派的Linux系統(tǒng)為實(shí)例机蔗,從基礎(chǔ)出發(fā),詳細(xì)介紹Linux系統(tǒng)中最基礎(chǔ)的操作甘萧。

什么是Linux

這里就不搬概念了萝嘁,Linux本質(zhì)上和Window一樣都是運(yùn)行在計(jì)算機(jī)上的操作系統(tǒng),但是有一個(gè)核心區(qū)別就是Linux是開源的幔嗦。


Linux系統(tǒng)范疇

運(yùn)行在桌面端的Linux像Windows一樣有圖形化界面酿愧,我們可以用鼠標(biāo)操作沥潭,但是大多數(shù)Linux系統(tǒng)運(yùn)行在服務(wù)器上沒有圖形化界面邀泉,那我們?cè)趺磮?zhí)行呢?使用Shell工具钝鸽,它就像一個(gè)外部用戶與Linux內(nèi)核溝通的橋梁汇恤,例如復(fù)制粘貼重命名文件,這些都是通過Linux命令來執(zhí)行的拔恰,我們所要學(xué)習(xí)的就是要理解這些命令并使用這些命令因谎。

如何使用Shell工具

知道了Linux基本概念后,我們?cè)撊绾问褂肧hell工具來登錄遠(yuǎn)程Linux系統(tǒng)呢颜懊?

  1. 在Windows系統(tǒng)上
    如果你的電腦上的操作系統(tǒng)是Windows财岔,可以使用putty工具或者Xshell(具體按照方法可自行搜索)登錄Linux系統(tǒng)风皿,在指定界面按照提示輸入Linux系統(tǒng)的IP地址、用戶名匠璧、登錄密碼即可登錄桐款;
Xshell登錄
  1. 在其他系統(tǒng)上

如果你的電腦上的系統(tǒng)是macOS或者Linux類系統(tǒng)(Ubuntu、CentOS夷恍、Kylin魔眨、Raspberry Pi OS)那么直接打開終端工具輸入命令:

ssh 用戶名@IP地址

再按提示輸入登錄密碼就可以登錄了。


樹莓派中ssh連接

如果是單純的學(xué)習(xí)Linux基礎(chǔ)知識(shí)也可以直接打開終端就可以了酿雪!

使用Xshell連接Linux服務(wù)器

這里以Windows上的終端工具Xshell登錄樹莓派的Linux系統(tǒng)為例遏暴,登錄成功后,系統(tǒng)會(huì)顯示上一次登錄的時(shí)間指黎。

使用Xshell連接樹莓派
  • pi表示用戶名(樹莓派的用戶名默認(rèn)為pi)
  • raspberrypi4b表示這臺(tái)Linux系統(tǒng)的主機(jī)名朋凉,可以自定義;
  • $ 表示當(dāng)前用戶所具有的權(quán)限(root用戶為#,普通用戶為$
  • ~ 表示當(dāng)前所在目錄為家目錄

使用命令行工具通用的快捷鍵

在學(xué)習(xí)Linux命令之前醋安,有一些快捷鍵是必須要掌握的侥啤,它能大大提高你的Linux命令使用效率。

  • ↑↓:通過↑↓鍵來選擇過往執(zhí)行過的Linux命令茬故;
  • Tab:命令或者參數(shù)僅需輸入前面幾位就可以使用Tab鍵來補(bǔ)全盖灸;
  • Ctrl + R: 歷史命令檢索,使用Ctrl + R用于查找使用過的命令磺芭。
  • 顯示所有執(zhí)行過的命令赁炎,使用history可以顯示所有命令執(zhí)行歷史,使用history 數(shù)字可以查看最近n次使用過的命令钾腺;使用徙垫!+編號(hào)可以直接執(zhí)行歷史命令中對(duì)應(yīng)編號(hào)的命令。
  • Ctrl + L:清除屏幕并將當(dāng)前行移動(dòng)值頁面頂部放棒;
  • Ctrl + C:終止當(dāng)前終端中正在執(zhí)行的命令
  • Ctrl + U:從光標(biāo)位置剪切至行首
  • Ctrl + K:從光標(biāo)位置剪切至行尾
  • Ctrl + W:剪切光標(biāo)左側(cè)的一個(gè)單詞
  • Ctrl + Y:粘貼
  • Ctrl + A:光標(biāo)調(diào)到命令行的開頭
  • Ctrl + E:光標(biāo)跳到命令行結(jié)尾
  • Ctrl + D:關(guān)閉當(dāng)前Shell會(huì)話

文件和目錄

Linux的文件目錄系統(tǒng)

Linux不像Windows分了C盤和D盤姻报,它只有一個(gè)根目錄,根目錄有若干文件夾间螟,每一個(gè)文件夾都有它特定的用途:

└── /               // 根目錄
    ├── bin         // binary的縮寫吴旋,存放系統(tǒng)命令,bin目錄里面包含了會(huì)被所有用戶使用的可執(zhí)行程序
    ├── boot        // 系統(tǒng)啟動(dòng)目錄厢破,保存與系統(tǒng)啟動(dòng)相關(guān)的文件荣瑟,包含內(nèi)核文件、啟動(dòng)引導(dǎo)程序
    ├── dev         // device的縮寫摩泪,設(shè)備文件保存位置
    ├── etc         // 系統(tǒng)配置文件保存位置笆焰,系統(tǒng)中采用默認(rèn)安裝方式的服務(wù)配置文件都會(huì)保存在這
    ├── home        // 用戶的家目錄,Linux中每一個(gè)用戶在home目錄下都有一個(gè)自己用戶名的家目錄
    ├── lib         // 系統(tǒng)調(diào)用的函數(shù)庫保存位置
    ├── media       // 媒體见坑,掛載目錄嚷掠,建議掛載一些媒體設(shè)備
    ├── mnt         // mount表示掛載目錄捏检,一般表示臨時(shí)掛載一些裝置(U盤、SD卡不皆、移動(dòng)硬盤)
    ├── opt         // 第三方安裝軟件保存的位置未檩,手工安裝源碼可以安裝在這里,/usr/local/也可以作為安裝目錄
    ├── proc        // 虛擬文件系統(tǒng)粟焊,該目錄保存在內(nèi)存中冤狡,保存系統(tǒng)的內(nèi)核、進(jìn)程项棠、外部設(shè)備的網(wǎng)絡(luò)狀態(tài)等
    ├── root        // 超級(jí)用戶root的家目錄
    ├── sbin        // system binary表示系統(tǒng)二進(jìn)制文件悲雳,系統(tǒng)環(huán)境設(shè)置相關(guān)的目錄,包含系統(tǒng)級(jí)重要的可執(zhí)行程序
    ├── srv         // service 表示服務(wù)香追,包含一些網(wǎng)絡(luò)啟動(dòng)后所需要取用的數(shù)據(jù)
    ├── sys         // 虛擬文件系統(tǒng)合瓢,該目錄的數(shù)據(jù)都保存在內(nèi)存中,保存與內(nèi)核相關(guān)的信息
    ├── tmp         // 臨時(shí)目錄透典,系統(tǒng)存放臨時(shí)文件的目錄
    ├── usr         // Unix Software resource 表示Unix系統(tǒng)軟件資源晴楔,系統(tǒng)默認(rèn)軟件都安裝在這
    ├── var         // variable表示動(dòng)態(tài)的,包含程序的數(shù)據(jù)比如log文件
    └── lost+found  // 當(dāng)系統(tǒng)以外崩潰或者關(guān)機(jī)時(shí)峭咒,產(chǎn)生的文件碎片就存在這里税弃,是根分區(qū)的備份恢復(fù)目錄

瀏覽和切換目錄

Windows有圖形界面,瀏覽和切換目錄可以直接在我的電腦里點(diǎn)擊鼠標(biāo)凑队,而Linux如何在命令行交互界面中瀏覽文件目錄呢则果?

ls

列出文件和目錄(Linux中最常用的命令之一)。
【常用參數(shù)】

  • -a 顯示所有隱藏的文件和目錄
  • -l 顯示詳細(xì)的文件信息
  • -t 按文件最近一次修改的時(shí)間排序
  • -i 顯示文件的inode標(biāo)識(shí)

cd

表示切換目錄
【常用寫法】

  • cd / 表示跳轉(zhuǎn)到根目錄下
  • cd ~ 表示跳轉(zhuǎn)到家目錄下
  • cd .. 表示跳轉(zhuǎn)到上級(jí)目錄下
  • cd pi 表示跳轉(zhuǎn)到當(dāng)前目錄下的相對(duì)路徑(當(dāng)前目錄下必須要有這個(gè)文件夾)漩氨,通常搭配ls命令一起使用西壮;
  • cd /home/pi 后面加上絕對(duì)路徑(包含根目錄到當(dāng)前目錄的路徑),表示可以跳轉(zhuǎn)到該絕對(duì)路徑下
  • cd 不添加任何參數(shù)也表示跳轉(zhuǎn)到當(dāng)前用戶的家目錄下

pwd

顯示當(dāng)前目錄的路徑(顯示從根目錄開始到當(dāng)前目錄的絕對(duì)路徑)

which

查看Linux中某個(gè)可執(zhí)行程序的位置

pi@raspberrypi4b:/home $ which python3
/usr/bin/python3

du

列舉出當(dāng)前目錄的文件大小信息

  • -h 表示以方便閱讀的形式展現(xiàn)輸出結(jié)果叫惊,如果是文件大小就會(huì)顯示具體的K款青、M、G
  • -a 表示同時(shí)列出目錄下所有文件的大小信息
    du命令

cat

一次性查看文件的所有內(nèi)容并將其輸出到終端中來霍狰,適合查看內(nèi)容不多的文本文件

pi@raspberrypi4b:~/swift $ cat hello.txt 
hello raspiberry 4b !

less

分頁顯示文本內(nèi)容抡草,適合查看內(nèi)容較多的文本文件
【快捷指令】

  • 空格鍵 下一頁
  • b鍵 上一頁
  • 回車鍵 下一行
  • y鍵 上一行
  • d鍵 前進(jìn)半頁
  • u鍵 后退半頁
  • q鍵 停止讀取
  • =鍵 顯示當(dāng)前內(nèi)容在文本文件中第幾頁第幾號(hào)位置以及內(nèi)容所占百分比
  • /鍵 進(jìn)入搜索模式,按n鍵跳轉(zhuǎn)到下一個(gè)搜索到蚓耽,按N鍵跳轉(zhuǎn)到上一個(gè)搜索點(diǎn)

head和tail

顯示文件的開頭或者末尾幾行
默認(rèn)顯示10行渠牲,可以添加參數(shù)n指定顯示n行文本內(nèi)容旋炒,tail還有一個(gè)重要的用處就是查看log日志文件步悠,可以實(shí)時(shí)查看日志文件結(jié)尾的更新情況。使用參數(shù)-f可以每隔一秒查看文件是否有更新瘫镇,也可以使用參數(shù)-s指定間隔時(shí)間查看文本內(nèi)容是否更新

tail -f -s 3 access.log

touch

創(chuàng)建一個(gè)文件

touch hello.txt

如果指定的文件在當(dāng)前文件夾中不存在鼎兽,則直接創(chuàng)建一個(gè)空白的新文件答姥;
如果想要一次性創(chuàng)建多個(gè)文件,可以使用命令:

touch file1.txt file2.txt file3.txt

mkdir

創(chuàng)建一個(gè)目錄谚咬,類似于Windows中新建一個(gè)指定名稱的文件夾鹦付;
【常用參數(shù)】

  • -p 遞歸創(chuàng)建目錄結(jié)構(gòu)
mkdir -p one/two/three

文本編輯

在Linux系統(tǒng)的命令行中如果需要對(duì)文本進(jìn)行編輯,主要有兩個(gè)應(yīng)用nano和vim择卦,其中vim是vi的增強(qiáng)版本敲长。這里主要介紹一下vim的基本使用。

vim

【常用寫法】

vim hello.txt # 當(dāng)前目錄下有hello.txt就直接編輯秉继,若沒有則新建一個(gè)該名稱的空白文件

vim打開文本時(shí)祈噪,默認(rèn)啟動(dòng)正常模式(只能跳轉(zhuǎn)光標(biāo),不可編輯文本)尚辑,需要輸入鍵盤i鍵才會(huì)啟動(dòng)編輯模式辑鲤。編輯好文件后,如果想保存輸入:進(jìn)入命令模式杠茬,此時(shí)輸入的命令顯示在控制臺(tái)最后一行月褥。wq表示保存退出,按回車執(zhí)行操作瓢喉。如果不想保存文本宁赤,q!表示不保存退出。
【注意事項(xiàng)】
vim文本編輯器對(duì)于新手來說栓票,使用不太習(xí)慣礁击,但是如果熟練使用vim編輯器后,該工具能非常有效的提高工作效率逗载。

vim操作指南

解壓縮

在Linux系統(tǒng)中哆窿,將多個(gè)文件壓縮成一個(gè)壓縮包的過程,主要分成兩部分:
第一步:將多個(gè)文件打包成一個(gè)tar包
第二步:將tar包壓縮成壓縮文件厉斟。

tar

tar的主要用途是將文件夾或者多個(gè)文件創(chuàng)建成一個(gè)tar包(歸檔)
【常用寫法】

tar -czvf xiaoyu.tar.gz xiaoyu/ # 將xiaoyu文件夾歸檔并壓縮
tar -xzvf xiaoyu.tar.gz # 將壓縮包xiaoyu.tar.gz解壓

【參數(shù)解讀】

  • -c 代表創(chuàng)建打包
  • -x 代表解包
  • -z 代表處理的是gzip壓縮包
  • -v 代表解壓壓縮過程可見
  • -f 代表結(jié)果輸出文件

zip/unzip

如果需要在Linux中處理zip壓縮包挚躯,可以使用unzip解壓,zip進(jìn)行壓縮擦秽。
【常用寫法】

unzip xiaoyu.zip # 解壓zip壓縮包
unzip -l xiaoyu.zip # 只查看內(nèi)容码荔,不解壓
zip xiaoyu.zip xiaoyu/ # 將xiaoyu文件夾壓縮為xiaoyu.zip

文件基本操作

cp

拷貝文件和目錄
【常用寫法】

  • cp file1 file1_copy 在當(dāng)前文件夾下創(chuàng)建一份file1的副本;
  • cp file2 dir1 將文件file2復(fù)制一份到dir1目錄下感挥;
  • cp file3 dir2/file3_copy 將文件file3復(fù)制一份到dir2目錄下缩搅,并命名為file3_copy;
  • cp *.java dir3 將當(dāng)前文件夾下的所有Java文件復(fù)制到dir3目錄下触幼。

rm

刪除文件或目錄
【常用參數(shù)】

  • -r 遞歸刪除
  • -i 刪除前給出提示信息
  • -f 強(qiáng)制刪除

【常用寫法】

  • rm file1 刪除當(dāng)前文件夾下的file1文件
  • rm -r dir1 刪除當(dāng)前文件夾下dir1文件夾(文件夾必須使用遞歸方式刪除)
  • rm *.txt 刪除當(dāng)前文件夾下的所有txt文件

sort

sort可以快速對(duì)文本文件的行進(jìn)行排序
【常用寫法】

  • sort city.txt 可以對(duì)city.txt中的每一行按首字母順序輸出到屏幕

【案例講解】
我們創(chuàng)建一個(gè)文本文件city.txt,寫入以下內(nèi)容:

Guangzhou
Shengzhen
Anhui
Wuhu
Beijing
Zhengzhou
Xiamenn

執(zhí)行sort city.txt命令后系統(tǒng)會(huì)輸出:

屏幕快照 2022-04-29 16.33.25.png

【常用參數(shù)】

  • -o將排序后的結(jié)果寫入新文件sort -o city_sorted.txt city.txt
  • -r 倒序排序
  • -R 隨機(jī)排序
  • -n 以每一行開頭的數(shù)字大小為順序進(jìn)行排序

uniq

uniq命令用于刪除文本文件中的重復(fù)內(nèi)容

【常用寫法】

  • uniq city.txt 用于去除city.txt文本文件中的重復(fù)行數(shù)硼瓣,并輸出到屏幕
  • uniq city.txt city_uniq.txt 去重后將結(jié)果輸出到city_uniq.txt中;

【常用參數(shù)】

  • -c 統(tǒng)計(jì)重復(fù)的行數(shù)
  • -d 只顯示重復(fù)的行數(shù)

【注意事項(xiàng)】
uniq只能去除文本文件中連續(xù)重復(fù)的行數(shù)

scp

scp是secure copy的縮寫,可以通過網(wǎng)絡(luò)安全地把文件從一臺(tái)電腦拷貝到另一臺(tái)電腦堂鲤。
【基本用法】
scp 源文件 目標(biāo)文件
其中原文件和目標(biāo)文件的格式為user@ip:file_name

scp ./hello.txt root@192.168.123.160:~/ # 將本系統(tǒng)目錄下的hello.txt文件拷貝到服務(wù)器的家目錄下
scp root@106.55.62.52:~/hello.txt ./hello.txt # 將服務(wù)器家目錄下的hello.txt文件拷貝到本系統(tǒng)當(dāng)前目錄下

ln

ln是Link的縮寫表示創(chuàng)建鏈接亿傅,在Linux系統(tǒng)中文件名與文件內(nèi)容是分開存儲(chǔ)的,每一個(gè)文件名通過inode標(biāo)識(shí)綁定到對(duì)應(yīng)的文件內(nèi)容瘟栖。為了保護(hù)某些重要文件的安全已經(jīng)方便系統(tǒng)操作葵擎,Linux系統(tǒng)設(shè)計(jì)了兩種鏈接:硬鏈接和軟鏈接。
(1)硬鏈接

屏幕快照 2022-04-22 01.28.36.png

如果我們使用命令ln file1 file2讓file2與file1進(jìn)行硬鏈接半哟,此時(shí)假若刪除file1,會(huì)發(fā)現(xiàn)file2不會(huì)受到影響酬滤,對(duì)于硬鏈接來說刪除鏈接任意一方的文件,共同指向的文件內(nèi)容并不會(huì)從硬盤中刪除寓涨。只有同時(shí)刪除了file1與file2,它們所共同指向的文件內(nèi)容才會(huì)消失敏晤。
(2)軟鏈接
屏幕快照 2022-04-22 01.28.48.png

軟連接類似于Windows里的快捷方式,執(zhí)行創(chuàng)建軟鏈接命令ln -s file1 file3后缅茉,系統(tǒng)會(huì)創(chuàng)建file3指向file1的軟鏈接嘴脾。此時(shí)file3只是file1的快捷方式,它指向file1顯示file1的內(nèi)容蔬墩。但是file3與file1的inode并不同译打,我們刪除file3,file1不會(huì)受到影響拇颅。但是如果刪除file1的話奏司,file3就會(huì)變成死鏈接。
【案例思考】
刪除原文件file1后樟插,硬鏈接文件file2不受影響韵洋,軟連接文件file3開始無法訪問

用戶與權(quán)限

用戶的管理

在Linux系統(tǒng)中允許多個(gè)用戶存在,這些用戶被劃分到不同的組中黄锤。但是Linux系統(tǒng)中的root用戶(超級(jí)管理員用戶)最特殊搪缨,它被劃分到root組中,具有系統(tǒng)中的最高權(quán)限鸵熟。為了保護(hù)各個(gè)用戶在系統(tǒng)中的文件安全副编,Linux系統(tǒng)定義了各種文件權(quán)限級(jí)別:可讀、可寫流强、可執(zhí)行痹届。

sudo

root身份執(zhí)行命令

sudo vim nginx.conf

假如nginx.conf這個(gè)文件對(duì)于普通用戶執(zhí)行vim工具只有可讀權(quán)限,如果要編輯該文件則需要以root用戶身份來執(zhí)行打月。這時(shí)候只需要使用sudo命令即可队腐。

useradd

添加新用戶

【常用參數(shù)】

  • -d指定用戶的登入目錄
  • -g 指定用戶的所屬的群組
  • -u 指定用戶的id

useradd建立賬戶后,使用passwd來設(shè)定賬戶的密碼奏篙,使用userdel來刪除賬戶柴淘。注意執(zhí)行這些命令都需要root用戶權(quán)限。

useradd -g root -d /home/xy xiaoyu  # 新建一個(gè)用戶名為xiaoyu的用戶,屬于root組家目錄在/home/xy文件夾下
passwd xiaoyu # 修改xiaoyu用戶的密碼
userdel xiaoyu  # 刪除xiaoyu用戶名,其家目錄下的文件夾依然保留
userdel xiaoyu -r  # 刪除xiaoyu用戶名的同時(shí)刪除家目錄下的文件夾

su

全稱switch user表示切換用戶

su xiaoyu  # 切換為普通用戶xiaoyu
su  # 切換回root用戶

如果以root用戶登錄系統(tǒng)后再su切換成普通用戶悠就,可以使用exit切換回root用戶身份千绪。

群組的管理

Linux中每一個(gè)用戶都屬于一個(gè)特定的群組充易,如果創(chuàng)建用戶時(shí)沒有指定特定的群組梗脾,系統(tǒng)會(huì)為用戶分配一個(gè)與用戶名相同的群組,并把用戶規(guī)劃給該群組盹靴。

groupadd

創(chuàng)建群組炸茧,用法和useradd相同

groupadd com # 創(chuàng)建com組
groupdel com # 刪除com組

groups

查看用戶對(duì)應(yīng)的組名稱

groups xiaoyu  # 查看用戶xiaoyu所在的組

chgrp

用戶修改文件的群組

chgrp com file1.txt  # 將file1.txt的文件群組修改為com

chown

修改文件的所有者

chown xiaoyu file1.txt  # 將file1.txt這個(gè)文件的所有者設(shè)置為xiaoyu
chown xiaoyu:com file1.txt  # 將file1.txt這個(gè)文件的所有者設(shè)置為xiaoyu,所屬的群組設(shè)置為com
chown.png

文件權(quán)限管理

chmod

修改文件的訪問權(quán)限

chmod 777 hello.java  # 將hello.java這個(gè)文件設(shè)置為所有用戶可讀可寫可執(zhí)行
chmod.png

在Linux系統(tǒng)中稿静,不同的用戶處于不同的地位擁有不同的權(quán)限梭冠。為了保護(hù)系統(tǒng)的安全,Linux系統(tǒng)對(duì)不同的用戶訪問同一文件(包括目錄)的權(quán)限做了不同的規(guī)定改备。

可以使用ll或者ls -l命令控漠,查看當(dāng)前目錄下文件的屬性以及文件所屬的用戶和組。

pi@raspberrypi4b:~/swift $ ls -l
total 0
drwxr-xr-x 2 root root 4096 Apr 27 17:02 bin
-rw-r--r-- 2 root root 0 Apr 27 14:43 file1
-rw-r--r-- 2 root root 0 Apr 27 14:43 file2
lrwxrwxrwx 1 root root 5 Apr 27 14:44 file3 -> file1

其中drwxr-xr-x表示文件或目錄的權(quán)限悬钳,我們來解讀一下這些字母分別代表什么含義:

  • d:表示目錄盐捷,普通文件用-表示,鏈接文件用l表示默勾;
  • r:表示文件可讀
  • w:表示文件可寫
  • x:表示文件可執(zhí)行
  • -:表示沒有相應(yīng)的權(quán)限
    文件或者目錄的權(quán)限字符串是根據(jù)以下規(guī)則來進(jìn)行劃分的:
權(quán)限字符串解讀

每個(gè)文件的熟悉由10個(gè)字符來確定碉渡,第0位確定文件類型,第1-3位確定文件屬主(文件的所有者)擁有該文件的權(quán)限母剥,第4-6位確定文件的屬組(所有者同組用戶)擁有該文件的權(quán)限滞诺,第7-9位確定其它用戶擁有該文件的權(quán)限。

【案例分析】
我們?cè)囍蒙厦娴闹R(shí)解讀一下-rwxrw-r--的權(quán)限信息环疼;

  • 第0位是-侈贷,表明它是一個(gè)普通文件;
  • 第1-3位是rwx攘轩,表明文件所有者具有可讀可寫可執(zhí)行權(quán)限宙彪;
  • 第4-6位是rw-,表明文件所有者的同組用戶具有可讀可寫權(quán)限等限;
  • 第7-9位是r--爸吮,表明其它用戶具有可讀權(quán)限。

數(shù)字分配權(quán)限

回到前面的圖望门,我們發(fā)現(xiàn)有的時(shí)候可以通過數(shù)字來賦予文件權(quán)限形娇,比如chmod 777 file.txt,這是什么意思呢筹误?原來Linux系統(tǒng)中將讀權(quán)限設(shè)置為數(shù)字4桐早、寫權(quán)限設(shè)置為數(shù)字2、執(zhí)行權(quán)限設(shè)置為數(shù)字1,如果需要表示權(quán)限只需要做一些簡(jiǎn)單加法就行哄酝。
【案例分析】
我們?cè)囍斫?code>chmod 540 hello.py這個(gè)語句給hello.py這個(gè)文件賦予的權(quán)限友存。

  • 5 = 4 + 1 + 0 表示文件所有者具有可讀可執(zhí)行權(quán)限
  • 4 = 4 + 0 + 0 表示文件所有者同組用戶具有可讀權(quán)限
  • 0 = 0 + 0 + 0 表示其它用戶沒有任何權(quán)限
    對(duì)應(yīng)的字符表示的權(quán)限應(yīng)寫成-r-xr-----

字母分配權(quán)限

除了使用字符數(shù)字,Linux系統(tǒng)中還可以通過字母來分配權(quán)限陶衅;

  • uuser的縮寫屡立,表示文件所有者
  • ggroup的縮寫 ,表示文件所有者同組用戶
  • oother的縮寫 搀军,表示其他用戶
  • aall的縮寫 膨俐,表示所有用戶
  • +:表示添加權(quán)限
  • -:表示去除權(quán)限
  • =:表示賦予權(quán)限
    【案例分析】
  • chmod u+rx hello.c 表示文件hello.c的所有者增加讀和執(zhí)行權(quán)限;
  • chmod g+w hello.c 表示文件hello.c的所有者同組用戶增加可寫權(quán)限罩句;
  • chmod o-x hello.c 表示文件hello.c的其它用戶去除可執(zhí)行權(quán)限焚刺;
  • chmod go-r hello.c 表示文件hello.c的同組用戶和其它用戶去除讀權(quán)限;
  • chmod a+x hello.c 表示文件hello.c的所有用戶增加可執(zhí)行權(quán)限门烂;
  • chmod u=rwx,g=rw,o=r hello.c 表示文件hello.c的文件所有者具備可讀可寫可執(zhí)行乳愉,同組用戶具備可讀可寫,其它用戶苦逼可讀權(quán)限屯远;

查找

在Linux系統(tǒng)中蔓姚,我們通常需要檢索某一個(gè)文件,這時(shí)候就需要相關(guān)的查找工具氓润。

locate

搜索包含關(guān)鍵字的所有文件和目錄赂乐,支持正則表達(dá)式。

locate file1.txt

【注意事項(xiàng)】

  1. locate命令在執(zhí)行的過程中會(huì)檢索當(dāng)前系統(tǒng)文件數(shù)據(jù)庫咖气,而不是全磁盤檢索挨措。由于新創(chuàng)建的文件并不會(huì)立刻更新到文件數(shù)據(jù)庫中,所以無法被locate檢索到崩溪。如果想要立刻檢索可以使用sudo updatedb命令更新一下文件數(shù)據(jù)庫浅役。
  2. 如果系統(tǒng)無法使用locate命令(系統(tǒng)顯示command not found),可以手動(dòng)安裝一下mlocate軟件包伶唯。

find

find是一款Linux內(nèi)置工具觉既,主要的功能是找文件,甚至可以在找到文件后再進(jìn)行后續(xù)操作乳幸,功能非常強(qiáng)大瞪讼。
【常用寫法】

  1. 根據(jù)文件名查找:
find . -name "XXXXX"  # 表示在當(dāng)前目錄中查找名為XXXXX的文件
find . -iname "XXXXX" # 當(dāng)前目錄查找XXXXX文件名不區(qū)分大小寫
  1. 根據(jù)文件類型查找:
find . -type d -name "XXXXX" # 在當(dāng)前目錄查找XXXXX的目錄

type 的值可選為:

文件類型 含義 文件類型 含義
f 普通文件 p 管道
d 目錄 c 字符設(shè)備
l 軟鏈接 b 塊設(shè)備
s 套接字
  1. 根據(jù)文件大小查找
find /root -size +10G  # 查找root目錄下超過10M的文件
find . -size 12k # 查找當(dāng)前目錄下等于12k的文件
find /tmp -size -1M # 查找tmp目錄下小于1M的文件
  1. 根據(jù)文件最近訪問時(shí)間查找
find -name "*.java" -atime +7  # 7天之前訪問過的java文件
find . -mtime -1 # 近1天修改過的文件
  1. 查找結(jié)果并執(zhí)行操作
find . -name "*.java" -printf "%p - %u" # 查找當(dāng)前目錄下所有的java文件并以文件名-文件所有者格式打印
find . -name "*.py" -delete # 刪除當(dāng)前目錄下所有的py文件
find -name "*.py" -exec chmod 777 {} \; # 將當(dāng)前目錄下的所有py文件權(quán)限設(shè)為所有人可讀可寫可執(zhí)行
find -name "*.py" -ok chmod 777 {} \; # 功能一樣,不過執(zhí)行之前有詢問操作

grep

grep主要用于查找文件里符合條件的字符串
【常用參數(shù)】

  • -n顯示結(jié)果在文本中的行號(hào)
  • -r 遞歸查找
  • -i 忽略大小寫
  • -E 以正則表達(dá)式進(jìn)行匹配
  • -v 顯示不包含指定文本的所有行
grep -nr xiaoyu *.py # 遞歸查找當(dāng)前文件夾下所有的py文件中含有關(guān)鍵字xiaoyu的位置并顯示行數(shù)
grep -v xiaoyu *.py # 查找當(dāng)前文件夾下所有的py文件中不包含xiaoyu關(guān)鍵字的所有行
grep -E ^xiao /root/*.py # 查找root文件夾下所有的py文件中以xiao開頭的位置

軟件安裝

在日常使用的Linux系統(tǒng)中粹断,安裝軟件的方式主要有兩種符欠。Red Hat家族的.rpm包,一般使用yum進(jìn)行安裝瓶埋;另一個(gè)Debian家族的.deb包希柿,一般使用apt進(jìn)行安裝诊沪。

常用Linux系統(tǒng)的兩大家族

以樹莓派的Raspberry Pi OS系統(tǒng)為例,它屬于Debian家族安裝,其軟件包后綴為.deb曾撤,可以使用apt-get為系統(tǒng)安裝軟件端姚,系統(tǒng)大部分操作基本上和Ubuntu類似。

倉庫安裝軟件

apt-get

apt-get適用于deb包從互聯(lián)網(wǎng)軟件倉庫中搜索挤悉、安裝渐裸、卸載軟件或者操作系統(tǒng),其中apt的全稱是Advanced Package Tool尖啡。
【常用操作】

apt-get install packagename  #安裝一個(gè)新的軟件包
apt-get remove packagename #卸載一個(gè)已安裝的軟件包(保留配置文檔)
apt-get remove --purge packagename #卸載一個(gè)已安裝的軟件包(刪除配置文檔)
apt-get autoremove packagename #刪除包及其依賴的軟件包
apt-get autoremove --purge packagname #刪除包及其依賴的軟件包+配置文件橄仆,比上面的要?jiǎng)h除的徹底一點(diǎn)
dpkg --force-all --purge packagename #有些軟件很難卸載剩膘,而且還阻止了別的軟件的應(yīng)用衅斩,就能夠用這個(gè)(有風(fēng)險(xiǎn))

【注意事項(xiàng)】

  • 在部分操作系統(tǒng)中執(zhí)行apt-get需要root權(quán)限,所有一般在執(zhí)行以上命令時(shí)會(huì)加上sudo
sudo apt-get update # 刷新軟件源
sudo apt-get upgrade # 將系統(tǒng)中所有軟件包一次性升級(jí)到最新版本
  • 以上apt-get針對(duì)Debian家族的系統(tǒng)怠褐,如果是Redhat家族的系統(tǒng)請(qǐng)自行切換成yum安裝畏梆,方法基本相似。

編譯安裝軟件

我們剛學(xué)會(huì)了使用apt-get安裝軟件奈懒,但是如果遇到apt倉庫中沒有的軟件奠涌,我們就需要學(xué)會(huì)更高級(jí)的軟件安裝方法:編譯源碼安裝
【基本步驟】

  1. 下載源碼
wget https://downloads.apache.org/httpd/httpd-2.4.53.tar.gz
  1. 解壓
tar -xzvf httpd-2.4.53.tar.gz # 解壓壓縮包
cd httpd-2.4.53 # 進(jìn)入解壓后的文件夾
  1. 配置
    檢查當(dāng)前設(shè)備是否具備編譯所需的工具磷杏,執(zhí)行命令./configure溜畅,寫成/configure prefix=/usr/可以指定軟件安裝的路徑;
  2. 編譯
    執(zhí)行make命令极祸,添加參數(shù)-j4表明調(diào)用幾個(gè)CPU來執(zhí)行編譯工作遥金。
  3. 安裝
    執(zhí)行make install命令

重定向與管道

理解命令的去向

在Linux系統(tǒng)中一個(gè)命令的去向可以有三個(gè)方向:終端顯示浴捆、文件稿械、另外一個(gè)命令的入?yún)ⅰ?/p>

命令輸出結(jié)果的去向

命令一般是通過鍵盤輸入,然后輸出到終端、文件,它的標(biāo)準(zhǔn)用語分別是標(biāo)準(zhǔn)輸入stdin、標(biāo)準(zhǔn)輸出stdout、標(biāo)準(zhǔn)錯(cuò)誤輸出stderr

標(biāo)準(zhǔn)輸入輸出

重定向

重定向是指本來要顯示在終端的結(jié)果,重新輸送到別的地方(文件中或者作為其它命令的輸入)

輸出重定向

  1. 使用>輸出重定向,如果文件不存在則系統(tǒng)新建一個(gè)侯谁,如果輸出的文件已經(jīng)存在热芹,則覆蓋原始文件伊脓。
echo "hello" > hello.txt
  1. 使用>>輸出重定向榄笙,表示新內(nèi)容追加到文件末尾米丘;
echo "hello" >> hello.txt
  1. 使用2>輸出重定向,表示標(biāo)準(zhǔn)錯(cuò)誤輸出
cat hello.txt > res.txt 2> errors.log
  1. 使用2>&1輸出重定向糊探,表示標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都重定向到一個(gè)地方
cat hello.txt > res.txt 2>&1 # 覆蓋
cat hello.txt >> res.txt 2>&1 # 追加

輸入重定向

  1. 使用<輸入重定向
cat < hello.txt # 指定cat命令的輸入內(nèi)容為hello.txt的內(nèi)容

輸出結(jié)果與cat hello.txt相同瞪慧,但是系統(tǒng)的工作流程是不同的印机。

  1. 使用<<輸入重定向
wc -m << END # 輸入這個(gè)命令后楣责,終端就進(jìn)入鍵盤輸入模式秆麸,其中END為結(jié)束命令

管道

管道,顧名思義就是可以像管道一樣把兩個(gè)命令的輸入輸出連起來,英文是pipeline在Linux中可以用符號(hào)|表示闯冷。

屏幕快照 2022-04-29 19.33.25.png

例如我們對(duì)city.txt這個(gè)文本文件進(jìn)行查看、排序、降重,可以寫成:

cat hello.txt | sort | uniq

這樣我們就能找出進(jìn)過排序與降重的城市列表了。
【注意事項(xiàng)】
cat愉择、sort破花、uniq烦租、grep等命令均支持管道符延赌,是因?yàn)檫@些命令均可以從標(biāo)準(zhǔn)輸入中讀取要處理的文本(即從標(biāo)準(zhǔn)輸入中讀取參數(shù))除盏;而對(duì)于部分命令,例如rm挫以、kill等命令則不支持從標(biāo)準(zhǔn)輸入中讀取參數(shù)者蠕,因?yàn)槠渲恢С謴拿钚兄凶x取參數(shù)。

進(jìn)程

進(jìn)程查看

在Windows系統(tǒng)中掐松,如果某個(gè)應(yīng)用卡住了踱侣,我們可以在任務(wù)管理器里找到對(duì)應(yīng)進(jìn)程,然后強(qiáng)制結(jié)束大磺。那么在Linux系統(tǒng)中如何查看進(jìn)程呢抡句?

w

可以查看當(dāng)前系統(tǒng)中有哪些用戶處于登錄狀態(tài)及其他信息

pi@raspberrypi4b:~ $ w
 23:44:34 up 4 min,  3 users,  load average: 0.33, 0.44, 0.21
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
pi       tty7     :0               19:48    3:56m  0.88s  0.16s /usr/bin/lxsess
pi       tty1     -                19:48    3:56m  0.15s  0.12s -bash
pi       pts/0    192.168.123.122  23:41    2.00s  0.13s  0.03s w

【數(shù)據(jù)解讀】
第一行顯示的是任務(wù)隊(duì)列信息
23:44:34表示當(dāng)前時(shí)間,up 4 min表示系統(tǒng)正常運(yùn)行了4分鐘杠愧,3 users表示當(dāng)前有三個(gè)用戶在登錄待榔,load average代表負(fù)載均衡信息,三個(gè)值分別代表最近1分鐘流济、5分鐘锐锣、15分鐘的平均負(fù)載。

  • USER表示當(dāng)前登錄的用戶
  • TTY表示登錄的終端名稱
  • FROM表示連接到服務(wù)器的IP地址
  • LOGIN@表示登錄時(shí)間
  • IDLE用戶多久沒有活躍了
  • JCPU該終端所有相關(guān)進(jìn)程使用的CPU的時(shí)間
  • PCPU表示CPU執(zhí)行當(dāng)前程序所消耗的時(shí)間
  • WHAT表示當(dāng)前用戶正在運(yùn)行的程序

ps

用于顯示當(dāng)前系統(tǒng)中的進(jìn)程绳瘟,是當(dāng)前時(shí)刻系統(tǒng)的進(jìn)程快照雕憔,不會(huì)實(shí)時(shí)更新。

pi@raspberrypi4b:~ $ ps
  PID TTY          TIME CMD
 1580 pts/0    00:00:00 bash
 1701 pts/0    00:00:00 ps

【數(shù)據(jù)解讀】

  • PID 表示進(jìn)程號(hào)稽荧,每一個(gè)進(jìn)程都有一個(gè)唯一的進(jìn)程號(hào)橘茉;
  • TTY 表示進(jìn)程所運(yùn)行的終端名稱
  • TIME 表示進(jìn)程運(yùn)行的時(shí)間
  • CMD 比礙事產(chǎn)生這個(gè)進(jìn)程的程序名

【常用參數(shù)】

  • -ef 列舉所有進(jìn)程
  • -u 列舉出當(dāng)前用戶運(yùn)行的進(jìn)程
  • -aux 通過CPU和內(nèi)存使用來過濾進(jìn)程(通常和grep搭配使用)
  • -axjf 通過樹形結(jié)構(gòu)來顯示進(jìn)程

top

獲取進(jìn)程的動(dòng)態(tài)列表

屏幕快照 2022-04-30 00.03.40.png

【數(shù)據(jù)解讀】
第一行:同w命令第一行相同,顯示的是任務(wù)隊(duì)列信息姨丈;
第二行:總進(jìn)程數(shù)目、處于運(yùn)行態(tài)擅腰、休眠態(tài)蟋恬、停止態(tài)、僵尸態(tài)的進(jìn)程數(shù)目趁冈;
第三行:顯示的是CPU狀態(tài)信息歼争,

  • us【user space】— 用戶空間占用CPU的百分比。
  • sy【sysctl】— 內(nèi)核空間占用CPU的百分比渗勘。
  • ni【nice】— 改變過優(yōu)先級(jí)的進(jìn)程占用CPU的百分比
  • id【idolt】— 空閑CPU百分比
  • wa【wait】— IO等待占用CPU的百分比
  • hi【Hardware IRQ】— 硬中斷占用CPU的百分比
  • si【Software Interrupts】— 軟中斷占用CPU的百分比

第四行:內(nèi)存的狀態(tài)
第五行:交換分區(qū)的信息
表格抬頭含義:

  • PR:進(jìn)程優(yōu)先級(jí)
  • NI:nice值沐绒,負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)
  • VIRT:進(jìn)程使用的虛擬內(nèi)存總量
  • RES:進(jìn)程使用的物理內(nèi)存大學(xué)
  • SHR:共享內(nèi)存大小
  • S:進(jìn)程狀態(tài)

【常用參數(shù)】

  • -c COMMAND下顯示完整的命令行包含參數(shù)
  • -i 只顯示活躍進(jìn)程

kill

用于結(jié)束某個(gè)進(jìn)程旺坠,可通過ps 或者 top找到相關(guān)進(jìn)程的pid然后使用kill結(jié)束該進(jìn)程

kill 455 # 結(jié)束進(jìn)程ID為455的進(jìn)程
kill 537 455 # 結(jié)束進(jìn)程ID為537和455的進(jìn)程
kill -9 1753 # 強(qiáng)制結(jié)束進(jìn)程

管理進(jìn)程

默認(rèn)情況下乔遮,用戶創(chuàng)建的進(jìn)程都是前臺(tái)進(jìn)程,一般的前臺(tái)進(jìn)程從鍵盤讀取數(shù)據(jù)取刃,把結(jié)果輸出到顯示器蹋肮。后臺(tái)進(jìn)程則不必等待程序運(yùn)行結(jié)束出刷,就可以輸入其它命令。需要在執(zhí)行的命令后添加&符號(hào)坯辩,表示啟動(dòng)一個(gè)后臺(tái)進(jìn)程馁龟。

&

啟動(dòng)后臺(tái)進(jìn)程,該后臺(tái)進(jìn)程與終端相關(guān)聯(lián)漆魔,一旦關(guān)閉終端坷檩,進(jìn)程就結(jié)束了。

sudo apt-get upgrade &

nohup

啟動(dòng)進(jìn)程使其不受掛斷操作(關(guān)閉終端操作)的影響改抡,一般情況下nohup&結(jié)合使用表明啟動(dòng)后臺(tái)進(jìn)程且不受掛斷操作影響淌喻。

nohup ./frps -c frps.ini > /dev/null 2>&1 & # 后臺(tái)讀取配置信息啟動(dòng)frps,無論是否啟動(dòng)成功都將結(jié)果重定向到/dev/null

這時(shí)如果需要結(jié)束該進(jìn)程需要在top中找到其PID然后使用kill結(jié)束該進(jìn)程雀摘。

bg

在Linux系統(tǒng)中裸删,處于前臺(tái)運(yùn)行狀態(tài)的進(jìn)程,使用快捷鍵Ctrl + Z可以將進(jìn)程轉(zhuǎn)為后臺(tái)暫停狀態(tài)阵赠。同樣涯塔,處于后臺(tái)暫停狀態(tài)的進(jìn)程可以使用bg命令轉(zhuǎn)為前臺(tái)運(yùn)行狀態(tài)。
【常用寫法】

bg % 1  # 不添加參數(shù)時(shí)默認(rèn)作用于最近的一個(gè)后臺(tái)進(jìn)程清蚀,如果添加參數(shù)則會(huì)作用于指定標(biāo)號(hào)的進(jìn)程匕荸。

fg

對(duì)于后臺(tái)運(yùn)行的進(jìn)程或者后臺(tái)暫停的進(jìn)程,使用命令fg都可以將其轉(zhuǎn)為前臺(tái)運(yùn)行的進(jìn)程枷邪。
對(duì)于進(jìn)程前后臺(tái)的切換榛搔,其控制方法可以看下面的運(yùn)行狀態(tài)圖:

屏幕快照 2022-04-30 16.47.58.png

守護(hù)進(jìn)程

一個(gè)運(yùn)行起來的程序被稱為進(jìn)程,在Linux中有些進(jìn)程不與任何進(jìn)程關(guān)聯(lián)东揣,不論用戶的身份如何践惑,都在后臺(tái)運(yùn)行。這些進(jìn)程的父進(jìn)程是PID為1的進(jìn)程嘶卧,PID為1的進(jìn)程只有在系統(tǒng)關(guān)閉時(shí)才會(huì)被銷毀尔觉。它會(huì)在后臺(tái)一直運(yùn)行等待分配工作,我們將這類進(jìn)程稱之為守護(hù)進(jìn)程芥吟。
守護(hù)進(jìn)程的名字通常會(huì)在最后有一個(gè)d侦铜,表示daemon守護(hù)的意思,例如systemd钟鸵、httpd

最后

希望能通過本文的學(xué)習(xí)钉稍,能夠讓小伙伴對(duì)Linux系統(tǒng)的基本操作有一個(gè)全面的認(rèn)識(shí),希望大家一邊看著文中的內(nèi)容一邊動(dòng)手操作棺耍,這樣才能真正掌握知識(shí)贡未。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子羞秤,更是在濱河造成了極大的恐慌缸托,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瘾蛋,死亡現(xiàn)場(chǎng)離奇詭異俐镐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哺哼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門佩抹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人取董,你說我怎么就攤上這事棍苹。” “怎么了茵汰?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵枢里,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蹂午,道長(zhǎng)栏豺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任豆胸,我火速辦了婚禮奥洼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晚胡。我一直安慰自己灵奖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布估盘。 她就那樣靜靜地躺著瓷患,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忿檩。 梳的紋絲不亂的頭發(fā)上尉尾,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音燥透,去河邊找鬼。 笑死辨图,一個(gè)胖子當(dāng)著我的面吹牛班套,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播故河,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼吱韭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起理盆,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤痘煤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后猿规,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衷快,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年姨俩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蘸拔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡环葵,死狀恐怖调窍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情张遭,我是刑警寧澤邓萨,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站菊卷,受9級(jí)特大地震影響缔恳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜的烁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一褐耳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渴庆,春花似錦铃芦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至耸弄,卻和暖如春咧虎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背计呈。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工砰诵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捌显。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓茁彭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親扶歪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子理肺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容