Linux 的常用命令

yunwangjun發表於2019-03-01

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

相關文章