目錄
一、SecureCRT相關知識
SecureCRT上傳文件到服務器:https://blog.csdn.net/youran66666/article/details/51556650
在Windows用SecureCRT上傳下載命令:rz\sz
在Windows用SecureCRT上傳下載命令(存在則覆蓋):cunrz -y
rz相關命令介紹:http://www.cnblogs.com/leeyongbard/p/9356760.html
- 查看遠程端口是否開啓
在遠程機上輸入setup,選擇系統服務
帶*號表示已經啓動
解壓:tar -zcvf /home/zdzlibs.tar.gz /home/zdz/java/zdzlibs/
文件名快速填充:cd my+tap鍵 就會列出以my開頭的文件
刪除文件:rm -f 文件名
編輯文件:vim 文件名
按i進行輸入模式,強制退出保存 先按ESC再輸入 :wq!
查看是否有gcc環境:gcc -v
二、vim常用知識
vim常用命令
1,刪除
dd: 剪切光標所在的一整行
ndd:刪除光標向下的n行
2,複製
yy:複製當前光標一整行
nyy:複製當前光標n行
p:粘貼
3,搜索內容
:/搜索內容 可以快速搜索打開的文本內容內容
4,設置/取消行號
:set nu和:set nonu
5,到大文件末端和頂端
在正常模式下,輸入G到達底端,輸入gg到達頂端
6,撤銷
在正常模式下,輸入u撤銷
7,光標移動到第20行
第一步:顯示行號 :set nu
第二步:輸入20
第三步:輸入shift+g
三、關機/重啓命令
shutdown
shutdown -h now:表示立即關機
shutdown -h 1:表示1分鐘後關機
shutdown -r now:立即重啓
halt
直接使用,等價於關機
reboot
就是重啓系統
sync
把內存的數據同步到磁盤
重啓命令推薦使用shutdown -r now,這條命令在重啓時會正常保存和中止服務器正在運行的程序,
是安全重啓命令。而且最好在重啓前執行幾次“sync”命令,這條命令是數據同步命令,
把暫時保存在內存的數據寫入磁盤,防止數據丟失。
用戶登陸和註銷
儘量少用root登陸
退出登陸:logout(此命令在圖形界面無效)
服務器建議
不要再服務器訪問高峯運行高負載命令
比如複製大量的數據、壓縮或者解壓縮大文件、大範圍的硬盤搜索等都會有較大的運算壓力。
一般認爲17:00-24:00是訪問高峯期。凌晨4:00-5:00可以執行這些命令。
遠程配置防火牆不要把自己踢出服務器
最好在本地測試完善後再進行上傳。雖然本地測試好了但是傳到服務器上時仍有可能發生問題。可以採用一個笨的辦法:如果需要遠程配置防火牆,那麼先寫一個系統定時任務,讓它每5分鐘清空一下防火牆規則,就算寫錯了也有反悔的機會,等測試沒問題了再刪除這個定時任務。
合理分配權限
管理一個最簡單原則:給予用戶最小的權限。
定期備份重要數據和日誌
備份的基本原則:不要把雞蛋放在同一個籃子裏
四、用戶/用戶組管理
1,用戶管理
Linux系統是多用戶多任務的操作系統。
1.1,添加用戶
useradd xm //這種方式默認創建一個xm的賬號,並創建一個xm的分組,並且xm賬號屬於xm分組
useradd -d /home/manager zhangsan //創建張三,並且家目錄在/home/manager文件夾裏
創建用戶的時候,會在家目錄下生成模板文件,模板在/etc/skel/目錄下
1.1.1useradd默認值
useradd添加用戶的參數默認值主要是/etc/default/useradd和/etc/login.defs
1.2,指定/修改密碼
passwd zhangsan //給張三設置密碼
用zhangsan的賬號登陸可以看到當前的家目錄爲/home/manager
1.3,刪除用戶
userdel 用戶名
userdel xm//刪除xm的賬號,但是家目錄保留
userdel -r xiaoming//刪除xiaoming賬號,並且刪除家目錄
一般在刪除用戶時候會保留家目錄(比如一個員工離職了,在家目錄下面有很多源代碼的情況)
手工刪除用戶:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/home/user1
/var/spool/mail/user1 郵箱
1.4,查詢用戶信息
id 用戶名
1.5,切換用戶
當用戶權限不夠時,可以通過su 切換到高用戶
su - 用戶名//當高權限用戶到低權限用戶,不用輸入密碼
這時候想要進入root目錄就會權限不夠,exit可以回到原來的用戶
1.6,查看當前登陸的賬戶
whoami
2,用戶組
2.1,增加組
groupadd 組名
2.2,刪除組
groupdel 組名
2.3,增加用戶屬於測試組
groupadd test//先增加測試組
useradd -g test xiaoliu//增加用戶xiaoliu屬於test組
2.4,修改用戶組
usermod -g 用戶組 用戶名
例如將xiaoliu修改爲kaifa組
3,用戶配置文件/組配置文件存放位置
用戶配置文件:/etc/passwd
組配置文件:/etc/group
口令配置文件(密碼和登陸信息,是加密的):/etc/shadow
密碼前面如果有感嘆號!,則該賬戶無法登陸
五、實用操作
1,指令運行級別
0:關機
1:單用戶(找回丟失密碼)
2:多用戶狀態沒有網絡服務
3:多用戶狀態有網絡服務
4:系統未使用保留給用戶
5:圖形界面
6系統重啓
常用運行級別是3和5,系統運行級別的配置文件在/etc/inittab,查看配置文件cat /etc/inittab
init 3//切換到dos狀態
init 5//切換到圖形界面狀態
init 0//關機的另一種方式
面試題
如何找回root密碼,如果我們不小心忘記roott密碼,怎麼找回。
思路:以root身份進入到單用戶模式,然後修改root密碼
2,幫助指令
man ls //查看ls使用幫助
help ls//查看ls使用幫助
3,文件目錄類
3.1,pwd指令
顯示當前工作目錄的絕對路徑
3.2,ls指令
ls [選項] [目錄或文件]
常用選項
-a:顯示當前目錄所有的文件和目錄,包含隱藏文件
-l:以列表的方式顯示信息
3.3,cd指令
cd ~ //回到家目錄
cd .. //回到上一級目錄
cd ../../bin //使用相對路徑回到bin目錄
3.4,創建目錄mkdir
用於創建目錄
mkdir [選項] 要創建的目錄
常用選項
-p:創建多級目錄(遞歸創建)
mkdir -p test1/test2 //在當前目錄同時創建test1,test2目錄
3.5,刪除目錄rmdir
用於刪除目錄
rmdir [選項] 要刪除的空目錄
常用選項
-p:遞歸刪除目錄
如果目錄下有內容rmdir無法刪除,需要使用rm -rf 來刪除非空目錄
3.6,創建空文件touch
touch 文件名
也可以一次性創建多個文件
touch test1.txt test2.txt
3.7,拷貝cp
cp [選項 ] source dest
常用選項
-r:遞歸複製整個文件夾
cp test1.txt /usr //將當前目錄下的test1.txt拷貝到/usr目錄下
cp test1.txt /usr/test2.txt //將當前目錄下的test1.txt拷貝到/usr目錄下,並更名爲test2.txt
\cp -r test1 /usr //可以強制覆蓋所有
3.8,移除文件或目錄rm
rm [選項] 要刪除的文件或目錄
常用選項
-r:遞歸刪除整個文件夾
-f:強制刪除不提示
3.9,移動文件或重命名mv
mv 舊的文件名 新的文件名 //重命名
mv /usr/test1 /usr/bin/test2 //移動文件
3.10,查看文件內容cat
cat [選項] 要查看的文件
常用選項
-n:顯示行號
cat -n /etc/profile | more //more爲分頁顯示,可以按空格換頁
3.11,more查看文件指令
more 文件名
一行行看:enter
一頁頁看:空格
回看上一頁:ctrl+b
向下滾動一屏:ctrl+F
離開more:q
3.12,less指令
less用來分屏查看文件內容,功能於more指令類似,但是比more指令更強大。less在顯示文件內容時,並不是一次將整個文件加載之後才顯示,而是根據顯示需要加載內容,對於顯示大型文件具有較高的效率。
less 要查看的文件
3.13,>和>>指令
>輸出重定向和>>追加
ls -l>file.txt //列表的內容寫入文件file.txt文件中(覆蓋寫)
ls -l>>file.txt //列表的內容追加到文件file.txt的末尾
cat file1.txt>file2.txt //將file1.txt的內容覆蓋到file2.txt中
echo "內容">>file3.txt //將內容追加寫入file3.txt中
例子:將日曆寫入文件
cal>>file3.txt
3.14,echo head tail
echo:輸出內容到控制檯
echo [選項] [輸出內容]
例如:使用echo指令輸出環境變量,輸出當前的環境路徑
echo $PATH
例如:使用echo直接輸出文本
echo "hello"
head:用於顯示文件的開頭部分,默認情況下head指令顯示文件的前10行內容
head 文件 //查看文件頭10行內容
head -n 5 文件 //查看文件頭5行內容
tail:用於輸出文件尾部的內容,默認情況下tail指令顯示文件的後10行內容。
tail 文件 //查看後10行內容
tail -n 5 文件 //查看文件後5行內容
tail -f 文件 //實時追蹤該文檔的所有更新(非常好用,工作中經常用)
案例:實時監控log.txt,看文件有變化時,是否看到實時的追加日期
3.15ln軟鏈接
軟鏈接也叫符號鏈接,類似於windows裏的快捷方式
ln -s [原文件或目錄] [軟鏈接名]
刪除軟鏈接
rm -rf linkToRoot
3.16history查找命令歷史記錄
查看已經執行過歷史命令
案例:顯示最近的執行的10個指令
history 10
執行指定編號的指令
!900
4,時間日期類
4.1,date指令-顯示當前日期
date //顯示當前時間
date "+%Y-%m-%d" //顯示年月日
date "+%Y-%m-%d %H:%M:%S" //顯示年月日時分秒
4.2,date指令-設置當前時間
date -s 字符串時間
date -s "2019-01-10 10:10:10"
4.3,cal查看日曆
cal [選項] //不加選項,顯示本月日曆
cal 2020 //顯示1年的日曆
5,搜索查找類
5.1,find查找
find將指定目錄下遞歸地遍歷其中子目錄,將滿足條件的文件或者目錄顯示在終端。
find [搜索範圍] [選項]
-name:按文件名搜索
-user:按文件擁有者者查找
-size:按文件大小查詢
案例1:在/目錄下搜索指定文件位置
find / -name iSeez.h
案例2:按擁有者:查找/目錄下,用戶名爲xie的文件
find / -user xie
案例3:按文件大小:查找/usr/local/bin目錄下,文件大於20M的(大於+ 小於- 等於直接寫數字)(很有用,有時候磁盤突然變小,可以查看原因)
find /usr/local/bin -size +20M //大於20M的文件,M大寫
find /usr/local/bin -size +2k //大於2k的文件,k小寫
案例4:按文件名通配符查找
find / -name *.txt
5.2,locate快速定位文件路徑
locate指令可以快速定位文件路徑,locate指令利用事先建立的系統中所有文件名稱及路徑的locate數據庫實現快速定位給定的文件,locate指令無需遍歷整個文件系統,查詢速度較塊。爲了保證查詢結果的準確度,管理員必須定期更新locate時刻。
locate 搜索文件
說明:由於locate指令基於數據庫進行查詢,所以第一次運行前,必須使用updatedb指令創建locate數據庫
數據庫文件保存在/var/lib/mlocate/mlocate.db文件下,該文件普通用戶是無法讀取的,因爲/usr/bin/locate命令賦予了GID的權限,所以可以用locate命令查看
5.3,grep指令和管道符號|
grep過濾查找,管道符“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理。
grep [選項] 查找內容 源文件
常用選項
-n:顯示匹配行及行號
-i:忽略字母大小寫
案例:在hello.txt文件中,查找“yes”所在行,並且顯示行號
cat hello.txt | grep -n yes
案例:在hello.txt文件中,查找“yes”所在行,並且顯示行號,並忽略大小寫
cat hello.txt | grep -ni yes
6,壓縮和解壓縮
6.1,gzip/gunzip(用的不多)
gzip用於壓縮文件,gunzip用於解壓縮
gzip 文件 //只能將文件壓縮爲*.gz文件,原來的壓縮文件不保留
gunzip 文件.gz //解壓縮文件,解壓縮文件不保存
6.2,zip/unzip
zip [選項] xxx.zip 將要壓縮的內容 //壓縮文件和目錄的命令
unzip [選項] xxx.zip // 解壓縮文件
zip常用選項
-r:遞歸壓縮,即爲壓縮目錄
unzip常用選項
-d<目錄>:指定解壓後文件的存放目錄
案例1:將/home下的所有文件進行壓縮成myhome.zip
zip -r myhome.zip /home/
案例2:將myhome.zip解壓到/usr/local/bin/tmp目錄下
unzip -d /usr/local/bin/tmp myhome.zip
6.3tar打包指令
打包後的文件是.tar.gz的文件
tar [選項] xxx.tar.gz 打包的內容 //打包目錄
選項
-c:產生.tar打包文件
-v:顯示詳細信息
-f:指定壓縮後的文件名
-z:打包同時壓縮
-x:解包.tar文件
案例1:壓縮多個文件,將~目錄下的test1.txt和test2.txt壓縮成test.tar.gz
tar -zcvf test.tar.gz test1.txt test2.txt
案例2:將文件夾下所有東西都打包
tar -zcvf myhome.tar.gz /usr/local/bin/
案例3:將a.tar.gz解壓到當前目錄
tar -zxvf a.tar.gz
案例4:將a.tar.gz解壓到/usr/local目錄下
tar -zxvf a.tar.gz -C /usr/local/ //指定解壓到的那個目錄,事先要存在才能成功,否在會報錯
7,組管理和權限管理
7.1組基本介紹
在Linux中的每個用戶必須屬於一個組,不能獨立於組外。在Linux中每個文件有所有者、所在組、其它組的概念。
7.2文件/目錄的所有者
文件的創造者,誰創建了該文件,就成爲該文件的所有者。
查看文件的所有者
指令:ls -ahl //h即爲human
範例:創建一個test組,在創建一個test_zs,將test_zs放在test組裏,然後用test_zs來創建文件test.java
useradd -g test test_zs//添加用戶
passwd test_zs//設置密碼
su - test_zs//切換登陸
touch.java//創建文件
ls -ahl//查看文件所有者
修改文件所有者
指令:chown 用戶名 文件名
組的創建
指令:groupadd 組名
範例:創建用戶xiaoli屬於master組
groupadd master
useradd -g master xiaoli
7.3文件/目錄所在組
當某個用戶創建一個文件後,默認這個文件的所在組就是該用戶所在的組。
查看文件/目錄所在組
指令:ls -ahl
修改文件所在的組
chgrp 組名 文件名
範例:將test.java所在組改爲xie
7.4改變用戶所在組
用root的管理權限可以改變某個用戶所在的組。
指令:usermod -g 組名 用戶名
usermod -d 目錄名 用戶名 //改變該用戶登陸的初始目錄
範例:修改用戶xie爲test組
7.5權限詳解
rwx作用到文件
r-可讀,可以讀取,查看
w-可寫,可以修改,但是不代表可以刪除文件,刪除一個文件的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件。
x-可以被執行
rwx作用到目錄
r-可讀,可以用ls查看目錄內容
w-可寫,可以修改,目錄內可以創建+刪除+重命名目錄
x-可執行,可以進入該目錄
7.6修改權限chmod
方式一:+、-、=變更權限
u:所有者 g:所有組 o:其他人 a:所有人(u、g、o的總和)
chmod u=rwx,g=rx,o=x 文件目錄名
chmod o+w 文件目錄名
chmod a-x 文件目錄名
方式二:通過數字變更權限
規則:r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目錄名
等價於
chmod 751 文件目錄名
7.7修改文件所有者chown
chown newowner file 改變文件的所有者
chown newowner:newgroup file 改變用戶的所有者和所有組
-R 如果是目錄則使其下所有子文件或目錄遞歸生效
案例1:將test.java文件的所有者修改成test_zs
chown test_zs test.java
案例2:將/test1目錄下所有文件和目錄的所有者都修改成test_zs
chown -R test_zs test1/
7.8修改文件所在組chgrp
chgrp newgroup file
案例:將test1目錄下所有文件和目錄的所有者都改成test組
chgrp -R test test1/
7.9權限最佳實踐-警察和土匪遊戲
jack,jerry是警察
xh,xq是土匪
1)創建組police、bandit
groupadd police
groupadd bandit
2)創建用戶
useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
並指定密碼passwd jack
3)用jack登陸,創建一個文件,自己可以讀寫,本組人可以讀,其它組沒有任何權限
chmod 640 jack01.txt
4)jack修改該文件,讓其它組人可以讀,本組人可以讀寫
chmod o=r,g=rw jack01.txt
5)xh投靠警察,看看是否可以讀寫
xh無法進入jack的家目錄
修改xh爲police組
usermod -g police xh
此時xh還是沒法進入jack的家目錄,需要jack改變組的權限
chmod g=rx jack
修改完後,xh的賬號需要重新連接就可以進入jack的家目錄
8,任務調度
8.1crond任務調度
指令:crontab [選項]
常用選項:
-e:編輯crontab定時任務
-l:查詢crontab任務
-r:刪除當前用戶所有的crontab任務
如果只是簡單的任務,可以不寫腳本,直接再crontab中加入任務即可
案例:設置任務調度文件:/etc/crontab
設置個人任務調度。執行crontab -e命令。
接着輸入任務到調度文件
如:*/1**** ll /etc/>>/tmp/to.tx
任務調度案例1:每隔1分鐘,就將當前的日期信息,追加到/tmp/mydate文件中
1)先編寫一個文件/home/mytask1.sh
date>>/tmp/mydate
2)給mytask1.sh一個可以執行的權限
chmod 744 /home/mytask1.sh
3)crontab -e
4)*/1 * * * * /home/mytask1.sh
任務調度案例2:每隔1分鐘,將當前日期和日曆都追加到/home/mycal文件中
1)先編寫一個文件/home/mytask2.sh
date>>/tmp/mycal
cal>>/tmp/mycal
2)給mytask2.sh一個可以執行的權限
chmod 744 /home/mytask2.sh
3)crontab -e
4)*/1 * * * * /home/mytask2.sh
8.2查看所有的任務調度
指令:crontab -l
8.3刪除所有的任務調度
指令:crontab -r
Linux查看當前的進程並過濾
Linux下修改文件產生.swap文件錯誤
在linux裏修改文件時,不小心非正常關閉了文件。再次打開的時候提示 E325: 注意發現交換文件 "filename.swp",具體報錯如下:
E325: 注意
發現交換文件 ".nginx.conf.swp"
所有者: root 日期: Fri Jun 23 09:44:19 2017
文件名: /usr/local/src/nginx-1.1.10/conf/nginx.conf
修改過: 是
用戶名: root 主機名: demo
進程 ID: 5168
正在打開文件 "nginx.conf"
日期: Fri Jun 23 09:57:15 2017
比交換文件新!
(1) 另一個程序可能也在編輯同一個文件。
如果是這樣,修改時請注意避免同一個文件產生兩個不同的版本。
退出,或小心地繼續。
(2) 上次編輯此文件時崩潰。
如果是這樣,請用 ":recover" 或 "vim -r nginx.conf"
恢復修改的內容 (請見 ":help recovery")。
如果你已經進行了恢復,請刪除交換文件 ".nginx.conf.swp"
以避免再看到此消息。
----------------------------------------------------------
交換文件 ".nginx.conf.swp" 已存在!
原因如下:
在用vim打開一個文件時,其會產生一個cmd.swap文件,用於保存數據,當文件非正常關閉時,可用此文件來恢復,當正常關閉時,此文件會被刪除,非正常關閉時,不會被刪除,所以提示存在.swap文件。
解決方法如下:
方法1、此時你可以恢復文件:
vim -r nginx.conf
恢復以後把.swap文件刪掉,在打開時就不會用提示良,注意.swap文件是個隱藏文件。可用:la查看。以.開頭的是隱藏文件。
方法2、ls -a 查詢隱藏文件
將後綴名爲.swp的文件刪除
rm -f .nginx.conf.swp
再次編輯文件不在出現提示警告!
Linux中~與/的區別
/是根節點,~是home
若以root登陸,~是/root/。若以name登陸,~是/home/name
Linux top各參數詳解
https://www.cnblogs.com/sbaicl/articles/2752068.html
Linux目錄
/proc、/srv、/sys是linux內核的東西,Linux高手動的文件夾,一般不要輕易亂動
/mnt可以掛載Windows的共享文件夾
/usr/local這是給主機安裝軟件所安裝的目錄。一般是通過編譯源碼方式安裝的程序。
更新中