Linux02

来源:互联网 发布:疯狗软件50 编辑:程序博客网 时间:2024/06/15 12:41




一、回顾
1、了解认识Linux
-》版本
-》应用领域
2、部署Linux环境
-》静态IP:NAT模式
-》主机名:hostname-》系统内核变量
# cat /proc/sys/kernel/hostname
/etc/sysconfig/network
-》网络映射
/etc/hosts  将IP地址与主机名进行对应
-》解析域名DNS
/etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes开机启动网卡
BOOTPROTO=none
-》none -》静态IP
-》DHCP -》自动获取IP
-》static -》静态IP
重启网络:# service network restart
3、常用命令
1、创建:
mkdir -p touch vi
2、删除:
rmdir rm -r -f 
3、修改:
cp -r mv
4、查看:
cat more less head taill -f
5、搜索:
find -name -iname -size -user -group -type
4、权限:
rwx-》读写执行
user、group、other
421
chmod:管理员&所有者
chown:管理员
5、用户&用户组
useradd ***
passwd ***
userdel -r ***
su - ***
6、重启命令:
reboot、init 6
7、关机命令:
init 0、shutdown
8、快照功能-》备份虚拟机,日常比较常用的功能

二、sudo权限
1、一般Linux中命令操作的对象都是文件
2、sudo命令操作的对象是命令(脚本文件)
3、修改sudo配置
visudo进行配置,使用的身份必须是管理员
visudo=/etc/sudoers
root    ALL = (ALL)       ALL
用户 IP或者网段root(可以不写) 具体执行的命令操作(命令的绝对路径)
BF ALL=/sbin/shutdown -r now  限制某一个用户可以使用的命令以及选项
$ sudo -l查看该用户被赋予了哪些sudo的可执行权限
执行前面必须要加上sudo命令$ sudo shutdown -r now
或者这样执行也可以:sudo /sbin/shutdown -r now
4、which和whereis命令
whereis定位可执行文件、源代码文件,定位文件在文件系统中的位置
which同样也是可以定位文件的位置
which shutdown
whereis shutdown

三、Linux中的符号命令
# grep 'root' /etc/passwd
grep可以过滤筛选出一些关键字的行
grep 【条件】【操作对象,文件】
1、管道符号
-》一个竖线表示,|
# cat /etc/passwd | more
# cat /etc/passwd | grep 'root'
# cat /etc/passwd | head -3
把前一个命令的输出结果通过管道符号传递给后一个命令处理
# ifconfig | grep 'inet6 addr:'
注意:不是所有的命令都能够放在管道符号后面使用的
2、追加符号
-》>>两个连续的大于符号
把前一个命令的输出结果追加到一个文件中
# ifconfig | grep 'inet6 addr:' >> temp.log
-》可以追加到一个已经存在的文件中,在原来的基础上追加
-》也可以追加到一个不存在的文件中,同时创建
3、覆盖符号
-》>一个大于符号
# ifconfig | grep 'inet6 addr:' > temp999.log 
-》覆盖原来的文件内容
4、wc命令
-》功能:统计,可以统计行数,选项:-l
# wc -l /etc/passwd
# head -3 /etc/passwd | wc -l
5、# ps -ef查看系统下的管理进程
# ps -ef | wc -l  统计多少个进程

四、Linux中的帮助命令
1、帮助命令:man
查看命令的帮助信息
查看文件的帮助信息
2、一般查看帮助信息的第一行NAME,了解该命令的基本作用

五、Linux中的压缩命令
1、gzip,压缩时不保留原文件
2、gzip,不能压缩目录
压缩前:641020 Apr 16 18:34 file_bf
压缩后:127222 Apr 16 18:34 file_bf.gz
3、bzip2适用于一些内容和数据较大的文件进行压缩
4、tar包格式压缩
打包:# tar -cvf BF100.tar BF100/  
注意:-f必须放在选项的最后
解包:# tar -xvf BF100.tar -C /opt/
.tar.gz格式打包:# tar -czvf BF100.tar.gz BF100/
.tar.gz格式解包:# tar -xzvf BF100.tar.gz -C /opt/rh/
选项:-C 重定向,注意是大写

六、磁盘管理
1、查看当前磁盘使用情况
df -h
2、磁盘命令
# fdisk -l
brw-rw----  其中b代表的是块设备文件
sda代表第一块硬盘,s代表接口,d代表disk磁盘
sda1/2...代表硬盘中的分区
硬盘接口:
sata sas-》服务器方面
scsi ide-》个人电脑方面
SSD固态
3、cylinders磁柱-》就是查看分区情况
-》起始和结束
4、添加磁盘之前先关机,关闭所有的进程
5、分区
# fdisk /dev/sdb
输入m查看帮助信息
输入n进行分区
  e   extended     -》扩展分区
  p   primary partition (1-4)-》主分区
主分区+扩展分<=4
必须保证要有一个扩展分区
2+1或者3+1的模式
主分区分完格式化之后可以直接使用
扩展分区分完之后还需要进行逻辑分区才能使用
注意:分完区之后按w进行信息的保存
分完区之后建议重启机器,让系统重新加载一次信息

要学会Linux中的table键自动补齐
6、格式化磁盘
Linux中的文件系统
ext2、ext3、ext4、xfs等
格式化命令:mkfs.ext4 /dev/sdb6
7、挂载磁盘
挂载临时命令:mount
mount /dev/sdb6 /mnt
挂载点:是访问这个分区的唯一入口,是必须已经存在的
使用:df -h来验证是否挂载成功
永久生效的挂载方法:
# vi /etc/fstab  写入配置文件
/dev/sdb6   /mnt  ext4    defaults  0 0

七、Linux中的软件包管理方式
1、软件包的类型
-》源码包(脚本)
-》二进制包(rpm、系统默认包)
-》经过编译后的(看不到源码)
-》管理方便:安装、卸载、升级、查看
-》安装速度快
-》依赖性
A->B->C->D.....互相依赖
挂载光驱:# mount /dev/cdrom /media
2、rpm管理方式
-》管理.rpm结尾的包
-》查询:
rpm -qa  q表示查询,a表示所有
-》查询所有已经安装好的包
-》安装
rpm -ivh,i表示安装,vh表示进度
# rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
-》卸载
rpm -e,e表示卸载
# rpm -e zlib-devel-1.2.3-29.el6.x86_64
选项:--nodeps:不检测依赖性,一般建议在试验环境使用
3、yum管理方式
-》使用的前提条件,需要连接到网络
-》查询:
# yum list查询已经安装好的包
# yum list | grep httpd-tools
-》安装:
选项:install ,选项:-y  直接确认
# yum -y install httpd-devel.x86_64
-》卸载:
选项:remove
# yum -y remove httpd-devel.x86_64
-》yum仓库:
地址:/etc/yum.repos.d/


八、系统管理命令
1、top -》 查看当前系统的资源和任务,3秒刷新一次
Swap交换分区-》类似windows中的虚拟内存概念
-》按q退出浏览的状态
2、free -》 查看当前系统内存资源的情况
选项:-m 表示mb
3、netstat
-》查看网络状态
-》-t:表示TCP网络协议,三次握手,更安全
-》-u:表示UDP网络协议,直接传输数据,传输快,不稳定
-》-l:表示监听端口,listen
-》-r:表示路由器,查看网关
-》-n:表示IP地址和端口号
  第一种用法:
# netstat -tlun
查看系统已经开启的监听端口
第二种用法:
# netstat -an
-》a表示all全部的意思
查看系统已经开启的监听端口以及正在连接的网络程序
第三种用法:
# netstat -rn
# route -n同样也是单独查询路由信息
4、kill结束系统进程命令
$ kill -9 2287
-9表示强制关闭,类似windows中的结束任务

九、正则表达式
1、过滤包含数字的行
# grep '[0-9]' /etc/passwd
grep '[0-9][0-9][0-9]' /etc/passwd
# grep ':[0-9][0-9][0-9]:7' /etc/passwd
# grep '^r.*n$' /etc/passwd
“[a-z]”“[0-9]”“[A-Z]”
[A-Z][0-9][0-9] = B02

【举例】提取ifconfig命令中的IP地址,使用sed命令
# ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | sed 's/inet addr://g' | sed 's/Bcast.*//g'

十、Linux shell
0、脚本规范,每个脚本的开头第一行都会有一个固定的格式
#!/bin/bash,声明当前使用的shell环境是哪一种
执行脚本方式:
sh 脚本名称
./脚本名称  先赋予脚本的x执行权限
1、编程语言:解释型脚本语言-》直接调用Linux命令
2、shell解释器
外层应用程序,-》ls-》ascii字符
|
shell命令解释器 -》转换
|
内核
|
硬件 -》 0101010101.....机器语言
3、Linux sh bash psh zsh....
-》bash一般Linux环境的常用shell环境
4、环境变量
-》用户变量
-》只针对于某个用户的环境变量
-》系统变量
-》系统全局生效的
/etc/profile
5、位置变量
命令:echo

#!/bin/bash


echo $0 1.sh
echo $2
echo $3
echo $1 tom
6、自定义变量
name=[value]
等号两边不能有空格
对大小写敏感
$符号取值
[ "$Yn" = "Y" -o "$Yn" = "y" ] ; echo.....  
7、for循环
#!/bin/bash


for i in tom tony leo
do
echo $i
done
【需求】使用for循环
#!/bin/bash
for i in {1..50}
do
mkdir /home/BF/data_test/dir$i
done
【需求】打印1到10
#!/bin/bash
for i in {1..10}
do
echo $i
done
【需求】求1到10的和
#!/bin/bash
for((i=1;i<=10;i++))
do
SUM=$((SUM+i))
done
echo $SUM
课后练习:
使用shell中的for循环来实现99乘法表
8、while循环
【需求】求1到10的和
#!/bin/bash
i=1
while [ $i -le 10 ]
do
SUM=$((SUM+i))
i=$[i+1]
done
echo $SUM
【需求】读取文件内容
#!/bin/bash
while read -r line
do
echo $line
done < /etc/passwd

#!/bin/bash
if [ 2 -eq 2 ];then
echo YES
fi

#!/bin/bash
if [ -d /home/BF/888 ];then
ls /home/BF/888
else
mkdir /home/BF/888
fi

#!/bin/bash
case $1 in
top)
top
;;
free)
free
;;
df)
df
;;
*)
echo "usgae:$0{top|free|df}"
esac


十一、Linux中的定时任务
1、date
显示当前系统的时间
# date -s "2017-04-16 17:03:30"
# date "+%Y%m%d"
七天前
# date -d '7 day ago' '+%Y%m%d%H%M'
crontab
-》检查服务是否开启
# service crond status
# service crond start
# service crond stop
# service crond restart
-》执行身份管理员
-》注意:凡事只要涉及到服务相关的,都会有开机设置项
开启# chkconfig crond on
关闭# chkconfig crond off
-》执行身份管理员
【假设场景】


* * ** * *
命令
0 2 ** 3 cp /etc/passwd /tmp
每周三的凌晨两点
5 1 10,25* * *****
每个月10号和25号凌晨1点5分
*/10 * * * ******
每10分钟执行一次
0 1-6 ** * *****
每天凌晨1点到6点
5 * ** * *****
每小时的第5分钟执行一次
30 7 8* *
每月8号的7:30分执行
30 5 86 *
每年的6月8号5:30分执行
25 8-11 * * *
每天8到11点的第25分钟执行


【示例】
每分钟执行一次将结果写到一个文件中
*/1 * * * * date >> /home/BF/time.log
制定完成建议重启服务
# service crond restart
0 0