linux入門級知識回顧

ifdown eth0    #關閉網卡eth0
ifup eth0    #啓動網卡eth0
ifconfig    #查看網絡配置

:wq   保持並退出 
:q    退出 
:q!   強制退出不保存 
:wq!  強制退出並保存 

echo hello oldboylinux >>/data/oldboy.txt  
>>    追加劇定向 把內容放在文件的最後一行 

##方法3-想向這個文件中放入多行 
cat >>/data/oldboy.txt<<EOF 
I 
am  
studying  
linux  
EOF 

EOF === end of file

##漏斗家族  重定向符號  
 
#>   1>    標準輸出重定向  先把文件的內容清空   把內容放在文件的最後一
行 
#>>  1>>   追加劇定向      把內容放在文件的最後一行 
 
1 標準輸出 執行正確的內容纔會經過漏斗  
 
#2>        標準錯誤重定向  
#2>>       錯誤追加劇定向 

getenforce 查看selinux狀態 
grep '=disabled' /etc/selinux/config  #查看config中的 =disabled

/etc/init.d/iptables status #查看防火牆配置
/etc/init.d/iptables stop #關閉運行中的防火牆(建議關閉兩次)

chkconfig |grep ipt    # chkconfig表示查看啓動項 grep 是過濾的關鍵字 ipt是過濾的關鍵詞
chkconfig iptables on #關閉某個程序開機自啓

亂碼緣由:1、是linux系統的問題
    2、遠程鏈接工具的問題,好比xshell的問題
echo $LANG #查看linux系統的字符集
export LANG=zh_CN.UTF-8 #臨時改字符集
cat /etc/sysconfig/i18n #編輯這裏永久改字符集
source /etc/sysconfig/i18n    #讓剛剛改的配置生效

df -h # 查看磁盤狀態

掛載小結:
linux中 一切皆文件
linux(設備/磁盤分區)不掛載沒法使用
掛載至關於給磁盤分區/設備開了一個入口 經過入口進入到光盤/磁盤的分區中
入口==掛載點==目錄

yum install tomcat #安裝軟件

相關目錄的瞭解,詳情看截圖,紅色爲必須瞭解的

cat /etc/sysconfig/network-scripts/ifcfg-eth0 #查看網卡信息  
DEVICE=eth0                         #網卡名
HWADDR=00:0c:29:e7:59:14             #mac地址
TYPE=Ethernet                        #互聯網
UUID=51d0a025-779b-447f-9a48-f3935caa8d89 #惟一標示
ONBOOT=yes                            #重啓的時候是否否開啓網卡 (6.7以後纔有的設置?)
NM_CONTROLLED=yes                    #可否被network軟件進行管理
BOOTPROTO=none                        #網卡獲取ip地址的方式
    #none/static #ip值是固定的
    #dchp        自動獲取ip地址
USERCTL=no                            #是否容許普通用戶管理(開 關 重啓等管理動做)網卡
PEERDNS=yes                            #網卡的dns配置優先級高於dns的配置
IPV6INIT=no
IPADDR=10.0.0.200                    # ip地址 ip address
NETMASK=255.255.255.0                #子網掩碼
GATEWAY=10.0.0.2                    #網關
DNS1=223.5.5.5
DNS2=223.6.6.6


DNS 域名解析服務/系統 ,做用:把使用的域名轉換爲ip地址 
resolve host
解析    域名
DNS 有問題的表現爲:ping www.baidu.com 這種域名ping不通,可是ping得通ip地址
解決:在網卡的配置最後加 
DNS1=223.5.5.5
DNS2=223.6.6.6
ifdown eth0 && ifup eth0 # 重啓某一個網卡
/etc/init.d/network restart # 重啓全部的網卡

cat /etc/resolv.conf #DNS的默認配置,通常配置網卡的DNS就OK
View Code

 

 

--new190612
一切從根開始,一切從目錄開始
linux快捷鍵
1、ctrl + c             取消當前操做
2、ctrl + l(小寫字母L)    清屏
3、ctrl + d             退出當前用戶/登出
4、etc + .(點)            使用上一個命令的最後一個東西(通常是個路徑之類的)


vi/vim 快捷鍵
刪除光標所在位置的內容到行尾 D

移動光標:
移動到文件的第一行            gg
移動到文件的最後一行        G

編輯:
在當前行的下一行插入一個空行並進入到編輯模式    o(小寫字母O)



hostname # 查看主機名
hostname simon003    #主機名改爲simon003 ,臨時改,重啓後失效
cat /etc/sysconfig/network    #永久改,重啓後生效

ll -a #查看全部文件(包括隱藏文件)

df  #查看磁盤空間狀況
df -h #以人類可讀的方式展現

cat /etc/fstab #跟自動掛載有關
    結果集的第一列表示設備/分區
    結果集的第二列表示入口/目錄


