您的位置:首页 > 运维架构 > Linux

Linux常用操作练习汇总

2017-07-22 16:52 549 查看

转自:http://www.cnblogs.com/kpengfang/p/5050261.html

练习一:安装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
安装man

y
是否下载

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
添加用户 xz

passwd xz
添加密码给xz用户

admin888
输入密码

admin888
确认密码

who 查看谁在服务器上

6、文件权限

base

mkdir /test
创建目录test

cd /test
进入目录test

test.1

touch file
创建文件file

vi 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
创建文件夹sina

touch ./sina/a


touch ./sina/b


chmod -R 777 sina
目录sina里的所有文件都改为777权限

ll ./sina


test.3

touch baidu


chgrp xz baidu
改变所属组为xz

touch 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,其他人为rwx

chmod 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复制到/backup

ls /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
安装locate

updatedb
更新数据库才能查找到

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 {} \;
目录权限改为755

find /www ! -type d -exec chrmod 644 {} \;
文件权限改为644

find / -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
分配2G

w
写入分区表

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把passwd

rm -rf passwd


yum install -y unzip


unzip passwd.zip
解包

gzip

gzip passwd


ll
passwd.gz

gzip -d passwd.gz
解压缩

ll


bzip2

bzip2 passwd


ll
passwd.bz2

bzip2 -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
锁定用户user2

usermod -U user2
解锁用户user2

groupadd admin
创建用户组admin

id 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目录的默认组改为shop
s表示,在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[/code] 
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[/code]下载扩展库 
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
启动memcached

ps 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 -
切换为root

mount /dev/cdrom/media
可以下载软件包,挂载光驱到media

find /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
删除tree

yum install tree
安装tree

yum 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[/code] 下载163源

wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo[/code] 搜狐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
进入mysql
show databases;
exit;

2、计划任务

/etc/init.d/atd start
启动单一计划任务at

yum 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
终止Apache

service 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
开机启动Apache

chkconfig --list httpd
查看Apache的服务状态

chkconfig --level 345 mysqld on
开机启动mysql

service 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 {} \;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 练习