一、初识Linux系统
1、内核版本 -》二次开发 -》加入定制功能 -》 发行版本
2、做为服务器使用
-》稳定性,安全性
-》失去易用性
3、嵌入式开发
-》空调遥控器,电视机遥控器
-》ATM 的操作系统大多数也是 Linux
二、VMWare虚拟机
1、是一款软件,可以linux,windows,macos等
2、安装时遇到的问题
-》进入BIOS系统,把支持虚拟化打开
-》打开vmware时候报错,去windows查看“服务”,把所有的关于vmware服务都打开
三、网络配置
1、命令ifconfig 查看网卡信息(ip,netmask...)
2、修改网卡配置信息:vi /etc/sysconfig/network-scripts/ifcfg-eth0
-》ONBOOT=yes
-》BOOTPROTO=static
-》IPADDR=192.168.109.41
-》NETMASK=255.255.255.0
-》GATEWAY=192.168.109.2
-》DNS1=192.168.109.2
3.验证
-》ping www.baidu.com 收到回复信息就成功了,可以访问外网
- 失败原因:1.防火墙没有关闭
命令: service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 开启防火墙
2.unknown host
- 检查eth0,确保DNS配置正确
- route add default gw 192.168.109.2
4、关闭防火墙服务
-》命令 chkconfig --list iptables 查看防火墙服务状态
-》命令 chkconfig iptables off 关闭防护墙开启自动启动
-》命令 chkconfig iptables on 打开防护墙开启自动启动
5、修改主机名
-》vi /etc/sysconfig/network
-》HOSTNAME=bd23-server1.ibeifeng.com
6、配置网络映射:配置ip和主机名之间的映射关系
-》vi /etc/hosts
- 192.168.109.41 bd23-server1.ibeifeng.com
四、Linux常用命令
1、clear命令
-》作用:清屏
-》快捷键:ctrl + l
2、pwd命令
-》作用:显示当前所在目录(绝对路径)
-》例子:# pwd
3、cd命令
-》作用:切换目录
-》例子:cd /etc/sysconfig/
cd .. 返回上一级目录
4、ls命令
-》作用:查看指定目录结构
-》例子:ls /
ls -l /
-》参数:-l 以详细信息来显示
-a 把所有文件或目录列出来(包括隐藏的)
-h 显示文件大小,以KB,MB...来显示
-d 仅查看指定目录
5、mkdir命令
-》作用:创建目录
-》例子:mkdir test1
mkdir -p test2/test3
6、touch命令
-》作用:创建文件
-》例子:touch word.txt
7、删除命令 rmdir rm
-》rmdir删除空目录
-》rm可以删除目录和文件
- rm -r /test3 加-r表示删除目录
- rm -f words.txt 加-f表示默认选是
8、cp命令
-》作用:拷贝文件或目录
-》例子:cp -r dir1 /opt 加-r表示拷贝的目标是目录
9、mv命令
-》剪切,文件重命名
-》例子:mv /opt/dir1 /tmp
mv /opt/dir1 /opt/dir1.rename
10、查看文件命令
-》cat /etc/passwd 适合查看小文件
-》more /etc/services 适合查看大型文件,支持向后翻页以及逐行查看
-》less /etc/services 适合查看大型文件,支持向前/后翻页,并且也可以逐行查看
-》head -5 /etc/services 查看文件的前5行,如果不加选项那么默认查看前10行
-》tail -5 /etc/services 查看文件的后5行,如果不加选项那么默认查看后10行
tail -f namenode.log 查看滚动的日志文件
五、用户和用户组管理
1、cat /etc/passwd 查看当前系统下所有用户信息
2、root:x:0:0:root:/root:/bin/bash
-》第一列root:用户名
-》第二列x:密码标记位,有x说明root用户有密码
-》第三列:用户ID UID
- 规则:0 就是表示root用户
1-499 系统用户(伪用户)
500 以后是分配给普通用户的
-》第四列:用户组ID GID
-》第五列:用户的描述信息
-》第六列:用户所在的家目录
-》第七列:用户登录成功后,默认使用的Shell
3、man命令
-》作用:查看命令或者配置文件详细信息
-》man 5 passwd 查看配置文件加5
-》man ls man mkdir
4、添加用户
-》useradd ibeifeng
5、修改用户密码
-》passwd ibeifeng 注意用普通用户身份去修改,简单密码不会通过
6、删除用户
-》userdel -r zhangsan 加-r表示同时删除/home目录下的同名目录
7、用户之间的切换
-》su - ibeifeng 建议大家加-,它表示既切换身份,又切换环境变量
8、cat /etc/group 查看用户组配置文件
六、文件权限管理
1、- rwx rwx rwx. 2 root root 4096 Jun 2 11:27 bin
2、- rwx rwx rwx
-》第一列:表示文件类型:l是连接文件,d是一个目录,-表示是一个文件
-》第二列:代表文件所有者所拥有的权限 user u
-》第三列:代表文件所属组所拥有的权限 group g
-》第四列:对于文件来说是其他人 other o
-》r - read 读权限
w - write 写权限
x - x.... 执行权限
3、修改文件权限
-》chmod g+w dirtest/ 给dirtest文件的所属组添加写权限
-》chmod u-x dirtest/ 给dirtest文件的所有者去掉执行权限
-》chmod a-r dirtest/ 对所有者,所属组,其他人同时操作
-》除了root用户以外,文件的所有者也拥有权限修改
4、数字表示权限
-》r 4 2^2
-》w 2 2^1
-》x 1 2^0
-》- 0
-》练习 - rwx r-x r-- 754 d rwx r-x r--
-》chmod 754 dirtest/
5、修改文件的所有者
-》chown ibeifeng dirtest/
-》chown root:root dirtest/ 同时修改所有者和所属组
-》注意,只有root用户才有权限修改,既是是文件的所有者都没有权限
6、修改文件的所属组
-》chgrp ibeifeng dirtest/
-》注意,只有root用户才有权限修改,既是是文件的所有者都没有权限
7、对于目录和文件来说r w x权限的意义是不通的
-》r权限
- 对于目录:ls
- 对于文件:cat more less head tail
w权限
- 对于目录:mkdir touch rmdir rm
- 对于文件:vi echo > echo >>
x权限
- 对于目录:cd
- 对于文件:脚本文件,用shell命令去执行
七、vi编辑器
1、vi编辑器三种模式:命令模式,编辑(插入)模式,最后行模式
2、如何进入三种模式:
-》命令模式:默认
-》编辑模式:在命令行模式下,按i
-》最后行模式:在命令行模式下,按shift + :
3、最后行模式下的操作:
-》q 退出
-》wq 保存退出
-》!(比如q!)强制退出
-》set nu(或number) 显示行号
-》1,$s/nologin/666/g
- 1表示第一行
- $符号表示最后一行
- s表示替换
- /nologin 待替换的内容
- /666 替换成这个的内容
- /g 全局替换
4、命令模式下的操作:
-》删除:按下dd,不仅仅是删除,还有一个剪切功能
-》撤销:按下u
-》复制:按下yy,复制多行:n+yy表示多行复制,复制的行数是n,起始位置是光标处
-》粘贴:按下p
-》跳到文件的头部:按下gg
-》跳到文件的尾部:按下大G(shift+g)
-》光标跳到行尾,并进入编辑(插入)模式:按shift + a
-》保存并退出:按下ZZ,(shift + zz)
八、复习
1、初识linux,具有稳定性,安全性,通常作为服务器使用,嵌入式
2、linux:内核版,发行版(centos)
3、vmware虚拟机软件,安装centos
-》虚拟化没有打开,BIOS
-》vmware服务要启动
4、网络配置
-》NAT(推荐),桥接(共用真实机的ip),hostonly(仅本地,不能访问外网)
-》vi /etc/sysconfig/network-scripts/ifcfg-eth0
- IPADDR=192.168.109.22
- NETMASK=
- GATEWAY
- DNS1
-》修改主机名
-》hostname 主机名
-》vi /etc/sysconfig/network
-》网络映射
- vi /etc/hosts
- 192.168.109.22 hostname
-》ping不通,把防火墙关闭
5、远程连接
-》xshell crt winscp notepad++
6、linux的根目录
7、用户和用户组管理
-》vi /etc/passwd
-》man 5 passwd 查看这个配置什么意思
-》useradd 用户 passwd 用户 userdel -r 用户
-》vi /etc/group
-》groupadd 用户组 groupdel 用户组
8、文件权限管理
-》所有者 所属组 其他人
-》rwx 读,写,执行
-》chmod 修改文件权限
-》chown 修改文件的所有者
-》chgrp 修改文件的所属组
9、vi编辑
九、find命令
-》find 搜索范围 -条件 具体条件内容
-》find / -name init
-》find / -name init* 模糊搜索,把所有以init开头的文件全部搜索出来
-》find / -name *init* 模糊搜索,把所有包含init的文件全部搜索出来
-》find / -iname init* 模糊搜索,-iname表示忽略大小写字母
-》find / -size +100 文件块大小:512B 1KB=1024B=2文件块
100MB 1M=1024KB 100MB=102400KB 204800文件块
-》例子:find / -size +204800 搜索根目录下大于100MB的所有文件
-》-type 根据文件类型来所搜
-d 查找目录
-f 查找普通文件
-》例子:find / -iname *init* -a -type f(d)
-》-a 就是 -and ,查找的时候是且的关系
十、常用符号
1、管道符号 |
-》通常和grep命令一起使用,表示把|符号前面的内容左右|后面命令的输入
-》例子:cat /etc/passwd | grep 'root'
2、> 覆盖文件里的内容
-》例子:echo 'hello world' > words.txt
2、>> 追加内容到文件里,不会覆盖
-》例子:echo 'hello' >> words.txt
十一、sudo权限管理
1、可以把只有root才有权限执行的命令赋予普通用户
2、ls cd cat 这些命令的操作对象不是文件就是目录
sudo 操作对象 命令
3、用vi打开/etc/sudoers配置文件,是没有权限保存并退出,只能强制退出不能保存
所以,我们要使用visudo命令来修改这个配置文件
4、sudo -l 查看普通用户拥有哪些sudo赋予的命令
5、ibeifeng ALL=(ALL) /usr/sbin/useradd /usr/sbin/userdel
-》添加多个命令可以空格分开
6、注意:不要把/bin/vi命令配置给普通用户
十二、磁盘管理
1、df -h 查看linux系统磁盘使用情况
2、sda sdb sdc
3、分区类型:主分区,扩展分区,逻辑分区
-》规则:主分区 + 扩展分区 数量 小于等于 4,并且扩展分区只能有一个
逻辑分区是在扩展分区之上进行划分,没有数量限制
4、fdisk /dev/sdb 对磁盘进行配置
5、创建分区
-》-n 添加一个新分区
-》-p 打印当前分区信息
-》-q 退出但不会保存
-》-w 把配置写入磁盘,并退出
6、格式化分区
-》mkfs.ext4 ext4是磁盘的格式,centos6里默认都使用这个
-》mkfs.ext4 /dev/sdb5 格式化sdb5这块分区
7、挂在分区
-》mount /dev/sdb5 /mnt 把sdb5这块分区挂在到/mnt目录下
-》分区一定要挂载,否则无法使用
-》假如你挂载了已经挂载过的分区,会有提示,不会产生错误
8、挂载完之后的分区就可以使用了
-》df -h 进行查看
十三、常用的系统命令
1、ifconfig 查看网卡信息
2、service 服务(network,iptables) 参数(start,stop,status)
3、chkconfig --list iptables 可以查看指定服务启动状态
chkconfig iptables on/off 设置服务是否开机启动
4、端口管理命令 netstat
-》-a all 显示所有端口
-》-l listener 显示正在被监听的端口
-》-t tcp 显示tcp协议的端口
-》-u udp 显示udp协议的端口
-》-r route 显示路由器信息
-》-n number 主机名hostname以数字的形式显示
-》netstat -rn 查看路由器信息
5、路由器管理 route
-》route -n 查看路由器信息
-》route add default gw 192.168.109.2 添加一个默认网关地址
6、 kill -9 1851 关闭id是1851的进程
十四、压缩管理命令
1、gzip passwd 压缩的文件
2、注意:1.压缩的原文件会消失;2.gzip不能压缩目录
3、gunzip passwd.gz 解压缩
4、tar -cvf dir1.rename.tar dir1 打包,f一定要放在最后,否则会报错
5、tar -xvf dir1.rename.tar -C /opt 解包到一个新的目录中,一定要加-C
6、tar -xvf dir1.rename.tar 如果解压到当前目录,当前目录已经有这个文件,那么会覆盖
7、tar -zcvf dir1.tar.gz dir1/ 加-z打包的同时进行压缩
8、tar -zxvf dir1.tar.gz 解压缩并同时解包,-z可以不加
十五、软件管理
1、软件分两种类型:
-》源码包
-》二进制包
- 经过源码包编译之后得到的
- 使用方便:安装、更新、卸载等
- 依赖性:A -> B -> C 安装的时候
2、挂载iso文件 mount /dev/cdrom /media/
3、rpm的管理方式
-》离线安装,安装包要下载好(在本地)
-》查询
rpm -qa 查询所有已经安装过的rpm软件
- q 查询
- a 所有的
-》安装
rpm -ivh /media/Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm
- i代表安装
- vh显示安装过程
- 注意包名后要跟.rpm
-》卸载
rpm -e zlib-devel-1.2.3-29.el6.x86_64
- -e代表卸载
- --nodeps不考虑依赖包,如果不加,会把安装软件时所安装的其他依赖包全部卸载
4、yum的管理方式
-》在线安装,生产环境中多数使用它
-》查询
yum list 查询软件(已安装的,待更新的,未安装的)
yum list | grep zlib
-》安装
yum install zlib-devel.x86_64
yum install -y zlib-devel.x86_64 加-y表示不在询问,直接以yes通过
-》卸载
yum remove zlib-devel.x86_64
yum remove -y zlib-devel.x86_64 加-y表示不在询问,直接以yes通过
-》yum仓库
- @ 表示已经安装的软件
- base 表示在yum仓库里的安装包
- updates 已经安装过的软件有更新版本
十六、正则表达式
1、通配符
-》* 匹配0个或任意多个字符
-》? 匹配任意一个字符
-》[] 匹配其中任意一个字符
2、支持通配符的常用命令:ls find cp
3、正则表达式常用命令:grep sed awk
十七、shell编程
1、shell在linux里有两个含义
-》shell脚本命令解释器
-》shell是一门解释型脚本语言
2、自定义变量
-》name=“hello world” 如果变量值之间有空格,一定要用引号
-》echo $name 把变量值打印出来
-》set 命令可以查看已经定义的变量
-》unset name 删除变量
3、环境变量
-》export NAME="shell" 定义环境变量
-》set 或 env 查看环境变量
-》unset NAME 删除变量
4、shell脚本
-》固定格式,开头第一行必须这样写:#!/bin/bash
-》执行一个shell的方式:
- 绝对路径的方式:/root/shs/canshu1.sh 1 2 3 4 5
- 相对路径的方式:./canshu1.sh 22 333 44 55 多数用这种方式
- sh canshu1.sh 11 22 33 44
- 注意:把shell脚本赋予执行权限
十八、时间命令
-》date 查看时间
-》date -s "2018-06-03 16:23:30" 修改时间命令
十九、crontab周期性定时任务
-》首先确保crond这个服务是开启的,可以使用service crond status 这个命令查看
假如没有开启,使用service crond start开启下这个服务
-》crontab [-e][-l][-r]
-e 编辑
-l 查询当前所有的定时任务
-r 删除所有的定时任务,推荐使用-e进入编辑模式,然后逐条删除
二十、克隆虚拟机
-》克隆之后要修改网卡配置信息
- cd /etc/sysconfig/network-scripts 目录下
- 然后把ifcfg-eth0文件重命名为ifcfg-eth1
mv ifcfg-eth0 ifcfg-eth1
- DEVICE=eth1
- UUID 删除
- HDADRR 删除
- IP 修改
- System Name 修改
-》修改主机名 /etc/sysconfig/network
-》修改网络映射 /etc/hosts