基本命令
目錄結構
遠程軟件(附Xshell和Xftp)
vi編輯器
關機、重啟
遠程登錄注銷
用戶、組管理
運行級別
隱藏文件
文件和目錄的權限
rwx權限
修改文件或目錄權限
定時任務
磁盤分區和掛載
統計命令
樹狀形式顯示目錄
修改ip地址
進程管理
服務
rpm和yum
配置環境變量
防火牆
mysql安裝和配置
基本命令
-
cd 切換目錄
-
ls和ll
- ls顯示當前目錄下的文件和文件夾名稱
- ll顯示詳細信息
-
pwd 顯示當前目錄路徑
-
man 命令(用於查看命令)
-
help 命令(用於查看命令)
-
cd ~ 回到自己的家目錄
-
mkdir 創建目錄
- 創建多級目錄:mkdir -p /home/zrk/data
-
rm 刪除目錄(如果目錄下不為空,則無法刪除)
- rm -rf 目錄名稱(強制刪除)
- -r 遞規刪除
- -f 強制刪除不提示
- rm -rf 目錄名稱(強制刪除)
-
touch 創建新文件(可以創建多文件,以空格隔開)
-
拷貝:cp 源文件 目標路徑
- 拷貝文件夾:cp -r 源文件夾 目標文件路徑
- 如果是覆蓋操作,使用 \cp 系統不會進行提示
- 拷貝文件夾:cp -r 源文件夾 目標文件路徑
-
mv(移動,可用於重命名)
- mv 原文件 新文件
-
cat (查看文件,不能修改文件)
- cat -n 文件名(-n顯示行號)
- cat 文件名 | more (分頁顯示,空格顯示下一頁)
-
more 分屏查看
- 顯示下一頁:空格
- 下翻一行:Enter
- 離開:q
- 向下滾動一屏:Ctrl+F
- 返回上一屏:Ctrl+B
- 輸出當前行號:=
- 輸出文件名和當前行號::f
-
less 分屏查看,適合查看大文件(不全部加載)
- 向下翻頁:空格
- pagedown、pageup鍵
- 查詢:/關鍵字(n向下查找,N向上查找)
-
> 重定向指令 和 >> 追加指令
- ls > 文件名(將ls輸出的內容放到文件中)
-
echo 輸出內容到控制台
- echo "字符串"
- echo $PATH(輸出環境變量)
-
head 顯示文本前幾行(默認前十行)
- head -n 5 文件(顯示前五行)
-
tail -n 5 (顯示后五行)
- tail -f 文件(實時顯示文件變化)
-
ln 軟鏈接(快捷方式)
- ln -s 源文件 鏈接名稱
-
history 查看已經執行過的指令
- history 5 (顯示最近5條指令)
- !5 (執行編號為5的指令)
-
時間日期類
- date 顯示當前時間
- date "+%Y-%m-%d %H:%M%%S" (2019-05-30 14:47:05)
- date -s "時間" (設置當前系統時間)
-
cal日歷指令
- cal 年 (顯示一年的日歷)
-
搜索指令
- find
- 通過文件名:find 路徑(查找范圍) -name 文件名
- 通過文件的擁有者:find 路徑 -user 用戶名
- 通過文件大小:find 路徑 -size +4M(+大於,-小於)
- locate,可以快速定位
- 需要先建立locate數據庫:updatedb
- locate 文件名
- grep
- cat 文件名 | grep -n 關鍵字 (顯示匹配行和行號)
- cat 文件名 | grep -i 關鍵字 (忽略大小寫)
- find
-
管道符號 |(將左側的輸出傳遞給右側的命令進行處理)
-
壓縮和解壓縮
- gzip/gunzip 名稱
- zip/unzip
- zip -r 壓縮文件名 文件夾路徑(遞規壓縮文件夾)
- unzip -d 解壓路徑 壓縮文件 (解壓縮到指定文件夾)
- tar
- -c 產生.tar打包文件
- -v 打包時顯示詳細信息
- -f 指定解壓后的文件名
- -z 打包同時壓縮
- -x 解壓.tar文件
- tar -zcvf 壓縮文件名 文件1 文件2 (一般的壓縮組合指令)
- tar -zxvf 要解壓的文件 (一般的解壓組合指令)
- 解壓到指定目錄(目錄需要存在):tar -zxvf 要解壓的文件 -C 路徑
目錄結構
- 根目錄 /
- /bin 存放常用的命令
- /sbin 系統管理員使用的管理程序
- /home 創建用戶時會在此新建屬於自己的目錄
- /root 系統管理員的目錄
- /lib 系統開機所需最基本的動態連接共享庫,幾乎所有的程序都會用到
- /lost+found 一般為空,系統非法關機時存放一些文件
- /etc 系統管理所需的配置文件和子目錄
- /usr 存放用戶的應用程序等
- /boot 引動系統啟動的核心文件
- /proc 虛擬目錄,系統內存的映射,可以獲取系統信息
- /srv 服務啟動后需要的數據
- /sys 該文件系統是內核設備樹的一個直觀反映
- /tmp 存放臨時文件
- /dev 將所有硬件用文件的形式存儲
- /media 設備掛載目錄
- /mnt 臨時掛載別的文件系統
- /opt 安裝軟件存放目錄
- /usr/local 軟件安裝后的目錄
- /var 存放不斷擴充的文件,即經常被修改的文件放在此目錄,包括日志文件
- /selinux 安全子系統,可以控制程序只能訪問特定文件
遠程軟件
-
遠程登錄軟件XShell
-
上傳下載文件XFtp
-
鏈接: https://pan.baidu.com/s/1WCq7Mmz4k2MOdspvuAFtNA 提取碼: px6m
- 運行綠化.bat
- 如果報錯,根據提示安裝windows相應環境
vi(Linux內置)和vim(增強版)編輯器
-
三種模式:正常模式、插入模式(編輯模式)、命令行模式
- 打開后先進入正常模式,可以使用快捷鍵(按Esc回到正常模式)
- 按下i進入插入模式,進行文本修改
- 按下 : 進入命令行模式,提供相關指令,如:保存退出(:wq)
-
快捷鍵
- yy 復制當前行,5yy 復制當前行下向下的5行
- p 粘貼
- dd 刪除當前行,5dd 刪除當前行下向下的5行
- 在文本中查找,輸入 /關鍵字,在輸入n,即查找下一個
- :set nu 顯示行號,:set nonu 不顯示行號
- G 到文本最后一行,gg 到文本第一行
- 行號 G,到達指定行號
- u 撤銷
關機、重啟(之前執行 sync 把內存數據同步到磁盤,防止數據丟失)
-
shutdown
- shutdown -h now 立即關機
- shutdown -h 1 1分鍾后關機
- shutdown -r now 重啟
-
halt 關機
-
reboot 重啟
遠程登錄注銷
- logout
用戶管理、用戶組
-
root管理員 屬於root組,一個用戶至少屬於一個組
-
添加用戶:useradd [選項] 用戶名
- 當創建用戶時,沒有指定組將創建和用戶同名的組
- 指定用戶組 useradd -g 組名 用戶名
- 用戶創建時系統自動在home目錄創建同名文件夾
- 如果不想系統創建,也可以指定創建的文件夾名 useradd -d 文件夾路徑 用戶名
-
設置或修改密碼:passwd 用戶名,然后輸入密碼
-
刪除用戶:userdel 用戶名
- 不帶參數刪除用戶,保留用戶家目錄
- userdel -r 用戶名,刪除用戶及其家目錄
-
查詢用戶信息:id 用戶名
- 查詢出uid(用戶id)、gid(組id)、組(組名稱)
-
切換用戶:su - 用戶名
- 從高級別用戶到低級別用戶時不需要輸入密碼,輸入exit會回到高級別用戶
-
查詢當前用戶:whoami
-
添加用戶組 groupadd 組名
-
修改用戶所在組
- usermod -g 組名 用戶名
- 修改用戶的主組,之前的主組變為附屬組
- usermod -G 組1,組2 用戶名
- 替換用戶的附屬組,如果附屬組和主組相同,表示只有主組
- usermod -a -G 組1,組2 用戶名
- 添加用戶的附屬組
- usermod -g 組名 用戶名
-
刪除用戶組 groupdel 組名
-
用戶配置文件:/etc/passwd
- 部分行的含義:用戶名:口令:用戶id:組id:注釋描述信息:主目錄:shell
-
組信息文件:/etc/group
- 部分行含義:組名:口令:組id:組內用戶列表(隱藏)
-
口令配置文件(密碼和登錄信息,加密文件):/etc/shadow
- 部分行的含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
-
chown 修改文件所有者
- chown 用戶名 文件名
-
chgrp修改文件所在組
- chgrp 組名 文件名
-
chown -R 人:組 目錄 (遞規修改目錄和文件的所有者和組)
Linux七個運行級別
- 0:關機
- 1:單用戶[找回丟失密碼]
- 2:多用戶,無網絡
- 3:多用戶,有網絡
- 4:系統未使用,保留
- 5:圖形界面
- 6:重啟
- 配置文件路徑:/etc/inittab
- 指定級別:init 級別
隱藏文件(以.開頭的文件)
文件和目錄的權限
(例如/home下的文件) -rw-r--r--. 1 zrk NetCore 120 2月 28 12:12 zrk
- 0:- 普通文件,d 文件夾,l 軟鏈接,c 設備(鍵盤或鼠標),b 塊文件(硬盤)
- 1-3:文件所有者權限
- 4-6:文件所在組的用戶權限
- 7-9:文件其他組的用戶權限
- 如果是文件,1表示硬鏈接;如果是目錄,表示目錄下的子目錄個數
- 表示擁有者
- 表示所屬組
- 表示文件大小
- 文件的修改時間
- 名稱
rwx權限,讀、寫、可執行/可進入
- 對文件有寫權限,表示可以修改,但是刪除,需要有目錄的寫權限
- r=4,w=2,x=1
- rwx(有權限表示1,沒有權限表示0)只有r就是100(二進制)=4,只有w就是010(二進制)=2,只有x就是001(二進制)=1
修改文件或目錄權限chmod
- chmod u=rwx,g=rx,o=x 名稱
- chmod o+w 名稱 (給其他人加寫權限)
- chmod a-r 名稱 (給全部人減少讀權限)
- chmod 777 名稱 (通過數字給權限,給全部人所有權限)
定時任務 crontab
-
-e 編輯定時任務,例如(每分鍾在result中寫入ll命令的結果):*/1 * * * * ll /etc/ >> /tmp/result.txt
- 第一個*:分鍾(0-59)
- 第二個*:小時(0-23)
- 第三個*:天(1-31)
- 第四個*:月(1-12)
- 第五個*:星期(0-7,0和7都表示星期天)
-
特殊符號說明
- *代表任何時間,每秒、每分、每小時...
- ,表示不連續的時間
- -表示范圍
- /表示,左邊表示開始,右邊表示步長
-
-l 列出當前所有定時任務
-
-r 終止所有任務
-
service crond restart 重啟任務
磁盤分區和掛載 crontab
-
分區方式
- mbr分區
- 最多支持4個主分區
- 系統只能安裝在主分區
- 擴展分區要占用一個主分區
- 最大只支持2TB,但是兼容性好
- gtp分區
- 不限主分區(但是操作系統有可能限制)
- 最大支持18EB(EB=1024PB,PB=1024TB)
- win7 64位后支持gtp
- mbr分區
-
硬盤:IDE(old)、SCSI(性能好)
-
驅動器標識符:例如hdx、sdx
- hd表示IDE設備類型,sd表示SCSI
- x為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤)
- ~表示分區,前1-4個分區是主分區或擴展分區,從5開始是邏輯分區
-
查看系統分區和掛載的命令 lsblk [-f]
-
掛載點實際上就是linux中的磁盤文件系統的入口目錄
-
實例:增加一塊硬盤
- 虛擬機添加硬盤:設置=>硬盤=>添加
- 分區
- fdisk /dev/磁盤(sdb)
- m(顯示幫助信息)
- 格式化
- mkfs -t ext4 /dev/分區(sdb1)
- 掛載(下面只是臨時掛載,重啟后就消失)
- mount /dev/分區 /home/文件目錄(卸載 umount 分區或文件目錄)
- 設置可以自動掛載
- etc/fstab (記錄分區和掛載點信息),修改此文件會自動掛載
- /dev/分區 /home/文件目錄 ext4 defaults 0 0
- etc/fstab (記錄分區和掛載點信息),修改此文件會自動掛載
-
磁盤使用情況查詢
- df -h
- 查詢目錄占用磁盤情況:du -ach --max-depth=1 目錄
- -s 指定目錄占用大小
- -h 帶計量單位
- -a 含文件
- --max-depth=1 子目錄深度
- -c 列出明細,並增加匯總值
統計命令wc
- -c 統計字節數
- -l 統計行數
- -m 統計字符數
- -L 打印最長行的長度
- 實例:
- 統計目錄下的文件個數:ll 目錄 | grep "^-" | wc -l
- 統計目錄下的文件夾個數:ll 目錄 | grep "^d" | wc -l
tree命令,以樹狀形式顯示目錄
修改ip地址
- 指定固定ip地址
- /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes(啟用) BOOTPROTO=static(以靜態的方式獲取ip) IPADDR=192.168.1.110(指定ip) GETWAY=關 DNS1=dns和網關保持一致即可
進程管理
-
ps 查看系統中的進程
- -a 顯示所有
- -u 以用戶的格式顯示
- -x 顯示后台進程運行的參數
- -ef 會顯示進程的父進程
-
pstree -p 以樹狀的形式顯示進程和pid
-
kill和killall 終止進程
- kill [選項] 進程號
- -9 (強制終止)
- killall 進程名稱(支持通配符)
- kill [選項] 進程號
-
top 動態監控進程
- -d 數字,刷新時間
- -i 不顯示任何閑置或僵死進程
- -p 監視某個進程狀態
- P 按cpu使用率排序(默認)
- M 按內存使用排序
- N 按PID排序
- q 退出top
- k 結束進程
服務(service)
-
service 服務名 [start|stop|restart|reload|status](臨時生效)
- centos7.0后使用systemctl
-
查看防火牆狀態
- service iptables或firewalld(默認防火牆) status
-
setup 查看所有服務(或者在/etc/init.d/)
-
chkconfig可以給服務的各個運行級別設置啟動和關閉(永久生效)
- chkconfig --level 運行級別 服務名 on/off
- chkconfig --list 列表顯示服務
-
查看網絡情況:netstat -anp
- -an 按一定順序排序輸出
- -p 顯示哪個進程在調用
rpm和yum
-
rpm包(相當於windows中的安裝程序)
- -qa 查詢所有已安裝的rpm包
- -qf 路徑(查詢文件所屬的軟件包)
- -qi 軟件包(查詢詳細信息)
- -e 卸載rpm包(如果有依賴提示不讓刪,使用 -e --nodeps 包名)
- -ivh rpm包路徑
- -i install
- -v 提示
- -h 進度條
-
yum 前端軟件包管理,基於rpm,用的比較多,自動安裝所有依賴包
- install 安裝
- update 更新
- check-update 檢查可更新程序
- info 顯示安裝包信息
- list 查詢服務器有沒有所需的安裝包(yum list | grep 軟件)
- remove 刪除
- deplist 查看程序包依賴
配置環境變量
-
文件路徑:/etc/profile
-
以java環境變量為例
- 在文件末尾添加:
JAVA_HOME=路徑 PATH=路徑:$PATH(冒號代表連接符) export JAVA_HOME PATH
防火牆(禁用firewall,使用iptables)
-
關閉firewall:systemctl stop firewalld.service
-
禁止firewall開機啟動:systemctl disable firewalld.service
-
安裝iptables防火牆:yum install iptables-services
-
編輯防火牆配置文件:vi /etc/sysconfig/iptables
- 以3306端口為例:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-
重啟防火牆使配置生效:systemctl restart iptables.service
-
設置防火牆開機啟動:systemctl enable iptables.service
mysql安裝和配置(以5.7為例,初始化方式和老版本不同)
-
查看是否已有mysql,有則需要卸載:pm -qa | grep mysql
-
下載解壓到/usr/local/mysql
-
添加mysql組和mysql用戶
-
修改 /usr/local/mysql的組和用戶權限為mysql:chown -R mysql:mysql /usr/local/mysql
-
初始化數據庫:/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
- --user 啟動mysql的用戶
- --basedir mysql安裝目錄
- --datadir mysql數據倉庫目錄
[root@z mysql]# /usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 2019-05-31T10:21:06.750933Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-05-31T10:21:07.644227Z 0 [Warning] InnoDB: New log files created, LSN=45790 2019-05-31T10:21:07.764158Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2019-05-31T10:21:07.777875Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cdcb1ce4-838d-11e9-a1bd-000c29256118. 2019-05-31T10:21:07.782886Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2019-05-31T10:21:07.784521Z 1 [Note] A temporary password is generated for root@localhost: pNRthyw-c31r
- 初始化后打印的最后一行,也和之前版本不同,它給了root一個初始密碼,后面要登錄的時候要用到這個密碼。
-
將mysql/目錄下除了data/目錄的所有文件,改回root用戶所有:chown -R root /usr/local/mysql
-
mysql用戶只需作為data目錄下所有文件的所有者:chown -R mysql /usr/local/mysql/data
-
復制啟動文件:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
-
增加mysqld服務控制腳本執行權限:chmod 755 /etc/init.d/mysqld
-
將mysqld服務加入到系統服務:chkconfig --add mysqld
-
檢查mysqld服務是否已經生效:chkconfig --list mysqld
-
修改啟動腳本:vi /etc/init.d/mysqld
basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data port=3306
-
啟動服務:service mysqld start
-
加入環境變量,可以在任何地方用mysql命令,vi /etc/profile
PATH=/usr/local/mysql/bin:$PATH
export PATH
-
刷新立即生效:source /etc/profile
-
mysql -u root -p
- 輸入之前的密碼
-
修改密碼:set password=password('新密碼');
-
開放3306端口