Linux常用操作練習
練習一:安裝CentOS
1、設置為1G內存(才有圖形界面)、10G硬盤
2、分給交換分區2G(4G一下2G,8G-32G分4G-8G)
練習二:安裝CentOS迷你版
1、安裝
2、設置Linux服務器網卡:
-
編輯網卡配置項
vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes BOOTPROTO=static NETMASK=255.255.255.0 IPADDR=192.168.1.22 #網關 DNS1=8.8.8.8
-
重啟網卡
service network restart
- 測試網絡
ping baidu.com
Ctrl+C中斷ping測試 -
關閉Selinux
vi /etc/selinux/config
SELINUX=disabled
-
重啟服務器
reboot
- 測試網絡
ping baidu.com
- 關閉系統
halt
練習三:命令操作
- 查看當前所在的文件位置
pwd
- 嘗試切換終端
Ctrl+Alt+(F2~F6)
- 清屏
Ctrl+L
/clear
- 查看根目錄下tmp中的文件
ls /tmp
- 查看根目錄下tmp中文件的詳細信息
ls -l /tmp
ll /tmp
- 查看根目錄下tmp中文件的詳細信息,文件大小以可識別單位查看
ls -lh /tmp
ll -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幫助,輸出星期幾,十二小時制
- 顯示日歷
cal
cal 2 12 2012
查看2012年12月02日
- tab鍵補全路徑或命令 [使用tab補全的方式完成]
vi /etc/sysconfig/network-script/ifcfg-eth0
兩次tab可顯示相同前綴的date
練習四:命令操作
1、關機練習
shutdown -h now
立刻關機shutdown -h 15:30
15:30關機shutdown -h +30
30分鍾后關機shutdown -r +20 "20m shutdown"
輸出信息關機shutdown -k +2 "一會要關機,抓緊保存"
輸出關機通知,不執行Ctrl+C
取消操作halt
立刻關機reboot
重新啟動
2、找回ROOT密碼
- 系統起動時,隨便按一個鍵進入grub菜單
- 按e鍵進入編輯模式
- 移入kernel行,按e繼續編輯
- 在最后面輸入 single
- 回車
- 按b引導系統進入單用戶模式
- 執行passwd命令,輸入新密碼
3、目錄操作
cd /tmp
ls
ll
cd
直接打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 file
cat file
查看file文件-
ll
-rw-r--r-- 1 root root 0 Apr 3 07:58 file -
chown xz file
把file文件的所有者改為xz -
ll
xz root -
chown xz:xz file
把file文件的所屬組也給xz -
ll
xz xz -
chmod 060 file
改變file文件的權限為---rw----
test.2
mkdir sina
創建文件夾sinatouch ./sina/a
touch ./sina/b
chmod -R 777 sina
目錄sina里的所有文件都改為777權限ll ./sina
test.3
touch baidu
chgrp xz baidu
改變所屬組為xztouch sohu
chown :xz sohu
改變所屬組方法二
test.4
用戶(user)u 組(group)g 其它人(other)o
touch abc
chmod 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 /test
touch aaa
新建文件touch bbb
chmod o=rw aaa
添加權限chmod o=w bbb
- zxz賬號
cd /test
vi aaa
vi bbb
ll
-
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.sh
shell腳本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 /www
cd /www
mkdir -p Admin/App/Category/Control
遞增創建目錄
6、練習
使用tree命令 查看Admin目錄樹
yum install -y tree
tree Admin
tree ./
tree
練習六
1、刪除操作
cd /test
touch {a,b,c}
創建a、b、c三個文件,中間不能有空格rm a
刪除文件a,帶有確認rm -f b
直接刪除空目錄/文件rm -rf c
直接刪除非空目錄/文件
2、復制
mkdir /www
創建/www目錄mkdir /backup
創建/backup目錄cd
touch 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 /www
touch linux.php
ln -s /www/linux.php /backup/linux_link.php
ll /backup
test.2
-
vi exe.sh
date '+%Y-%m-%d %H:%M:%S'
-
chmod +x exe.sh
./exe.sh
ln -s /www/exe.sh /bin/exe.sh
在任何目錄執行exe.sh都可以
5、硬鏈接
cd /www
touch a.class.php
ln a.class.php b.class.php
兩個鏈接引用了磁盤上這塊的地址
6、改名與移動
mv exe.sh /backup
移動cd /backup
mv 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.html
yum 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 /www
rm -rf *
mkdir html
touch index.html
chmod 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 -l
fdisk /dev/sdb
n
分區操作。如果輸入錯誤,使用Ctrl+刪除鍵p
主分區1
第一個- 回車 起始
+2G
分配2Gw
寫入分區表fdisk -l
-
mkfs -t ext4 /dev/sdb1
格式化1,掛載中的不能被格式化 -
mount
查看掛載 cd /
mkdir men
ls /men
mount /dev/sdb1 /men
掛載sdb1到/men,但是,重啟后會消失ls
多一個lost+found-
umount /dev/sdb1
卸載掛載點 -
yum install -y vim
17M->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 /test
mkdir tmp
cp /etc/passwd ./tmp
cd tmp
zip/unzip
yum install -y zip
zip passwd .zip passwd
壓縮為passwd.zip把passwdrm -rf passwd
yum install -y unzip
unzip passwd.zip
解包
gzip
gzip passwd
ll
passwd.gzgzip -d passwd.gz
解壓縮ll
bzip2
bzip2 passwd
ll
passwd.bz2bzip2 -d passwd.bz2
解壓縮ll
2、打包
cd /test
tar zcvf etc.tar.gz /etc
gz打包tar jcvf etc.tar.bz2 /etc
bzip2打包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.php
i <?php echo "hello" ?> Esc :wq! #強制保存退出:x!也可以
-
vi index.php
aaa :q! #強退
2、提高
cd /test
cp /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 -a
rm -rf .a.php.swp
暫存文件刪除
練習十:文件權限(視頻21、22)
1、用戶
id
cat /etc/passwd
cat /etc/shadow
useradd user2
-
passwd user2
admin888 admin888
-
cat /etc/group
查看組 id user2
2、用戶組
usermod -L user2
鎖定用戶user2usermod -U user2
解鎖用戶user2groupadd admin
創建用戶組adminid user2
usermod -G admin user2
設置用戶user2附加組admin
3、刪除用戶
userdel user2
刪除用戶ls /home
用戶的家目錄還未刪除掉useradd user3
ll
userdel -r user3
刪除用戶宿主目錄ll
4、用戶狀態
useradd user4
passwd -S user4
-
passwd user4
admin888 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 /test
mkdir shop
groupadd shop
添加shop組id zxz
usermod -G shop zxz
把shop組給予zxz用戶id zxz
usermod -G shop xz
chmod 770 shop
ll
drwxrwx---cat /etc/group
查看組文件中列表
2770
chmod 2770 shop
drwxrws----
chown :shop shop
shop目錄的默認組改為shops表示,在shop目錄里創建的文件,所屬組都是這個shop 組成員可以互相修改對方創建的文件
1777
cd shop
touch a.php
-
ll
-
mkdir share
chmod 1777 share
-
ll
drwxrwxrwt任何人都可以在里面創建目錄,只能控制自己的文件,
-
ls -ld /tmp
只管理自己的目錄,其它可以查看,不能修改
練習十一:ACL權限(視頻23)
1、新磁盤掛在ACL
-
vim /etc/fstab
修改自動掛載/dev/sdb1 /men ext4 defaults,acl 0 0 #分區卷標 掛載點 系統類型 選項,acl 備份 修復
2、組權限
test.1
cd /test
touch index.html
setfacl -m u:zxz:rw index.html
-rw-rw-r--+getfacl index.html
test.2
setfacl -b index.html
groupadd cc
添加組usermod -G cc lisi
添加成員usermod -G cc qq
setfacl -m g:cc:rw index.html
指定index.html為cc組-
getfacl index.html
組內用戶重新登陸,獲取一下權限 用戶的mask里有的才能設置
練習十二:源代碼安裝軟件(視頻24)
1、源代碼安裝軟件
cd /usr/local/src/
yum install -y wget
wget http://www.memcached.org/files/memcached-1.4.17.tar.gz
tar zxvf ./memcached-1.4.17
cd ./memcached-1.4.17
./configure
生成配置檢測yum isntall -y gcc make
安裝gcc和make工具./configure
cd ..
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
下載擴展庫tar zxvf libevent-2.0.21-stable.tar.gz
ls
cd libevent-2.0.21-stable
./configure
make
生成可安裝文件make install
安裝cd ..
cd memcached-1.4.17
./configure
make && make install
軟件安裝完成
2、啟動memcache
memcached
ldd /usr/sbin/groupadd
查看groupadd需要的庫文件cat /etc/ld.so.conf
echo '/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 -h
make clean
mkdir /usr/local/memcache
ls /usr/local/memcache
cd /usr/local/src/memcache-1.4.17
./configure --prefix=/usr/local/memcache/
make && make install
cd /usr/local/
ls
cd memcache/
cd bin
ls
./memcached -uroot -d
cd ..
ls
cd ../../
rm -rf memcache
這樣刪除就相當於刪除了軟件
練習十三:軟件安裝(視頻25)
1、RPM了解
rpm -q vim
查看vim是否安裝rpm -qa
rpm -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 tree
erase刪除;刪除tree rpm -q tree
query查詢;查詢是否還有tree
3、YUM
yum info mysql
查看軟件信息yum list tree\*
聯網搜索yum search tree
搜索的范圍更廣yum remove tree
刪除treeyum install tree
安裝treeyum update
更新全部軟件yum install -y mysql
yum
直接輸入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 at
yum install -y at
ps aux | grep at
查看計划任務進程-
at 13:30 2014-2-21
at>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 -p
CREATE 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 /test
vim 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
ls
ls 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" passwd
su zhaxiaoze
vncpasswd
/etc/init.d/vncserver start
service 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 {} \;