BigBrother的大数据之旅Day 2 Linux(2)
1vi和vim
vim是vi的升級版,加入了高亮更適合編程,是liunx中的文本編輯器
1.1vim + 文件: 打開文件,光標(biāo)移動到末
1.2 vim +數(shù)字 文件: 打開文件,光標(biāo)移動到數(shù)字行
1.3 vim + /p 文件:打開文件,并查找出p
1.4 vim模式
命令模式(編輯模式):鍵盤中輸入的字符被當(dāng)成命令
輸入模式:鍵盤中輸入的字符被當(dāng)做內(nèi)容
末行模式:復(fù)雜命令
下圖為三種模式的切換
1.5刪除操作
x 刪除單個(gè)字母
3x 刪除3個(gè)字母
dd 刪除一行
dw 刪除一個(gè)單詞 , 加入p命令,是剪切的命令
d$從當(dāng)前位置刪除到行尾
d^從當(dāng)前位置刪除到行首
d命令的實(shí)質(zhì)為 剪切
下面是末行模式
14,25d : 刪除14到25行
.,25d: 從當(dāng)前行到25行
.,.+5d: 從當(dāng)前行刪除6行
1.6 復(fù)制
yw: 復(fù)制一個(gè)單詞
yy: 復(fù)制一行
1.7 粘貼 p命令
1.8 插入操作
a : 在光標(biāo)后添加
i: 在光標(biāo)當(dāng)前位置添加
o: 在下一行添加(也就是在當(dāng)前行添加一個(gè)空行)
O: 在當(dāng)前行的上一行添加一個(gè)空行
1.9 移動光標(biāo)(編輯模式)
w: 到下一個(gè)單詞
^: 行中第一個(gè)字母(內(nèi)容行首)
$: 絕對行尾
G: 文章末尾
gg: 文章開頭
3gg: 移動到第三行
ctrl+ f /b 翻屏
1.10 撤銷&重做
u 撤銷
ctrl+r 重做 撤銷的操作
1.11 查找和替換
%s/after/before/gi : %s 全文查找 ; 把a(bǔ)fter 替換為before ; gi 忽略大小寫
/after : 查找 after
–n,N :上下查看查找到的內(nèi)容
1.12 末行模式的一些命令
?set命令:
set nu number : 設(shè)置行號
set nonu nonumber : 取消設(shè)置行號
set readonly
tips: 要讓行號永久生效需要修改下面的文件并加入set命令
vi /etc/vimrc 添加 set num
2 正則表達(dá)式
? 正則表達(dá)式分為: 基礎(chǔ)和擴(kuò)展兩種
正則表達(dá)式由普通字符和元字符組成–普通字符具有自身的字符意義
–元字符具有特殊意義(元字符分為:匹配操作符 和 重復(fù)操作符)
?基礎(chǔ)匹配操作符
-\ 轉(zhuǎn)意操作符,恢復(fù)元字符原有的字面意義
-. 匹配任意單個(gè)字符
-[][]中包含一個(gè)字符序列來匹配單個(gè)字符
-^ 匹配一行字符串的起始位置
-$ 匹配一行字符串的結(jié)束位置
-< 匹配一個(gè)單詞的起始位置
-> 匹配一個(gè)單詞的結(jié)束位置
?基礎(chǔ)重復(fù)操作符
–* 重復(fù)前面的項(xiàng)零次或多次
?擴(kuò)展匹配操作符
–| 連接操作符:或
–() 選擇操作符
–\n 引用操作符
?擴(kuò)展重復(fù)操作符
-? 重復(fù)前面的項(xiàng)零次或一次
-+ 重復(fù)前面的項(xiàng)一次或多次
-{n} 重復(fù)前面的項(xiàng)n次
-{n,} 重復(fù)前面的項(xiàng)n次到多次
-{n,m} 重復(fù)前面的項(xiàng)n次到m次
注意一點(diǎn): . 是匹配任意字符*
單使用grep是不支持?jǐn)U展操作符的,需要加\而不是/,下圖中 | 是或者的意思,如果不想加入\進(jìn)行轉(zhuǎn)義,可以加入-E的參數(shù)
3 cut 分割命令
cut -d: -f1,7 文件 依據(jù)冒號分割 文件,并取出第一列和第七列
echo “hello world” | cut -d’ ’ -f1
輸出結(jié)果為:hello
4 wc 命令
wc 統(tǒng)計(jì)數(shù)量
wc -c 文件 根據(jù)字節(jié)統(tǒng)計(jì)文件
wc -l 文件 統(tǒng)計(jì)文件的行
補(bǔ)充: 使用cat -A 可以查看文件中的末尾的隱藏信息,可以看出最后一個(gè)字符為,難怪在正則表達(dá)式中,難怪在正則表達(dá)式中,難怪在正則表達(dá)式中標(biāo)識末尾.當(dāng)使用wc計(jì)算文件時(shí)會把$也計(jì)算上.
5 sort 命令
?sort:排序文件的行,默認(rèn)字典排序,默認(rèn)使用ascii排序(), 字母在前,數(shù)字在后
–n:按數(shù)值排序(number) , 數(shù)值排序?yàn)?1,8,11,不帶參數(shù)n排序?yàn)樽值渑判?1,11,8
–r:倒序
–t:自定義分隔符
–k:選擇排序列(key)
–u:合并相同行
–f:忽略大小寫
sort -nr 文件 根據(jù)文件中的值排序,逆序
sort -t: -k3 -nr 文件 -t:依據(jù) : 分割文件; -k3 然后對第三列進(jìn)行排序;-nr 根據(jù)選中的第三行的數(shù)值進(jìn)行排序,逆序
6 權(quán)限
添加用戶 useradd -g root zs 添加用戶zs 所屬的組為root
useradd ls 添加用戶 , 默認(rèn)為同名用戶的組
/root 為root用戶的家目錄
/home/下的與用戶同名的文件夾 為普通用戶的家目錄,其他用戶無法進(jìn)去(root除外,權(quán)限對root來說形同虛設(shè))
chmod g+w 文件 給文件的所屬組添加寫的權(quán)限
chmod u/g/o+/_r/w/x 文件或者目錄
家目錄比較特殊,理論上來說,不讓其他用戶進(jìn)入,所以一般不要不執(zhí)行文件放到這個(gè)目錄
目錄的讀權(quán)限必須依靠執(zhí)行權(quán)限
為什么執(zhí)行 程序要加 一個(gè) ./?
上篇文章說過外部命令的執(zhí)行會查找 $PATH , 當(dāng)執(zhí)行命令的時(shí)候,如果直接敲命令,假如hadopp,那么會去path中去找,如果敲./hadoop是指定了命令的全路徑.
7 查看進(jìn)程
7.1 ps
-a 列出所有用戶的進(jìn)程
-aux = -ef
ps -f 比 ps 多pid
7.2 netstat
-p 顯示pid/pname
-l 顯示監(jiān)聽的端口號
–tcp / --udp 查看tcp或者udp協(xié)議的進(jìn)程
常用ntpl的參數(shù)和nupl
8 用戶管理
8.1添加用戶
useradd
8.2刪除用戶三步
a,userdel 用戶名
b,刪除家目錄
c,刪除郵件目錄 /var/spool/mail/
8.3組管理
添加組:groupadd 組名
添加用戶到組: usermod -G 組 用戶;usermod -G share str 把用戶str 添加到share組
圖中把tiantain用戶加入到share組,但是記得這里是添加,原來tiantain用戶屬于的tiantain組,現(xiàn)在還是一樣,只不過有多添加到了share組
id 用戶,查看用戶信息包括用戶名和組等信息
8.4改變文件或者目錄的所有者或者組
chown 用戶:組 目錄(文件), -R為遞歸
9 awk
必須使用""不能用’’
10 作業(yè)
10.1 jdk的安裝
rpm -ivh jdk-8u171-linux-x64.rpm
安裝之后到 /usr/java/jdk1.8.0_171-amd64 目錄查看
配置環(huán)境變量: vi ~/.bash_profile
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
export PATH=PATH:PATH:PATH:JAVA_HOME/bin
source ~/.bash_profile
該方法配置用戶環(huán)境變量,可以防止多用戶環(huán)境變量沖突另一種方法為修改/etc下的profile文件,那種為修改系統(tǒng)變量
10.2一些命令
1、新建一個(gè)沒有家目錄的用戶hadoop;
2、復(fù)制/etc/skel為/home/hadoop;
3、改變/home/hadoop及其內(nèi)部文件的屬主屬組均為hadoop;
4、/home/hadoop及其內(nèi)部的文件,屬組和其它用戶沒有任何權(quán)限
useradd -M hadoop
cp -R /etc/skel/ /home/hadoop/
chown -R hadoop:hadoop hadoop/
chmod -R 700 hadoop/
總結(jié)
以上是生活随笔為你收集整理的BigBrother的大数据之旅Day 2 Linux(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果7【】闪存测试软件,教你如何查看自己
- 下一篇: Threejs 字体单独发光