** Linux基本操作常用命令(二)
** 用戶名與主機名
當你進入Linux終端時,你會看到如下樣式的圖片:
其中[z@z01]方括號內的z表示當前系統登錄操作的用戶名,@后的z01表示當前主機名,每個人的情況不一樣,默認的主機名是:localhost
那么下面我們首先來看一下在CentOS 7中如何修改主機名
* 查看/修改 主機名
查看:hostname,如圖:
切換到root用戶下:
臨時修改方式:hostname + 名稱,例如:hostname z01
持久修改方式:vi /etc/hostname,直接修改hostname配置文件,就類似于在記事本中修改,修改完畢保存退出即可。
臨時修改會在系統重啟后復原,持久修改不會因為系統重啟而失效。持久修改需要重啟一下系統,使用reboot命令。
** 用戶和用戶組
* 使用命令:cat /etc/passwd來查看當前用戶及用戶組,出現了如下內容:
這里我們以最后一行數據來作為例子解釋,因為這一行代表了當前用戶,即:
z:x:1000:1000:z:/home/z:/bin/bash
解釋:
(1):用戶名。
(2):密碼(已經加密)
(3):UID(用戶標識),操作系統自己用的
(4):GID組標識。
(5):用戶全名或本地帳號
(6):開始目錄
(7):登錄使用的Shell,就是對登錄命令進行解析的工具。
** 用戶操作
創建用戶:useradd username
刪除用戶:userdel -r username(-r表示連帶用戶目錄一起徹底刪除)
創建用戶組:groupadd groupname
刪除用戶組:groupdel groupname
修改用戶密碼:passwd username
回顯輸入內容:echo
例如:
echo '123456' | passwd --stdin username
該指令意思為:修改密碼為123456,并顯示該密碼
切換用戶:su username或su - username
(加“-”,表示切換用戶時,連同環境變量,工作目錄一同切換,不加“-”反之)
** 目錄/文件權限
文件或目錄的權限是個什么東西,請大家自行百度。再此不廢話,直接展示如何操作權限。
首先,使用ls -l命令,來查看當前目錄下的子文件/子目錄權限,如圖:
1、結構以及字母含義
drwxr-xr-x
該系列字母,可以拆分為:
d
rwx
r-x
r-x
四個部分,下面依次解釋
2、字母表示(r的意思為可讀,w為可寫,x為可執行,-為非的意思,即如果字母換成了-,就是)
第一段:d:代表data目錄,一個占位符
第二段:rwx:表示所有者(user,u)
第三段:r-x:表示所屬組(group,g)
第四段:r-x:表示其他人(other,o)
r:讀,比如命令,cat,haed,more,tail
w:寫,比如命令,mkdir,touch,vi,vim,rm,cp,mv等等
x:執行,比如命令,cd
3、數字表示,相加運算
比如:d755
r:用數字4表示
w:用數字2表示
x:用數字1表示
4、修改權限
chmod,例如:
添加:
chmod u+x program
chomd 777 program
chmod g+x,o+x program
解釋:u+x意思為,所有者,添加新的“可執行(x)”權限,以下以此類推。
批量操作:
chomd u+rwx,g+rwx,o+rwx zz1.txt zz2.txt
解釋:修改zz1.txt和zz2.txt文件的權限為這個:u+rwx,g+rwx,o+rwx
5、修改文件/目錄所有者
尖叫提示:修改所有者,盡量在root權限下操作。
修改所有者:
chown root /home/xxx/abc,解釋:即修改abc所有者為root
修改所屬組:
chgrp root /home/xxx/abc,解釋:即修改abc所屬組為root
同事修改所有者及所屬組:
chown root:root /home/xxx/abc,解釋:即修改abc所有者及所屬組為root
** 關機重啟命令
1、關機:init 0, shutdown 先結束其他進程,再關機
2、重啟:init 6, reboot 先執行其他程序的shell關閉腳本,再重啟
** 管道符、追加/覆蓋符
1、管道符,“|”,表示將前一個命令的處理結果輸出傳遞給后面的命令處理
例如:
cat /etc/passwd | more
2、過濾,“grep”,表示過濾篩選
例如:
cat /etc/passwd/ | grep 'root'?
解釋:查看所有帶有root關鍵字的行
再例如:
ifconfig | grep '192.168'
解釋:查看所有帶有192.168關鍵字的內容
(尖叫提示:并不是所有的命令都可以放在管道符后邊)
3、追加/覆蓋
追加:>>,把前面命令輸出的結果追加到后面某個文件中
覆蓋:>,把前面命令輸出的結果覆蓋到后邊某個文件中
例如:
cat /etc/passwd >> zz.txt
4、統計命令
統計命令:wc,統計單詞,字符,行數等,支持管道符
例如:
ifconfig | wc -l
解釋:查看有多少行
顯示進程:ps,顯示當前系統運行的進程,類似于任務管理器
例如:
ps -ef | wc -l
解釋:查看當前有多少個進程
** 搜索命令
搜索命令:find,會大量消耗系統資源。直接舉例闡述該命令:
文件名查找:
全盤查找:find / -name vm
模糊查詢帶有關鍵字的文件名:find /etc/ -name *vm*
查找關鍵字開頭的:find /etc/ -name init*
*號:通配符,匹配任意的字符串
?號:匹配單個字符,例如:find /etc/ -name init???
(尖叫提示:如果不想區分大小寫,按照文件名進行查找,使用-iname)
---------------------------------------毫無用處的分割線---------------------------------------------
文件大小查找:
size:根據文件大小搜索(在linux中一個數據塊大小為512byte)
指定方式:+,-,沒有符號表示等于
例如:
100M文件的查找:
find / -size +數據塊數量(即100M除以512byte,記得換算單位,即:100 * 1024 * 1024 / 512)
所有者/所屬組查找
例如:
find /root/ -user root
find /root/ -group root
文件類型查找
find /etc/ -name init* -type f:查找文件
find /etc/ -name init* -type d:查找目錄
** 磁盤管理(切換到root用戶下操作)
1、fdisk -l:查看系統所有設備情況,如圖:
2、sda代表系統中的第一塊硬盤
3、sda1,sda2表示硬盤中 第一個,第二個分區
4、硬盤接口:SATA,SAS,IDE,SCSI等
(尖叫提示:HDA是使用了IDE接口的硬盤名稱,SDA是sata的硬盤接口名稱,在2.6.19內核中,所有硬盤都叫SDA了)
(尖叫提示:IDE,即integrated drive electronics,把盤體和控制器集成在一起)
(尖叫提示:SATA,即serial ATA,即,serial advanced technology attachment)
具體含義區別以及解釋請自行百度,不是此章重點
5、cylinders:磁柱,簡單理解:磁柱是硬盤分區的依據。可以分割成大小不等的許多柱面,而這些柱面的起始之間就是一個一個的分區,在linux里是sdb1,sdb2 .....等;在windows里是C盤,D盤等。
6、設置分區:fdisk /dev/sdb 設置第二塊硬盤
7、添加一個新的分區:
例如:
n add a new partition
8、主分區和擴展分區
一般而言,主分區個數 + 拓展分區個數 <= 4
企業用法一般:3主分區 + 1擴 或 2主 + 1擴
(尖叫提示:擴展分區不能直接拿來使用,需要對擴展分區進行邏輯分區,而主分區格式化后可以直接使用)
9、格式化分區
文件系統:ext1,2,3,4
用法:mkfs.ext4 /dev/sdb5
10、掛載(臨時掛載)
用法:mount /dev/sdb5/ /mnt(即掛載點,訪問磁盤的唯一入口,掛載點必須存在)
查看是否掛載:df -h
11、掛載(永久掛載)
用法:
vi /etc/fstab
添加:
/dev/sdb5 ? ? ? ? ? ? /mnt ? ? ? ? ? ? ? ext4 ? ? ? ? ?defaults ? ? ? ? 0 ?0
** man幫助命令
1、查看命令的幫助信息
2、查看配置文件的幫助信息
例如:
man ls,即教你怎么使用ls命令
** sudo權限
1、操作的對象是系統命令
2、切換到root用戶下,使用命令:visudo
3、root ? ? ? ? ? ? ? ? ALL=(ALL) ? ? ? ? ? ? ? ? ? ?ALL
解釋:
root:用戶
ALL=(ALL):被管理主機地址(使用的身份)
ALL:授權的命令
4、whereis shutdown,查看shutdown命令位置,如圖:
5、配置shutdown的sudo權限
z ? ? ? ? ? ? ?ALL=/usr/sbin/shutdown -r now
配置完成后,就可以在普通用戶下這樣使用了:
sudo shutdown -r now
6、配置所有命令的sudo權限
z ? ? ? ? ? ? ALL=(ALL) ? ? ? ? ? ? ? NOPASSWD:ALL
(尖叫提示:NOPASSWD:ALL即:不用密碼)
** 解壓命令
壓縮格式:.gz
壓縮:gzip只能壓縮文件,不能壓縮目錄
解壓:gunzip
(尖叫提示:解壓后不保留源文件)
壓縮格式:.tar
壓縮:可以壓縮文件或目錄
參數:
-c:建立一個壓縮文件(create)
-x:解開一個壓縮文件
-t:查看tarfile里面的文件
-f:使用檔名,在f之后要立即接檔名,不可再加參數
例如:
tar -cvf zzzz.tar Desktop/
gzip zzzz.tar
解釋:壓縮Desktop目錄為zzzz.tar文件,再使用gzip壓縮zzzz.tar為zzzz.tar.gz文件
解壓:tar
例如:
tar -zxf zzzz.tar.gz -C Desktop/
解釋:解壓zzzz.tar.gz文件到Desktop目錄
** Linux下配置JDK環境變量
1、Linux的JDK下載:
鏈接:http://pan.baidu.com/s/1jIQGem6 密碼:enyj
2、在/opt/目錄下創建兩個目錄
modules和software
3、使用FileZilla Client這個軟件上傳JDK壓縮包至/opt/software/目錄
4、解壓:tar -zxf jdk-8u121-linux-x64.gz -C /opt/modules/,即解壓到/opt/modules/目錄
5、修改配置文件:vi /etc/profile
在末尾加上:
##JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
6、使配置文件生效:source /etc/profile
7、查看是否配置成功:
java -version 以及 javac
(尖叫提示:由于CentOS 7中有自帶的openJDK,以此時的java -version顯示的并不是你配置的版本,所以此時,我們講解一下如何卸載系統自帶的OpenJDk)
** 卸載OPEN JDK
1、查看自帶的open jdk的安裝位置
rpm -qa | grep 'java'
2、依次刪除帶有java關鍵字的安裝包,即:
rpm -e --nodeps java-xxx.xxx.xxx.xxx
(尖叫提示:--nodeps意為強制操作)
** 克隆虛擬機
1、關閉虛擬機中需要克隆的系統,即:
2、依次點擊標簽欄:虛擬機--管理--克隆,出現如下對話框:
3、下一步,選擇“虛擬機中的當前狀態”,即:
4、選擇創建完整克隆,即:
5、新建虛擬機名稱,出來的默認界面是這樣的:
修改名稱和位置,例如:
6、點擊完成,就出現了如下界面,稍需等待,就克隆成功了:
7、克隆完成之后,啟動該虛擬機,因為是克隆過來的,所以和第一臺虛擬機一模一樣,那么我們需要修改如下內容:
(尖叫提示:記得切換到root用戶下操作)
* hostname主機名,修改方式:
vi /etc/hostname
* 修改網絡配置
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,如圖:
將紅框內的IP地址從第一臺虛擬機的192.168.122.200改為192.168.122.202,因為這是我克隆的第三臺,可能是你克隆的第二臺,你改為別重復的即可。建議按照一定順序遞增即可。修改完畢記得保存退出。
* 修改Linux主機映射
命令:vi /etc/hosts,修改為如圖即可:
如果z01虛擬機沒有設置過該選項,可以手動設置下。方法如上。
* 修改windows系統中的hosts主機名映射,即添加最后一條,如圖:
(尖叫提示:hosts文件位置:C:\Windows\System32\drivers\etc)
因為我直接克隆了2臺出來,配置方式是一樣的,學會之后自己克隆一臺,再克隆一臺即可。
* 重啟虛擬機
在root用戶下,使用reboot now命令重啟虛擬機即可,重啟完畢后,就可以使用SecureCRT軟件連接該虛擬機了。
** 總結
操作命令你只需要操作一遍即可(操作一遍很有必要),因為后邊開發過程可能會反復用到,腦海里留個印象,需要用到的時候反復查閱,自然會記住,理解也會更加通透。
IT全棧公眾號:
QQ大數據技術交流群(廣告勿入):476966007