Linux 的常用命令
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 '^1' /etc/passwd
不是以h到r開頭的
grep '^2' /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