1. 程式人生 > >linux 的基礎命令

linux 的基礎命令

vim 語法 以及 -- 排除 sysconfig 添加 設置 -a

1 ls 查看文件或目錄
【功能說明】:查看文件或目錄
【語法格式】:ls 參數 指定文件或目錄
【選項參數】:
參數 參數說明 列子
-l 查看文件或目錄的詳細信息 ls -l /root
-h 以1024為進制顯示文件大小 ls -lh /root
-t 按照修改時間排序,默認由近到遠 ls -t /root
-a 顯示所有文件/目錄,包括以
‘.’ 開頭的隱藏文件。 ls -a /root

ls 例子
[root@hzxnz01 ~]# ls /root/
oldboy

-l參數實例
[root@hzxnz01 ~]# ls -l /root/
total 4

drwxr-xr-x. 3 root root 4096 Jun 29 09:44 oldboy
-h參數實例
[root@hzxnz01 ~]# ls -lh /root/
total 4.0K
drwxr-xr-x. 3 root root 4.0K Jun 29 09:44 oldboy
-t 參數實例
[root@hzxnz01 ~]# ls -t /root/oldboy/
he.txt he
[root@hzxnz01 ~]# ls /root/oldboy/
he he.txt
-a 參數
[root@hzxnz01 ~]# ls -a /root
. 1 3 .bash_logout .bashrc
.. 2 .bash_history .bash_profile .viminfo
2 mkdir 創建目錄
【功能說明】:創建目錄
【語法格式】:mkdir 參數 要創建路徑下的目錄
【選項參數】:
參數 參數說明 列子
-p 遞歸創建 mkdir -p /root/1/2/3/4

mkdir列子
[root@hzxnz01 ~]# ls
oldboy
[root@hzxnz01 ~]# mkdir /root/he
[root@hzxnz01 ~]# ls
he oldboy
[root@hzxnz01 ~]# ls /root
1
[root@hzxnz01 ~]# mkdir /root/2 /root/3
[root@hzxnz01 ~]# ls

[root@hzxnz01 ~]# ls /root
1 2 3
-p 參數實例
[root@hzxnz01 ~]# mkdir -p /root/1/2/3/4
[root@hzxnz01 ~]# tree /root
/root
-- 1<br/>-- 2
-- 3<br/>-- 4

4 directories, 0 files
[root@hzxnz01 ~]#
創建多層目錄
[root@oldboyedu ~]# mkdir oldboy/{10086,10000}/data -p
[root@oldboyedu ~]# tree
.
└── oldboy
├── 10000
│ └── data
└── 10086
└── data

5 directories, 0 files
[root@oldboyedu ~]#
3 touch 創建文件
【功能說明】:創建文件
【語法格式】:touch 參數 路徑下創建文件
【選項參數】:
參數 參數說明 列子

[root@hzxnz01 ~]# touch /root/1/he.txt
[root@hzxnz01 ~]# ls 1
2 he.txt

touch 創建多個文檔
[root@hzxnz01 ~]# ls
[root@hzxnz01 ~]# touch /root/file{1..10}.txt
[root@hzxnz01 ~]# ls
file10.txt file2.txt file4.txt file6.txt file8.txt
file1.txt file3.txt file5.txt file7.txt file9.txt

4 awk***
【功能說明】:awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。
awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的 GNU 版本
awk其名稱得自於它的創始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首個字母。實際上 AWK 的確擁有自己的語言: AWK 程序設計語言 , 三位創建者已將它正式定義為“樣式掃描和處理語言”。它允許您創建簡短的程序,這些程序讀取輸入文件、為數據排序、處理數據、對輸入執行計算以及生成報表,還有無數其他的功能。
【語法格式】:

【選項參數】:
參數 參數說明 列子

4.1 awk 的基本用法
[root@hezhen ~]# cat install
directoy
install
echo
sysconfig
[root@hezhen ~]# awk ‘NR==2‘ /root/install 顯示第幾行
install
[root@hezhen ~]# awk ‘NR==2,NR==4‘ /root/install ] 顯示第幾行到第幾行
install
echo
sysconfig

