Linux筆記


基本命令

目錄結構

遠程軟件(附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 強制刪除不提示
  • touch 創建新文件(可以創建多文件,以空格隔開)

  • 拷貝:cp 源文件 目標路徑

    • 拷貝文件夾:cp -r 源文件夾 目標文件路徑
      • 如果是覆蓋操作,使用 \cp 系統不會進行提示
  • 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 關鍵字 (忽略大小寫)
  • 管道符號 |(將左側的輸出傳遞給右側的命令進行處理)

  • 壓縮和解壓縮

    • 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 安全子系統,可以控制程序只能訪問特定文件

遠程軟件

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 用戶名
      • 添加用戶的附屬組
  • 刪除用戶組 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
  • 硬盤: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
  • 磁盤使用情況查詢

    • 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 進程名稱(支持通配符)
  • 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端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM