Linux常用操作練習
練習一:安裝CentOS
1、設置為1G內存(才有圖形界面)、10G硬盤
2、分給交換分區2G(4G一下2G,8G-32G分4G-8G)
練習二:安裝CentOS迷你版
1、安裝
2、設置Linux服務器網卡:
-
編輯網卡配置項
vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOT=yes BOOTPROTO=static NETMASK=255.255.255.0 IPADDR=192.168.1.22 #網關 DNS1=8.8.8.8 -
重啟網卡
service network restart - 測試網絡
ping baidu.comCtrl+C中斷ping測試 -
關閉Selinux
vi /etc/selinux/configSELINUX=disabled -
重啟服務器
reboot - 測試網絡
ping baidu.com - 關閉系統
halt
練習三:命令操作
- 查看當前所在的文件位置
pwd - 嘗試切換終端
Ctrl+Alt+(F2~F6) - 清屏
Ctrl+L/clear - 查看根目錄下tmp中的文件
ls /tmp - 查看根目錄下tmp中文件的詳細信息
ls -l /tmpll /tmp
- 查看根目錄下tmp中文件的詳細信息,文件大小以可識別單位查看
ls -lh /tmpll -h /tmp
- 按格式輸出當前時間 [2014/02/17 23:59:59]
date "+%Y-%m-%d %H:%M:%S
- 按格式輸出當前日期 [2014/02/17]
date "+%Y/%m/%d"
- 安裝man幫助工具
yum search man有man.i686可以安裝yum install man安裝many是否下載y是否安裝yum install -y man不詢問直接安裝
- man命令查看幫助
man date上下鍵滾屏幕,可以翻頁,q退出- 練習:使用man命令查看date幫助,輸出星期幾,十二小時制
- 顯示日歷
calcal 2 12 2012查看2012年12月02日
- tab鍵補全路徑或命令 [使用tab補全的方式完成]
vi /etc/sysconfig/network-script/ifcfg-eth0兩次tab可顯示相同前綴的date
練習四:命令操作
1、關機練習
shutdown -h now立刻關機shutdown -h 15:3015:30關機shutdown -h +3030分鍾后關機shutdown -r +20 "20m shutdown"輸出信息關機shutdown -k +2 "一會要關機,抓緊保存"輸出關機通知,不執行Ctrl+C取消操作halt立刻關機reboot重新啟動
2、找回ROOT密碼
- 系統起動時,隨便按一個鍵進入grub菜單
- 按e鍵進入編輯模式
- 移入kernel行,按e繼續編輯
- 在最后面輸入 single
- 回車
- 按b引導系統進入單用戶模式
- 執行passwd命令,輸入新密碼
3、目錄操作
cd /tmplsllcd直接打cd回當前用戶的 家目錄pwd
4、如何計算目錄權限
ll /查看根目錄下的文件詳情-
- d代表文件夾 可讀(read)r->4 可寫(write)w->2 可執行(execute)x->1
- d|rwx|rwx|rwx 類型 | 所有者 | 所屬組 | 其它用戶
- drwxr-xr-x 目錄權限755
- -rw-rw-r-- 文件權限664,一般文件不需要x權限
- umask #查看默認權限
- umask -S #以易讀的方式查看
5、用戶
useradd xz添加用戶 xzpasswd xz添加密碼給xz用戶admin888輸入密碼admin888確認密碼
who查看誰在服務器上
6、文件權限
base
mkdir /test創建目錄testcd /test進入目錄test
test.1
touch file創建文件filevi filecat file查看file文件-
ll-rw-r--r-- 1 root root 0 Apr 3 07:58 file -
chown xz file把file文件的所有者改為xz -
llxz root -
chown xz:xz file把file文件的所屬組也給xz -
llxz xz -
chmod 060 file改變file文件的權限為---rw----
test.2
mkdir sina創建文件夾sinatouch ./sina/atouch ./sina/bchmod -R 777 sina目錄sina里的所有文件都改為777權限ll ./sina
test.3
touch baiduchgrp xz baidu改變所屬組為xztouch sohuchown :xz sohu改變所屬組方法二
test.4
用戶(user)u 組(group)g 其它人(other)o
touch abcchmod g+wx abc使組內成員對abc 可寫+執行chmod u=rwx,g=rw,o=rw abc修改文件abc所有者權限為rwx,組為rwx,其他人為rwxchmod o-r abc去掉其他人o的r(讀)權限chmod -r abc去除所有用戶的r權限
7、練習:
用cxz帳號給文件/test/aaa添加其他人可讀可寫的權限,使用zxz帳號進行編輯
- ROOT賬戶
useradd zxz- …
chmod 777 /test
- cxz賬號
cd /testtouch aaa新建文件touch bbbchmod o=rw aaa添加權限chmod o=w bbb
- zxz賬號
cd /testvi aaavi bbbll
-
root賬號
rm -rf /test/*不提示,刪除文件**只給文件x權限,不給r,其它人強制寫入,會改變此文件所有者及所屬組** **如果只給目錄r權限,無法讀取到目錄中文件詳細信息,如修改時間等,所以rx一般配合使用** 文件: 讀取文件內容 r 編輯修改文件 w(不表示可以刪除文件) 執行文件 x(sh腳本) 目錄: 列出文件列表 r(比如可以執行ls讀取文件列表) 進入目錄 x(網站目錄給rx權限,表過進入目錄讀取內容) 新建文件 w 刪除文件 w 改名 w 移動文件 w **目錄權限的w權限增刪改查文件的存在。而不管文件內容的w權限**
練習五:
1、基礎操作
ls .顯示當前目錄的文件cd -切換工作目錄cd ~xz進入xz用戶的家目錄history查看歷史執行命令!l執行上一次執行的ls .tar zcvf /test/etc.tar.gz /etc打包etc目錄到test中
2、環境
echo $PATH查看當前系統環境變量
test
cd /test-
vi xz.shshell腳本echo "hello world" -
chmod +x xz.sh添加可執行權限 xz.sh失敗./xz.sh成功PATH=$PATH:/test吧/test目錄加入環境變量xz.sh成功
3、查找文件
whereis man查看man文件位置whereis yum查看yum文件位置
4、取得目錄與文件名
dirname /home/xz取得目錄名basename /home/xz取得文件名
5、練習
使用mkdir創建目錄Admin/App/Category/Control
mkdir /wwwcd /wwwmkdir -p Admin/App/Category/Control遞增創建目錄
6、練習
使用tree命令 查看Admin目錄樹
yum install -y treetree Admintree ./tree
練習六
1、刪除操作
cd /testtouch {a,b,c}創建a、b、c三個文件,中間不能有空格rm a刪除文件a,帶有確認rm -f b直接刪除空目錄/文件rm -rf c直接刪除非空目錄/文件
2、復制
mkdir /www創建/www目錄mkdir /backup創建/backup目錄cdtouch test.html創建/root/test.html文件cp test.html /backup將/root/test.html復制到/backupls /backup/
3、復制
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /backup/ifcfg-eth0.bak備份網卡配置文件ls /backup
4、軟連接
test.1
cd /wwwtouch linux.phpln -s /www/linux.php /backup/linux_link.phpll /backup
test.2
-
vi exe.shdate '+%Y-%m-%d %H:%M:%S' -
chmod +x exe.sh ./exe.shln -s /www/exe.sh /bin/exe.sh在任何目錄執行exe.sh都可以
5、硬鏈接
cd /wwwtouch a.class.phpln a.class.php b.class.php兩個鏈接引用了磁盤上這塊的地址
6、改名與移動
mv exe.sh /backup移動cd /backupmv exe.sh xz.sh改名
7、取文件內容
cp /etc/passwd /www復制passwd到www目錄head -n 3 passwd查看前3行tail -n 3 passwd查看最后3行cat passwd查看全部文件cat -n passwd帶行號more passwd空格,下一屏,退出q
8、管道
cat passwd | nl | more查看passwd 結果 -> 顯示行號 結果 -> 分屏nl passwd | more分屏顯示passwd 結果 -> 分屏
9、顯示行、字符、字節數
wc -l passwd顯示行數wc -m passwd顯示字符數wc -c passwd顯示字節數wc passwd一次顯示行、字符?、字節、文件名
練習七:(視頻14)
1、文本內容搜索
cd /test-
vi a.html#aaa ;bbb ccc grep -v "^[#;]" ./a.html查看非#;開頭的grep -i "aAa" a.html不區分大小寫
2、查找文件
method.1
which passwd一般用來查找命令whereis passwd查找文件名passwd的文件
method.2
touch abc.htmlyum install -y mlocate安裝locateupdatedb更新數據庫才能查找到locate abc.html
method.3
find abc.html相對locate走數據庫會比較慢,但是都能找到find / -nouser刪除沒有用戶的文件find / -size +10240k查找大於10MB的文件find / -mtime -2查找3天內修改的文件find / -mtime +2查找3天前修改的文件find / -mtime 1查找昨天修改的文件
3、權限設置
cd /wwwrm -rf *mkdir htmltouch index.htmlchmod 0000 *find /www -type d -exec chmod 755 {} \;目錄權限改為755find /www ! -type d -exec chrmod 644 {} \;文件權限改為644find / -name index.html查找文件-
find / -user xz查找用戶xz -
find ~xz -name *.html find . -name *.html -exec rm -i {} \;-i表示刪除的時候確認下
練習八:磁盤分區(視頻15、16)
1、列出目錄大小
du -a列出目錄所有文件大小,字節(顯示隱藏文件)du -ah用可識別的單位du -s只列出總大小,不顯示du -s | more分屏,空格下一屏,q退出du -Shs不計算子目錄大小
2、查看分區大小
df -h
3、查看硬盤信息並分區
- 關機,虛擬機插入硬盤
fdisk -lfdisk /dev/sdbn分區操作。如果輸入錯誤,使用Ctrl+刪除鍵p主分區1第一個- 回車 起始
+2G分配2Gw寫入分區表fdisk -l-
mkfs -t ext4 /dev/sdb1格式化1,掛載中的不能被格式化 -
mount查看掛載 cd /mkdir menls /menmount /dev/sdb1 /men掛載sdb1到/men,但是,重啟后會消失ls多一個lost+found-
umount /dev/sdb1卸載掛載點 -
yum install -y vim17M->49M -
vim /etc/fstab修改自動掛載/dev/sdb1 /men ext4 defaluts 0 0 #分區卷標 掛載點 系統類型 選項 備份 修復
4、練習
- 添加2塊硬盤(8G)
- 第一塊分3個主分區 2、2、x
- 第二塊分5個區 2、2、2、1、x
練習八 (視頻18)
1、壓縮與解壓縮
cd /testmkdir tmpcp /etc/passwd ./tmpcd tmp
zip/unzip
yum install -y zipzip passwd .zip passwd壓縮為passwd.zip把passwdrm -rf passwdyum install -y unzipunzip passwd.zip解包
gzip
gzip passwdllpasswd.gzgzip -d passwd.gz解壓縮ll
bzip2
bzip2 passwdllpasswd.bz2bzip2 -d passwd.bz2解壓縮ll
2、打包
cd /testtar zcvf etc.tar.gz /etcgz打包tar jcvf etc.tar.bz2 /etcbzip2打包tar zpcvf etc.tar.gz /etc備份etc目錄tar ztvf ./etc.tar.gz | more查看壓縮包內容-
rm -rf *加上v可以看到過程 保留備份數據的緣由屬性 裝好環境,第一時間備份/etc/目錄
練習九:VIM使用(視頻19、20)
1、基礎操作
cd /www-
vi index.phpi <?php echo "hello" ?> Esc :wq! #強制保存退出:x!也可以 -
vi index.phpaaa :q! #強退
2、提高
cd /testcp /etc/passwd passwd
test.1
vi passwd
i #當前插入
I #行首插入
a #下一個光標
A #行尾
r #替換
R #相當於Insert
:sh #暫時最小化
exit #返回
ZZ #保存退出
test.2
vi passwd
:w pwd #另存文件為pwd
:set nonu #不顯示行號
:set nu #顯示行號
:set tabstop=4 #設置tab寬度
:12 #跳轉到第12行
12G #跳轉到12行
Ctrl+F #查看下一頁
Ctrl+B #查看上一頁
$ #跳轉到全文末尾
G #跳轉到最后一行
1G #跳轉到第一行
/a #向下搜索a,按n是繼續搜索
?a #向上搜索a
1,$s/a/b/g #從第1行到最后,把a替換成b,全局
1,$s/b/a/gc #替換時提示,y確認,n跳過
Esc
x #刪除一個字符
X #向前刪除一個
dd #剪切當前行
p #向下粘貼
3dd #向下剪切3行
P #向上粘貼
yy #復制
nyy
test.3 vim配置
cd-
vi .vimrc查看vi的配置項set nu #顯示行號 set tabstop=2 #tab寬度 set autoindent #自動縮排 -
cd /test -
vim a.php:sh ls -arm -rf .a.php.swp暫存文件刪除
練習十:文件權限(視頻21、22)
1、用戶
idcat /etc/passwdcat /etc/shadowuseradd user2-
passwd user2admin888 admin888 -
cat /etc/group查看組 id user2
2、用戶組
usermod -L user2鎖定用戶user2usermod -U user2解鎖用戶user2groupadd admin創建用戶組adminid user2usermod -G admin user2設置用戶user2附加組admin
3、刪除用戶
userdel user2刪除用戶ls /home用戶的家目錄還未刪除掉useradd user3lluserdel -r user3刪除用戶宿主目錄ll
4、用戶狀態
useradd user4passwd -S user4-
passwd user4admin888 admin888 -
passwd -l user4鎖定用戶 passwd -u user4解鎖
5、組
groupadd zu1添加組groupdel zu1組里面有成員是刪不掉的
6、查看
ll /usr/bin/passwd查看passwd下的目錄和文件 -rwsr-xr-x.-
ls -l /usr/bin/passwd查看passwd下的文件 權限 -rwsr-xr-x.前面的“s”代表執行者可變身 -
ls -l /etc/shadow權限-----------
7、GID
4表示UID 2表示GID
cd /testmkdir shopgroupadd shop添加shop組id zxzusermod -G shop zxz把shop組給予zxz用戶id zxzusermod -G shop xzchmod 770 shoplldrwxrwx---cat /etc/group查看組文件中列表
2770
chmod 2770 shopdrwxrws----
chown :shop shopshop目錄的默認組改為shops表示,在shop目錄里創建的文件,所屬組都是這個shop 組成員可以互相修改對方創建的文件
1777
cd shoptouch a.php-
ll -
mkdir share chmod 1777 share-
lldrwxrwxrwt任何人都可以在里面創建目錄,只能控制自己的文件, -
ls -ld /tmp只管理自己的目錄,其它可以查看,不能修改
練習十一:ACL權限(視頻23)
1、新磁盤掛在ACL
-
vim /etc/fstab修改自動掛載/dev/sdb1 /men ext4 defaults,acl 0 0 #分區卷標 掛載點 系統類型 選項,acl 備份 修復
2、組權限
test.1
cd /testtouch index.htmlsetfacl -m u:zxz:rw index.html-rw-rw-r--+getfacl index.html
test.2
setfacl -b index.htmlgroupadd cc添加組usermod -G cc lisi添加成員usermod -G cc qqsetfacl -m g:cc:rw index.html指定index.html為cc組-
getfacl index.html組內用戶重新登陸,獲取一下權限 用戶的mask里有的才能設置
練習十二:源代碼安裝軟件(視頻24)
1、源代碼安裝軟件
cd /usr/local/src/yum install -y wgetwget http://www.memcached.org/files/memcached-1.4.17.tar.gztar zxvf ./memcached-1.4.17cd ./memcached-1.4.17./configure生成配置檢測yum isntall -y gcc make安裝gcc和make工具./configurecd ..wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz下載擴展庫tar zxvf libevent-2.0.21-stable.tar.gzlscd libevent-2.0.21-stable./configuremake生成可安裝文件make install安裝cd ..cd memcached-1.4.17./configuremake && make install
軟件安裝完成
2、啟動memcache
memcachedldd /usr/sbin/groupadd查看groupadd需要的庫文件cat /etc/ld.so.confecho '/usr/local/lib'>>/etc/ld.so.conf追加cat /etc/ld.so.conf查看ldconfig重新加載動態鏈接庫共享memcached -uroot -d啟動memcachedps aux | grep mem查看進程
yum install -y memcache 可以自動安裝好
3、合理的安裝軟件
./configure -hmake cleanmkdir /usr/local/memcachels /usr/local/memcachecd /usr/local/src/memcache-1.4.17./configure --prefix=/usr/local/memcache/make && make installcd /usr/local/lscd memcache/cd binls./memcached -uroot -dcd ..lscd ../../rm -rf memcache這樣刪除就相當於刪除了軟件
練習十三:軟件安裝(視頻25)
1、RPM了解
rpm -q vim查看vim是否安裝rpm -qarpm -qa | egrep -i tree查看tree命令是否安裝rpm -qal | grep vim查看vim軟件安裝所有文件與目錄rpm -qac | grep vim查看vim軟件的配置文件rpm -qpR /media/Packages/tree-1.5.3-2el6.i686.rpm查看所依賴包
2、RPM
su -切換為rootmount /dev/cdrom/media可以下載軟件包,掛載光驅到mediafind /media -name tree*查找rpm包-
rpm -ivh /media/tree-1.5.3-2.el6.i686.rpm安裝tree命令 -
rpm -e treeerase刪除;刪除tree rpm -q treequery查詢;查詢是否還有tree
3、YUM
yum info mysql查看軟件信息yum list tree\*聯網搜索yum search tree搜索的范圍更廣yum remove tree刪除treeyum install tree安裝treeyum update更新全部軟件yum install -y mysqlyum直接輸入yum可以看到相關的命令
練習十四:軟件安裝(視頻26)
1、安裝軟件
更換yum軟件包源
cd /etc/yum.repos.d/mv CentOS-Base.repo CentOS-Base.repo.bak備份原配置wget http://mirrors.163.com/.help/CentOS6-Base-163.repo下載163源wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo搜狐yum源,現在有問題?yum makecache生成緩存
安裝mysql+php+apache
yum install -y mysql mysql-server php php-mysql php-mbstring httpd
啟動apache
apachectl start開啟Apache,出現錯誤不管ps aux | grep httpd查看Apache進程是否啟動service iptables stop關閉防火牆cd /var/www/html-
vim index.php<?php phpinfo(); ?>
啟動mysql
service mysqld start啟動MySQL-
mysql -uroot -p進入mysqlshow databases; exit;
2、計划任務
/etc/init.d/atd start啟動單一計划任務atyum search atyum install -y atps aux | grep at查看計划任務進程-
at 13:30 2014-2-21at>echo 'hello' #回車后,Ctrl+D編譯命令 -
at -l查看任務 at -c 50查看為50的任務
3、周期任務
service crond start周期性計划任務touch /test/xz.tpl-
crontab -e!whereis echo #查看echo在哪個目錄 */1 * * * * /bin/echo 'hello\n'>>/test/xz.tpl :x -
cd /test watch cat /test/xz.tpl每隔2S執行cat ... ctrl+c退出
4、自動任務備份數據庫
-
mysql -uroot -pCREATE DATABASE bbs; CREATE DATABASE study; USE mysql; #MySQL更改用戶密碼 UPDATE mysql.user SET password=password('admin888') WHERE user='root'; FLUSH PRIVILEGES; exit; -
cd /www -
vim backup.sh編譯shell腳本cd /backup btime = `date +%Y_%m_%d_%H` #注意不是引號 /usr/bin/mysqdump -uroot -padmin888 --database bbs study > /backup/database/bbs_study-$btime.sql #mysqldump的位置,登錄,備份數據庫bbs、study;備份到$btime這個變量,每天都會有不同的文件 !sh -
whereis mysqldump exit./backup.sh執行shell腳本測試ls /backup/database/-
cat /backup/database/bbs_study_*****.sql -
crontab -e創建定時任務10 3 * * * /www/backup.sh #每天3點10分自動執行
5、練習
- 通過crontab完成每天3點59分重啟
-
- 答案:
59 3 * * * shutdown -h now 'system will shutdown!'
- 答案:
- 通過crontab完成每天5點執行updatedb
-
- 答案:
0 5 * * * updatedb
- 答案:
- 每天3點執行軟件更新yum update
-
- 答案:
4 0 3 * * * yum update
- 答案:
- 每天3點備份網站數據庫
-
- 答案:
練習十五:進程服務管理(視頻27、28)
1、進程與服務
cd /testvim a:sh
ps
ps aux | grep vim查看vim進程-
kill -9 xxx結束進程xxx -
ps -local查看當前任務 -
ps aux | more查看所有進程 -
pstree -p顯示進程pid pstree -u顯示進程調用賬號
uptime
uptime 查看系統運行時間與負載,要小於0.8
top
-
top一般看cpu的負載,用戶,總內存按大寫P,按照CPU占用排序 按大寫M,按照內存占用排序 按大寫N,按照PID占用排序 按大寫q,離開top -
cd /etc/init.d查看進程 ls/etc/init.d/httpd stop終止Apacheservice httpd start開啟服務,只有CentOS里面有
2、級別
init 1切換到單用戶模式,就不能遠程連接了。-
init 3多人,帶網絡 -
cd /etc/rc.d lsls rc1.d所有以K開始的表示init 1下服務不啟動ls rc3.d所有以S開始的表示init 3下啟動的服務
3、服務狀態
chkconfig查看所服務狀態chkconfig --level 345 httpd on開機啟動Apachechkconfig --list httpd查看Apache的服務狀態chkconfig --level 345 mysqld on開機啟動mysqlservice iptables stop
練習十六:網絡和vnc(視頻29、30)
1、網絡地址查看
yum install -y bind-utils
nslookup www.baidu.com
2、iftop查看網絡
cd /usr/local/src
wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz
yum install -y gcc make flex byacc libpcap ncurses ncurses-devel libpcap-devel
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
iftop
3、SSH
SSH服務啟動
/etc/init.d/sshd restart #啟動SSH服務
netstat –tlp | grep sshd #檢查SSH服務監聽狀態
通過SSH執行命令
ssh root@www.houdunwang.com
ssh root@www.houdunwang.com ls /
scp ./mobile root@192.168.10.114:/mnt/data1/www/ #復制一個文件
scp root@192.168.10.114:/mnt/data1/www/ . #復制到本地
4、VNC
桌面版安裝
配置網卡
yum –y install tigervnc-server.i686
vi /etc/sysconfig/vncservers VNCSERVERS="1:zhaxiaoze" passwdsu zhaxiaoze vncpasswd /etc/init.d/vncserver startservice iptables stop vi /etc/selinux/config SELINUX=disabled #是Linux里面安全的一個組件,WEB服務一般關閉 setenforce 0 臨時關一次 /etc/init.d/vncserver start
5、Linux網絡安全
密碼:lisi922liming->liming(@@liming
/etc 目錄備份
安全意識 目錄權限750:find /www -type d -exec chmod 750 {} \; 文件權限640:find /www ! -type d -exec chmod 640 {} \;