5 sed***
【功能說明】:流編輯器 實現對文件的增、刪、改、替換、查看
【語法格式】: sed -n ‘2,3p’ /root/skip.txt
命令 參數 第幾行到第幾行 在×××
【選項參數】:
參數 參數說明 列子
-n 取消默認輸出 sed -n ‘3p’ /root/skip.txt
-i 修改文件的內容
插入文本到指定行前 sed -i ‘s#find#grep#g’

功能 說明 列子
-n 取消默認輸出 sed -n ‘3p’ /root/skip.txt
-i 修改文件的內容
插入文本到指定行前 sed -i ‘s#find#grep#g’

內部參數 說明
a 表示在選定的那行,後面插入一行或多行文本。
i 表示在選定的那行,前面插入一行或多行文本。
d 表示匹配行的文本【進行刪除】
S###g S表示替換,g全局 -----全局替換

5.1 -n 參數
[root@hzxnz01 ~]# sed -n ‘3p‘ /root/skip.txt
grep
[root@hzxnz01 ~]# sed -n ‘2,3p‘ /root/skip.txt
sed
grep
5.2 sed 替換 格式 sed ‘s###g’ 路徑
[root@hzxnz01 ~]# cat /root/skip.txt
awk
sed
grep
head
tail
[root@hzxnz01 ~]# sed ‘s#grep#find#g‘ /root/skip.txt -i
[root@hzxnz01 ~]# cat /root/skip.txt
awk
sed
find
head
tail

[root@hezhen ~]# sed -n ‘s#skip#oldboy#gp‘ install p 表示把替換內容的哪一行顯示在桌面
install oldboy directoy
[root@hezhen ~]# cat install
install skip directoy
[root@hezhen ~]#

5.3 sed 不顯示選中內容行
[root@hzxnz01 ~]# sed ‘/find/d‘ /root/skip.txt
awk
sed
head
tail
5.4 在指定行的前面/後面添加內容
[root@hezhen ~]# seq 20 23 >install.txt
[root@hezhen ~]# cat install.txt
20
21
22
23
[root@hezhen ~]# sed -i ‘2a install‘ install.txt 2a 表示在第二行後面追加內容
[root@hezhen ~]# cat install.txt
20
21
install
22
23
[root@hezhen ~]#

[root@hezhen ~]# sed -i ‘2i install‘ install.txt 2i 表示在第二行的前面追加內容
[root@hezhen ~]# cat install.txt
20
install
21
22
23
24
25
[root@hezhen ~]#
5.5 sed 刪除功能的用法
[root@hezhen ~]# sed -i ‘/103/d‘ install 刪除包含103這個字符的行
[root@hezhen ~]# cat install
100
101
102
104
105

[root@oldboyedu02 ~]# cat test.txt
test liyao
oldboy
oldgir
[root@oldboyedu02 ~]# sed ‘2d‘ test.txt 刪除第二行
test liyao
oldgir
[root@oldboyedu02 ~]#

[root@hezhen ~]# sed ‘1,+2d‘ install 刪除文件第一行和後面的2行(1,+2d)
103
104
105
[root@hezhen ~]# cat install
100
101
102
103
104
105
[root@hezhen ~]# sed ‘1~2d‘ install 顯示等差數列1,3,5行,差為2,自己指定的
101
103
105

[root@hezhen ~]# cat install
100
101
102
103
104
105
[root@hezhen ~]# sed -i ‘2,$d‘ install 刪除第二行後面所有的內容包括第二行
[root@hezhen ~]# cat install
100
[root@hezhen ~]#

[root@hezhen ~]# sed -i ‘i 99‘ install 不加指定行 則視為每一行
[root@hezhen ~]# cat install
99
100
99
101
99
102
1.1 在任何時候都不能輕易的使用>
[root@oldboyedu04 /]# cat /directory/program.txt
1
3
5
7
9
[root@oldboyedu04 /]# sed -i ‘/5/d‘ > /directory/program.txt
sed: no input files
[root@oldboyedu04 /]# cat /directory/program.txt
[root@oldboyedu04 /]#
6 grep**

