liunx必知必會(1)

来源:http://www.cnblogs.com/lspz/archive/2017/07/26/7242620.html
-Advertisement-
Play Games

一.liunx目錄結構: (1)/bin中 用戶二進位文件 包含二進位可執行文件。 在單用戶模式下,你需要使用的常見Linux命令都位於此目錄下。系統的所有用戶使用的命令都設在這裡。 (2)/sbin目錄 系統二進位文件 就像/bin,/sbin同樣也包含二進位可執行文件。 但是,在這個目錄下的li ...


一.liunx目錄結構:

(1)/bin中 - 用戶二進位文件
包含二進位可執行文件。
在單用戶模式下,你需要使用的常見Linux命令都位於此目錄下。系統的所有用戶使用的命令都設在這裡。
(2)/sbin目錄 - 系統二進位文件
就像/bin,/sbin同樣也包含二進位可執行文件。
但是,在這個目錄下的linux命令通常由系統管理員使用,對系統進行維護。例如:iptables、reboot、fdisk、ifconfig、swapon命令
(3)/etc - 配置文件
包含所有程式所需的配置文件。
也包含了用於啟動/停止單個程式的啟動和關閉shell腳本。例如:/etc/resolv.conf、/etc/logrotate.conf
(4)/dev - 設備文件
包含設備文件。
這些包括終端設備、USB或連接到系統的任何設備。例如:/dev/tty1、/dev/usbmon0
(5)/proc - 進程信息
包含系統進程的相關信息。
這是一個虛擬的文件系統,包含有關正在運行的進程的信息。例如:/proc/{pid}目錄中包含的與特定pid相關的信息。
這是一個虛擬的文件系統,系統資源以文本信息形式存在。例如:/proc/uptime
(6)/var - 變數文件
var代表變數文件。
這個目錄下可以找到內容可能增長的文件。
這包括 - 系統日誌文件(/var/log);包和資料庫文件(/var/lib);電子郵件(/var/mail);列印隊列(/var/spool);鎖文件(/var/lock);多次重新啟動需要的臨時文件(/var/tmp);
(7)/tmp - 臨時文件
包含系統和用戶創建的臨時文件。
當系統重新啟動時,這個目錄下的文件都將被刪除。
(8)/usr - 用戶程式
包含二進位文件、庫文件、文檔和二級程式的源代碼。
/usr/bin中包含用戶程式的二進位文件。如果你在/bin中找不到用戶二進位文件,到/usr/bin目錄看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系統管理員的二進位文件。如果你在/sbin中找不到系統二進位文件,到/usr/sbin目錄看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的庫。
/usr/local中包含了從源安裝的用戶程式。例如,當你從源安裝Apache,它會在/usr/local/apache2中。
(9)/home - HOME目錄
所有用戶用home目錄來存儲他們的個人檔案。
例如:/home/john、/home/nikita
(10)/boot - 引導載入程式文件
包含引導載入程式相關的文件。
內核的initrd、vmlinux、grub文件位於/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
(11)/lib - 系統庫
包含支持位於/bin和/sbin下的二進位文件的庫文件.
庫文件名為 ld或lib.so.*
例如:ld-2.11.1.so,libncurses.so.5.7
(12)/opt - 可選的附加應用程式
opt代表可選的。
包含從個別廠商的附加應用程式。
附加應用程式應該安裝在/opt/或者/opt/的子目錄下。
(13)/mnt - 掛載目錄
臨時安裝目錄,系統管理員可以掛載文件系統。
(14)/media - 可移動媒體設備
用於掛載可移動設備的臨時目錄。
舉例來說,掛載CD-ROM的/media/cdrom,掛載軟盤驅動器的/media/floppy;
(15)/srv - 服務數據
srv代表服務。
包含伺服器特定服務相關的數據。
例如,/srv/cvs包含cvs相關的數據。


二.常用命令:
1、查看當前所在的工作目錄的全路徑 pwd
2、查看當前系統的時間 date
date +%Y-%m-%d

3、查看有誰線上(哪些人登陸到了伺服器)
who 查看當前線上
last 查看最近的登陸歷史記錄
last -3

