Linux使用
07-11
Linux使用
來自專欄萌新的學習日記
Liunx使用
命令管道連接 |
- 命令管道符合為
|,可以將兩個命令進行連接,連接後第一個命令的輸出結果作為第二個命令的輸入信息 - 比如
ls /ect | more -10分屏顯示etc文件夾下的10行數據
Linux文件系統結構
/: 根目錄/home: 主文件夾,登錄用戶的主文件夾/etc:操作系統配置文件的保存位置/usr: 用於添加的程序文件,用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄。root: 超級用戶的目錄
改變當前工作目錄命令
cd 目標目錄cd沒有參數的時候直接返回用戶主目錄cd /etc: 使用絕對路徑切換當前的工作目錄cd ..: 返回上一級cd 目錄:使用相對路徑其切換,前提是當前的目錄中有這個目錄
顯示當前的工作目錄
pwd
文件或文件夾的操作(mkdir/touch)
mkdir 文件夾名稱創建文件夾mkdir demo/file在demo文件夾下新建一個文件加file,如果這個demo文件夾不存在,那麼將會報錯
mkdir -p 文件夾名稱遞歸創建文件夾mkdir -p demo/file:如果demo文件夾不存在,那麼會自動創建出來
touch 新文件名: 創建文件 ,比如touch file.txttouch 已經存在的文件名或者文件夾名: 修改文件或者文件夾的創建時間,但是並不是重新創建一個,裡面的內容的不會清空
改名或者移動(mv)
mv 參數1 參數2mv 已存在的文件夾/文件 新文件夾/文件:修改名稱 比如 :mv file.txt a.txtmv 已存在的文件夾/文件 目標文件夾: 將文件或者文件夾移動到目標文件夾中mv file.txt /tmp/dmeo將當前文件夾的file.txt移動到/tmp/demo文件夾中mv demo/file.txt .將 demo文件夾下的file.txt移動到當前文件夾mv file.txt ../將當前文件file.txt 移動到上一級目錄
複製文件或者文件夾(cp)
cp 存在的文件/文件夾 新文件/新文件夾進行改名複製cp a.txt /tmp/file.txt將當前文件夾中的a.txt文件複製到/tmp文件夾中,改名為file.txt
cp 存在文件 已存在的文件夾將文件複製一份到已存在文件夾中,並且文件名和源文件的名一樣cp a.txt /tmp將當前文件a.txt複製到tmp文件夾中,並且名稱還是a.txt
cp -i ...提示是否覆蓋的信息cp -f強制覆蓋,不給出提示cp -r 存在的文件夾 目標文件夾 複製文件夾 比如:cp -r file /tmp/demo複製當前文件夾file和其中的所有內容到/tmp/demo`文件夾下
刪除文件或者文件夾(rm)
rm 文件名刪除文件rm a.txt刪除當前文件夾中的a.txt文件rm /tmp/demo/a.txt刪除/tmp/demo文件夾下的a.txt文件
rm -r 存在的文件夾: 刪除文件夾及文件夾下的全部內容rm -r demo刪除文件夾demo
rm -f強制刪除文件,不提示rm -rf:強制刪除文件夾
遠程登錄伺服器SSH
- 客戶端輸入:
ssh 用戶名@伺服器IP/域名
- 第一輸入需要確認證書: 選擇
yes - 輸入
password
SFTP傳輸文件
sftp 用戶名@主機/IP- 確認證書 :
yes - 輸入密碼 :
盲敲 - 進入ftp,其中的提示符號變成
>
常用命令
ls顯示當前遠程伺服器的目錄內容lls: 顯示本地目錄內容pwd: 顯示當前遠程伺服器目錄的路徑lpwd:顯示本地目錄的路徑get 遠程文件: 獲取遠程文件,只能是壓縮文件,比如.tar.gzget demo.txt獲取遠程文件的demo.txt
put 本地文件:上傳本地文件到遠程伺服器 ,只能是壓縮文件,比如.tar.gzpush abc.txt: 上傳本地當前文件abc.txt到遠程伺服器
exit: 退出
windows 操作Linux
pyttty開源軟體
Linux打包命令
tar -czvf 包文件.tar.gz 文件夾1 文件夾2 ....:tar czvf demo.tar.gz demo/打包當前的demo文件夾-c:create創建包 ,建議使用後綴.tar-z: 表示打包後錄用gzip演算法進行壓縮,後綴需要寫.gz-v: 顯示打包的過程,哪些文件被打包了-f: 指定打包以後包的文件名 ,放在最後,如:czvf
解壓縮包的命令
後綴為 tar.gz
tar -xzvf 包名.tar.gz-x: 釋放,將包進行釋放操作-z: 先使用gzip解壓縮,一般對應的後綴.gz-v: 表示顯示解包的過程-f: 指定包的文件名
後綴為 zip
- 如果沒有
unzip命令,可以命令行安裝即可yum -y install unzip unzip 文件
下載命令wget
- 安裝該命令:
yum -y install wget wget 下載地址: 這個命令將會從互聯網自動下載所需要的資源
購買雲伺服器
- 地域: 國內配置域名的時候必須備案,國外伺服器無需備案
- 配置: x86伺服器,1G內存 1CPU
- 鏡像: 公共鏡像,Centos 7.4
- 網路: 1M
- 安全組(防火牆):開放埠 80,443,22
- 注意: 沒有開放8080,需要以後配置
- 設置密碼
- 設置伺服器名
PATH變數的作用
- 操作系統可執行命令的搜索路徑,操作系統在執行密令的時候,會在PATH變數一系列路徑中逐一查找命令程序,如果找到就執行這個程序,否則將報出
命令沒有找到的錯誤 echo $PATH: 回顯PATH的值export PATH=...: 在終端直接輸入的PATH,只會在當前的終端不關閉的情況才會生效,如果這個終端窗口關閉了,那麼就會失效export PATH=/usr/local/java/jdk1.8/bin:$PATH,這個命令是將java的jdk的路徑添加到當前PATH路徑的前面,不過這個只是臨時的,當終端退出,那麼就會失效
- 如果想要這個
PATH永久起作用,那麼需要在/etc/profile文件中添加,這個文件會在開機啟動的時候就解析載入 - 如果我們使用的安裝包安裝的話,那麼默認的啟動命令是只能在當前安裝包的
bin中才能執行啟動命令,如果我們想要在任何位置打開終端都能啟動這個軟體,那麼我們可以將其配置在PATH中,我們只需要在/etc/profile文件中添加:export PATH=文件位置:$PATH
使用 VIM 編輯文本文件
- 基於命令行的全屏幕可視化編輯器
安裝 vim
yum -y install vim:安裝vim
常用命令
- 在命令狀態下
yy: 複製當前行到剪切板P:複製剪切板的內容到當前行之前p: 複製剪切板的內容到當前行之後
nyy: 複製當前行和後面的n行數據到剪切板5yy
dd:刪除當前行(其實是剪切),可以使用P或者p再次複製回去ndd: 刪除當前行的後面n行數據,實際上是剪切10dd
?正則: 向前查找?System
/正則:向後查找n查找下一個- 先使用
?正則或者正則查找之後,然後按n將會查找下一個結果
u:撤銷,可撤銷多次
配置JDK環境
- 下載jdk
- 解壓縮在
/usr/local/java中 tar -xzvf ......
- 配置環境變數
- 先複製一個
/etc/profile,避免錯改造成系統崩潰 cp /etc/profile profile_1
vi /etc/profile- 在末尾輸入
export JAVA_HOME=/usr/local/java/jdk1.8.0_172 ## jdk的路徑export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
- 執行
source /etc/profile - 在終端輸入
java -version判斷是否配置成功 - 重啟機器
安裝配置Tomcat
第一種yum
yum -y install tomcat- 安裝以後的安裝位置在
/usr/share/tomcat/,這個是默認安裝位置
啟動和關閉
systemctl start tomcat.service: 啟動systemctl stop tomcat.service: 關閉systemctl restart tomcat.service: 重啟systemctl enable tomcat.service: 設置自動啟動systemctl disable tomcat.service: 關閉自動啟動
第二種使用原廠的包安裝
- 下載
tomcat:tomcat.apache.org - 或者使用
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.88/bin/apache-tomcat-7.0.88.zip - 如果沒有
wget,那麼使用yum -y install wget即可
- 解壓:
unzip 文件名 - 將解壓之後的文件夾移動到
/usr/local下即可:mv apache-tomcat-7.0.88 /usr/local/ - 設置啟動腳本的執行許可權:
cd /usr/local/apache-tomcat-7.0.88/bin:進入到bin目錄- 添加執行許可權:
chmod +x *.sh:為.sh腳本添加執行許可權
- 啟動和關閉
tomcat - 在
bin文件夾下 輸入:./startup.sh即可啟動 - 輸入
ps -A | grep java: 檢查是否啟動 - 開放防火牆 :
firewall-cmd --permanent --add-port=8080/tcp - 如果顯示防火牆顯示
not runing,那麼使用service firewalld start開啟防火牆 - 在
bin文件夾下輸入 :./shutdown.sh即可關閉 - 最後在瀏覽器輸入
http://ip:8080即可訪問
雲伺服器需要開啟8080埠
- 自己的伺服器 ---- > 管理 ---> 本例安全組 ----> 配置規則 ---- > 添加安全組規則 ----> 添加埠範圍
8080/8080

安裝MySQL
Mariadb和Mysql是一樣的,不過mariadb現在是開源免費的。mysql以後的版本都是收費的yum -y install mariadb mariadb-server: 使用此命令安裝即可- 安裝了兩個組件,客戶端
mariadb
- 啟動:
systemctl start mariadb.service - 關閉:
systemctl stop mariadb.service - 重新啟動:
systemctl restart mariadb.service - 開機啟動:
systemctl enable mariadb.service - 取消開機啟動:
systemctl disable mariadb.service
連接mariadb
mysql -u root: 初始安裝沒有密碼
設置mysql密碼
- set password=password("密碼");
flush privileges;- 設置完成之後使用
mysql -u root -p輸入密碼進入即可
mysql 解決中文亂碼
show variables like %char%;查看自己的編碼是否是utf8- 在
/etc/my.cnf添加如下代碼即可
[mysqld]character-set-server=utf8 [client]default-character-set=utf8 [mysql]default-character-set=utf8
資料庫遷移【Import】
- 意思就是將本地的資料庫遷移到遠程伺服器中。不需要在遠程伺服器中重新創建和插入數據了
步驟
- 導出(備份)資料庫
mysqldump -u root -p密碼 資料庫名字 > 文件名.sql- 比如 :
mysqldump -u root -proot tedu_store>tedu_store.sql;,導出的tedu_store.sql就會在當前目錄中,這個命令不需要登錄mysql即可完成
- 將
tedu_store.sql上傳到遠程伺服器中 sftp 用戶名@IP: 登錄遠程伺服器的上傳下載功能put tedu_store.sql: 上傳
- 在遠程伺服器中創建資料庫
create database tedu_store;
- 導入數據:
use tedu_storesource tedu_store.sql即可,這裡需要指定路徑
部署項目在遠程伺服器上
步驟
- 導出一個
war包,比如Tedu_store.war 項目右擊--- >Export---- >WAR File---->選擇位置------->Finish
- 導出的
Tedu_store.war上傳到遠程伺服器 - 放在
tomcat中的webapps包下 - 我們將
Tedu_store.war放在webapps下,那麼會自動生成一個Tedu_store,這個就是我們的項目
- 修改資料庫的連接參數
- 第一種:在本地電腦打包的時候就修改成遠程伺服器的資料庫的連接參數
- 第二種: 在遠程伺服器中修改
- 進入到項目的
WEB-INF/classes下,其中有一個db.properties文件,其中就是配置資料庫的信息,我們可以使用vi編輯器修改
- 重啟
tomcat,我們使用zip安裝方式安裝的,因此需要在Tomcat的bin下執行: ./shutdown.sh關閉./start.sh啟動
- 接下來就是訪問即可
http://ip:8080/Tedu_store/.....
查看錯誤信息
- 進入到
Tomcat的安裝目錄的logs目錄,下面有一個catalina.out,這裡面存儲的就是項目的運行信息,我們可以在其中查找項目的錯誤信息
輸出重定向
- 將一個命令的輸出目標從標準控制台(標出輸出)重新定向到其他設備(一般是一個文件)
>: 生成一個新文件>>:不生成一個新文件,在文件後面追加- 比如
cat file.txt>demo.txt, : 將顯示的file.txt文件內容重定向到deom.txt文件中,如果`demo.txt不存在,那麼會被新建,如果存在,那麼將會覆蓋其中的內容。 cat file.txt>>demo.txt: 將顯示的file.txt文件的內容在demo.txt後面追加,如果demo.txt不存在就新建,如果存在,那麼在其內容的後面追加
作用
- 記錄命令的執行日誌
tar -czvf file.tar.gz file>file.log: 將這個執行語句的日誌記錄到file.log中
- 快速生成文本文件
echo "hello World" >hello.txt
文件許可權 chmod
-rw-rw-r: 文件擁有者、群組、其他
為所有用戶設置許可權
x:執行許可權,如果一個文件夾沒有執行許可權,那麼我們使用cd 文件夾名是不允許進入查看內容的chmod +x file: 為file文件夾添加執行許可權chmod -x file: 為file文件夾刪除執行許可權
r: 可讀許可權chmod -r file.txt: 刪除file.txt文件的可讀許可權chmod +r file.txt: 添加可讀許可權
w: 可寫許可權chmod -w file.txtchmod +w file.txt
為不同的用戶設置許可權
chmod u+x,g-x,o-x file: 表示文件擁有者添加執行許可權,群組用戶刪除執行許可權,其他用戶刪除執行許可權chmod g+x file: 為群組添加執行許可權
使用數字代表許可權
r: 4w: 2x: 1rwx: 4+2+1=7rw-: 4+2 =6--x: 1r-x: 4+1=5chmod 664 file.txt: 為文件擁有這設置rw-許可權,為群組設置rw-許可權,為其他用戶設置r--許可權
可以執行的文件
- 文件是可執行的二進位程序或者文件是可執行的腳本程序
- 文件具有可以執行的許可權
可執行的腳本
- 可執行的腳本,也是稱為shell腳本,是一個文本文件,文件的每一行都是可以執行的shell命令,如果有執行許可權,這個文件就可以執行,執行時候批量執行文件中的每個命令,經常用於自動化運維
推薦閱讀:
※物理地址和虛擬地址的分布
※glibc源碼分析(一)系統調用
※在centos和redhat上安裝docker
※一步一步學ROP之linux_x86篇
※Linux安全問題
