linux–>内核 auto.iso
CentOS Redhat
www.centos.org
命令提示符
[root@localhost 桌面]#
代表登录的用户,root 管理员
主机名
桌面 -->当前所在的目录 ~–>用户的家目录–>/root
–>代表用户的身份 # 管理员(超级用户)
$ 普通用户
命令关键字 [选项] 参数
选项引导方式:
短格式引导: -l -a = -la
长格式引导: --help
-a all 所有,查看隐藏文件
-l long 长格式显示,文件信息更详细
-h human 以人类可读的方式显示文件大小,通常与-l合用
ls -l = ll
cd 返回用户的家目录
cd … 返回上一级目录 . 当前目录
cd - 返回上一个工作的目录
[root@localhost /] cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cd
[root@localhost ~] cd -
/etc/sysconfig/network-scripts
-p 嵌套创建目录
-v 详细信息
格式 cp 源路径 目标路径
选项:
-r 复制目录
mv 源路径 目标路径
重命名:源路径与目标路径相同
-r 删除目录
-f 强制删除
绝对路径:从根目录开始写
相对路径:从当前目录开始
help:只能查看内置命令的帮助信息
man:查看命令的帮助信息
info:
格式:find 查找路径 查找条件
查找条件:
-name 指定名字查找文件 Linux系统下一切皆文件
-type 指定类型查找文件
f 代表普通文件 (file)
d 目录 directory
b 块设备文件 block
c 字符设备文件 character
l 链接文件 link
s 套接字文件 socket
p 管道文件 pipeline
-size 指定大小查找文件
[root@localhost ~]# which cd
/usr/bin/cd
-a and 两个条件同时为真
-o or 两个条件有一个为真
[root@localhost ~]# wc a.txt
6 12 72 a.txt
-l 统计行数
-w 统计单词数
-c 统计字节数
tac 倒着输出文件
nl 带行号显示文件内容,忽略空行。cat -n空行也有行号
more 分页显示文件内容,空格向下翻一页,回车向下翻一行,
退出输入q
less 可以向上或向下翻页查看文件内容,page up向上翻页,
page down 向下翻页;
搜索匹配: /word 在文件中从上向下匹配word,
输入n跳到下一个匹配的单词
?word 在文件中从下向上匹配word.
退出输入 q
head 显示文件的前几行,默认前10行
-n 指定行数
tail 显示文件的后几行,默认后10行
-n 指定行数
? 通配任意一个字符
清屏:ctrl+l 或clear
格式:grep 关键字 文件名
-i 不区分大小写
-v 取反(反向过滤)
正则表达式:
^ 以…开头
$ 以…结尾
[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
xuyanlong:x:1000:1001:xuyanlong:/home/xuyanlong:/bin/bash
排除空行:
[root@localhost ~]# grep -v ^$ /etc/passwd
作用:用于两个命令的连接使用,将前一个命令的结果作为
后一个命令的执行目标
grep root /etc/passwd | wc -l
-h 以人类可读的方式显示
变量:用于存放值的地方
用一串字母,来表示一个长的值
命令模式-i/I,a/A,o/O->输入模式
i 在当前光标处插入 o 在当前光标新起下一行开始写
输入模式-Esc->命令模式
命令模式下的操作:
剪切(删除):dd
剪切(删除)多行:#dd (#代表删除的行数)
粘贴:p
复制:yy
复制多行:#yy (#代表删除的行数)
跳转:
gg 跳到文件的第一行
G 跳到文件的最后一行
home键 跳到该行的第一个字符
end键 最后一个字符
x 删除一个字符
u 撤销
Ctrl+r 恢复
命令模式- : / ? ->末行模式
:
w 保存
wq 保存退出
q 退出
q! 强制退出
wq! 强制保存退出
:set nu 显示行号
:set nonu 取消行号
:10 跳到第10行
:1,5 s/old_word/new_word/g (%代表全文)
将1到5行中的old_word替换成new_word
/word 在文件中从上向下匹配word,输入n跳到下一个匹配的单词
?word 在文件中从下向上匹配word.
gzip -9 指定压缩比
1-9 数字越大,压缩比越大,压缩完的文件越小,耗时越长
gunzip == gzip -d 解压缩
选项:
-c 创建归档文件
-v 输出详细信息
-j 调用bzip2压缩格式
-z 调用gzip压缩格式
-f 指定归档文件
-x 释放归档文件
-C 指定释放归档文件存放的路径
/etc 存放配置文件
/var 可变长文件(以日志文件为主)
/var/log/message 是系统的日志文件
软件包的封装类型:
1.rpm -->yum
2.deb -->apt
3.源码包(tar包)
rpm -q 包名 查询该软件包是否安装
rpm -qa 列出所有已安装的软件包
rpm -qi 查询已安装的软件包的信息
rpm -ql 查询软件包里包含哪些文件
rpm -qf 查看指定文件属于哪个文件
[root@master01 ~]# umount /dev/sr0
[root@master01 ~]# mount /dev/sr0 /media/
/dev/sr0 挂载源 /media 挂载点
[root@master01 Packages]#
[root@master01 Packages]# pwd
/media/Packages
[root@master01 Packages]# rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
-i 安装
-v 显示详细信息
-h 以#号显示安装进度
-e 卸载
-U 升级
如果想安装httpd-2.4包,需要httpd-tools等包
依赖关系:一个包依赖其他的软件包
方法一:根据提示,一个包一个包的装
方法二:使用yum安装rpm包
配置本地yum源:
umount /dev/sr0
mount /dev/sr0 /media
cd /etc/yum.repos.d/
mkdir bak
mv C* bak 将所有以C开头的文件,移动到当前目录的bak目录下
vim local.repo
[local] //指定yum源名称
name=local //指定yum源名称
baseurl=file:///media //指定软件包存放的路径,也就是光盘挂载路径
gpgcheck=0 //是否启用检查认证,0不启用,1启用
enabled=1 //是否启用该yum源,0不启用,1启用
yum clean all 清除yum缓存
yum makecache 建立新的yum缓存
yum -y install 软件包名 安装软件包
yum -y remove 软件包名 卸载软件包
yum list 列出所有的软件包
yum list installed 列出已安装的软件包
yum info 软件包名 查看软件包的信息
yum grouplist 列出包组
yum -y groupinstall 安装包组
yum -y groupremove 卸载包组
yum provides route 查看route是否安装
源码包安装(tar ball)
编译环境:yum -y install gcc gcc-c++ make
1.解包 tar xf nginx-1.6.0.tar.gz -C /usr/src/
2.配置 cd /usr/src/nginx-1.6.0/
[./configure --prefix=/usr/local/nginx
3.编译 [root@localhost nginx-1.6.0]make
4.安装 [root@localhost nginx-1.6.0]# make install
错误1:C compiler is not found
原因:没有编译环境
解决方法:yum -y install gcc gcc-c++ make
错误2:
./configure: error: the HTTP rewrite module requires
the PCRE library.You can either disable the module by
using --without-http_rewrite_module option, or
install the PCRE library into the system, or build
the PCRE library statically from the source
with nginx by using --with-pcre= option.
错误原因:缺少pcre库
解决方法:
yum -y install pcre-devel
错误原因:缺少pcre库
解决方法:yum -y install pcre-devel
错误3:
./configure: error: the HTTP gzip module requires the zlib
library.You can either disable the module by using
--without-http_gzip_module option, or install the zlib
library into the system, or build the zlib library
statically from the source with nginx by using
--with-zlib= option.
错误原因:缺少zlib库
解决方法:
yum -y install zlib-devel
错误原因:缺少zlib库
解决方法:
yum -y install zlib-devel
虚拟机与物理机互相传文件:
方法一:安装lrzsz软件包(只可以用在xshell或CRT)
rz 物理机传入虚拟机
sz 虚拟机传入物理机
方法二:利用Vmware tools直接拖
方法三:利用U盘挂载
mount /dev/sdb4 /mnt
cd /mnt
把需要的文件复制到虚拟机中
配置IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
TYPE=Ethernet //类型是以太网
BOOTPROTO=static //以静态方式获取IP地址
NAME=eth0
DEVICE=eth0
ONBOOT=yes //启用这块网卡
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
systemctl restart network //重启网络服务
yum provides 未找到的命令 //查看命令由那个软件包生成的
ifconfig eth0 192.168.2.10/24 临时设置IP地址
Linux系统一个多用户多任务的操作系统
用户分类
超级用户:root uid=0
程序用户:不能登录系统的用户 默认 uid 1-1000
普通用户:默认uid >1000
选项:
-u 指定uid
-g 指定用户组
-s 指定用户登录的shell(/bin/bash ,/sbin/nologin)
-M 不为用户创建家目录
-d 指定用户家目录位置,默认/home/用户名
/etc/passwd --> 存放用户信息的文件
root:x:0:0:root:/root:/bin/bash
root 第一段 用户名
X 第二段 密码占位符
0 第三段 UID
0 第四段 GID
root 第五段 描述,备注(可以为空)
/root 第六段 用户家目录
/bin/bash 第七段 用户登录的shell
/bin/bash 代表该用户可以登录系统,
其他的(/sbin/nologin)代表该用户不可以登录系统
shell解释器:是用户和内核沟通的桥梁
计算机两个
硬件系统:cpu(控制器,运算器),内存,硬盘 ,网卡
软件系统:操作系统 应用程序
操作系统: 内核 shell
用户–>shell–>内核–>硬件 结果–>内核–>shell -->用户
passwd 用户名
echo "123123"|passwd --stdin test2 不交互为用户创建密码
选项:
-l 锁定用户
-S 查看用户是否锁定
-u 解锁用户
passwd -l aaa
usermod -U aaa
格式:userdel 用户名
-r 删除用户的同时删除用户的家目录
格式:usermod 选项 用户名
-L 锁定用户
-U 解锁用户
-c 为用户添加备注
-l 修改用户名
-u 修改uid
-s 修改用户登录的shell
/etc/shadow (影子)
root:$6$Q2Lt/.FYAXa3rOea$CDmzcDjl.IYKgB0lCU.dm9qpGEV
i1SezTP829/YqykudLl6jUKrHTQS32ojv9kjPDBZ774VlYD9B8Q.YZrFxc0
::0:99999:7:::
root 第一段 用户名
第二段 加密后的密码
第三段 上一次密码修改的时间距1970年1月1日过了多少天
第四段 密码最短有效天数,经过多少天以后可以再次修改密码
第五段 密码最长有效天数,此次修改密码后多少天必须修改密码
第六段 密码过期前多少天警告
第七段 密码过期之后多少天内禁用该用户
第八段 账号失效时间
第九段 保留
私有组(主要组)
公共组(附加组)
一个用户只有一个主要组,可以属于多个附加组。
一个用户组中可以包含多个用户。
root用户 -->主要组 root
a组 root
b组 root
c组 root a b c 组为用户root的附加组
/etc/group 存放用户组的信息
root:x:0:
root 第一段 用户组
x 第二段 用户组密码
0 第三段 gid
第四段 附加用户
-a 将指定用户添加到组中
w 用户登录的信息
who 用户登录的信息
whoami 查看当前登录的用户
user 查看当前登录的用户
id 查看指定用户的uid,gid以及用户组信息
groups 查看当前用户的用户组
文件权限:r 读 w 写 x 执行
如何查看文件的权限: ll = ls -l
rw-r–r--
文件权限分三组:
第一组 用户 u rw-
第二组 用户组的权限 g r–
第三组 其他用户的权限 o r–
格式:
chmod u/g/o/a +/-/= rwx 文件名
-R 递归
八进制: r–4 w–2 x–1 - 0
rw-r–r-- -->644
rwxrwxr-x -->775
chown 用户名 文件
chown :用户组 文件
chown 用户:用户组 文件
选项: -R 递归
touch创建一个新文件默认的权限是 644=777-111-022
目录 755=777-022
文件 r cat/tac/nl/more/less/head/tail w vim x(命令或者脚本)
目录 r ls w touch rm mkdir mv x cd
磁盘管理:
block 块设备文件
磁盘接口与磁盘命名:
IDE --> hda hdb hdc
SATA/SAS/SCIS -->sda sdb sdc
硬盘类型:
HDD 机械硬盘
SSD 固态硬盘
fdisk 磁盘
选项:
-l 列出磁盘以及磁盘分区的详细信息
.指定文件系统
-t 指定文件系统
ext4 CentOS6 默认的文件系统
xfs CentOS7 默认的文件系统
交换分区:类似于虚拟内存 大小:一般设为内存的2倍
-s 查看当前使用的交换分区
( ) 或 ‘ ‘ 先 执 行 ()或`` 先执行 ()或‘‘先执行()命令 或者是 提取命令的结果
4个分区记录,每个16字节,=64字节
(一块硬盘可以划分四个主分区或扩展分区)
446字节的引导程序,2字节校验字节。
每个进程都有一个非负整数的进程ID(PID,进程号)
负责产生进程的进程,称为该进程的父进程
centos7中systemd是所有进程的父进程,其pid为1
systemd 可以管理系统中的服务、设备等。
centos6 服务的启动使用的是
service 服务名称 start/stop/restart/status/reload等
设置服务开机自启动使用的命令是:
chkconfig 系统运行级别 服务名称 on/off
CentOS7中服务的启动管理使用的是:
systemctl start/stop/restart/status/reload 服务名称
设置服务开机自启动的命令是:
systemctl enable/disable/is-enabled 服务名称
systemctl start httpd #启动httpd服务
systemctl status httpd #查看httpd服务运行状态
systemctl stop httpd #关闭
systemctl status httpd
systemctl enable httpd #设置httpd服务开机自启动
systemctl is-enabled httpd #查看httpd服务是否开机自启动
systemctl disable httpd #禁止httpd服务开机自启动
systemctl is-enabled httpd
0 关机
1 单用户模式
2 无网络的字符界面多用户模式
3 完整的字符界面多用户模式
4 未启用
5 完整的图形界面多用户模式
6 重启
init 0 关机 poweroff halt shutdown -h +10 10分钟后关机
init 6 重启 reboot shutdown -r
init 3 切换字符界面
init 5 切换图形界面
/etc/inittab 系统启动的默认级别配置文件
LVM逻辑卷 :动态调整分区大小
逻辑卷创建过程:
先创建物理卷 pvcreate /dev/sd[bcd]
再创建卷组 vgcreate vg0 /dev/sd[bcd]
最后创建逻辑卷 lvcreate -L 30G -n test vg0
mkfs.xfs /dev/vg0/test
mount /dev/vg0/test /data
扩容 lvextend -L +10G /dev/vg0/test
选项:
-T 文件系统类型
-h human 以人类可读的方式显示大小
resize2fs /dev/vg0/test ext4文件系统
xfs_growfs xfs 文件系统
程序:可执行代码,静态
进程:运行中程序,动态,
每个进程都有一个非负整数的进程ID(PID)
-aux
-ef
ps -o user,stat,pid,ppid 指定输出内容
僵尸进程 :僵尸进程是当子进程比父进程先结束,
而父进程又没有回收子进程,释放子进程占用的资源,
此时子进程将成为一个僵尸进程。
结束僵尸进程:杀死其父进程或重启系统
ps -ef |grep [Zz]
kill -9 杀死僵尸进程的父进程
1 // zombie.c
2 /* create a zombie proess*/
3 #include
4 //#include
5 #include
6 #include
7
8 int main()
9 {
10 if(!fork()) { //create child proess
11 if(fork()) { //child
12 while(1) {
13 sleep(5);
14 // break;
15 }
16 }
17 }
18 return 0;
19}
gcc 文件名 -o 生成文件名 ./生成文件名
gcc 文件名 -o 生成文件名 ./生成文件名
kill -9 pid=kill -s SIGKILL pid 强制杀死进程
-u 指定用户
-u 指定用户或UID杀进程
-L 目录级别
任务调度:
& 程序后台运行
jobs 查看后台运行任务
fg 将后台运行的任务调度到前台
Ctrl+z 将前台运行的任务暂停放到后台
bg 让后台暂停的任务继续运行
Ctrl+c 终止当前程序
格式化输出:
%Y 年
%m 月
%d 日
%H 时
%M 分
%w 周
计划任务(定时任务)
一次性计划任务 —>atd
at 设置一次性计划任务
atq 查看未执行的一次性计划任务
atrm 删除一个一次性计划任务
周期性计划任务 —>crond
crontab
分 时 日 月 周 执行的命令
特殊时间:
每,任意时间
/ 指定时间间隔
指定连续时间范围
, 指定不连续的时间
最小单位是 分钟
常用选项:
-e 编辑周期性计划任务
-l 查看周期性计划任务
忘记root用户密码解决方法:
方法一:通过grub菜单进入单用户模式
输入e 进入编辑,在Linux16该行的行尾添加rd.break,然后Ctrl+x
启动系统;
进入命令行后,mount -o remount,rw /sysroot 以读写模式重新挂
载目录,chroot /sysroot 将根目录切换到/sysroot
passwd root 修改密码
如果系统开启了selinux,创建文件touch /.autorelabel
开机自动挂载
/dev/sr0 /media iso9660 defaults 0 0
挂载源 挂载点 文件系统类型 挂载参数 是否备份 是否检测
交换分区不需要挂载
ping 测试网络连通性
-c 指定发送数据包个数
route -n 查看路由表
ip r 查看路由表
hostname 新名字 查看或修改主机名
/etc/hostname 主机名配置文件
bash 生效
inode 元数据,里面保存了文件的权限,归属,创建时间等
block 块,存放的文件的内容。默认一个块4K
文件名记录在目录的block
硬链接:相当于文件的另一个入口
软链接:类似于window下的快捷方式
1,硬链接inode号相同,软链接不同
2,硬链接删除源文件对硬链接没有影响,软链接不可用
3,硬链接不能跨文件系统(分区),软链接可以
4,目录不能创建硬链接但是目录自带硬链接分别是"." “…”,可以创建软链接
ln 创建硬链接
ln -s 创建软链接(符号链接)
每个文件就都有一个inode,至少占用一个block