cat /etc/rc.local    #開啓的時候自動運行的文件,須要開機自啓的軟件/命令/服務都放在這個文件中
#還有個方式是 chkconfig管理 開機自啓動項目

cat /etc/inittab #開機的時候運行級別的配置文件
0        關機狀態,不要把運行級別設置爲0
1        單用戶模式,root用戶密碼忘記了
2        多用戶模式,可是沒有NFS
3        徹底的多用戶模式,命令模式,文本模式
4        未使用
5        x11,桌面模式,圖形化界面模式(前提是安裝了這些文件)
6        重啓模式,不要把運行級別設置爲6

runlevel #查看當前的運行級別
init 5 #臨時把運行級別改爲5
#永久修改在  /etc/inittab 這個文件的最後一行,通常不會改


/etc/init.d #服務管理的命令

# 國法(全國各地生效)
cat /etc/profile  系統環境變量 別名
cat /etc/bashrc      別名
#家規(地方政策,當前用戶生效)
~/.bashrc
~/.bash_profile

.(點)開頭的文件表示默認隱藏的文件

~表示當前用戶的家目錄
root用戶   ~ ===== /root
simon       ~ ===== /home/simon

/usr/local #編譯安裝的軟件默認的位置

linux安裝軟件的方法
1、yum    (自動解決安裝依賴的軟件) 點外賣-缺乏的外賣一切給解決
    軟件包管理工具
    yum install tree -y (碰到詢問默認都是yes)
2、rpm    (缺乏的鍋之類的得本身解決) 速凍水餃-半成品
3、編譯
    買菜切菜------炒菜-----上菜
    ./configure---make------make install

rpm -qa |grep tree #查看安裝的全部軟件,名字中帶 tree的


/var/log/messages #查看系統默認日誌信息
/var/log/secure #系統用戶的登陸信息(誰 何時,從哪裏登陸的 是否成功)
grep "Accepted" /var/log/secure  #根據關鍵字撈日誌中的信息

free #查看系統內容
free -h #人類可讀
lscpu    #查看系統cpu的狀態
w        #查看系統的負載程度,越繁忙越接近系統的核數
cat /proc/loadavg # 左邊的三個數,最近一分鐘,最近五分鐘,最近十五分鐘    的平均負載
View Code

 linux啓動過程node

 

--new190612
環境變量
1、大寫
2、在系統大部分地方均可以使用,含義相同。

LANG字符集    PS1(命令行的樣子)
PATH 放的是命令的路徑/位置
echo $PATH #查看當前路徑的值,通常不會改,/etc/profile中永久改


rpm rpm包管理工具
rpm -qa | grep tree #查看某個軟件是否安裝
rpm -ql tree #查看這個軟件包裏有啥,查看陌生軟件的用法,結構之類的

find 查找文件
    -maxdepth 最大的深度
    -type 找什麼類型的
        f file 文件 
        d directory 目錄
    -name 什麼名字
    ! 取反

tree 以樹形顯示目錄結構
    -L 最多顯示基層目錄
    -d 只顯示目錄    

ls list     列表    顯示目錄裏面的內容
    -l 顯示詳細信息
    -F 給不一樣的類型文件加上不一樣的尾巴 目錄/
    
touch 摸 建立文件    更新文件的時間戳

###第 1 題 如何過濾出已知當前目錄下 oldboy 中的全部一級目錄(提示:不包含
oldboy目錄下面目錄的子目錄及隱藏目錄,即只能是第一級目錄)? 


幾種方法(在oldboy這個目錄下執行):
tree -Ld 1
find  -maxdepth 1 -type d
find  -maxdepth 1 -type d ! -name "."  # !取反,不含.(點)文件
ls -l # 查看
ls -l |grep "^d"  #d開頭的就是文件夾(目錄)
View Code

 

--new190615

cd - ==== 進入上一次所在的目錄
cd . ==== 進入當前目錄
cd ..==== 進入當前目錄的上一層目錄
cd ~ ==== 進入當前用戶的家目錄
(root用戶) ~ ==== /root用戶
(普通用戶) ~ ====/home/
cd   ==== cd ~


ls    list    列表 顯示目錄裏的內容
ls -l         顯示詳細信息
ls -F        給不一樣類型的文件加上不一樣的尾巴 目錄/
ls -r        倒序
ls -t        按照文件的修改時間進行排序
ls -lrt        按照文件的修改時間進行倒序排序


tail    取文件的最後幾行 默認是最後10行
tail -f 顯示文件的實時更新
tailf    同上

查看文件時顯示文件的行號
1.cat -n simon.txt
2.vim simon.txt
    :set nu 顯示行號number
    :set nonum 不顯示行號number