【功能說明】:過濾、在文件中找東西
【語法格式】:grep -v “10” /root
命令 參數 找什麽 在×××
【選項參數】:
參數 參數說明 列子
-v 排除選中的哪一行 grep -v “3” /root/skip.txt
-A數字 顯示選中的哪一行接下來的N行 grep -A1 “3” /root/skip.txt
-B數字 顯示選中的哪一行前面的N行 grep -B1 “3” /root/skip.txt
-C數字 顯示選中哪一行前後各N行 grep -C1 “3” /root/skip.txt
-o 只輸出匹配行的內容 grep -o "oldboy" test.txt
-w 只匹配過濾的單詞 grep -w "oldgir" test.txt
-E | -E能代替前面的斜線
color=auto 為過濾的字符串加顏色
-n 顯示匹配行及行號
-i 不區分大小寫進行匹配
-c 統計匹配的行數 grep -c "oldboy" test.txt
6.1 -v 參數
[root@hzxnz01 ~]# grep -v "3" /root/skip.txt
1
2
4
5
6.2 -A -B -C 參數
[root@hzxnz01 ~]# grep -A1 "3" /root/skip.txt
3
4
[root@hzxnz01 ~]# grep -B1 "3" /root/skip.txt
2
3
[root@hzxnz01 ~]# grep -C1 "3" /root/skip.txt
2
3
4
6.3 -o -w -c -i -n
[root@oldboyedu02 ~]# cat test.txt
test liyao
oldboy
oldgir

[root@oldboyedu02 ~]# grep -o "oldboy" test.txt 只輸出過濾的字符
oldboy

[root@oldboyedu02 ~]# grep -w "oldgir" test.txt
oldgir

[root@oldboyedu02 ~]# grep -w "olgir" test.txt 這個必須是文件內一個完整的單詞

[root@oldboyedu02 ~]# grep -c "oldboy" test.txt
1
[root@oldboyedu02 ~]#

[root@oldboyedu02 ~]# cat test.txt
test liyao
oldboy
oldgir
[root@oldboyedu02 ~]# grep -n "old" test.txt
2:oldboy
3:oldgir
[root@oldboyedu02 ~]#
7 find***
【功能說明】:查找目錄下的文件或目錄,任何位於參數前的字符串,都將視為想要查找的目錄名。不設置參數時他將查找當前目錄下的子目錄及文件,並顯示所有信息。
【語法格式】:find /root/ -type f -name “*.txt”
命令 ××× 找什麽 文件 找什麽名字
【選項參數】:
參數 參數說明 列子
-type 要查找的類型 f 文件 d 目錄
-name 要查找的名字 一般“”在裏面輸入要查找的東西。
-o 或者 -name “” -o -name “”

7.1 用find查找刪除多個文件/目錄、

[root@hezhen ~]# touch install{1..20}.txt
[root@hezhen ~]# ls
install10.txt install15.txt install1.txt install5.txt
install11.txt install16.txt install20.txt install6.txt
install12.txt install17.txt install2.txt install7.txt
install13.txt install18.txt install3.txt install8.txt
install14.txt install19.txt install4.txt install9.txt
[root@hezhen ~]# find /root/ -type f -name "*.txt"|xargs rm -f 以後綴查找通過管道刪除
[root@hezhen ~]# ls
[root@hezhen ~]#

[root@hezhen ~]# touch install{1..20} /root
[root@hezhen ~]# ls
install1 install13 install17 install20 install6
install10 install14 install18 install3 install7
install11 install15 install19 install4 install8
install12 install16 install2 install5 install9
[root@hezhen ~]# find ./ -name "inst" |xargs rm -f 刪除 包含前面內容的文檔/目錄
[root@hezhen ~]# ls
[root@hezhen ~]#

[root@oldboyedu ~]# find -name "find7.txt" -o -name "find9.txt"
./oldboy/10086/data/find9.txt
./oldboy/10086/data/find7.txt
./oldboy/10000/data/find9.txt
./oldboy/10000/data/find7.txt
[root@oldboyedu ~]#

