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