4、關機/重啟
關機(必須用root用戶)
shutdown -h now ## 立刻關機
shutdown -h +10 ## 10分鐘以後關機
shutdown -h 12:00:00 ##12點整的時候關機
halt # 等於立刻關機
重啟
shutdown -r now
reboot # 等於立刻重啟

5、清屏
clear ## 或者用快捷鍵 ctrl + l

6、退出當前進程
ctrl+c 有些程式也可以用q鍵退出

7、掛起當前進程
ctrl+z ## 進程會掛起到後臺

8、echo
相當於java中System.out.println(userName)


三.目錄、文件操作

1 查看目錄信息
ls / ## 查看根目錄下的子節點(文件夾和文件)信息
ls -al ## -a是顯示隱藏文件 -l是以更詳細的列表形式顯示
ls -l 有一個別名: ll 可以直接使用ll

2 切換工作目錄
cd /home/test ## 切換到用戶主目錄
cd ~ ## 切換到用戶主目錄
cd 什麼路徑都不帶,則回到用戶的主目錄

cd - ## 回退到上次所在的目錄
3 創建文件夾
mkdir aaa ## 這是相對路徑的寫法
mkdir /data ## 這是絕對路徑的寫法
mkdir -p aaa/bbb/ccc ## 級聯創建目錄

4 刪除文件夾
rmdir aaa ## 可以刪除空目錄
rm -r aaa ## 可以把aaa整個文件夾及其中的所有子節點全部刪除
rm -rf aaa ## 強制刪除aaa

5 修改文件夾名稱
mv aaa angelababy
mv本質上是移動
mv install.log aaa/ 將當前目錄下的install.log 移動到aaa文件夾中去
rename 可以用來批量更改文件名
rename .txt .txt.bak *

6.## 創建一個空文件 touch somefile.1

7.拷貝/刪除/移動
cp somefile.1 /home/
rm /hom/somefile.1
rm -rf /homep/somefile.1
mv /home/somefile.1 ../

8.查看文件內容
cat somefile 一次性將文件內容全部輸出(控制台)

分頁查看文件的命令:
more somefile 可以翻頁查看, 下翻一頁(空格) 上翻一頁(b) 退出(q)
less somefile 可以翻頁查看,下翻一頁(空格) 上翻一頁(b),上翻一行(↑) 下翻一行(↓) 可以搜索關鍵字(/keyword)
跳到文件末尾: G
跳到文件首行: gg
退出less : q

tail -10 install.log 查看文件尾部的10行
tail +10 install.log 查看文件 10-->末行
tail -f install.log 小f跟蹤文件的唯一inode號,就算文件改名後,還是跟蹤原來這個inode表示的文件
tail -F install.log 大F按照文件名來跟蹤

head -10 install.log 查看文件頭部的10行


四.VI編輯器

1、最基本用法
vi somefile
1/ 首先會進入“一般模式”,此模式只接受各種命令快捷鍵,不能編輯文件內容
2/ 按i鍵,就會從一般模式進入編輯模式,此模式下,敲入的都是文件內容
3/ 編輯完成之後,按Esc鍵退出編輯模式,回到一般模式;
4/ 再按:,進入“底行命令模式”,輸入wq命令,回車即可保存退出

2、常用快捷鍵
一些有用的快捷鍵(在一般模式下使用):
a 在游標後一位開始插入
A 在該行的最後插入
I 在該行的最前面插入
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 刪除一行
3dd 刪除3行
yy 複製一行
3yy 複製3行
p 粘貼
u undo
ctrl + r redo

v 進入字元選擇模式,選擇完成後,按y複製,按p粘貼
ctrl+v 進入塊選擇模式,選擇完成後,按y複製,按p粘貼
shift+v 進入行選擇模式,選擇完成後,按y複製,按p粘貼

3、查找並替換
(在底行命令模式中輸入)
1顯示行號
:set nu
2 隱藏行號
:set nonu
3 查找關鍵字
:/you ## 效果:查找文件中出現的you,並定位到第一個找到的地方,按n可以定位到下一個匹配位置(按N定位到上一個)

