五、压缩与解压缩命令

常用压缩格式: .zip .gz .bz2 .tar.gz .tar.bz2

1、.zip格式压缩
zip 压缩文件名 源文件
#压缩文件

zip -r 压缩文件名 源目录
#压缩目录

2、.zip格式解压缩
unzip 压缩文件
#解压缩.zip文件

3、.gz格式压缩
gzip 源文件
#压缩为.gz格式的压缩文件,源文件会消失

gzip -c 源文件 > 压缩文件
#压缩为.gz格式,源文件保留
例如:gzip -c cangls > cangls.gz

.gzip -r 目录
#压缩目录下所有的子文件,但不能压缩目录

4、.gz格式解压缩
gzip -d 压缩文件
#解压缩文件

gunzip 压缩文件
#解压缩文件

5、.bz2格式压缩
bzip2 源文件
#压缩为.bz2格式,不保留源文件

bzip2 -k 源文件
#压缩之后保留源文件

注意:bzip2命令不能压缩目录

6、.bz2格式解压缩
bzip2 -d 压缩文件
#解压缩,-k保留压缩文件

bunzip2 压缩文件
#解压缩,-k保留压缩文件

7、打包命令tar
tar -cvf 打包文件名 源文件
选项:
— -c:打包
— -v:显示过程
— -f:指定打包后的文件名

例如:
— tar -cvf longzls.tar longzls

8、解打包命令
tar -xvf 打包文件名
选择:
— -x:解打包

例如:
— tar -xvf longzls.tar

9、.tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

tar -zcvf 压缩包名.tar.gz 源文件
选项:
— -z:压缩为.tar.gz格式

tar -zxvf 压缩包名.tar.gz
选项:
— -x:解压缩.tar.gz格式

10、tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
选项:
— -z:压缩为.tar.bz2格式

tar -jxvf 压缩包名.tar.bz2
选项:
— -x:解压缩.tar.bz2格式

四、帮助命令

1、帮助命令main
man 命令
#获取指定命令的帮助

man ls
#查看ls的帮助

查看命令拥有那个级别的帮助
man -f 命令
相当于
whatis 命令

举例:
— man -5 passwd
— man -4 null
— man -8 ifconfig

man的级别
— 1 查看命令的帮助
— 2 查看可被内核调用的函数的帮助
— 3 查看函数和函数库的帮助
— 4 查看特殊文件的帮助(主要是/dev目录下的文件)
— 5 查看配置文件的帮助
— 6 查看游戏的帮助
— 7 查看其它杂项的帮助
— 8 查看系统管理员可用命令的帮助
— 9 查看和内核相关文件的帮助

查看和命令相关的所有帮助
man -k 命令
相当于
apropos 命令

例如:apropos passwd

2、其他帮助命令
选项帮助
命令 –help
#获取命令选项的帮助

例如:
— ls –help

shell内部命令帮助
help shell内部命令
#获取shell内部命令的帮助

例如:
whereis cd
#确定是否是shell内部命令
help cd
#获取内部命令帮助

详细命令帮助info
info 命令
— – 回车:进入子帮助页面(带有*号标记)
— – u:进入上层页面
— – n:进入下一个帮助小节
— – p:进入上一个帮助小节
— – q:退出

三、文件搜索命令

1、locate命令格式
locate 文件名
— 在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
— locate命令所搜索的后台数据库
updatedb
更新locate数据库

/etc/updatedb.conf配置文件
PRUNE_BIND_MOUNTS=”yes”
#开启搜索限制
PRUNEFS =
#搜索时,不搜索的文件系统
PRUNEPATHS =
#搜索时,不搜索的路径

2、搜索命令的命令whereis
whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
— -b:只查找可执行文件
— -m:只查找帮助文件

