本文已同步到github web前端開發中,需掌握的linux概念及經常使用命令,歡迎收藏,歡迎Star前端
前一段時間閱讀了《鳥哥的linux私房菜》的部分章節,也作了一些筆記,就在我再次打開筆記時,發現不少命令這是啥東東,有的都忘了,不過從頭看一遍本身的筆記,就很快想起來了,從我我的的角度,平時學習過程當中,記筆記確實是必要的。因此想把本身整理出的這些筆記整理一下,也分享給你們。那從何提及呢?既然是講linux筆記,那就先說一句吧,在linux中,一切皆文件。node
環境變量(environment variables) 通常是指在操做系統中用來指定操做系統運行環境的一些參數,如:臨時文件夾位置和系統文件夾位置等。環境變量是在操做系統中一個具備特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。
查看環境變量的配置格式, 如查看$PS1(操做系統及當前用戶的相關信息)的配置linux
echo $PS1
臨時設置直接給$PS1賦值便可git
$PS1='[\u@\h \w]$'
如需永久生效,則須要修改/etc/profile文件的配置github
export PS1="[\u@\h \t]$"
而後執行,source命令便可(一般用於從新執行剛修改的初始化文件,使之當即生效,而沒必要註銷並從新登陸)web
source /etc/profile
命令存放的路徑, 是系統建立好的, 供用戶使用, 隨時隨地使用
echo $PATH // 查看PATH環境變量
在執行命令如 ls 的時候, 會在PATH中查找, 沒有提示command not foundshell
命令軟件可安裝在以下目錄中vim
在同一分區中, inode號碼相同的文件互爲硬連接, 硬連接也就是文件的入口, 通常都是系統默認建立的防止誤刪除, 建立硬連接只能給文件建立硬連接, 不能給目錄建立硬連接
建立硬連接:segmentfault
ln 源文件入口 建立的硬連接入口
例如: 給 /test/a.txt 建立一個硬連接windows
存放的源文件的位置(inode節點號與源文件不一樣),至關於windows的快捷方式
建立軟連接:
ln -s 源文件入口 建立的軟連接入口
例如: 給 /test/a.txt 建立一個軟連接
如何查看文件被哪一個進程調用
lsof | grep 文件名
若是硬連接數爲0, 但文件被進程調用, 重啓對應的軟件或服務便可
3.1 vim快捷鍵
3.2 編輯、保存、退出操做
注意: vim編輯文件, 輸入法必須在英文模式下
目錄 | 功能 |
---|---|
/etc/profile | 通常進行系統全局環境變量永久生效或別名的配置文件 |
/etc/selinux/config | selinux防火牆的配置文件 |
/etc/init.d/iptables | iptables防火牆的配置文件 |
/etc/sysconfig/i18n | 字符集的配置文件 |
/etc/sysconfig/network-scripts/ifcfg-eth0 | 網卡配置文件 |
/etc/sysconfig/network | 可配置主機名 |
/etc/hosts | 解析主機名與ip地址的對應關係 |
/etc/bashrc | 別名配置文件 |
網卡配置文件的位置在/etc/sysconfig/network-scripts/ifcfg-eth0, 默認配置項包括:
1.static/none: 固定ip,需手動設置
2.dhcp: 系統默認自動獲取
6.1 查看linux中默認的別名設置
執行alias命令便可
alias
輸出以下:
6.2 別名設置
6.2.1 臨時生效
臨時設置命令的別名, 命令行直接alias + 命令 = "自定義命令"便可, 如
alias rm="echo xxx"
在命令行中執行:
rm /a.txt // 輸出xxx a.txt
注意:
1.當從新登陸服務器後, 別名設置失敗
2.在設置別名後, 如與原來命令功能不一樣, 但還想使用的話, 則在執行命令前加' '便可
\rm a.txt //這時rm原有功能生效
6.2.2 永久生效
想要讓別名不管是否重啓服務器仍是從新登陸服務器都生效, 則需在 /etc/profile中,進行配置 alias rm="echo xxx", 而後執行命令:
source /etc/profile
這樣,rm的別名設置將永久生效
6.3 取消別名設置
unalias rm
7.1 yum
是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器, 在linux環境下, 就可使用yum命令,前提是須要網絡。
特色:
yum install tree -y
7.2 rpm
在linux環境下, 就可使用yum命令,不須要網絡, 可是須要掛在光盤, 來提供軟件包的庫。
1.把設備掛在到服務器的目錄下
mount /dev/chrom /mnt
2.查看設備是否掛在成功
df -h
3. 執行rpm命令安裝須要的軟件包,如:
rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
4.檢查是否安裝成功lrzsz軟件包
rmp -qa lrzsz
5.能夠查看安裝的軟件包中的內容(可執行命令):
rpm -ql lrzsz
6.rpm 刪除安裝的軟件包:
rpm -e lrzsz
7.3 編譯安裝
默認安裝到/usr/local目錄下, 須要本身安裝依賴
8.1 建立壓縮包
(1). 打包/etc目錄到 /tmp/etc.tar.gz
tar zcvf /tmp/etc.tar.gz /etc // z 經過gzipg工具進行壓縮 // c create 建立壓縮包文件 // v verbose 顯示壓縮過程 // f 指定文件
(2). 打包/etc目錄到 /tmp/etc.tar.gz 並排除掉/etc/services
tar zcvf /tmp/etc.tar.gz /etc --exclude=/etc/services
8.2 查看壓縮包內容
tar tf /tmp/etc.tar.gz
8.3 解壓壓縮包
8.3.1 解壓到當前路徑
tar xf /tmp/etc.tar.gz // 默認解壓到當前路徑
8.3.2 解壓到指定目錄下
tar xf /tmp/etc.tar.gz -C /ttt // -C 解壓到指定目錄下
9.1. 查看磁盤各分區佔用狀況
df -h
9.2. 進入分區使用率最高的查看該分區下各文件block大小
du -sh .*| sort -h //一層一層排查,確認好後再刪除
9.3. 查看系統中inode佔用磁盤狀況
df -ih // 主要是查看系統中的小文件 // -i 顯示inode號 // -h 人能夠閱讀懂得顯示
9.4. 文件沒有被完全刪除(硬連接數爲0,可是文件被系統進程所調用)
format and display the on-line manual pages 使用手冊
想查看哪一個命令如何使用,如查看ls命令如何使用:
man ls
show / manipulate routing, devices, policy routing and tunnels 顯示網卡ip地址信息
知識點:
1. ip a // ip address 縮寫
shows the full path of (shell) commands 展現命令的完整路徑
查看madir命令的完整路徑
which mkdir
print name of current/working directory 顯示當前工做目錄
list directory contents 列出目錄的全部內容
5.1 列出/root目錄下的全部目錄及文件
cd /root ls
5.2 列出/root目錄下的全部目錄及文件,並顯示文件的相關信息
``` cd /root ls -l // 至關於ll, -l : use a long listing format, 展現文件詳細信息 ```
-make directories 建立目錄
6.1. 建立 /data文件夾
mkdir /data
6.2. 用一條命令完成建立目錄/my/test,既建立/my目錄及/my/test目錄
mkdir -p /my/test
知識點:
-p --parents no error if existing, make parent directories as needed
change file timestamps 建立文件,修改文件時間戳
在data下面建一個文件test.txt
touch /data/test.txt
cd -change direcory 切換目錄
8.1 進入/data/test目錄
cd /data/test
8.2 返回上一層目錄
cd ..
-copy files and directories 拷貝文件或目錄
9.1 把/data/test.txt文件拷貝到/tmp下
cp /data/test.txt /tmp
9.2 拷貝/data目錄到/tmp目錄下
cp -r /data /tmp
知識點:
1. -r 參數表示遞歸複製目錄,一層一層的複製 2. -p 拷貝時,保持文件屬性不變 2. -a 至關於 -pdr
9.3 拷貝/data目錄到/tmp目錄下, 保持文件屬性不變
cp -p /data /tmp
-move (rename) files 移動或重命名文件
10.1 把/data目錄移動到/root下
mv /data /root
10.2 把/data/a.txt 重命名爲b.txt
cd /data mv a/txt b.txt
-remove files or directories 刪除文件或目錄
11.1 進入/root目錄下的data目錄,刪除test.txt文件
cd /root/data rm -f test.txt // -f 「force」, 表示強制刪除
11.2 刪除目錄,刪除/data/test目錄
rm -r /data/test // -r 刪除目錄
-display a line of text 顯示文本行
12.1 爲/data/test.txt增長內容爲「I am studying linux.」
echo "I am studing linux" > /data/test.txt
知識點:
concatenate files and print on the standard output 鏈接文件並打印輸出文件內容
13.1 顯示/test.txt的文件內容
cat /test.txt
13.2 與<<配合,追加多行內容到文件/a.txt中
cat >>/a.txt<<EOF aaaa bbbb cccc EOF
命令能夠用來顯示曾執行過的命令
history
查看磁盤空間
df -h // 查看block df -i //查看inode
查看文件目錄下文件大小
du -sh /* //查看根目錄下的全部文件大小
排序
sort -參數 文件 -n // 按照數字順序排序 -r // 逆序 -k // 根據第幾列進行排序 -h // 人能夠讀懂的信息, 根據文件大小 T>G>M>K
process status 進程狀態
18.1查看全部node進程
ps -ef | grep node
search for files in a directory hierarchy 在目錄層次結構中, 查找文件
19.1 在/data目錄下查找a.txt文件
find /data -type f -name "a.txt"
知識點:
19.2 find與 管道符 "|"配合使用 在/data目錄下查找a.txt文件,並刪除
find /data -type f name "a.txt" | xargs rm -rf
-print lines matching a pattern 根據匹配的規則過濾文本內容
20.1 輸出test.txt文件中,包含aaa字符串的行
grep "aaa" test.txt
20.2輸出test.txt文件中,不包含aaa字符串的行
grep -v "aaa" test.txt // -v參數: --invert-match 過濾掉不匹配的行
20.3 與管道符號配合使用,如過濾出命令歷史記錄中的全部cd命令
history | grep cd
21.1 已知文件/data目錄下的test.txt文件內容爲:
aaa
bbb
ccc
ddd
輸出test.txt文件內容時,不包含bbb字符串:
awk '!/bbb/' /data/test.txt
21.2 輸出/data/text.txt的第二行
awk 'NR ==20' /data/text.txt
21.3 輸出/data/text.txt的第二行到第三行
awk 'NR ==2, NR==3' /data/text.txt
用於過濾和轉換文本的流編輯器
22.1 /data/test.txt中內容爲aaa,把/data/a.txt的內容替換爲bbb
sed -i 's#aaa#bbb#g' /data/test.txt
知識點:
22.2 使用sed命令輸出行,如輸出/data目錄下test.txt的第20行,第20到30行
sed -n '20p' /data/test.txt
sed -n '20, 30p' /data/test.txt
send ICMP ECHO_REQUEST packets to network hosts 檢查網絡是否連通
本週根據記錄的筆記,整理出了在web前端開發中,幾個linux中的相關概念和經常使用的命令,用法也都比較基礎,主要是方便查閱複習,同時分享給你們,更全的信息那固然是去查手冊了。若有問題,請各位大神多多指出,謝謝。最後,讓咱們一塊兒來ping一下百度吧,ping!! ping! ping!
ping www.baidu.com