4 替換操作
:s/sad/bbb 查找游標所在行的第一個sad,替換為bbb
:%s/sad/bbb 查找文件中所有sad,替換為bbb


五.打包壓縮

1、gzip壓縮
gzip a.txt

2、解壓
gunzip a.txt.gz
gzip -d a.txt.gz

3、bzip2壓縮
bzip2 a

4、解壓
bunzip2 a.bz2
bzip2 -d a.bz2

5、打包:將指定文件或文件夾
tar -cvf bak.tar ./aaa
將/etc/password追加文件到bak.tar中(r)
tar -rvf bak.tar /etc/password

6、解壓
tar -xvf bak.tar

7、打包並壓縮
tar -zcvf a.tar.gz aaa/

8、解包並解壓縮(重要的事情說三遍!!!)
tar -zxvf a.tar.gz

解壓到/usr/下
tar -zxvf a.tar.gz -C /usr


六、查找命令

1 常用查找命令的使用
1、查找可執行的命令所在的路徑:
which ls
2、查找可執行的命令和幫助的位置:
whereis ls
3、從某個文件夾開始查找文件
find / -name "test"
find / -name "test
" -ls
5、查找並刪除
find / -name "test" -ok rm {} \;
find / -name "test
" -exec rm {} \;
6、查找用戶為test的文件
find /usr -user test-ls
7、查找用戶為test的文件夾
find /home -user test -type d -ls
8、查找許可權為777的文件
find / -perm -777 -type d -ls

**、顯示歷史命令
history

