第一篇隨筆,實際上是爲了寫做業,但是老師的要求是對的,其實本身在配環境和作做業的時候也會把遇到的問題的解決方法記錄下來,以便之後查找方便。此次藉此將那些內容放在這裏,也跟你們一塊兒分享下。html
上週六算是第二次聽liunx的課,感受比第一次聽要輕鬆多了,因此複習是很重要的。mysql
如下是此次課程本身記得筆記 注:絕對不是老師的筆記複製過來的!最後有我作做業遇到的問題的總結!linux
一、http地址默認不寫端口號就是80
二、127.0.0.1和localhost都是本地
三、用戶管理 $是普通用戶,#是管理員用戶
windows是單用戶的,linux是多用戶的,可同時支持多用戶操做
id : 能夠查看當前用戶
whoami :查看當前用戶
who :或者 查看當前已經登陸的用戶
w :也能夠看當前已經登陸的用戶
四、添加用戶 useradd 用戶名 # 添加用戶
給用戶加密碼 passwd 密碼 #給添加的用戶加密碼 和 重置密碼 添加用戶不指定家目錄,目錄默認的家目錄在/home/目錄下,在家目錄下顯示波浪線~
cd ~ 快速回到家目錄 或者 直接 cd
切換用戶: su 用戶名 (切換到root用戶目錄下) 或 su - 用戶名 (切換到普通用戶的家目錄)
區別:su - 會從新加載用戶的環境變量
sudo:獲取超級用戶權限
添加普通用戶sudo的權限:
使用root用戶編輯 /etc/sudoers文件,找到 root ALL=(ALL) ALL 這一行,在它下面加入 bestest ALL=(ALL) NOPASSWD:ALL而後保存便可。NOPASSWD表明該用戶使用 sudo的時候不用輸入密碼 •
刪除用戶:userdel 用戶名
userdel -r 刪除用戶同時刪除用戶家目錄
五、組管理
添加組:groupadd name
修改組:
刪除組:groupelname
六、對目錄(文件夾)操做:瞭解linux文件目錄結構
pwd 顯示當前你所在的路徑
cd 進入哪一個目錄(文件夾)
cd / 根目錄
/ 是頂級目錄
cd.. 回到上級目錄
cd../../ 回到上幾級目錄,上幾級目錄就幾個..
cd - 返回上一次操做的目錄
相對路徑:
絕對路徑:
建立文件夾:mkdir 父目錄不存在的話,後面加 -p 先建立父目錄,再建立父目錄下的子文件夾
mkdir --help 幫助
刪除文件夾:rm 、 rmdir(刪除空文件夾)
刪除非空文件夾不詢問:rm -rf
刪除根目錄:rm -rf / 就完蛋了
查找文件夾下的東西:ls、ll
移動文件夾:mv 文件夾名 目標路徑 mv besttest /tmp
更名:mv 文件夾名 要改的文件名 mv besttest linux
建立空文件:touch 文件名
文件詳情中顯示drwxr-xr-x前面是個d說明是文件夾,前面沒有d說明是文件
建立隱藏文件:touch .yincang 建立的文件名前面帶一個點是建立了一個隱藏文件
查看隱藏文件:ls -a
複製文件:cp 文件名 目標路徑 cp besttest /tmp/
複製目錄:cp -r 文件夾 目標路徑 cp -r besttest /tmp/
強制複製文件/文件夾,不詢問是否覆蓋:cp -f 文件名 目標路徑
alias是給命令起別名,可造命令 alias cp=cp 修改後 cp -f 纔不詢問強制覆蓋
alias造命令:一、alias hyh=‘cp’ 輸入hyh bestest /tmp/ 複製besttest問加你夾到tmp下;二、alias hyh='etc/lammp' 下次輸入hyh就直接跳轉到那個地址 ------ 只對當前窗口有效
讓alias造的命令永久生效:vi etc/profile 里加入alias造的命令
強制複製任何文件(文件夾):cp -rf
七、對文件操做:vi 或 vim(對vi的升級版)
vi的命令模式:用i,在當前位置進入編輯模式;o 在下一行進入編輯模式;a 用的比較少,在當前位置的下一位進入編輯模式
:q 沒有修改直接退出
:wq 或 :x 保存並退出
:q! 不保存退出
/(查找內容) 查找想要查找的內容
:set nu 顯示行號
:set nonu 取消顯示行號
:數字 快速渠道某一行
shift+g 跳轉到文件末尾
x 刪除單個字符
dd 刪除整行
19dd 刪除19行
u 撤銷
yy 複製一行
19yy 複製19行
p 粘貼
. 重複前一次操做
shift+$ 光標移到行尾
shift+0 光標移到行首
:%s/要替換的內容/替換成的內容/g %全部 s字符串 替換全部字符串
vi的編輯模式:esc退出編輯模式到命令模式
cat:查看短文件
more:查看文件分屏顯示,按回車一行行顯示
less:查看文件,功能強大,可操做先後翻頁,上下搜索
動態查看日誌:tail 默認顯示後10行;tail -5f 默認顯示後5行;tail -f 看動態日誌
建立軟鏈接(快捷方式):ln -s 源文件(絕對路徑) 建立的快捷方式名字 ln -s /opt/lampp/xammp ~/hyh 下次輸入ll hyh 直接指向xammp
顯示當前目錄佔用硬盤大小 :du -sh
顯示當前目錄每一個文件/文件夾佔用硬盤大小:du -sh *
磁盤用量:df 或df -h
查看文件下的東西:ls -l = ll
修改權限:chmod x表明執行 w表明寫 r表明讀
加權限:文本形式
chmod o+x 文件名 其餘用戶
chmod g+x 文件名 本組用戶
chmod u+x 文件名 本身
chmod +xwr 文件名 全部權限
chmod a+x 文件名 全部
減權限:
chmod o-wx 文件名 減寫權限 把+變-就是減權限
修改權限數字形式:r=4 w=2 x=1 rwx:4+2+1; r-x:4+1; rw-:4+2; 最高權限777 全部用戶可讀可寫可執行
只寫一位數表明其餘用戶,寫兩個數表明組和其餘,寫三個數字表明全部用戶
chmod -R 遞歸 把目錄下全部文件及文件夾加權限
chown:改變文件的全部者 chown 文件名 user
若是是文件夾要加-R:chown -R 文件夾名 user
chfrp:改變文件的所屬組 chgrp 文件名 group
若是是文件夾要加-R:chgrp -R 文件夾名 group
|:管道符,鏈接兩條命令的
ls |wc -l:ls把他的結果給後面這條命令讓他操做
cat 文件名 |wc -l:統計文件行數
&&:先後兩條命令同時執行,執行完前面的執行後面的
做用:能夠啓動某個命令的同時看日誌 用&&執行兩條完整的命令
例如:/opt/lammp/lammp restart && tail -f /logs/..........:啓動完程序會顯示出日誌內容
查找文件/文件夾:find /-name mysql
查找文件內容:grep 查找內容 查找文件名 -w 匹配指定字符串;-v 輸出不匹配字符串,過濾掉指定信息
看日誌查找帶關鍵字的日誌內容:先tail -f 日誌 | grep 關鍵字
重定向:
cat test > cc.txt 看test文件的內容,而後放到cc.txt,至關於複製,尖朝誰就往誰裏寫內容
echo 「hehe」>cc.txt 查看cc,原內容消失,寫入hehe;大於號前面不加內容就可清空cc.txt 可用於清除日誌文件內容
echo「hehe」>>cc.txt 查看cc,追加新內容
八、安裝軟件
上傳、下載:ftp工具,設置選sftp,rz命令、sz命令,可是他不能上傳文件夾
Rz、sz命令安裝:使用yum安裝,yum –y install lrzsz,
rpm安裝包自動配置環境變量:rpm -ivh **.rpm
rpm -e :卸載,用rpm安裝才能用rpm卸載
rpm -qa:查詢已安裝的軟件包,rpm -qa|grep mysql 管道符後面是要找的軟件包名字
yum安裝:從yum源下載安裝包,下載、安裝、加環境變量都不用管,直接本身配好
***liunx安裝包裏有兩個包,1是安裝包,2就是yum源
經常使用命令:
• yum install httpd#安裝Apache
• yum -y install httpd#若是有選項所有贊成安裝
• yum list|grep httpd#從yum列表中查找你須要的軟 件
• yum update httpd #yum升級Apache
• yum list installed |grep mysql#查詢是否安裝 mysql
• yum remove mysql#卸載yum安裝的mysql
源碼安裝:
源碼安裝三部曲
• 一、生成makefile編譯文件 • ./configure 通常安裝包下面都有一個configure文件,用來生成makefile編譯文 件 • 經常使用的參數 • --prefix 指定安裝目錄 • --with-xx 指定依賴文件的目錄
• 二、make編譯 • make命令也須要安裝,會根據./configure產生makefile文件編譯 寫好的c語言程序,產生可運行的文件
• 三、make install • make install的做用是把編譯好的文件複製到指定的目錄下,也就是第一步-prefix指定的目錄,若是沒有指定目錄的話,仍是在當前目錄下
九、開關機:普通用戶通常沒有開關機權限
關機:shutdown -h 30 #定時關機
shutdown -h now #當即關機
init 0 當即關機
重啓:reboot後面可加參數,無所謂加不加;shutdown也能夠重啓,後面可加延遲時間 shutdown -r 20 "我要重啓啦"---定時重啓
十、註銷:exit,切換用戶:exit切換到以前的用戶
十一、網絡的
查看ip地址:ipconfig 或 ip a(不少高版本沒有ifconfig了)
vmnet8 是僅主機模式,vmnet1是nat模式
dhclient #自動獲取ip
十二、壓縮、解壓文件
tar:打包 c 打包; x 解壓縮; z 用gzip壓縮
格式:tar cvf 文件名.tar 要打包的文件名---> tar cvf liunx.tar liunx
壓縮:tar zcvf liunx.gz liunx ---- tgz和gz結尾的都是壓縮過的
解壓:tar xvf liunx.gz liunx xvf是通用的,無論壓縮沒壓縮過,zxvf是解壓壓縮過的包
打zip包:zip linux.zip linux zip命令要yum安裝,不是自帶的
解壓zip包:unzip linux.zip
gzip只能壓縮文件,不能壓縮文件夾:gzip 文件名 原來文件就沒了,只保存壓縮文件包,可用來備份日誌
gunzip解壓:unzip 文件名.gz
1三、環境變量:env 查看環境變量
whereis ls :顯示環境變量配置
若是寫了一個腳本,想在任意目錄下執行,加到環境變量裏,查看環境變量文件里加到環境變量裏的目錄,把腳本移過去,也可直接執行
系統環境變量:全部人都能用 /etc/profile
用戶環境變量:只針對本身生效,別人用不了 ~/.bashrc
1四、進程
ps:查看當前正在運行的進程(靜態) -a或-e列出全部進程;-ef 查看進程之間的關係
ps -ef |grep mysql:篩選mysql進程
ps -ef |grep mysql|grep -v grep:篩選mysql進程並去除grep自己的進程
kill -9 進程id(可跟多個進程):結束進程 killall:結束全部進程
top:查看當前運行的進程(動態),內容顯示多,而且是動態的,和ps區分開
後臺運行進行:nohup ./jmeter-server & 後臺運行,不佔用控制檯,一直運行,關閉界面,ctrl+c等操做都不會影響,不會關閉
1四、定製任務:可用於定時備份日誌,數據庫等
crontab:編輯定時任務
crontab -e,進入編輯定時任務界面
crontab 文件的格式爲「M H D m d cmd」。其中,M表明分鐘(0~59),H表明 小時(0~23),D表明天(1~31),m表明月(1~12),d表明一星期內的天 (0~6,0爲星期天)。cmd表示要運行的程序,*表明每分鐘都執行 • 示例 : • * * * * * sh /opt/lampp/test.sh 表示每分鐘執行一次test.sh這個腳本 • */5 * * * * sh /opt/lampp/test.sh 表示每5分鐘執行一次test.sh這個腳本 • 30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重啓apache
crontab -l:查看當前有哪些定時任務
1五、查看端口號
netstat :查看端口號
netstat nlpt|grep 8080:查看8080端口號是否被佔用,查看使用8080端口號進行的進程id
1六、shell腳本:多個命令寫在一塊兒 ,其餘內容查看ppt
注意:shell裏定義變量不能有空格
取進程id:ps -ef|grep jmeter|grep -v grep|awk'{print $2}'
awk'{print $2}' 取第二列的數據,存爲變量才能用
結束進程腳本
寫入腳本內容爲:(保存爲.sh)
#!/bin/bash #須要什麼解釋器來執行,liunx默認的解釋器就是bash,若是不寫也能執行
count=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'|wc -1`
pid=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'`
if [ $count -gt 0 ] #count大於0
then
kill -9 $pid
echo "jmeter stoped"
else
echo "jmeter-server not running.."
啓動腳本:
count=`ps -ef|grep jmeter|grep -v grep|awk'{print $2}'|wc -1`
if [ $count -gt 0 ] #count大於0
then
echo "jmeter-server is running。。"
else
nphup /root/apache-jmeter-2.11/bin/jmeter-server &
重啓腳本:
結束腳本的絕對路徑
啓動腳本的絕對路徑
bash:解釋器
bash 文件名.sh :指定用bash運行這個腳本,能夠寫在腳本里,也能夠放在外面
1七、獲取到當前時間字符串
date +%Y%m%d%H%M%S
--------------------------------下面是做業----------------------------
天天23:59分備份lampp的access_log文件,備份的文件名以當時的時間命名 201212241852_access.log到/tmp/logs 備份完要清空原來的
首先在tmp文件夾下建立logs文件夾:mkdir logs
logs文件夾下建立一個backup.sh文件:touch backup.sh 建立腳本這裏有個小插曲,下面會提到
寫入相應內容:
#!/bin/sh
rm -rf /tmp/logs/*
cp /opt/lampp/logs/access_log /tmp/logs/`date +%Y%m%d%H%M%S`_access_logsql
而後先執行一下腳本shell
這裏我遇到了第一個問題:腳本沒法tab鍵補全,發現腳本權限有問題,這時直接數據庫
chmod 777 backup.sh #直接賦予最高權限apache
繼續執行腳本,又報錯:-bash: ./backup.sh: /bin/sh^M: bad interpreter: No such file or directory vim
這裏就是上面提到的小插曲,因爲我開始在在windows下建立的腳本進行的編輯,因此提示這個錯誤windows
百度查詢後找到方法:vi backup 後 輸入::set ff 出現結果:fileformat=dos 這是腳本沒法執行的緣由,由於他是dos格式的,爲了省點事兒,直接刪除腳本從新在linux下命令建立腳本,寫入內容,問題解決bash
以上,腳本里的內容就建立完成
下面編寫定時任務:
crontab -e 打開定時任務編輯器
寫入以下內容:
59 23 * * * sh /root/backup.sh
保存退出
進入backup目錄下查看運行結果,文件刪除和建立正常,雖然不知道是否達到老師的要求,可是確實是按照我編寫的腳本運行了。
--------------------------------------以上就是linux課程學習的內容-------------------------------