3.grep -n "." simon.txt # .點表示任意一個 正則 ("stu"表示找stu開始的)


grep 
    -v 排除
    -A 顯示grep過濾出的內容及接下來的幾行
    -n 給grep出的行加上行號
egrep === grep -E 高級正則

chkconfig 管理開機自動運行的軟件
chkconfig iptables on
chkconfig iptables off
chkconfig --level 5 iptables on 設置某個運行級別

tar zcvf /tmp/etc.tar.gz /etc/
z --經過gzip 工具進行壓縮
c --表示create 建立壓縮包
v --表示verbose 顯示執行過程
f --表示file 接上壓縮包的名字

tar ztf /tmp/etc.tar.gz #查看壓縮包的內容
t --表示list 顯示壓縮包的內容

解壓:解壓前必須先進入到要解壓到的目錄(linux默認解壓到當前目錄)
簡寫:
tar zcf 建立
tar tf 查看
tar xf 解壓


wc -l /etc/services #查看文件有多少行
ps -ef 顯示系統有多少在運行的進程
ps -ef | grep "sshd" #一樣能夠經過grep的方式進行關鍵字查找


單引號:所見即所得
雙引號:裏面的特殊字符會被解析

inode與block小結:
1、格式化建立文件系統
2、在同一個文件系統(分區),兩個文件的inode相同,則互爲硬連接
3、建立一個非空文件要佔用一個inode和至少一個block
4、如何查看inode和block的使用狀況 df -i df -h 
    df -i #查看總共多少個inode

磁盤空間不足排查:
df -h
du -sh /*|grep G # 找大文件


文件類型
f file 普通文件
d directory 目錄
l softlink 軟連接(快捷方式)

linux下的擴展名是用來看的,不影響實際使用
.sh 腳本文件
.conf 配置文件


UID user id 用戶的id號碼==身份證號碼
GID group id 用戶組的號碼==戶口本的號碼
                    UID
1.皇帝 root            0
2.傀儡 虛擬用戶     1-499    系統中每一個進程都要有一個對應的用戶,沒法使用的。
3.平民百姓 普通用戶 500+

如何保護皇帝
1.禁止root遠程登陸
2.修改ssh默認的端口號22
3.按期分配/var/log/secure 記錄着用戶的登陸信息

與用戶有關的文件
/etc/passwd        存放的是用戶的信息
/etc/shadow        用戶密碼的信息
/etc/group        用戶組的信息

root:x:0:0:root:/root:/bin/bash
simon:x:500:500::/home/simon:/bin/bash
第一列:用戶名
第二列:(之前)存放密碼的地方
第三列:UID
第四列:GID
第五列:用戶的說明信息,默認爲空
第六列:用戶的家目錄
第七列:用戶使用的shell,用戶使用的命令解釋器
/bin/bash ------- centos默認的命令解釋器
/sbin/nologin --- 用戶沒法登錄系統,至關因而傀儡用戶


linux基礎權限:
r    read 能夠讀取內容
w    write 修改文件內容
x    excute 能夠運行文件(命令 腳本)
-    什麼權限都沒有

ls -l /etc/hosts
-             rw-        r--        r--.
文件類型    主人    家人    陌生人
            420        400        400
            6        4        4
            
ls -l /bin/ls
-rwxr-xr-x.
 421401401
 7    5  5



軟鏈接(windows下的快捷方式):
建立:
ln -s oldboy.txt oldboy.txt-soft #建立
ls -l oldboy.txt* #查看
特色:
一、存放着源文件的位置
二、源文件被刪除時再查看會顯示出紅色
三、節約時間

硬連接
至關因而超市的先後門,經過不一樣的大門進入超市
在同一個分區中,兩個文件的inode相同,則互爲硬連接
建立:
ln oldboy.txt oldboy.txt-hard #建立
ls -lhi oldboy.txt* #查看
特色:
一、至關因而超市的先後門,硬連接數量就是超市一共多少門
二、刪除硬連接或者源文件,文件仍是可使用的
三、把硬連接和源文件都刪除,則意味着文件被刪除===硬連接數量爲0


文件刪除原理:
1.刪除這個文件相關的硬連接 -rm   ---刪除廁所全部的入口
2.這個文件的進程調用數也爲0 --- 沒有人在使用廁所

1.硬連接數量爲0
2.進程調用數爲0

某個文件沒有被完全刪除,致使磁盤空間不足
解決:重啓對應的軟件


找出硬連接數量爲0,進程調用數不爲0的文件
lsof |grep delete # 
解決:重啓對應的軟件/服務



磁盤空間不足排查:
1.block滿了--500G的空間存放505G的視頻
2.inode滿了,有大量的小文件
3.block 硬連接數量爲0,進程調用數不爲0,文件沒有被完全刪除

stat oldboy.txt # 查看文件的三個時間
ctime    changetime 文件的屬性發生改變 硬連接數量,文件大小,文件權限等
mtime    modifytime 修改時間 文件內容的變化時間
atime    accesstime 訪問時間(看一遍就算,cat都算,後來變成,有內容改變纔算)
View Code

 

通配符和正則python

-- 190619
history | grep cat # 歷史命令
通配符:
1* 全部 
find /oldboy/ -type f -name '*old*' # 至關於sql的like中的%
2、{} # c生成序列
echo {0..100} # 連續生成1-100
echo stu{01..100} # 連續生成1-100
cp oldboy.txt{,.bak} # 備份

#1]正則表達式是用行進行過濾的
#2]禁止使用中文符合
#3]給grep和egrep配置別名

#配置別名
cat >>/etc/profile<<EOF
alias grep='grep --color=auto'
alias egrep='grep --color=auto'
EOF

source /etc/profile #生效
cat -A simon.txt # 把每行的結束以$展現出來
正則表達式與通配符區別:
通配符:用來匹配查找文件名            支持:大部分命令都支持
正則:在文件內容中匹配查詢內容        支持:linux三劍客


正則:
    基礎正則(basic regular expression)BRE  
    grep sed 
    ^ $ . * [] [^]
    
    擴展正則(extended regular expression)ERE
    | + {} () ?
    
如下是準備的環境:
I am oldboy teacher! 
I teach linux.

I like badminton ball ,billiard ball and chinese chess! 
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org 
my qq num is 49000448.
 
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 



start:    

0.1] ^  以什麼什麼開頭
0.2] $    以什麼什麼結尾
. 任意一個字符,不包括空行
grep '.' simon.txt  #
grep -o  '.' simon.txt # -o 正則的執行過程
grep  '\.$' simon.txt # 以點結尾的行 \ 是轉義符

6]  * 前一個字符連續出現了0次或1次以上
grep -o '0' simon.txt # 出現的是7行的0
grep -o '0*' simon.txt # 把0連續起來

兩個問題:
1.爲什麼取出的是000 而不是00和0 0 0 0
#由於正則在表示連續出現的時候表現出貪婪性 有多少吃多少 有多少匹配多少
2.爲什麼使用'0*' 會把整個文件的內容都顯示出來
 由於出現0次或1次以上的都會顯示

7] .* (點*)  全部字符 全部符號  全部 
grep '^m.*m$' simon.txt  # 以m開頭,以m結尾 .*  中間是任意字符

8] [] 中括號 [abc] 至關因而一個字符 找出包含a或b或c的行
grep '[abc]' simon.txt # 找出含或a或b或c的行
grep '[a-zA-Z0-9]' simon.txt  # 找出任意字母或者數字的
grep '[^abc]' simon.txt # 排除,即不要a,不要b,不要c的

擴展正則
1+ 前一個字符連續出現了1次或屢次
grep -E '0+' simon.txt  # grep 不支持擴展正則,egrep 即 grep -E支持擴展
1.能夠把連續的東西用正則取出來
2.通常與[]配合

2| 或者 
grep -E 'a|b|c' simon.txt
grep '[abc]' simon.txt # 找出含或a或b或c的行

 |[] 本質區別:
1[] 是基礎正則 | 是擴展正則
2[] 中括號表示的是單個字符的或者  | 單個多個均可以,兼容[] eg:grep -E 'linux|python' simon.txt  linux或者python的都ok

3】 ()  1.括號中的內容是一個總體 2.後向引用(反向引用)(用的很少,意義初級不大,配合sed使用)
grep -E 'oldb(o|ey)' simon.txt  # 找出oldboy 或者 oldbey 的行

4】 {n,m} 前一個字符連續出現了至少n次,最多m次
grep -E '0{2,5}' simon.txt  # 2~5次的
grep -E 'l{2,}' simon.txt  # 出現最少2次的
grep -E 'l{2}' simon.txt  # 出現正好2次的
grep -E 'l{,2}' simon.txt # 出現最多2次的
grep -E '[0-9]{8,}' simon.txt  # 出現連續8個數字的 
grep -E '[0-9]{8,}' -o simon.txt # 出現連續8個數字的 ,只顯示數字內容

5】 ? 連續出現0次或1次

vim simontemp.txt
i
gd
god
good
goood
gid
gpd
giid


grep -E 'go?d' simontemp.txt  # 查找o出現了一次或0次的結果是gd和god
grep -E 'go*d' simontemp.txt # 查找出現0次或1次+的


支持基礎正則        基礎+擴展正則
grep                egrep === grep -E
sed                    sed -r
awk                    awk

\ 撬棍(轉義字符) 可以使得基礎命令也能使用擴展正則

#幫助命令
man grep
man info 
View Code
相關文章
相關標籤/搜索