2 grep命令
1/ 基本使用
查詢包含test的行
grep test/etc/password
grep aaa ./*.txt

2/ cut截取以:分割保留第七段
grep test/etc/passwd | cut -d: -f7

3/ 查詢不包含test的行
grep -v test/etc/passwd

查找不是以#開頭的行
grep -v '^#' a.txt | grep -v '^$'

以h或r開頭的
grep '^[hr]' /etc/passwd

不是以h和r開頭的
grep '^[^hr]' /etc/passwd

不是以h到r開頭的
grep '^[^h-r]' /etc/passwd


七、文件許可權的操作

1 linux文件許可權的描述格式解讀
drwxr-xr-x (也可以用二進位表示 111 101 101 --> 755)

d:標識節點類型(d:文件夾 -:文件 l:鏈接)
r:可讀 w:可寫 x:可執行
第一組rwx: ## 表示這個文件的擁有者對它的許可權:可讀可寫可執行
第二組r-x: ## 表示這個文件的所屬組用戶對它的許可權:可讀,不可寫,可執行
第三組r-x: ## 表示這個文件的其他用戶(相對於上面兩類用戶)對它的許可權:可讀,不可寫,可執行

2 修改文件許可權
chmod g-rw haha.dat ## 表示將haha.dat對所屬組的rw許可權取消
chmod o-rw haha.dat ## 表示將haha.dat對其他人的rw許可權取消
chmod u+x haha.dat ## 表示將haha.dat對所屬用戶的許可權增加x
chmod a-x haha.dat ## 表示將haha.dat對所用戶取消x許可權

也可以用數字的方式來修改許可權
chmod 664 haha.dat
就會修改成 rw-rw-r--
如果要將一個文件夾的所有內容許可權統一修改,則可以-R參數
chmod -R 770 aaa/
3 修改文件所有權
<只有root許可權能執行>
chown angela aaa ## 改變所屬用戶
chown :angela aaa ## 改變所屬組
chown angela:angela aaa/ ## 同時修改所屬用戶和所屬組

補充:
r: 對文件來說,是可讀取內容; 對文件夾來說,是可以ls
w: 對文件來說,是可修改文件的內容;對文件夾來說,是可以在其中創建或者刪除子節點
x: 對文件來說,是能否運行這個文件;對文件夾來說,是能否cd進入這個目錄


八 基本的用戶管理

添加一個用戶:
1、 useradd spark
2、 passwd spark 根據提示設置密碼;
即可

刪除一個用戶:
userdel -r spark 加一個-r就表示把用戶及用戶的主目錄都刪除

3.為用戶配置sudo許可權
用root編輯 vi /etc/sudoers
在文件的如下位置,為text添加一行即可
root ALL=(ALL) ALL
test ALL=(ALL) ALL

然後,text用戶就可以用sudo來執行系統級別的指令
[text@shizhan ~]$ sudo useradd huangxiaoming


九系統管理操作

1 掛載外部存儲設備
可以掛載光碟、硬碟、磁帶、光碟鏡像文件等
1/ 掛載光碟機
mkdir /mnt/cdrom 創建一個目錄,用來掛載
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ 將設備/dev/cdrom掛載到 掛載點 : /mnt/cdrom中

2/ 掛載光碟鏡像文件(.iso文件)
mount -t iso9660 -o loop /home/test/Centos-6.7.DVD.iso /mnt/centos
註:掛載的資源在重啟後即失效,需要重新掛載。要想自動掛載,可以將掛載信息設置到/etc/fstab配置文件中,

3/ 卸載 umount
umount /mnt/cdrom

** 存儲空間查看
df -h

4.系統服務管理
service --status-all # 查看系統所有的後臺服務進程
service sshd status # 查看指定的後臺服務進程的狀態
service sshd stop
service sshd start
service sshd restart

配置後臺服務進程的開機自啟
chkconfig httpd on ## 讓httpd服務開機自啟
chkconfig httpd off ## 讓httpd服務開機不要自啟

5.進程管理
top
free
ps -ef | grep ssh
kill -9 2358 ## 將指定進程號的進程殺死


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

-Advertisement-
Play Games
更多相關文章
  • 目前mongodb已經出到3.x,相對於2.x改動較大,本著學新不學舊的原則來搗鼓nosql資料庫。最初想著apt-get安裝但是軟體源上都是2.x的,遂下載好後傳到伺服器安裝。 1.下載 不得不說國內的牆太厲害,連mongodb這類人畜無害的都擋了,雖然能夠訪問官網也能下載,但是速度從來不超過三十 ...
  • 漏洞編號:CVE-2017-8464 漏洞等級:嚴重 漏洞概要:如果用戶打開攻擊者精心構造的惡意LNK文件,則會造成遠程代碼執行。成功利用此漏洞的攻擊者可以獲得與本地用戶相同的用戶許可權。 攻擊者可以通過可移動驅動器(U盤)或遠程共用等方式將包含惡意LNK文件和與之相關的惡意二進位文件傳播給用戶。當用 ...
  • 我們可以採用類似安全模式的方法修改初始密碼先執行命令 mysqld_safe --skip-grant-tables & (設置成安全模式)&,表示在後臺運行,不再後臺運行的話,就再打開一個終端咯。# mysqlmysql> use mysql;mysql> update user set auth ...
  • zabbix版本: 3.2.5 zabbix 自帶的windows模板中沒有監控cpu使用率的,可以在模板里自己添加 1. 配置 > 模板 > Template OS Windows 2. 監控項 > 添加監控項 應用集 : CPU 3. 圖形 > 添加圖形 取個名稱, 監控項選擇剛纔的新建的 4. ...
  • 紅帽安裝rpm安裝MySQL時爆出警告: 警告:MySQL-server-5.5.46-1.linux2.6.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY 原因:這是由於yum安裝了舊版本的GPG keys造成的 解決辦法:後面加 ...
  • 回到目錄 Swarm概念 Swarm是Docker公司推出的用來管理docker集群,它將一群Docker宿主機變成一個單一的,虛擬的主機。Swarm使用標準的Docker API介面作為其前端訪問入口,換言之,各種形式的Docker Client(docker client in Go, dock ...
  • I2C匯流排是由Philips公司開發的一種簡單、雙向二線制同步串列匯流排。它只需要兩根線即可在連接於匯流排上的器件之間傳送信息。 To control multi-master IIC-bus operations, values must be written to the following reg ...
  • linux無法解析主機 xxx: 解決方法: 1. sudo gedit /etc/hosts 找到如下行: 127.0.1.1 XXX 將其修改為: 127.0.1.1 (你現在的主機名) ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...