linux的命令操作,這裡簡單的記錄一下常用的。
1、日常操作命令
檢視當前所在的工作目錄
pwd
檢視當前系統的時間
date
檢視有誰線上(哪些人登陸到了伺服器)
who 檢視當前線上
last 檢視最近的登陸歷史記錄
修改開機的等待時間
2、檔案系統操作
顯示資訊ls
ls / 檢視根目錄下的子節點(資料夾和檔案)資訊
ls -al -a是顯示隱藏檔案 -l是以更詳細的列表形式顯示
切換目錄
cd /home
建立資料夾
mkdir aaa 這是相對路徑的寫法
mkdir -p aaa/bbb/ccc
mkdir /data 這是絕對路徑的寫法
刪除資料夾
rmdir 可以刪除空目錄
rm -r aaa 可以把aaa整個資料夾及其中的所有子節點全部刪除
rm -rf aaa 強制刪除aaa
修改資料夾名稱
mv aaa angelababy
建立檔案
touch somefile.1 建立一個空檔案
echo "i miss you,my baby" > somefile.2 利用重定向“>”的功能,將一條指令的輸出結果寫入到一個檔案中,會覆蓋原檔案內容
echo "huangxiaoming ,gun dan" >> somefile.2 將一條指令的輸出結果追加到一個檔案中,不會覆蓋原檔案內容
檢視檔案多少個單詞,多少行
wc -w README
wc -l README
檢視檔案
tail -f somefile 根據inode 節點跟蹤
tail -F somefile 根據 檔名 跟蹤
解壓和壓縮
1.gzip壓縮
gzip a.txt
2.解壓
gunzip a.txt.gz
gzip -d a.txt.gz
3.bzip2壓縮
bzip2 a
4.解壓
bunzip2 a.bz2
bzip2 -d a.bz2
5.將當前目錄的檔案打包
tar -cvf bak.tar .
將/etc/password追加檔案到bak.tar中(r)
tar -rvf bak.tar /etc/password
6.解壓
tar -xvf bak.tar
7.打包並壓縮gzip
tar -zcvf a.tar.gz
8.解壓縮
解壓到/usr/下
tar -zxvf a.tar.gz -C /usr
9.檢視壓縮包內容
tar -ztvf a.tar.gz
zip/unzip
10.打包並壓縮成bz2
tar -jcvf a.tar.bz2
11.解壓bz2
tar -jxvf a.tar.bz2
用vi文字編輯器來編輯生成檔案
**最基本用法
vi somefile.4
1、首先會進入“一般模式”,此模式只接受各種快捷鍵,不能編輯檔案內容
2、按i鍵,就會從一般模式進入編輯模式,此模式下,敲入的都是檔案內容
3、編輯完成之後,按Esc鍵退出編輯模式,回到一般模式;
4、再按:,進入“底行命令模式”,輸入wq命令,回車即可
**一些常用快捷鍵
一些有用的快捷鍵(在一般模式下使用):
a 在游標後一位開始插入
A 在該行的最後插入
I 在該行的最前面插入
gg 直接跳到檔案的首行
G 直接跳到檔案的末行
dd 刪除行,如果 5dd ,則一次性刪除游標後的5行
yy 複製當前行, 複製多行,則 3yy,則複製當前行附近的3行
p 貼上
v 進入字元選擇模式,選擇完成後,按y複製,按p貼上
ctrl+v 進入塊選擇模式,選擇完成後,按y複製,按p貼上
shift+v 進入行選擇模式,選擇完成後,按y複製,按p貼上
查詢並替換(在底行命令模式中輸入)
%s/sad/88888888888888 效果:查詢檔案中所有sad,替換為88888888888888
/you 效果:查詢檔案中出現的you,並定位到第一個找到的地方,按n可以定位到下一個匹配位置(按N定位到上一個)
3、檔案許可權的操作
linux檔案許可權的描述格式解讀
drwxr-xr-x (也可以用二進位制表示 111 101 101 --> 755)
d:標識節點型別(d:資料夾 -:檔案 l:連結)
r:可讀 w:可寫 x:可執行
第一組rwx: 表示這個檔案的擁有者對它的許可權:可讀可寫可執行
第二組r-x: 表示這個檔案的所屬組對它的許可權:可讀,不可寫,可執行
第三組r-x: 表示這個檔案的其他使用者(相對於上面兩類使用者)對它的許可權:可讀,不可寫,可執行
修改檔案許可權
chmod g-rw haha.dat 表示將haha.dat對所屬組的rw許可權取消
chmod o-rw haha.dat 表示將haha.dat對其他人的rw許可權取消
chmod u+x haha.dat 表示將haha.dat對所屬使用者的許可權增加x
也可以用數字的方式來修改許可權
chmod 664 haha.dat
就會修改成 rw-rw-r--
如果要將一個資料夾的所有內容許可權統一修改,則可以-R引數
chmod -R 770 aaa/
chown angela:angela aaa/ <只有root能執行>
目錄沒有執行許可權的時候普通使用者不能進入
檔案只有讀寫許可權的時候普通使用者是可以刪除的(刪除檔案不是修改它,是操作父及目錄),只要父級目錄有執行和修改的許可權
4、基本的使用者管理
*新增使用者
useradd angela
要修改密碼才能登陸
passwd angela 按提示輸入密碼即可
為使用者配置sudo許可權
用root編輯 vi /etc/sudoers
在檔案的如下位置,為hadoop新增一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
然後,hadoop使用者就可以用sudo來執行系統級別的指令
[hadoop@shizhan ~]$ sudo useradd huangxiaoming
新增一個tom使用者,設定它屬於users組,並新增註釋資訊
分步完成:useradd tom
usermod -g users tom
usermod -c "hr tom" tom
一步完成:useradd -g users -c "hr tom" tom
設定tom使用者的密碼
passwd tom
修改tom使用者的登陸名為tomcat
usermod -l tomcat tom
將tomcat新增到sys和root組中
usermod -G sys,root tomcat
檢視tomcat的組資訊
groups tomcat
新增一個jerry使用者並設定密碼
useradd jerry
passwd jerry
新增一個交america的組
groupadd america
將jerry新增到america組中
usermod -g america jerry
將tomcat使用者從root組和sys組刪除
gpasswd -d tomcat root
gpasswd -d tomcat sys
將america組名修改為am
groupmod -n am america
5、系統管理操作
主機名操作
hostname
**修改主機名(重啟後無效)
hostname hadoop
*修改主機名(重啟後永久生效)
vi /ect/sysconfig/network
chkconfig設定後臺服務的自啟動配置
chkconfig 檢視所有服務的自啟動配置
chkconfig iptables off 關掉指定服務的自啟動
checonfig iptables on 開啟指定服務的自啟動
系統啟動級別管理
vi /etc/inittab
centos7 之後 inittab is no longer used when using systemd 不再使用了。
IP地址檔案的詳解
修改IP(重啟後無效)
ifconfig eth0 192.168.12.22
修改IP(重啟後永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-ens32
裡面內容的解釋:
TYPE="Ethernet" # 這個是型別不用管
PROXY_METHOD="none" # 這個是代理方式,不用管
BROWSER_ONLY="no" # 僅瀏覽器模式,不用管
BOOTPROTO="dhcp" # 網路卡獲得ip地址的方式, dhcp 代表自動獲取,static(靜態 ip地址)bootip(通過bootp協議獲得的ip地址)
DEFROUTE="yes" # 預設路由
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32" # 網路卡名稱
UUID="026a2b15-42ea-472f-86d6-9913d19aff3e" ##UUID不用管
DEVICE="ens32" # 網路卡名稱
ONBOOT="yes" # 開機啟動
如果把BOOTPROTO 修改成 static,一般情況下只需要配置如下就行:
BOOTPROTO=static #改為static 靜態ip
IPADDR=192.168.126.166 # 這裡需要指定 ip
GATEWAY=192.168.126.2 # 指定閘道器
NETMASK=255.255.255.0 # 指定子網掩碼
ONBOOT=yes # 開機啟動
DNS1=192.168.126.2 # DNS 指定閘道器就行 可以不配置
DNS2=8.8.8.8
mount 掛載外部儲存裝置到檔案系統中
mkdir /mnt/cdrom 建立一個目錄,用來掛載
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ 將裝置/dev/cdrom掛載到 掛載點 : /mnt/cdrom中
*umount
umount /mnt/cdrom
統計檔案或資料夾的大小
du -sh /mnt/cdrom/Packages
df -h 檢視磁碟的空間
開關機
關機
halt
****重啟
reboot
配置主機之間的免密ssh登陸
假如 A 要登陸 B
在A上操作:
%%首先生成金鑰對
ssh-keygen (提示時,直接回車即可)
%%再將A自己的公鑰拷貝並追加到B的授權列表檔案authorized_keys中
ssh-copy-id B
原理如下圖所示:
上傳檔案
上傳檔案到linux上, 是上傳到當前所在的目錄下
yum list|grep lrzsz
sudo yum -y install lrzsz.x86_64
命令:(引數 -y 如果linux上有相同的檔案, 會覆蓋)
rz
rz -y
6、正規表示式
1.cut擷取以:分割保留第七段
grep hadoop /etc/passwd | cut -d: -f7
2.排序
du | sort -n
3.查詢不包含hadoop的
grep -v hadoop /etc/passwd
4.正則表達包含hadoop
grep 'hadoop' /etc/passwd
5.正則表達(點代表任意一個字元)
grep 'h.p' /etc/passwd
6.正則表達以hadoop開頭
grep '^hadoop' /etc/passwd
7.正則表達以hadoop結尾
grep 'hadoop$' /etc/passwd
規則:
. : 任意一個字元
a : 任意多個a(零個或多個a)
a? : 零個或一個a
a+ : 一個或多個a
. : 任意多個任意字元
. : 轉義.
\<h.p> :以h開頭,p結尾的一個單詞
o{2} : o重複兩次
grep '^i.{18}n$' /usr/share/dict/words
查詢不是以#開頭的行
grep -v '^#' a.txt | grep -v '^$'
以h或r開頭的
grep '^[hr]' /etc/passwd
不是以h和r開頭的
grep '^[^hr]' /etc/passwd
不是以h到r開頭的
grep '^[^h-r]' /etc/passwd
7、輸入輸出重定向
1.新建一個檔案
touch a.txt
b.txt
2.錯誤重定向:2>
find /etc -name zhaoxing.txt 2> error.txt
3.將正確或錯誤的資訊都輸入到log.txt中
find /etc -name passwd > /tmp/log.txt 2>&1
find /etc -name passwd &> /tmp/log.txt
4.追加>>
5.將小寫轉為大寫(輸入重定向)
tr "a-z" "A-Z" < /etc/passwd
6.自動建立檔案
cat > log.txt << EXIT
ccc
ddd
EXI
7.檢視/etc下的檔案有多少個?
ls -l /etc/ | grep '^d' | wc -l
8.檢視/etc下的檔案有多少個,並將檔案詳情輸入到result.txt中
ls -l /etc/ | grep '^d' | tee result.txt | wc -l
8、程式管理
1.檢視使用者最近登入情況
last
lastlog
2.檢視硬碟使用情況
df
3.檢視檔案大小
du
4.檢視記憶體使用情況
free
5.檢視檔案系統
/proc
6.檢視日誌
ls /var/log/
7.檢視系統報錯日誌
tail /var/log/messages
8.檢視程式
top
9.結束程式
kill 1234
kill -9 4333
VMware 機器克隆IP不可用問題
直接修改 /etc/sysconfig/network-script/ifcfg-eth0
刪掉UUID HWADDR
配置靜態地址
然後:
rm -rf /etc/udev/rules.d/70-persistent-net.rules
然後 reboot
linux的命令操作,這裡簡單的記錄一下常用的。
1、日常操作命令
檢視當前所在的工作目錄
pwd
檢視當前系統的時間
date
檢視有誰線上(哪些人登陸到了伺服器)
who 檢視當前線上
last 檢視最近的登陸歷史記錄
修改開機的等待時間
2、檔案系統操作
顯示資訊ls
ls / 檢視根目錄下的子節點(資料夾和檔案)資訊
ls -al -a是顯示隱藏檔案 -l是以更詳細的列表形式顯示
切換目錄
cd /home
建立資料夾
mkdir aaa 這是相對路徑的寫法
mkdir -p aaa/bbb/ccc
mkdir /data 這是絕對路徑的寫法
刪除資料夾
rmdir 可以刪除空目錄
rm -r aaa 可以把aaa整個資料夾及其中的所有子節點全部刪除
rm -rf aaa 強制刪除aaa
修改資料夾名稱
mv aaa angelababy
建立檔案
touch somefile.1 建立一個空檔案
echo "i miss you,my baby" > somefile.2 利用重定向">"的功能,將一條指令的輸出結果寫入到一個檔案中,會覆蓋原檔案內容
echo "huangxiaoming ,gun dan" >> somefile.2 將一條指令的輸出結果追加到一個檔案中,不會覆蓋原檔案內容
檢視檔案多少個單詞,多少行
wc -w README
wc -l README
檢視檔案
tail -f somefile 根據inode 節點跟蹤
tail -F somefile 根據 檔名 跟蹤
解壓和壓縮
用vi文字編輯器來編輯生成檔案
**最基本用法
vi somefile.4
1、首先會進入"一般模式",此模式只接受各種快捷鍵,不能編輯檔案內容
2、按i鍵,就會從一般模式進入編輯模式,此模式下,敲入的都是檔案內容
3、編輯完成之後,按Esc鍵退出編輯模式,回到一般模式;
4、再按:,進入"底行命令模式",輸入wq命令,回車即可
**一些常用快捷鍵
一些有用的快捷鍵(在一般模式下使用):
a 在游標後一位開始插入
A 在該行的最後插入
I 在該行的最前面插入
gg 直接跳到檔案的首行
G 直接跳到檔案的末行
dd 刪除行,如果 5dd ,則一次性刪除游標後的5行
yy 複製當前行, 複製多行,則 3yy,則複製當前行附近的3行
p 貼上
v 進入字元選擇模式,選擇完成後,按y複製,按p貼上
ctrl+v 進入塊選擇模式,選擇完成後,按y複製,按p貼上
shift+v 進入行選擇模式,選擇完成後,按y複製,按p貼上
查詢並替換(在底行命令模式中輸入)
%s/sad/88888888888888 效果:查詢檔案中所有sad,替換為88888888888888
/you 效果:查詢檔案中出現的you,並定位到第一個找到的地方,按n可以定位到下一個匹配位置(按N定位到上一個)
3、檔案許可權的操作
****linux檔案許可權的描述格式解讀
drwxr-xr-x (也可以用二進位制表示 111 101 101 --> 755)
d:標識節點型別(d:資料夾 -:檔案 l:連結)
r:可讀 w:可寫 x:可執行
第一組rwx: 表示這個檔案的擁有者對它的許可權:可讀可寫可執行
第二組r-x: 表示這個檔案的所屬組對它的許可權:可讀,不可寫,可執行
第三組r-x: 表示這個檔案的其他使用者(相對於上面兩類使用者)對它的許可權:可讀,不可寫,可執行
****修改檔案許可權
chmod g-rw haha.dat 表示將haha.dat對所屬組的rw許可權取消
chmod o-rw haha.dat 表示將haha.dat對其他人的rw許可權取消
chmod u+x haha.dat 表示將haha.dat對所屬使用者的許可權增加x
也可以用數字的方式來修改許可權
chmod 664 haha.dat
就會修改成 rw-rw-r--
如果要將一個資料夾的所有內容許可權統一修改,則可以-R引數
chmod -R 770 aaa/
chown angela:angela aaa/ <只有root能執行>
目錄沒有執行許可權的時候普通使用者不能進入
檔案只有讀寫許可權的時候普通使用者是可以刪除的(刪除檔案不是修改它,是操作父及目錄),只要父級目錄有執行和修改的許可權
4、基本的使用者管理
*****新增使用者
useradd angela
要修改密碼才能登陸
passwd angela 按提示輸入密碼即可
**為使用者配置sudo許可權
用root編輯 vi /etc/sudoers
在檔案的如下位置,為hadoop新增一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
然後,hadoop使用者就可以用sudo來執行系統級別的指令
[hadoop@shizhan ~]$ sudo useradd huangxiaoming
新增一個tom使用者,設定它屬於users組,並新增註釋資訊
分步完成:useradd tom
usermod -g users tom
usermod -c "hr tom" tom
一步完成:useradd -g users -c "hr tom" tom
設定tom使用者的密碼
passwd tom
修改tom使用者的登陸名為tomcat
usermod -l tomcat tom
將tomcat新增到sys和root組中
usermod -G sys,root tomcat
檢視tomcat的組資訊
groups tomcat
新增一個jerry使用者並設定密碼
useradd jerry
passwd jerry
新增一個交america的組
groupadd america
將jerry新增到america組中
usermod -g america jerry
將tomcat使用者從root組和sys組刪除
gpasswd -d tomcat root
gpasswd -d tomcat sys
將america組名修改為am
groupmod -n am america
5、系統管理操作
主機名操作
hostname
****修改主機名(重啟後無效)
hostname hadoop
*****修改主機名(重啟後永久生效)
vi /ect/sysconfig/network
chkconfig設定後臺服務的自啟動配置
chkconfig 檢視所有服務的自啟動配置
chkconfig iptables off 關掉指定服務的自啟動
checonfig iptables on 開啟指定服務的自啟動
系統啟動級別管理
vi /etc/inittab
centos7 之後 inittab is no longer used when using systemd
不再使用了。
IP地址檔案的詳解
****修改IP(重啟後無效)
ifconfig eth0 192.168.12.22
****修改IP(重啟後永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-ens32
裡面內容的解釋:
如果把BOOTPROTO 修改成 static,一般情況下只需要配置如下就行:
mount 掛載外部儲存裝置到檔案系統中
mkdir /mnt/cdrom 建立一個目錄,用來掛載
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/
將裝置/dev/cdrom掛載到 掛載點 : /mnt/cdrom中
*****umount
umount /mnt/cdrom
統計檔案或資料夾的大小
du -sh /mnt/cdrom/Packages
df -h 檢視磁碟的空間
開關機
****關機
halt
****重啟
reboot
配置主機之間的免密ssh登陸
假如 A 要登陸 B
在A上操作:
%%首先生成金鑰對
ssh-keygen (提示時,直接回車即可)
%%再將A自己的公鑰拷貝並追加到B的授權列表檔案authorized_keys中
ssh-copy-id B
原理如下圖所示:
上傳檔案
上傳檔案到linux上, 是上傳到當前所在的目錄下
yum list|grep lrzsz
sudo yum -y install lrzsz.x86_64
命令:(引數 -y 如果linux上有相同的檔案, 會覆蓋)
rz
rz -y
6、正規表示式
1.cut擷取以:分割保留第七段
grep hadoop /etc/passwd | cut -d: -f7
2.排序
du | sort -n
3.查詢不包含hadoop的
grep -v hadoop /etc/passwd
4.正則表達包含hadoop
grep 'hadoop' /etc/passwd
5.正則表達(點代表任意一個字元)
grep 'h.*p' /etc/passwd
6.正則表達以hadoop開頭
grep '^hadoop' /etc/passwd
7.正則表達以hadoop結尾
grep 'hadoop$' /etc/passwd
規則:
. : 任意一個字元
a* : 任意多個a(零個或多個a)
a? : 零個或一個a
a+ : 一個或多個a
.* : 任意多個任意字元
. : 轉義.
\<h.*p> :以h開頭,p結尾的一個單詞
o{2} : o重複兩次
grep '^i.{18}n$' /usr/share/dict/words
查詢不是以#開頭的行
grep -v '^#' a.txt | grep -v '^$'
以h或r開頭的
grep '^[hr]' /etc/passwd
不是以h和r開頭的
grep '^[^hr]' /etc/passwd
不是以h到r開頭的
grep '^[^h-r]' /etc/passwd
7、輸入輸出重定向
8、程式管理
VMware 機器克隆IP不可用問題
直接修改 /etc/sysconfig/network-script/ifcfg-eth0
刪掉UUID HWADDR
配置靜態地址
然後:
rm -rf /etc/udev/rules.d/70-persistent-net.rules
然後 reboot