8 seq
【功能說明】:打印數字,循環打印
【語法格式】:seq -s “0” 3
命令 參數 指定分隔符 數量
【選項參數】:
參數 參數說明 列子
-s “” 指定分隔符 seq -s “0” 3
-w 輸出相同的位數以最長的那個為模板。 seq -w 10
-f “find%2g” %後面跟最大位數不足顯示為空格。 seq -f “find%2g” 10

8.1 -s 參數
[root@hzxnz01 ~]# seq -s "0" 5
102030405

8.2 -w參數 -w -s組合使用
[root@hzxnz01 ~]# seq -w 10 以最大的為模板不夠的以0補充
01
02
03
04
05
06
07
08
09
10

[root@hzxnz01 ~]# seq -ws " " 10 指定分割符號
01 02 03 04 05 06 07 08 09 10

8.3 seq 的幾種用法
[root@hzxnz01 ~]# seq 3 【從1開始默認增長量為1】
1
2
3
[root@hzxnz01 ~]# seq 3 5 【從3開始默認增長量為1】
3
4
5
[root@hzxnz01 ~]# seq 1 3 10 【從1開始增長量為3】
1
4
7
10

9 head 頭
【功能說明】:頭 顯示文件的前幾行,默認顯示文件前10 行。
【語法格式】:head -n2 oldboy
命令 參數 文件名
【選項參數】:
參數 參數說明 列子
-n 數字 顯示文件的前幾行默認顯示文件的前10行 【n可以省略直接加 -數字】 head -n2 oldboy

-n 參數
[root@hzxnz01 ~]# head -2 oldboy
awk
find

head 接管道 cat顯示
[root@hzxnz01 ~]# head -3 oldboy | cat -n
1 awk
2 find
3 grep
[root@hzxnz01 ~]# cat -n oldboy | head -3
1 awk
2 find
3 grep

10 tail 尾巴
【功能說明】:顯示文件的後面幾行,默認顯示10 行。
【語法格式】:
【選項參數】:
參數 參數說明 列子
-n 接數字 顯示文件的後N行,n可以省略直接 -數字 tail -n3 oldboy
-c 接數字 輸出文件尾部開始的N個字節。 tail -c 10 oldboy

tail 用法
[root@hzxnz01 ~]# tail -2 oldboy
sed
echo
[root@hzxnz01 ~]# tail -2 oldboy | cat -n
1 sed
2 echo
[root@hzxnz01 ~]# cat -n oldboy | tail -2
6 sed
7 echo
-c 參數
[root@hzxnz01 ~]# tail -c 10 oldboy

sed
echo
11 cat
【功能說明】:顯示文件的內容
【語法格式】:
【選項參數】:
參數 參數說明 列子
-n 帶行號顯示 cat -n oldboy
-b 帶行號顯示,空行不標註行號。 cat -b oldboy
-s 當遇到2行或以上的空行合並成1行。 cat -s oldboy

cat -n -b -s 參數列子
[root@hzxnz01 ~]# cat -n oldboy
1 head -n
2 tail -n -c
3
4
5 dirctory
[root@hzxnz01 ~]# cat -b oldboy
1 head -n
2 tail -n -c

 3  dirctory 

[root@hzxnz01 ~]# cat -sb oldboy
1 head -n
2 tail -n -c

 3  dirctory

12 echo
【功能說明】:輸出指定的字符串或變量
【語法格式】:echo “file” >>oldboy
命令 輸出內容 寫入地址
【選項參數】:
參數 參數說明 列子
-n 不換行輸入 echo -n “oldger” ; echo “oldboy”
-e 使用制表符 echo -ne “oldger\t” ; echo “oldboy”
echo echo {a..z} 生成A到Z的序列到屏幕