PATH环境变量
PATH环境变量:定义的是系统搜索命令的路径
[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

3、find命令
find [搜索范围] [搜索条件]
#搜索文件

find / -name install.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

find /root -iname install.log
#不区分大小写

find /root -user root
#按照所有者搜索

find /root -nouser
#查找没有所有者的文件

find /var/log/ -mtime +10
#查找10天前修改的文件
— -10 10天内修改文件
— 10 10天当天修改的文件
— +10 10天前修改的文件
— atime 文件访问时间
— ctime 改变文件属性
— mtime 修改文件内容

find . -size 25k
#查找文件大小是25KB的文件
— -25k 小于25KB的文件
— 25k 等于25KB的文件
— +25k 大于25KB的文件

find . -inum 262422
#查找i节点是262422的文件

find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件
— -a and 逻辑与,两个条件都满足
— -o or 逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec/-ok 命令 {} \;对搜索结果执行操作

Linux中的通配符
— * 匹配任意内容
— ? 匹配任意一个字符
— [] 匹配任意一个中括号内的字符

4、搜索字符串命令grep
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
— -i 忽略大小写
— -v 排除指定字符串

5、find命令与grep命令的区别
find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

二、文件处理命令

1、目录处理命令
建立目录:mkdir
mkdir -p [目录名]
— -p 递归创建
— 命令英文原意:make directories

切换所在目录:cd
cd [目录]
— 命令英文原意:change directory
简化操作
— cd ~ 进入当前用户的家目录
— cd
— cd – 进入上次目录
— cd .. 进入上一级目录
— cd . 进入当前目录
相对路径:参照当前所在目录,进行查找
如:[root@imooc ~]#cd ../usr/local/src/
绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置
如:[root@imooc ~]#cd /etc/

查询所在目录位置:pwd
pwd
— 命令英文原意:print working directory

删除空目录:rmdir
rmdir [目录名]
— 命令英文原意:remove empty directories

删除文件或目录:rm
rm -rf [文件或目录]
— 命令英文原意:remove
选项:
— -r 删除目录
— -f 强制删除

复制命令:cp
cp [选项] [原文件或目录] [目标目录]
— 命令英文原意:copy
选项:
— -r:复制目录
— -p:连带文件属性复制
— -d:若源文件是链接文件,则复制链接属性
— -a:相当于 -pdr

剪切或改名命令:mv
mv [原文件或目录] [目标目录]
— 命令英文原意:move

常用目录的作用
— / 根目录
— /bin 命令保存目录(普通用户就可以读取的命令
— /boot 启动目录,启动相关文件
— /dev 设备文件保存目录
— /etc 配置文件保存目录
— /home 普通用户的家目录
— /lib 系统库保存目录
— /mnt 系统挂载目录
— /media 挂载目录
— /root 超级用户的家目录
— /tmp 临时目录
— /sbin 命令保存目录(超级用户才能使用的目录)
— /proc 直接写入内存的
— /sys
— /usr 系统软件资源目录
— /usr/bin/ 系统命令(普通用户)
— /usr/sbin/ 系统命令(超级用户)
— /var 系统相关文件内容

2、文件处理命令

3、链接命令
ln -s [原文件] [目标文件]
— 命令英文原意:link
— 功能描述:生成链接文件
选项:
— -s 创建软链接

硬链接特征
1、拥有相同的i节点和存储block块,可以看做是同一个文件
2、可通过i节点识别
3、不能跨分区
4、不能针对目录使用

软链接特征
1、类似Windows快捷方式
2、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
3、lrwxrwxrwx:I 软链接
— 软链接文件权限都为rwxrwxrwx
4、修改任意文件,另一个都改变
5、删除原文件,软链接不能使用

Linux安装

一、虚拟机安装
1、VMware简介
VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。
VMware官方网站 http://www.vmware.com

VMware主要特点
— 不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统
— 本机系统可以与虚拟机系统网络通信
— 可以设定并且随时修改虚拟机操作系统的硬件环境

2、建议的VMware配置
— CPU:建议主频为1GHz以上
— 内存:建议1GB以上
— 硬盘:建议分区空闲空间8GB以上

二、虚拟机使用
1、新建虚拟机
New_Virtual_Machine

2、虚拟机硬件设置
The virtual machine hardware Settings

三、系统分区
1、磁盘分区
磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。碟片一旦划分成数据个分区(Partition),不同类的目录与文件可以存储进不同的分区
分区类型
主分区:最多只能有4个
扩展分区:
— 最多只能有1个
— 主分区加扩展分区最多有4个
不能写入数据,只能包含逻辑分区
逻辑分区

2、格式化
格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。

3、硬件设备文件名
Hardware device file name
分区设备文件名
设备文件名
— /dev/hda1(IDE硬盘接口)
— /dev/sda1(SCSI硬盘接口、SATA硬盘接口)

4、挂载
必须分区
— / (根分区)
— swap分区 (交换分区,内存2倍,不超过2GB)
推荐分区
— /boot (启动分区,200MB)

文件系统结构
The file system structure

四、Linux系统安装
1、安装欢迎界面
“Install or upgrade an existing system”:安装或升级现有系统
“Install system with basic video driver”:安装过程采用基本的显卡驱动
“Rescue installed system”:进入系统修复模式
“Boot from local drive”:退出安装从硬盘启动
“Memory test”:存储介质检测

2、密码原则
复杂性
— 八位字符以上、大小写字母、数字、符号
— 不能是英文单词
— 不能是和用户相关的内容
易记忆性
时效性

3、软件包选择
— Desktop (桌面)
— Minimal Desktop(最小化桌面)
— Minimal(最小化)
— Basic Server(基本服务器)
— Database Server(数据库服务器)
— Web Server(网页服务器)
— Virtual Host(虚拟主机)
— software development workstation(软件开发工作站)

4、安装日志
/root/install.log:存储了安装在系统中的软件包及其版本信息
/root/install.log.syslog:存储了安装过程中留下的事件记录
/root/anaconda-ks.cfg:以Kickstart配置文件的格式记录安装过程中设置的选项信息

Linux简介

1_1.Linux简介
Linux内核版本
Linux内核官网:wwww.kernel.org

Linux主要发行版本
Linux_main_distributions

1_2.开源软件简介
Open_source_software

开源软件
使用的自由
— 绝大多数开源软件免费
研究的自由
— 可以获得软件源代码
散布及改良的自由
— 可以自由传播、改良甚至销售

1_3.Linux应用领域
基于Linux的企业服务器
http://www.netcraft.com/

Linux在嵌入式领域

1_4.Linux学习方法
应该如何提问?
先要尝试自己解决
— 帮助
— 文档
— 示例
提问的智慧
— 问题详尽
— 贴图

1_5.Linux与Windows的不同
Linux严格区分大小写
Linux中所有内容以文件形式保存,包括硬件
Linux不靠扩展名区分文件类型
— 压缩包:”*.gz”、”*.bz2″、”*.tar.bz2″、”*.tgz”等
— 二进制软件包:”.rpm”
— 网页文件:”*.html”、”*.php”
— 脚本文件:”*.sh”
— 配置文件:”*.conf”
Windows下的程序不能直接在Linux中安装和运行

1_6.字符界面的优势
优势一:字符界面占用的系统资源更少
优势二:字符界面减少了出错、被攻击的可能性

Linux中的计划任务-Crontab

一、背景
CRONTAB
从定时重复工作中解出来

工作中遇到的困难
每分钟需要执行一个程序检查系统运行状态
第天凌晨需要对过去一天的业务数据进行统计
每个星期需要把日志文件备份
每个月需要把数据库进行备份

二.Crontab简介
Crontab是一个用于设置周期性被执行的任务的工具。
被周期性执行的任务我们称为Cron Job
周期性执行的任务列表我们称为Cron Table

三、Crontab实践
3_1.实践提纲
相关工具
安装并检查Crontab服务
Crontab的基本组成
Crontab的配置文件格式
Crontab工具的使用
Crontab的日志
Crontab觉见错误

3_2.相关工具putty介绍
Putty
一个免费的易用的SSH连接工具
http://wwww.putty.org/

3_3.安装并检查Crontab服务
检查cron服务
— 检查Crontab工具是否安装:crontab -l
— 检查crond服务是否启动:service crond status
安装cron
— yum install vixe-cron
— yum install crontabs

3_4.一个简单的例子
每分钟都打印当前时间到一个日志文件中
– */1**** date >> /tmp/log.txt

3_5.Crontab的基本组成
crontab_basic_parts

3_6.Crontab的配置的文件格式
crontab_configurition_file_format
例:
每晚的21:30重启apache
— 30 21 * * * service httpd restart
每月1、10、22日的4:45重启apache
— 45 4 1,10,22 * * service httpd restart
每月的1到10日的4:45重启apache
— 45 4 1-10 * * service httpd restart
每隔两分钟重启Apache服务器
— */2 * * * * service httpd restart
— 1-59/2 * * * * service httpd restart
晚上11点到早上7点之间,每隔一小时重启Apache
— 0 23-7/1 * * * service httpd restart
每天18:00至23:00之间每隔30分钟重启Apache
— 0,30 18-23 * * * service httpd restart
— 0-59/30 18-23 * * * service httpd restart
小结:
— *表示任务时候都匹配
— 可以用“A,B,C”表示A或者B或者C时执行命令
— 可以用“A-B”表示A到B之间时执行命令
— 可以用“*/A”表示每A分钟(小时等)执行一次命令

3_7.Crontab工具的使用
查看某用户的计划任务列表
修改某用户的计划任务
查看生成的最终计划任务文件
— /var/spool/cron

3_8.Crontab的配置文件
全局(系统)配置文件
— /etc/crontab
— 注意格式
Root配置文件
— 只有root用户才会把这些内容载入到计划任务表中

3_9.Crontab的日志
/var/log/cron文件保存着cron的任务执行记录

四、Crontab常见错误
环境变量
命令行双引号中使用%时,未加反斜线\
第三和第五个域之间执行的是“或”操作
分钟设置误用
4_1.环境变量

4_2.命令行操作
命令行双引号中使用%时,未加反斜线\
四月的第一个星期日1时29分运行a.sh
— 59 1 1-7 4 0 /root/a.sh
— 59 1 1-7 4 * test `date +\%w` -eq 0 ** /root/a.sh

4_3.分钟设置误用
两个小时运行一次
— * 0,2,4,6,8,10,12,14,16,18,20,22 *** date (错误)
— 0 */2 * * * date (正确)

4_4.Crontab补充
Crontab中最小只能设置到每分钟执行一个命令,如果想每半分钟执行某个怎么做到?
— 通过shell脚本的sleep命令配合Crontab即可完成这一功能
— date && sleep 0.5s  && date

linux单网卡配置双ip

  • linux单网卡上配置双IP临时方法

linux下一个网卡如何配置多个IP?不像window那么方便设置,在RedHat linux下边图形界面的网络配置没有找到在哪里配置第二个IP的地方。

如果临时性的增加一个IP(重启后就丢失了),可以使用ifconfig命令;ifconfig的用法可以使用man ifconfig查看,最常用的给网卡配置ip的命令为:

#ifconfig eth0 192.168.0.101 netmask 255.255.255.0 up

说明:

eth0是第一个网卡,其他依次为eth1,eth*

192.168.0.101是给网卡配置的第一个网卡配置的ip地址

netmask 255.255.255.0 配置的是子网掩码

up是表示立即激活

如果给单个网卡eth0配置多个ip地址如何操作呢,如果使用ifconfig命令那么上边需要改动的地方只有eth0这个而已,将 eth0改为eth0:x(x是0-255例如eth0:0或者eth0:1等等),eth0:x称为虚拟网络接口,是建立在网络接口 (eth0)上边。

所以给单网卡配置多ip的方法就是使用命令:

#ifconfig eth0:1 192.168.0.102 netmask 255.255.255.0 up

在window下就可以利用ping进行测试:

#ping 192.168.0.101

#ping 192.168.0.102

ping测试通过,就完成了单网卡配置多ip的功能。

但是值得注意的是,reboot以后发现ip地址变了回去。因为通过ifconfig配置的只是暂时有效而已。那么想要永久有效,一种简单的方式就是设置启动时自动激活ip设置:将上边的命令ifconfig加入到rc.local中去即可。

  • linux单网卡上配置双IP永久方法
  1. 将/etc/sysconfig/network-scripts下的ifcfg-eth0复制ifcfg-eth0 为ifcfg-eth0:1
  2. 然后用vi编辑进行编辑(vi ifcfg-eth0:1),内容如下:

DEVICE=eth0:1                        #网络虚拟接口eth0:0

ONBOOT=yes                           #启动的时候激活

BOOTPROTO=none                 #ip绑定形式

IPADDR=192.168.0.102             #分配的ip地址

NETMASK=255.255.255.0         #子网掩码

GATEWAY=192.168.0.254         #默认网关

  1. 保存退出然后把eth0:1激活:ifconfig eht0:1 up
  2. 将网络重启:service network restart即可

 

如果想要关闭一个ip,则使用:#ifconfig eth*[:x] down(*代表的是网卡编号,x代表虚拟接口号0-255)