福富網大課程筆記 - JAVA初級階段 - 03輕鬆玩轉Linux

  1. Linux是基於Unix的開源的操作系統,我們常說的Linux是基於Linux內核,包含gcc、vim、apache、emacs、sendmail等工具和軟件的操作系統。
    應用:服務器操作系統、嵌入式操作系統。
    Fedora是Redhat用來測試最新軟件或工具的測試系統,CentOS是Redhat的社區版本,適用於服務器。

  2. Shell
    Shell是用戶與內核進行交互操作的接口,分爲命令行式和圖形式兩大類。
    命令 [-選項, ...] 參數1, 參數2, ...
    ls:查看目錄下內容
    -l:以列表方式顯示
    -h、–help:查看幫助
    man:獲取使用手冊

  3. Linux文件系統

    目錄結構:
    /:根目錄
    /root:root用戶的家目錄,包含root用戶啓動時用到的配置。
    /home:其他用戶的家目錄,用於存放用戶自己的文件和應用。
    /etc:存放各種系統和應用的配置文件,如用戶賬號、防火牆設置等。
    /dev:硬件設備對應的文件。
    /lib:各種函數庫和核心模塊。
    /sbin:開機過程中所需的開機、修復、還原系統所需要的指令,只有root用戶可以執行。
    /usr:類似“C:\Windows\”和“C:\Program Files\”,可以在這裏安裝應用。
    /bin:包含所有用戶都可以執行的系統指令。

    路徑表示方法:
    絕對路徑表示法:/usr/share
    相對路徑表示法:…/bin/date,./man
    對於家目錄的表示方法:表示當前用戶的家目錄,account代表用戶account的家目錄。

    操作命令:
    pwd:當前工作目錄的完整路徑。
    cd:改變當前工作目錄。(cd -:回到前一個工作目錄)
    ls:列出文件和目錄的信息。(-a列出全部文件;-l按長數據格式列出文件屬性;-r:遞歸列出子目錄內容)
    cp:複製文件或目錄。(cp file /tmp/file1:將file複製到/tmp目錄下並重命名爲file1;cp -r /etc /tmp:將整個/etc目錄複製到/tmp目錄下)
    rm:刪除文件或目錄。(-f:強制刪除;-r:刪除文件夾)
    mv:移動文件或目錄、重命名。
    mkdir:創建目錄。(-p:若父目錄不存在,自動創建父目錄)
    rmdir:刪除空目錄。(-p:若刪除後父目錄爲空,一起刪除父目錄)

    可以多個選項同時使用,如ls -alR;可以使用通配符:如ls a*列出以a開頭的文件。

  4. 查找文件

    find:在指定目錄下查找具有某些特徵的文件,包括文件權限、所屬用戶或組、大小、類型、時間等。
    find 路徑 選項
    -name:按文件名查找。
    -perm:按文件權限查找;
    -user:按文件所屬用戶查找;
    -group:按文件所屬組查找。
    -type:查找某一類型的文件。(b:塊設備文件,d:目錄,c:字符設備文件,p:管道文件,l:符號鏈接文件,f:普通文件)
    -newer:比較兩個文件的更改時間。(find . -newer s ! -newer e:查找更改時間在s和e之間的文件。)
    -size:根據文件大小查找文件。(find . -size +10:查找大小大於10個數據塊的文件;find . -size 100c:大小正好爲100字節的文件)
    -mtime、-atime、-ctime [-/+]n:按照文件的更改時間、訪問時間、屬性被修改的時間查找文件。(n:n天前當天的文件,-n:n天以內;+n:早於n天前的文件)

    find 路徑 選項 -exec command {} \; 對找到的文件執行command參數所給出的shell命令。-exec替換爲-ok,則每次執行前要求確認。(find /tmp -type f -mtime +7 -exec rm -f {} \:強制刪除/tmp目錄下更改時間在7天以前的普通文件。)

    grep:使用正則表達式搜索文本,並打印匹配的行。
    grep [選項] 正則表達式 [文件](多個文件名用空格隔開)
    -c:只輸出匹配行的計數。
    -i:不區分大小寫。
    -h:不顯示文件名。
    -l:只顯示文件名。
    -n:顯示匹配行及行號。
    -s:不顯示錯誤信息
    -v:反選
    grep '059[123]' file:查找0591、0592、0593;
    grep '^data' file:匹配行首的data字符;
    grep 'data$' file:匹配行尾的data字符;
    grep '[A-Z]...D' file:匹配大寫字母開頭、d結尾、長度爲5的字符;
    grep '[0-9]\{9\}' file:匹配長度爲9的數字(有轉義字符)
    grep 'a\{5,8\}'file:匹配長度爲5到8的aaaaaa。
    字符串用雙引號,正則表達式用單引號。

  5. 用戶和用戶組
    root用戶:可以操作系統中的任何文件和命令,擁有最高權限。
    系統用戶:不能用於登陸,但對系統運行有重要作用。
    普通用戶:可用於登陸,但權限受到限制。
    一個用戶可以加入多個組,但必須有一個基本組。
    /etc/passwd文件:所有用戶的信息。(用:分隔開,包括用戶名,密碼佔位符,用戶id,用戶組id,註釋信息,用戶家目錄,用戶默認shell)

    whoami:查看當前用戶名。
    id:查看用戶和組的id。(uid:用戶id,gid:組id;root爲0,系統用戶爲1-499,普通用戶爲500以上)
    groups:查詢當前用戶所屬的全部組。
    useradd ffcs2 -u 700 -g users:創建新用戶,uid爲700,基本組爲users。
    passwd ffcs2:給新用戶創建密碼。
    usermod -G root ffcs2:把用戶加入root組。

  6. 權限
    ls -l查看文件權限。

    第一個字段的10個字符:
    第1個字符爲文件類型(-爲常規文件;d爲目錄;l爲符號鏈接;c爲字符專門設備文件;b爲塊專門設備文件;p爲管道文件;s爲套接字)
    後面9個字符3個位一組:文件所屬用戶的權限,文件所屬組的權限,其它用戶的權限。(r爲讀,w爲寫,x爲執行)

    目錄的權限:rwx對應允許列出包含的文件和目錄、允許創建和刪除文件、允許進入該目錄。

    chmod:修改權限
    chmod [選項] [對象] [操作] [權限] 文件
    [對象]:u爲所屬用戶,g爲所屬組,o爲其他用戶,a爲ugo三種全部。
    [操作]:+增加權限,-去除權限,=設置權限。
    [權限]:r、w、x。
    chmod [選項] 八進制模式 文件
    chmod 750 file表示對file文件設置權限rwx r-x —(111 101 000即750)。

  7. 進程
    交互進程:需要與用戶交互。如ftp程序進程。
    批處理進程:不與用戶交互,啓動後執行一個任務就結束了。如find命令。
    守護進程:一直在後臺運行,不受終端控制的一種特殊進程。如httpd服務程序。

    ps命令查看進程:
    -l:長格式輸出。
    -u:按用戶名順序顯示進程。
    -f:用樹形格式顯示進程。
    -a:顯示所有用戶的所有進程。
    -e:顯示每個進程所使用的環境變量。
    -x:顯示所有進程,不以終端機來區分。
    -r只列出現行終端機正在執行中的進程。
    -w:避免詳細參數被截斷。
    ps aux:查看所有進程及進程的CPU和內存使用情況。
    ps auxf:更容易判斷出父子進程關係。
    ps -ef:查看所有進程及進程的PPID。
    ps -ef | grep httpd:顯示httpd程序對應的進程。

    終止進程:

    kill [信號代碼] pid
    -15:正常退出進程
    -9:強制終止進程(-15無效再用-9)

    kill pid等同於kill -15 pid
    只有root用戶才能kill其他用戶的進程。

    服務:
    systemctl status:查看服務狀態。
    systemctl start:啓動服務。
    systemctl stop:停止服務。

  8. 環境變量
    env:查看當前所有環境變量。
    env|grep 變量名echo $變量名:查看特定環境變量。
    export [變量名]=[變量設置值]:設置或顯示環境變量。
    unset 變量名:清除環境變量。
    HOME:用戶的家目錄路徑。
    LOGNAME:當前用戶的用戶名。
    PATH:進程命令或腳本查找的目錄順序。目錄之間用:隔開。
    SHELL:獲取當前環境使用的shell
    PS1:設置命令提示符(\u爲當前用戶名,\h爲主機名,\w爲當前目錄)
    PS2:附屬提示符,用於執行超過一行的命令。
    PWD:當前目錄路徑名。

  9. 安裝軟件
    RPM軟件管理器
    vsftpd-3.0.2-22.el7.x86_64.rpm
    vsftpd:軟件名
    3.0.2-22:版本號
    el7:適用於RHEL7(Red Hat Enterprise Linux)的發行版
    x86_64:適用硬件

    uname -r查看當前系統版本。
    rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm:安裝軟件包(i爲安裝,v顯示詳細信息,h顯示進度條)。
    rpm -q vsftpd:查詢軟件是否安裝。
    rpm -e vsftpd:卸載軟件。
    rpm -qa:查詢所有安裝軟件。
    rpm -Uvh ***.rpm:升級軟件包。
    rpm -K ***.rpm:驗證rpm軟件包。
    rp, -V ***.rpm:驗證已安裝的軟件。

    如果rpm軟件安裝包需要的依賴沒有安裝,則安裝無法進行。

    YUM在線安裝軟件

    自動下載rpm包安裝包,自動處理依賴關係。
    軟件倉庫的配置文件在/etc/vum.repos.d/*.repo

    配置完軟件倉庫後,執行yum clean all清除緩存,
    yum repolist all顯示所有倉庫,可以看倉庫是否啓用成功。
    yum install php安裝php軟件及其依賴。
    yum list php顯示php已經安裝。
    yum update php:升級軟件。
    yum remove php:刪除軟件。

  10. 遠程管理工具
    TELNET:明文傳輸。
    SSH:對數據進行加密。

    SSH遠程管理:
    服務器安裝SSHD服務並啓動,ps -ef | grep sshd查看進程,systemctl status sshd查看服務狀態。
    登陸命令:ssh [email protected] -p 22,SSH默認爲22端口,可以用-p參數指定端口。

    遠程文件傳輸命令:
    scp [選項] 源文件 目標地址
    scp test.txt [email protected]:/root/:傳輸文件到遠程服務器。
    scp [email protected]:/root/remote.txt ./:將遠程文件複製到本地當前目錄下。
    -r:遞歸複製目錄
    -P:指定端口
    -C:進行壓縮傳輸

    XShell
    Windows使用XShell訪問遠程主機。

  11. 快速搭建Tomcat服務
    下載好jdk和tomcat軟件包,使用XShell上傳到Linux服務器,或直接使用wget下載安裝包。

    安裝jdk:
    安裝:rpm ivh jdk-8u181-linux-x64.rpm,確認安裝:rpm -q jdk1.8,確認安裝路徑:rpm -ql jdk1.8 | more
    配置環境變量:vi /etc/profile進入編輯,shift+G移動到文件末尾,按i進入插入編輯模式,加入

    export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    

    按esc退出編輯模式,輸入:wq保存退出。
    執行source /etc/profile使配置生效。
    執行java -version測試jdk注意版本號是否正確。

    安裝tomcat:
    新建文件夾:mkdir -p /usr/tomcatcd /usr/tomcat
    將tomcat軟件包複製過來:cp /root/apache-tomcat-9.0.12.tar,gz ./
    解壓並解包:tar -zxvf apache-tomcat-9.0.12.tar.gz
    執行./apache-tomcat-9.0.12/bin/startup.sh啓動tomcat。

    設置開機啓動:
    執行vi /etc/rc.d/rc.local,在文件最後輸入o新增一行並進入插入編輯模式,增加以下內容:

    /usr/tomcat/apache-tomcat-9.0.12/bin/startup.sh
    

    按esc退出編輯,輸入:wq保存退出。
    增加執行權限:chmod +x /etc/rc.d/rc.local

    配置防火牆:
    設置防火牆:firewall-cmd --add-port=8080/tcp --zone=public --permanent
    刷新使配置生效:firewall-cmd --reload
    查看所有規則:firewall-cmd --list-all確定8080端口可以訪問。

  12. 安裝mysql

    安裝yum倉庫:
    下載:wget https://dev.mysql.com/get/mysql180-community-release-el7-1.noarch.rpm
    安裝:rpm -ivh mysql180-community-release-el7-1.noarch.rpm
    ls /etc/yum.repos.d/查看生成的兩個repo文件。

    安裝mysql:
    yum install -y mysql-community-server

    啓動數據庫服務:
    systemctl start mysqld

    設置開機自動啓動:
    systemctl enable mysqld

    設置數據庫密碼:
    獲取安裝時的臨時密碼:grep 'temporary password' /var/log/mysqld.log
    設置root的密碼:執行mysqladmin -u root -p password,輸入臨時密碼,再輸入新密碼。
    登陸數據庫驗證一下:mysql -u root -p

    設置允許遠程連接:

    use mysql;
    update user set host='%' where user='root';  --任何客戶端及其都能以root用戶登錄到mysql服務器
    flush privileges;  --刷新權限
    alter user 'root' @'%' identified with mysql_native_password by 'ffcs@123456';  --爲root用戶重新設置密碼
    

    配置防火牆:
    mysql默認端口3306
    設置防火牆:firewall-cmd --add-port=3306/tcp --zone=public --permanent
    刷新使配置生效:firewall-cmd --reload

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章