echo 命令應用
[root@hzxnz01 ~]# echo "oldgre" >> oldboy 表示把內容追加到文件結尾
[root@hzxnz01 ~]# cat oldboy
head -n
tail -n -c
dirctory
oldgre
[root@hzxnz01 ~]# echo "man" > oldboy 把源文件內容覆蓋掉
[root@hzxnz01 ~]# cat oldboy
man
[root@hzxnz01 ~]# echo "oldger" 顯示到桌面
oldger
[root@hzxnz01 ~]#
-n -e 參數
[root@hzxnz01 ~]# echo -n "oldger" ; echo "oldboy"
oldgeroldboy
[root@hzxnz01 ~]# echo -ne "oldger\t" ; echo "oldboy" 【\t為tab】
oldger oldboy

用echo寫入多行文本
[root@hezhen ~]# touch install
[root@hezhen ~]# ls
install
[root@hezhen ~]# echo "directoy

install
echo
sysconfig">>install
[root@hezhen ~]# cat install
directoy
install
echo
sysconfig
[root@hezhen ~]#
echo生成序列
[root@oldboyedu ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@oldboyedu ~]# echo {a..j}
a b c d e f g h i j
[root@oldboyedu ~]#

13 cd
【功能說明】:進入目錄
【語法格式】:cd /root
命令 要進入哪裏
【選項參數】:
參數 參數說明
cd . 切換到當前目錄,相當於沒動
cd .. 切換到當前目錄的上級目錄
cd ../.. 返回上兩級目錄,類推
cd ~ 進入用戶主目錄
cd - 返回剛才所在的目錄

14 rm 刪除文件/目錄
【功能說明】:刪除文件或目錄
【語法格式】:rm -f /root/oldboy
命令 參數 要刪除的內容
【選項參數】:
參數 參數說明 列子
-f 強制刪除文檔(不提示)
-r 刪除目錄
-fr 強制刪除目錄

rm 用法
[root@hezhen ~]# ls
cat find sed
[root@hezhen ~]# rm /root/ -rf 當這樣用號時,表示root目錄下的所有文件/目錄但不包括
[root@hezhen ~]# ls -a 隱藏文件/目錄
. .bash_history .bash_profile .viminfo
.. .bash_logout .bashrc

15 mv 剪切
【功能說明】:用來剪切目錄或給文件/目錄更名
【語法格式】:
【選項參數】:
參數 參數說明 列子

[root@oldboyedu02 /]# mv /data /root
[root@oldboyedu02 /]# ls /root
data test.txt
[root@oldboyedu02 /]# ls /root/data/
he oldboy1.txt oldboy.txt
[root@oldboyedu02 /]#
16 pwd 顯示當前所在位置
【功能說明】:
【語法格式】:
【選項參數】:
參數 參數說明 列子

[root@oldboyedu02 /]# cd /root/data/he/
[root@oldboyedu02 he]# pwd
/root/data/he 《=== 當前工作路徑
[root@oldboyedu02 he]#

17 xargs
【功能說明】:分組
【語法格式】:
【選項參數】:
參數 參數說明 列子

分組
[root@hezhen ~]# cat m.txt
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
[root@hezhen ~]# xargs -n5 < m.txt
01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
[root@hezhen ~]#

18 vi vim編輯文本
【功能說明】:linux裏面用來編輯文本的工具
【語法格式】:
【選項參數】:
參數 參數說明 列子
i 進入編輯模式
:wq 保存並退出
Esc 鍵 退出
:q 退出不保存
:q! 強制退出不保存
-o 編輯多個文本

19 cp復制
【功能說明】:復制文件或目錄,默認復制文件。
【語法格式】:
【選項參數】:
參數 參數說明 列子

[root@oldboyedu02 he]# ls /root/data/
he oldboy1.txt oldboy.txt
[root@oldboyedu02 he]# cp /root/data/oldboy.txt ./
cp: overwrite `./oldboy.txt‘? y
[root@oldboyedu02 he]# \cp /root/data/oldboy.txt ./ 不提示是否覆蓋方法慎用
[root@oldboyedu02 he]# /bin/cp /root/data/oldboy.txt ./
[root@oldboyedu02 he]#

  1. history 查看已使用過的命令

linux 的基礎命令