前提:首先安裝虛擬機(jī)以及Ubuntu系統(tǒng),其中遇到 主機(jī)支持Inter VT-X但禁用?的提示需要進(jìn)入bios將visual設(shè)置打開
接著根據(jù)需要來安裝需要的軟件,這里先安裝vim以及gcc
一、 目錄的常用命令:
1.? ls 查看當(dāng)前目錄下的內(nèi)容
ls -l??列出長數(shù)據(jù)串,包含文件的權(quán)限和屬性
ls -a? (all)? 列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來
ls -d? ?僅列出目錄本身,不列出目錄內(nèi)容
ls -R?? 連同子目錄的內(nèi)容一起遞歸列出(改目錄下的內(nèi)容全都會(huì)顯示出來)
ls file1 file2? ?列出f1和f2兩個(gè)目錄文件中所包含的目錄項(xiàng),并隱含指出按英文字母順序列表
2. cd 進(jìn)入/退出目錄
3. mkdir 建立新的文件夾
mkdir dir{1,2,3}? ?mkdir dir1 dir2 dir3 創(chuàng)建多個(gè)目錄
mkdir -p mp1/mp2/mp3? ?創(chuàng)建聯(lián)級(jí)目錄
4. cp file1 目標(biāo)目錄? -r? ? 遞歸持續(xù)復(fù)制,用于目錄的復(fù)制
cp? file1(原文件)? file2(復(fù)制后的文件)? 用于文件的復(fù)制
cp -i file1 file2? 若目標(biāo)文件已經(jīng)存在時(shí),在覆蓋時(shí)會(huì)先詢問
cp -u file1 file2? 目標(biāo)文件與源文件有差異時(shí)才會(huì)復(fù)制??
cp -a?file1 file2? 將文件的特性一塊復(fù)制
cp -p?file1 file2? 和-a差不多,常用于備份
5.?mv file 目標(biāo)目錄? ? ?移動(dòng)文件至目標(biāo)目錄
也可以移動(dòng)很多文件,只要最后是目標(biāo)文件夾,中途不出現(xiàn)目錄就行
而且linux沒有改名命令,需要在移動(dòng)的時(shí)候改名
如果只想單單改名的話就只在當(dāng)前目錄mv file1 file2
6. rm 文件? ?刪除文件
rmdir 目標(biāo)空文件夾? ? ?只能刪除空的文件夾
rm -r 目標(biāo)文件夾? ? ? ? ? (遞歸)刪除非空文件夾
二、文件的常用命令
1.? echo xxx 重定向 > 覆蓋原文件
echo xxx 重定向 >> 追加原文件
2.? 查看文本內(nèi)容
more filename? ? 查看文件內(nèi)容? ?ctrl b前翻? ctrl f 后翻
less filename? ?和more用法相同,但是看完最后一行內(nèi)容不自動(dòng)退出(more自動(dòng)退出),需要按q才會(huì)退出
3. 查看很長文件的前x行和后x行
head -x filename?
tail -x filename??
4. 多個(gè)文件一起查看
cat file1 file2 ....
cat file1 file2 file3... >(>>) file4? ?把n個(gè)文件連到一塊成為file4
5.??grep?關(guān)鍵字 目標(biāo)文件/目錄文件?? ? ???匹配文件中的行
6.? ?more file | grep 關(guān)鍵字? ? ? ? ? 將要輸出的內(nèi)容交給grep先匹配再輸出?
m
?
三、文件的壓縮和打包
打包和壓縮是不一樣的,打包(tar)是把很多小文件放在一起,容量不變,壓縮是用算法將文件大小容量變小
1. 打包和解包?
打包: tar cfv xxx.tar 目標(biāo)文件? (其中cfv分別指create/file/view? 能看到過程 不想看到過程就把v去掉)
解包:tar xfv xxx.tar?
2. 打包 壓縮,解壓 解包
一般都一起用
?
四、文件的查找
1. 根據(jù)文件后綴名找? ?find 目標(biāo)目錄/*.后綴
2.
?
五、Liunx系統(tǒng)命令
多用戶多任務(wù)
1. whoami 顯示當(dāng)前的用戶? ? ? ? ? who? 顯示誰在線
2. su - 用戶名? ? ? ?切換用戶
su后加-的話不僅賬戶切換過去了,環(huán)境變量什么的也都切換過去了,不加-的話,僅僅使用這個(gè)用戶的權(quán)限,不使用其他
3. free查看內(nèi)存
4. top 查看資源管理器
5. ps -aux? 查看進(jìn)程? ? ? ? ? ? ps -aux | grep 關(guān)鍵字? ? 查看關(guān)鍵字的進(jìn)程
6. kill? 進(jìn)程號(hào)? ? ? ??殺掉進(jìn)程,root身份運(yùn)行?
pkill 進(jìn)程名? ? ? ? 通過進(jìn)程名殺進(jìn)程,注意殺掉的是 *進(jìn)程名*? 的進(jìn)程
?
六、文件的掛載
?
七、命令模式下的光標(biāo)移動(dòng)快捷鍵
?
八、Linux的用戶管理
1.?添加組
sudo -s? 將用戶身份提升為管理員
groupadd? 組名? ? ? 添加組(系統(tǒng)自動(dòng)分配id)
groupadd? -g? id? ?組名? ? ? ?添加組(自己指定id)
more /ect/group??進(jìn)行查看
2. 修改組
groupmod -g? 新id? 原組名?
groupmod -n? ?新組名? 原組名
3. 刪除組
groupdel? 組名
?
4. 添加一個(gè)用戶
useradd? 用戶名? ?
添加一個(gè)用戶會(huì)自動(dòng)添加一個(gè)與用戶同名的組
所以我們添加用戶的時(shí)候指定組
useradd? 用戶名 -g 原先存在的組名
useradd? 用戶名 -d 家目錄? ? ? ? ?修改家目錄
新建的poly也屬于1002組? 所以顯示組的時(shí)候不會(huì)顯示poly
5.?修改用戶
usermod -g 要移動(dòng)到的組名 要移動(dòng)的組名? ? ? ? ?移動(dòng)用戶去別的組
6. 刪除用戶
userdel 用戶名
?
九、權(quán)限管理
1. 讀(read 4)、寫(write? 2)、執(zhí)行權(quán)限(excute 1)
rwx 7? ? ? ? ? -wx 3
rw- 6? ? ? ? ? -w- 2
r-x 5? ? ? ? ? ?--x
r-- 4
2. 用戶的三種身份
主人user? ?同組group? 不認(rèn)識(shí)other? (u 7? g 5??o 5)
3. 修改權(quán)限的辦法(兩種)
相對(duì)法和絕對(duì)法
相對(duì)法:在原有權(quán)限基礎(chǔ)上,對(duì)不同的角色進(jìn)行權(quán)限的加/減
1. chmod u /- r/w/x? 文件名
先寫一個(gè)小腳本test.sh
ll 查看文件權(quán)限,這里可以看到test.sh的user權(quán)限是rw 不可執(zhí)行
此時(shí)修改權(quán)限 chmod u x test.sh 此時(shí)文件就有了執(zhí)行的權(quán)限? ? ?./test.sh? 執(zhí)行一下
如果將此文件的權(quán)限變成 ---- -wx --x,需執(zhí)行 chmod u-rwx test.sh? ?/ chmod g-r wx test.sh? /? chmod o-r x test.sh
2. 修改一個(gè)文件的主人和組
chown 新用戶 文件
chgrp 新組名 文件
?
絕對(duì)法:不需要考慮之前的角色以及對(duì)應(yīng)的權(quán)限,直接指定最終的各角色權(quán)限
比如上面的例子,如果將test.sh修改回原來的權(quán)限,只需要
chmod 744(自己計(jì)算)? test.sh?
適合改動(dòng)比較大的
?
十、rpm軟件管理包
三種安裝軟件方法 rpm/yum/軟件編譯
rpm
red hat package manager是一個(gè)開放的軟件包管理系統(tǒng)
RPM有五大功能:安裝卸載升級(jí)查詢驗(yàn)證
RPM包名稱有其特有的格式 name-version.type.rpm
rpm -i <rpm file name>? ? ?安裝特定的軟件
rpm -e <package name>? ? 卸載軟件
rpm -q <package name>? ? 查詢特定的軟件包是否在系統(tǒng)里被安裝
rpm -U <rpm file name>?升級(jí)
yum
管理rpm包的后臺(tái)程序,用python寫成
?
十一、安裝mysql
sudo apt-get install mysql-server mysql-client
安裝完成過后需要切換到root用戶下才能登錄,而且默認(rèn)安裝后mysql是沒有密碼的,此時(shí)需要進(jìn)入mysql里修改密碼
1.update mysql.user set authentication_string=PASSWORD(“8888″) where User=’root’ and Host ='localhost';
2.update mysql.user set plugin=”mysql_native_password”;
3.flush privileges;
4.quit;
然后再重啟mysql服務(wù) sudo /etc/init.d/mysql stop/start
此時(shí)就能用密碼登錄mysql了
****MySQL安裝后的目錄結(jié)構(gòu)分析(此結(jié)構(gòu)只針對(duì)于使用apt-get install 在線安裝情況):
數(shù)據(jù)庫存放目錄: /var/lib/mysql/
相關(guān)配置文件存放目錄: /usr/share/mysql
相關(guān)命令存放目錄: /usr/bin(mysqladmin mysqldump等命令)
啟動(dòng)腳步存放目錄: /etc/rc.d/init.d/
十二、shell入門
首先打開一個(gè)終端,在終端里能做的操作,以及在終端里執(zhí)行的命令,都能同樣的寫到.sh腳本里去(參照windows下的.bat文件來理解)
1.現(xiàn)在來寫一個(gè)最簡單的腳本文件
#!/bin/bash //將調(diào)用bin下的bash解釋echo first shellcd save //進(jìn)入主目錄下的文件夾ls //列出目錄下的內(nèi)容
2.自定義變量/系統(tǒng)變量/命令值返回變量
#!/bin/bashage=19name=lxecho $name is $age years old
#!/bin/bashecho $HOMEecho $USER
#!/bin/bashvar1=`date %y%m%d`echo $var1date %y%m%d
3. 命令表達(dá)式/文件判斷表達(dá)式
格式 [-d ./filename]
-d 判斷文件是否存在且是目錄
-f 文件是否存在且是文件
-e 是否存在? -r是否可讀? -w是否可寫? -x是否可執(zhí)行
#!/bin/bashif mkdir testthen echo yeselse echo failfi
#!/bin/bashif [ -d ./test ]then echo dir existselif mkdir testthen echo okelse echo failfi
?
十三、定時(shí)任務(wù)
crontab -e? ?進(jìn)入任務(wù)編輯狀態(tài)
格式:*****(分時(shí)日月周) 命令
例如: 21*** aaa #?每天1:02執(zhí)行aaa命令? ? ? */2**** bbb #代表每兩分鐘執(zhí)行bbb命令
01 14 * * * date >> save/c.txt //14:01分向c.txt寫入時(shí)間*/1 14 * * * date >> save/c.txt //在14時(shí)每一分鐘都向txt寫入時(shí)間
執(zhí)行結(jié)果會(huì)被發(fā)送到root郵箱里,如果不想收到定時(shí)任務(wù)的信息,可以把輸出重定向
21*** aaa >/dev/null 2>&1
?
十四、數(shù)據(jù)庫的定期備份
目標(biāo):每天三點(diǎn),導(dǎo)出sql,壓縮,并按日期存儲(chǔ)在/data 下
知識(shí):crontab定時(shí)任務(wù) mysqldump導(dǎo)出 tar壓縮 按日期創(chuàng)建文件
1.按日期創(chuàng)建文件
date %Y%m%d%H%M
date -d "-3 minutes" %Y%m%d%H%M
2.mysqldump導(dǎo)出
注意mysqldump的命令所在文件夾 (我這里是/usr/bin)
執(zhí)行:?/usr/bin/mysqldump -uroot -p(密碼)? -B(數(shù)據(jù)庫名) > /data/filename.sql
3.tar壓縮
tar cfvz /data/文件名.tar.gz? /data/filename.sql
4.定時(shí)任務(wù)
*/1 **** /bin/bash /data/bak.sh
#bak.sh#!/bin/bash#格式化時(shí)間tod=`date %Y%m%d%H%M`old=`date -d "-3minutes" %Y%m%d%H%M` #壓縮/usr/bin/mysqldump -uroot -p8888 -B sys > /data/sys.sql tar cfvz /data/$tod.tar.gz /data/sys.sql#把老的文件刪除rm -rf sys.sql#將三分鐘之前的文件刪除if [ -d /data/$old.tar.gz ]then rm -rf /data/$old.tar.gzfi#定時(shí)任務(wù) 每一分鐘執(zhí)行一下bak.sh文件*/1**** /bin/bash /data/bak.sh
?
?
?
來源:http://www.icode9.com/content-3-129201.html聯(lián)系客服