step2 . day2 Linux基础命令和常用知识汇总
整理了一下,這個階段雖然也算嵌入式學習,但是總歸是Linux系統知識,這個文件夾是為RHCE考試而準備的知識點整理文件夾,正好也把學過的知識做了一個出版整理,放到里面。
從明天開始,要開始shell腳本編程知識的學習了,基本學完這個,RHCE考試的基礎知識也應該差不多了吧
?
一、工具準備
1.了解Linux系統和Unix和Windows區別
2.Linux成立歷史
3.GNU GPL協議,GCC編譯器等關鍵名稱
4.安裝vmware,配置Linux配置,插入鏡像,啟動安裝。
二、Linux文件系統介紹
Linux文件系統介紹:Linux一切皆文件,遵從FHS(filesystem hierarchy standard)
/ 根目錄
/bin 用戶命令和二進制目錄
/sbin 系統二進制文件
/boot 系統啟動相關文件
/etc 系統啟動配置文件
/dev 設備文件
/home 用戶家目錄
/lib 庫文件目錄
/mnt/hgfs/share 共享目錄
三、Linux使用shell的相關知識
1.開關機(開機需要從虛擬機出點擊開啟此虛擬機)
ctrl + alt + F1 進入到純命令行
ctrl + alt + F7 回到圖形界面
關機重啟命令:
sudo shutdown -h now 立即關機
sudo poweroff 關機
sudo shutdown -h +n n 分鐘后關機
sudo shutdown -r now 立即重啟
sudoreboot 直接重啟
sudo shutdown -c 取消關機或者重啟
2.打開terminal(關閉terminal點×或者輸入exit)
雙擊圖標
Ctrl+alt +t 用戶界面下打開terminal
ctrl+shift +n 用戶界面再打開一個(相同路徑)
chrl +shifr +t 用戶界面左右分屏再打開一個(相同路徑)
3.terminal開機界面
Linux @ Ubuntu : ~ $
用戶名 間隔 主機名 間隔 家目錄 普通用戶(#為超級用戶標志)
4.shell 相關命令(shell是命令行解釋器,將用戶解析為操作系統可以理解的指令,實現用戶
和內核的交互操作多個shell命令可以用;隔開,如果一行寫不完 用\表明未結束)
shell命令區分大小寫
shell命令三要素(命令 參數 ?)用空格隔開
多個命令用;隔開
一條命令一行寫不完用\連接符
whoami 查看用戶名
hostname 查看主機名
ls 顯示當前目錄文件列表
ls -l 查看文件屬性(數值表示:如果是目錄則表示子目錄個數,如果是文件則代表副本個數)
ls -a 查看所有文件包含. ..開頭的隱藏文件
ls -lh 文件大小轉換為相應數量級
ls -R 文件遞歸顯示
ls -i 顯示文件iNode號
注意ls -l后信息解釋
bsp -lcd 文件類型 (塊設備、套接字、管道、-普通文件、鏈接、字符設備、文檔 )
rwx rwx r-x 文件權限 (r 4 讀 w 2 寫 x 1 執行)
用戶 組 其他用戶
u g o a(all)
cd 切換目錄(相對路徑和絕對路徑)
cd cd ~ cd /home/linux 回家目錄
cd - 回到上次操作目錄
cd ../ 返回上級目錄
cd../../ 上上級目錄
cd /mnt/hgfs/share 共享目錄
pwd 顯示當前工作目錄
clear 清屏 Ctrl+l
touch 創建文件 文件存在則是修改時間戳
tab 命令自動補全
mkdir 創建目錄
mkdir -p 遞歸創建
mkdir -m 664 hello 創建文件并給權限
cp 拷貝 -arf 強制拷貝
mv 移動或者重命名(相同路徑不允許相同文件或目錄存在)
rm 文件名 刪除,rm *.c 通配符刪除許多文件
rm -rf 文件名 刪除目錄 -r是遞歸刪除 -f是強制刪除
echo 打印 默認是從屏幕輸入打印到屏幕 >重定向符號 >>追加符
(有雙引號為原樣輸出,沒有雙引號空格縮減為一個)
-n 轉義字符不換行,-e 支持轉義字符輸出
cat 查看文件內容并在終端打印 -n 顯示行號(空行不顯示)
nl 1.c 帶行號在終端顯示,空行顯示行號
nl -b a 1.c 空行也帶行號
head -n 顯示前n行,不帶參數默認10行
tail -n 顯示倒n行,不帶默認10行
more 分頁顯示文件內容 空格翻頁 回車換行 q退出
less 分頁顯示內容 功能同上,可以輸入/查找字符 顯示高亮
wc 對文件內容進行統計 -c 字符統計 -w字統計 -l行統計
cut 對字符串進行分割 -d 指定分隔符 -f指定要分割區域
cut -d ":" -f 1 filename 通常結合管道符合前面命令結合使用
| 管道符,將前一個命令的輸出作為下一個命令的輸入,管道符連接的第一個命令必須有輸出才可以 沒有輸出則沒有任何意義
file a.out 查看文件信息
find 查找文件所在路徑 參數-name -0664
find ./ -name file.c 在當前目錄及子目錄中尋找制定文件
grep 搜文件中的字符串
grep "string" 文件 在指定文件中搜索
grep “string” * 在當前目錄所有文件下搜索,不包含子目錄
grep "string" * -nR 在當前目錄所有文件中搜索,包含子目錄
* 當前目錄下所有文件,-R遞歸顯示,-n顯示行號
"^string”以string開頭的行,
“string$”以string結尾的行
“^string$”以string開頭且結尾的行
“string”所有包含string的行
history 將歷史命令打印至終端
history 10 打印10個命令,可以在.bash_history下查看歷史命令記錄
修改配置文件后要source /.bashrc
`` (Esc鍵下的按鈕)或 $() 命令置換,將一個命令的輸出替換成另一個命令的參數
alias 列出當前系統中已經定義好的別名
alias listoft = 'ls /var/cache' 臨時定義別名
取消別名的定義 unalias listsoft
修改配置文件.bashrc .profile 永久使用別名:
每次修改完成配置文件后需要執行 source .bashrc 更新配置
通配符
* 匹配任意長度字符
? 匹配一個字符長度
[123] 匹配特定的一個字符
[1-5] 匹配特定范圍的一個字符
[][] 匹配兩個字符
[^123] 匹配之外字符
輸入輸出重定向(>輸出 <輸入)
>file 將內容復制到文件中,清空文件之前內容
ls >file 將ls顯示的內容以沖頂先輸入到文件中
>>file 為追加
2>file 將出錯信息加入的文件中
&> 不區分對錯將信息加入到文件
Ctrl+d 結束鍵盤輸入
whereis ls 查找命令所在目錄及幫助文檔
which ls 搜索命令所在目錄及別名信息
info 查看開發軟件包或者程序中的額外幫助文檔
diff 比較兩個文件成差別(只比較文件) diff 1.c 2.c
file 查看文件類型信息(包含架構等信息) file 1.c
date 顯示系統時間
sudo date -s 修改系統時間
chmod 修改權限 chmod 0664 hello chmod a-x a.out
chown 修改文件用戶名或者所在組
chown 用戶名 file
chown 用戶名:組名 file
chown root *-R 所有文件的所有者都改為root 包含子目錄
chgrp 修改文件所在的組
chgrp 組名 file
su root 從普通用戶切換到root超級用戶 輸入密碼不會顯示
exit 離開超級用戶或者退出terminal
sudo paaswd root 修改超級用戶密碼
5.vim 編輯器常用命令(vi 文件名,創建并打開 或者打開文件)
vi -o name name 打開多個文件 分屏顯示
底行模式
yy 拷貝1行
nyy 拷貝n行
dd 剪切1行
ndd 剪切n行
p 粘貼
u 撤銷(反撤銷Ctrl+r)
gg =G 對齊(選中后按=)
/要查找的字符 查找字符串
/^查找字符 查找字符并在每行第一次出現位置高亮 shift+# 選中的詞高亮
/字符$ 查找字符串并在每行最后一次出現位置高亮
n 下一個
N 上一個
插入模式:
a 光標當前位置后插入
A 光標當前行位插入
i 光標當前位置插入
I 光標當前行首插入
o 當前位置下一行插入行
O 光標擋墻行上插入行
底行模式:
:w 保存
:wq 保存并退出
:x 保存并退出
:wqa 保存并退出所有
:q 退出未修改文件
:q! 強制退出
:n 跳轉到n行
:nohl 取消高亮
:set nu 設置行號
:set nonu 設置取消行號
:set mouse = 可拷貝(安裝shift鼠標中右鍵可拷貝)
:set mouse =a 取消拷貝
:60,65y 起止行號 底行模式下的拷貝 剪切等
:%s/舊/新/g, 字符串替換 %可以替換成起止行號(s保留),/g不加表示只替換行首出現位置
vsp 垂直打開另一個文件
vs 水平打開另一個文件
6. 壓縮解壓命令
gzip /gunzip + file
bzip2 /bunzip2 +file
xz / unxz +file 三種壓縮格式
gzip 1.c 以上指令只能對文件進行操作,不能對目錄進行操作
tar 對目錄進行打包 生成格式位gz bz2 xz
-c 創建壓縮
-x解壓
-z gz格式
-j bz2格式
-J xz格式
-v 顯示過程
-f 制定生產文件名 以上參數可以放在一起使用,f參數需要放到后面
tar -cvf filename.tar.gz filename
tar -czvf dir.tar.gz dir
tar -cjvf dir.tar.bz2 dir
tar -cJvf dir.tar.xz dir
解壓 tar -xvf dir.tar 對所有格式解壓
tar -xzvf dir.tar.gz
tar -xjvf dir.tar.bz2
tar -xJvf dir.tar.xz
7.軟件包安裝相關命令
背景:Debian Linux首先提出軟件包管理機制 Deb包
Redhat Linux基于這個理念退出了自己的軟件包管理機制 Rpm軟件包
軟件包的命名 rxvt_1%3a2.6.4-14_i386.deb
Filename_Version-Reversion_Architecture.deb
軟件名 軟件版本 修訂版本 體系架構
通過 file a.out查看文件信息
dpkg命令 (離線安裝,需要先準備好軟件包,軟件間的依賴關系要自己準備,需sudo權限)
sudo dpkg -i 軟件包名 安裝軟件 sudo dpkg -i *.deb 多個安裝包同事進行安裝
sudo dpkg -r 軟件名 卸載軟件
sudo dpkg -P 軟件名 徹底卸載軟件 包含配置文件
sudo dpkg -p 軟件名 查看軟件具體信息
sudo dpkg -L 軟件名 查看軟件安裝到具體目錄信息
sudo dpkg -l 查看所有安裝的Deb安裝包,顯示版本號及說明
sudo dpkg -s 查看軟件包安裝狀態
apt-get命令 (在線安裝,解決依賴關系,本質是先下載到本地,再安裝)
sudo apt-get install 軟件包名 軟件安裝
sudo apt-get remove 軟件名 軟件卸載
sudo apt-get --purge remove 軟件名 徹底卸載包含配置文件
sudo apt-get -reinstall 軟件包名 重新安裝
sudo apt-get clean 清除下載軟件包
sudo apt-get autoclean 自動清除下載軟件包
sudo apt-get upgrade 更新所有軟件包
sudo apt-get check
sudo apt-get -f install 修復軟件依賴關系
sudo apt-cache show gcc 顯示軟件詳細信息
sudo apt-cache policy gcc 查詢軟件包安裝狀態 和dpkg -s命令相似
sudo apt-cache depends gcc 顯示軟件包依賴關系
sudo apt-cache independs gcc 顯示軟件包被依賴關系
apt安裝完的軟件deb包存放在:
/var/cache/apt/archives$
文檔一般在:/usr/share
可執行文件:/usr/bin
配置文件:/etc
lib文件:/usr/lib
如果軟件包安裝過程中出現depends...
1.sudo apt-get update 更新索引
2.sudo apt-get f install 更新依賴
3.重新安裝軟件
8. 文件鏈接命令(軟連接、硬鏈接)
軟鏈接:是一種文件類型,類似于快捷方式用來記錄目標文件路徑
ln -s 目標文件(文件或者路徑) 鏈接文件
ln -s /home/linux/step2/day2 share
cd share就可以進入目錄
硬鏈接:類似創建一個別名 iNode號一樣,不占磁盤空間,(只能是文件)常用來備份
ln 目標文件 硬鏈接文件
注意
硬鏈接不能針對目錄操作
在共享文件下 軟硬鏈接不支持創建
在系統任意路徑下拷貝鏈接到共享目錄都可以,但是軟連接可能失效(打包后傳遞)
9.設置環境變量命令
env 查看系統中的環境變量
設置臨時環境變量
export PATH ="$PATH:/home/linux/step2/day2"
添加永久環境變量
a. 打開/etc/environment配置文件,將對應可執行文件路徑添加到后面 用:隔開
b source /etc/environment文件,讓文件生效
c.測試使用
echo $PATH 查看環境變量
8.磁盤管理
磁盤管理
sudo fdisk -l 查看系統中磁盤信息
sudo df -hT 查看分區使用情況
sudo mount /dev/設備文件名 掛載目錄 手動掛載目錄
sudo unmount 掛載目錄 取消掛載
df
df -T
df -h
du -h -s
10.用戶管理相關命令
35 fengjunhui:x:1000:1000:fengjunhui,,,:/home/fengjunhui:/bin/bash
用戶名 密碼 UID GID 描述性內容 家目錄 shell
sudo adduser 用戶名
sudo useradd 用戶名 添加用戶sudo adduser huiji
sudo deluser 用戶名 刪除用戶
sudo deluser --remove-hoem 連同用戶家目錄一起刪除
sudo userdel 用戶名 刪除用戶
sudo userdel -r 用戶名 連同用戶家目錄一起刪除
sudo usermod -l 新名字 舊名字 修改用戶名
sudo groupadd 組名 創建組
sudo groupdel 組名 刪除組
sudo usermod -a -G 組名 用戶名 將用戶添加到指定組
sudo gpasswd -d 用戶名 組名 刪除最內成員
sudo passwd 用戶名 修改用戶密碼
passwd 用戶名 修改普通用戶密碼
su root 臨時用戶切換
exit 離開臨時用戶
關鍵文件
/etc/passwd 存放系統用戶的信息
用戶登陸時,系統查詢這個文件,確定用戶的UID并驗證用戶口令
/etc/shadow 用戶密碼
/etc/group 存放系統組的信息
74 bj1906:x:1005:linux
組名 密碼 GID 所屬的組
/etc/skel 創建新用戶的時候,拷貝這個目錄下的配置文件到用戶主目錄
11. 網絡管理相關命令
1.網絡基礎
(1)IP : 在網絡中主機的唯一標示 表示 : 點分十進制 示例IP地址: 192.168.2.100
(2)組成 : 網絡號(主機所在的網絡) 192.168.2.0 + 主機號(網絡中主機編號) + 100
(3)IPv4(32bit,4byte) unsigned long ,IPv6(128bit,16byte) ::冒分十六進制 xxx
(4)分類
1100 0000
1101 1111
1100 0000
1101 1111
網絡號 + 主機號 最高位規定 第一個字節范圍
A 1 + 3 0 [0-127] 0000 0000 - 0111 1111
B 2 + 2 10 [128-191] 1000 0000 - 1011 1111
----------------------------------------------------------
C 3 + 1 110 [192,223] 110 0 0000 - 110 1 1111
容納的主機數:1byte [0-255]
192.168.0.0(表示網絡) 192.168.0.255(廣播地址)
---------------------------------------------------------
D 組播(NBA) 1110 [224,239] 1110 0000 - 1110 1111
E 未使用(用于測試:)
問題:局域網內,主機間通信,遵從什么呢?
回答:網絡號一樣,主機號不一樣
(5)端口號(vi /etc/services) unsigned short
為了區分一臺主機接收到的數據包應該轉交給哪個進程來進行處理,使用端口號來區別
TCP端口號與UDP端口號獨立
端口號一般由IANA (Internet Assigned Numbers Authority) 管理
眾所周知端口:1~1023(1~255之間為眾所周知端口,256~1023端口通常由UNIX系統占用)
已登記端口 :1024~49151 (5001 --)
動態或私有端口:49152~65535
一般使用:5001 -- 6666 8888 7777 9999 10000 10001
(6)子網掩碼
255.255.255.0 & 192.168.2.3 = 192.168.2.0(網絡號)
子網掩碼 & IP地址 == 網絡號 來判定目標主機和當前主機是否在同一個網絡
(~子網掩碼) & IP地址 == 主機號
問:一個網絡的子網掩碼為255.255.255.192,那么該網絡中最多能夠連接多少臺主機?
答:256-192=64,為地址塊。
又因為首尾2個IP地址不能用于主機(一個是網絡地址,一個是廣播地址),所以減去2,等于62個可用主機地址。
(7)網關
192.168.1.1
可以和外網通信的主機ip地址都可以作為網關,習慣用路由器的IP地址作為網關
如果當前的主機判別目標主機不在同一個網絡中,向目標主機發送的數據將發送到網關,由網關將數據包轉發外網
(8)DNS
域名解析,將域名轉換成IP地址 : 域名不變---獲取IP
www.baidu.com -> ip --->mac
免費使用的域名服務器 這兩個是公共域名解析服務。
8.8.8.8
114.114.114.114
192.168.1.1
(9)MAC地址:網卡的物理地址:唯一表示一個網卡
(10)ARP: rarp
地址解析協議,將IP地址轉化為MAC地址
問? 從網頁發送數據到對方收到數據都經過哪些協議?
域名--->DNS--->IP ---->TCP/UDP --->IP--->ARP--->MAC ===》xxxx
2.查看IP地址
ipconfig(windows)/ifconfig(linux)
臨時修改ip地址
sudo ifconfig eth0 ip地址(192.168.2.200)
sudo ifconfig eth0 down 關閉
sudo ifconfig eth0 up 開啟
service network restart
/etc/init.d/networking restart
查看當前的網卡:ifconfig -a
lo: 本地回環地址 , 軟件層次的網卡,只能在本電腦上進行回環數據傳輸
網絡適配器
-----------------------------------------------------------------------------------------------
橋接模式 --- 默認使用VMnet0,直接連接到物理網絡 單獨的IP 實際存在(當前局域網)
-----------------------------------------------------------------------------------------------
NAT模式 --- a. 默認使用VMnet8,提供DHCP服務(動態IP分配)
b. 虛擬機可以和物理主機互相訪問,但不可訪問主機所在網絡的其他計算機,可訪問外部網絡
本質: window是路由器,Ubuntu是主機 --- (對外不可見)
-----------------------------------------------------------------------------------------------
僅主機模式-- a. 默認使用VMnet1,提DHCP服務 (對外不可見且不可聯網,被隔離)
b. 虛擬機可以和物理主機互相訪問,虛擬機和當前主機組成的網絡下的虛擬機也可以通信,但虛擬機無法訪問外部網絡,
3.ping 測試網絡是否連接
ping 目標主機IP地址 或 域名
ping 192.168.0.1
ping www.baidu.com
ping 192.168.0.42
通過ubuntu配置文件來設置網絡方式
1. 修改/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.223
netmask 255.255.255.0
gateway 192.168.1.1
2. 修改/etc/resolv.conf ameserver 8.8.8.8 (修改dns服務器)
3. /etc/rc.local echo "nameserver 8.8.8.8" >> /etc/resolv.conf
重啟網絡服務: sudo /etc/init.d/networking restart
重啟網卡
sudo ifconfig eth0 down
sudo ifconfig eth0 up
轉載于:https://www.cnblogs.com/huiji12321/p/11173039.html
總結
以上是生活随笔為你收集整理的step2 . day2 Linux基础命令和常用知识汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shiro缓存使用Redis、Ehcac
- 下一篇: install_mysql57.sh