-
Linux是基於Unix的開源的操作系統,我們常說的Linux是基於Linux內核,包含gcc、vim、apache、emacs、sendmail等工具和軟件的操作系統。
應用:服務器操作系統、嵌入式操作系統。
Fedora是Redhat用來測試最新軟件或工具的測試系統,CentOS是Redhat的社區版本,適用於服務器。 -
Shell
Shell是用戶與內核進行交互操作的接口,分爲命令行式和圖形式兩大類。
命令 [-選項, ...] 參數1, 參數2, ...
ls:查看目錄下內容
-l:以列表方式顯示
-h、–help:查看幫助
man:獲取使用手冊 -
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開頭的文件。 -
查找文件
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。
字符串用雙引號,正則表達式用單引號。 -
用戶和用戶組
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組。 -
權限
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)。 -
進程
交互進程:需要與用戶交互。如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:停止服務。 -
環境變量
env
:查看當前所有環境變量。
env|grep 變量名
或echo $變量名
:查看特定環境變量。
export [變量名]=[變量設置值]
:設置或顯示環境變量。
unset 變量名
:清除環境變量。
HOME:用戶的家目錄路徑。
LOGNAME:當前用戶的用戶名。
PATH:進程命令或腳本查找的目錄順序。目錄之間用:隔開。
SHELL:獲取當前環境使用的shell
PS1:設置命令提示符(\u爲當前用戶名,\h爲主機名,\w爲當前目錄)
PS2:附屬提示符,用於執行超過一行的命令。
PWD:當前目錄路徑名。 -
安裝軟件
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
:刪除軟件。 -
遠程管理工具
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訪問遠程主機。 -
快速搭建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/tomcat
,cd /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端口可以訪問。 -
安裝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
。
福富網大課程筆記 - JAVA初級階段 - 03輕鬆玩轉Linux
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.