VMware
使用虚拟机安装Centos系统的时候,一定要在安装后期的步骤中开启网络,否则只能通过vi修改配置文件
远程服务器管理
- 通过ip addr查看网卡ip地址
ip addr
- 通过ifconfig查看网卡 ip 地址
最小化安装 CentOs 后是没法直接用 ifconfig、netstat 命令的,如果要用 ifconfig、netstat 等
命令需要安装 net-tools。
yum install -y net-tools
- yum 软件包查找
yum search ifconfig 然后结果是在net-tools包种
安装的时候忘记开启网络我们可以在配置文件中开启网络
vi /etc/sysconfig/network-scripts/ifcfg-ens33 (有可能ifcfg-ens33是别的名字)
找到ONBOOT='no'修改为 yes
Linux 常用命令、shell 技巧、目录结构介绍
- Linux 常用命令
- init 0 关机
- init 6 重启
- ls 、 ls -l 、 ll 列出出当前目录下的文件
- cd 切换目录
- pwd 查看当前路径
- cd - 切换最近使用过的两个目录
- ctrl+c 中断当前程序
- ctrl+l / (clear) 清屏
- ip addr / ifconfig 查看网卡信息
- ping 127.0.0.1 看网络是否通畅
- Linux shell 命令技巧
- tab 补全
- 命令+(1 次)tab
- 命令+(2 次)tab
- 上下键盘 查看最近的历史命令
- history
- 查看命令历史:!22 调用历史中编号为 22 的命令
- !h : 调用历史中最后一次以 h 开头的命令
- 获取帮助:ls --help / man ls
- Linux 目录结构介绍
- root 目录:linxu 超级权限 root 的主目录。*
- home 目录:系统默认的用户主目录,如果添加用户是不指定用户的主目录,默认在/home下创建与用户同名的文件夹。 *
- bin 目录:存放系统所需要的重要命令,比如文件或目录操作的命令 ls、cp、mkdir 等,另外
/usr/bin 也放了一些系统命令。这些命令对应着文件都是可以执行的。 * - sbin 目录:存放只有 root 超级管理员才能执行的程序 *
- boot 目录:存放着 linux 启动时内核及引导系统程序所需要的核心文件,内核文件和 grub
系统引导管理器都位于此目录。 - dev 目录:存放这 linux 系统下的设备文件,如光驱等。
- etc 目录:存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,如/etc/fstal
存放系统分析信息。 * mnt 目录: 临时文件挂载目录、 也可以说是测试目录 - opt 目录: 第三方软件存放目录* media 目录:即插即用型设备挂载点,光盘默认挂载点,通常光* 盘挂载于/mnt/cdrom 下。
- tmp 目录:临时文件夹。*
- usr 目录:应用程序存放目录,安装 linux 软件包是默认安装到/usr/local 目录下。 *
- var 目录:目录经常变动,/var/log 存放系统日志,/var/log 存放系统库文件。*
Linux 文件管理 目录管理
Linux 文件管理
- 创建文件
touch file1 - 删除文件
- rm -rf file11
- -r:递归的删除目录下面文件以及子目录下文件。
- -f:强制删除,忽略不存在的文件,从不给出提示
- 修改文件名:mv file1 file11
- 查看文件内容:cat file1
- 复制文件:cp file2 file22
- 移动文件:mv file1 file11
- 编辑文件:vi file1
- 批量创建删除文件
- touch file{1..10}
- rm -rf file{1..10}
- 查看文件前 3 行
- | 把前面的执行结构给后端
- cat file1 | head -3
- 查看文件后 3 行:cat file1 | tail -3
- liunx 服务器上面查找文件
- find
- find / -name httpd.conf
- find 目录 -name 文件名
- updatedb 查找速度快
- 建立一个小型数据库 updatedb
- 再数据库里面搜索 locate httpd.conf
- yum install mlocate -y
- mlocate 是新型的 locate 比 updatedb 速度更快。
- 查找文件里面内容 找到 httpd.conf 里面有 listen
- cat httpd.conf | grep listen
- cat httpd.conf | grep -ignore listen / cat httpd.conf | grep -i listen 忽略大小写
- 查找文件里面内容 vi 搜索(注意是命令行模式下,不是编辑模式下)
- vi httpd.conf
- 输入 /Listen 搜索 Listen N 下一个
Vi/Vim 快速入门
vi 是 Unix 和类 Unix 环境下的可用于创建文件的屏幕编辑器。vi 有两种工作模式:命令模式
和文本输入模式。vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。
-
退出vi命令模式
-
命令模式下文本修改
Linux 目录操作
- 创建目录: mkdir dir1 dir2 dir3
- 删除目录
- rm -rf dir1 dir2
- -r:递归的删除目录下面文件以及子目录下文件。
- -f:强制删除,忽略不存在的文件,从不给出提示
rm -rf dir* 以 dir 开头的所有文件删除
- 重命名目录或移动目录:mv dir1 dir11
- 查看目录:ls
- 递归创建目录:mkdir -p a/b/c/d/e/f/g
- 递归查看目录:tree a
- 复制目录:cp -rf wwwroot/ mywwwroot/
- tree 命令不存在的话需要安装
yum install tree -y
Linux ll 显示的文件类型
Linux 下可以用 ll 命令来判断文件类型,主要是根据每行的首个字符来判断
- -rw-r—r— "-“开头的都是普通文件;
- drw-r—r— "d"开头的是目录文件;
- brw-r—r— "b"开头的文件都是块设备文件;
- crw-r—r— "c"开头的文件都是字符设备文件;
- srw-r—r— "s"开头的文件都是 socket 文件; (e.g. srwxrwxrwx 1 mysql mysql 0 Sep 9
13:49 mysql.sock) - prw-r—r— "p"开头的文件都是管道文件;
- lrw-r—r— "l"开头的文件都是软链接文件;
Linux 打包压缩 别名管理
Linux 打包压缩命令
目前 linux 中打包和压缩的命令很多,最常用的方法有 zip、gzip、bzip2、xz、tar
- zip 压缩包
- 制作
zip -r public.zip public
-r 递归 表示将指定的目录下的所有子目录以及文件一起处理
- 解压
unzip public.zip
unzip public.zip -d dir
- 查看: unzip -l public.zip
- 安装 zip 减压软件
yum install -y unzip zip
- gz 压缩包: (源代码压缩)
Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出来的包我们常称为 tar 包,tar
包文件的命令通常都是以.tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了,
所以首先就来讲讲 tar 命令的基本用法。gz包是在tar包的基础上生成的。
- 制作 gz 包
tar czvf public.tar.gz public - 解压 gz 包
tar xzvf public.tar.gz - 查看 gz 包
tar tf public.tar.gz - 制作 tar 包
tar cvf wwwroot.tar wwwroot 仅打包,不压缩! - 解压 tar 包
tar xvf wwwroot.tar
参数:
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压
缩与解压缩。
- -c :建立一个压缩档案的参数指令(create 的意思) -x :解开一个压缩档案的参数指令!
- -t :查看 tarfile 里面的档案!
- -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
- -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
- -v :压缩的过程中显示档案!这个常用,但不建议用在背景执行过程!
- -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
- xz 压缩包
对于 xz 这个压缩相信很多人陌生,但 xz 是绝大数 linux 默认就带的一个压缩工具,xz
格式比 7z 还要小
- 制作
- tar cvf xxx.tar xxx // 这样创建 xxx.tar 文件先,
- xz xxx.tar //将 xxx.tar 压缩成为 xxx.tar.xz 删除原来的 tar 包
- xz -k xxx.tar //将 xxx.tar 压缩成为 xxx.tar.xz 保留原来的 tar 包
- 解压
- xz -d ***.tar.xz //先解压 xz 删除原来的 xz 包
- xz -dk ***.tar.xz //先解压 xz 保留原来的 xz 包
- tar -xvf ***.tar //再解压 tar
- 查看: xz -l ***.tar.xz //先解压 xz
别名管理
- 添加别名
alias chttp='cat /etc/httpd/conf/httpd.conf' chttp - 删除别名
unalias chttp - 查看别名
alias
用户管理 和 用户权限管理 chmod、ACL、visudo
用户管理
Linux 系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保
证用户之间互不干扰。就像手机开了助手一样,同时登陆多个 qq 账号,当硬件配置非常高
时,每个用户还可以同时执行多个任务,多个线程同时工作,提高效率。多用户是 Linux 优
于其他操作系统的一大特点
- 添加用户
useradd lisi - 设置密码
passwd lisi - 删除用户
userdel -r lisi -r:递归的删除目录下面文件以及子目录下文件。
备注:删除用户的时候用户组被删除
- 查看用户:id user
- 把用户加入组
gpasswd -a testuser root
把用户 testuser 加入到 root 组,加入组后 testuser 获取到 user 组及 root 组所有权限
- 移出组
gpasswd -d testuser root
用户权限 用户分类
网站发布到 linux 服务器下面一般要设置权限,不然的话可能没法上传图片,或者没法写入
文件。Windows 中权限没有那么明显可以含糊的过去,linux 里面对权限管控非常严格。
用户权限:
drwxr-x---. 2 root root 6 4 月 11 2018 mnt
对应说明:
d 表示目录
rwx root 对 mnt 目录具有读、写和执行的权限
r-x root 组内其他用户对 mnt 目录具有读和执行权限
--- other 其他所有用户对 mnt 目录没有任何权限
. 表示 ACL 的属性
2 mnt 里面的目录数量
root 当前目录所属用户
root 当前目录所属组
6 文件文件大小(以字节为单位) 这个字段表示文件大小,如果是一个文件夹,则表示该
文件夹的大小.请注意是文件夹本身的大小,而不是文件夹以及它下面的文件的总大小!很多
人不能理解文件夹是一个特殊的文件的含义,这样的话理解文件夹大小的含义就比较困难了. 4 月 文件创建月份
11 2018 文件创建时间
mnt 目录名称
权限:就是人对文件所拥有权限,权限就是是哪个 读、写、执行
用户群体: 所有者 user u 、所属组 group g 、其他用户 other o 、所有用户 all a
权限:
r 读
w 写
x 执行
用户:
所有者 user u
所属组 group g
其他用户 other o
所有用户 all a u+g+o=a(表示所有人)
目录的 rwx
r 查看目录里面的文件(4)
w 在目录里创建或删除文件(2)
x 切换进目录(1)
文件的 rwx
r 查看文件内容
w 在文件里写内容
x 执行该文件(文件不是普通文件,是程序或脚本)
chmod 权限分配
- +增加权限 -删除权限
- chmod u+x my.sh 给当前用户分配执行 my.sh 的权限
- chmod o+r,o+w file.txt 给其他用户分配对 file.txt 的读写权限
- chmod o+r,o+w,o+x mnt 给所有其他用户分配对 mnt 目录的进入、读取、写入权限
- chmod -R o+r,o+w,o+x mnt 修改目录下的所有文件的权限为可读、可修改、可执行
- chmod 755 file
- 755 表示-rwxr-xr-x
- chmod -R 777 wwwroot/ 修改目录下的所有文件的权限为可读、可修改、可执行
- 需求 1:让其他人对 mnt 目录没有任何权限
- chmod o-r,o-w,o-x mnt
- 需求 2:所有人对 test.sh 文件具有 x 的权限
- chmod a+x test.sh
- 需求 3:让所有用户对 test.sh 都没有 x 权限
- chmod a-x test.sh
- 需求 4:让所有用户对 mnt 以及 mnt 里面的所有文件和文件夹都有 w 权限
- chmod o-r,o-w,o-x root
- chmod -R a+w mnt/
用户权限管理 ACL
- 需求 5:让 zhangsan 对 opt 目录具有 rx 权限,让 lisi 对 opt 目录具有 rwx 的权限
-m 修改
[root@localhost /]# setfacl -m u:zhangsan:rx opt/
[root@localhost /]# setfacl -m u:lisi:rwx opt/
- 查看 opt 拥有的 acl 权限
getfacl opt
- 设置 opt 的 acl 权限
setfacl -m u:zhangsan:rwx opt
- 删除 opt 的 user1 拥有的 acl 权限
setfacl -x u:zhangsan opt -x 删除权限
- 删除 opt 上所设置过的所有 acl 权限
setfacl -b opt/
用户权限管理 visudo
which 命令
sbin 下面的命令执行权限
- 设置
- 输入: visudo
- 编辑 %zhangsan localhost=/usr/sbin/useradd
%zhangsan localhost=/usr/sbin/userdel
- 使用 普通用户家 sudo
- sudo useradd wangwu
- sudo userdel wangwu
Linux 软件安装调试 rpm 包管理以及 yum
rpm 安装和卸载软件
在 Linux 操作系统下,几乎所有的软件均通过 RPM 进行安装、卸载及管理等操作。RPM 的
全称为 Redhat Package Manager ,是由 Redhat 公司提出的,用于管理 Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过 RPM 完成安装
- 挂载光盘
- 必须把把光盘放在光驱中
- 光驱必须放连上电脑
- mount dev/cdrom /media 挂载
- df 查看光盘是否挂载
- 查找 ls | grep httpd
- 安装
- rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm
- rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
- rpm -i 需要安装的包文件名
- rpm -iv 安装过程中显示正在安装的文件信息;
- rpm -ivh 安装过程中显示正在安装的文件信息及安装进度;
- 卸载软件
- rpm -e httpd httpd 表示要卸载的软件包
- rpm -q httpd 查找 httpd
- 升级包
rpm -Uvh 软件
Yum 安装软件
Yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
- yum 安装 rpm 包
- yum install -y net-tools 包括 netstat ifconfig 等命令
- yum install -y unzip zip zip 压缩减压
- yum install -y mlocate updatedb
- yum install -y wget
- yum -y install psmisc pstree | grep httpd 查看进程 pstree -p 显示进程以及子进程
- yum 卸载 rpm 包
- yum -y remove wget
- yum 搜索 npm 包
- yum search 名称
- yum 查看 rpm 包
- yum list
- yum list | grep httpd
- yum list updates 列出所有可更新的软件包
- yum list installed 列出所有已安装的软件包
- yum 显示 rpm 包信息
- yum info package1
- 如:
- yum info httpd
- yum info zip
- yum info unzip
- yum 远程安装 Apache
- yum -y install httpd service httpd start 安装启动 apache
- yum 本地安装 Apache RPM 包
- yum localinstall httpd-2.4.6-80.el7.centos.x86_64.rpm
Yum 仓库设置
- yum 的主配置文件 etc/yum.conf (了解)
[main]
cachedir=/var/cache/yum
//yum 缓存的目录,yum 在此存储下载的 rpm 包和数据库,默认设置为/var/cache/yum
keepcache=0
//安装完成后是否保留软件包,0 为不保留(默认为 0),1 为保留
debuglevel=2
//Debug 信息输出等级,范围为 0-10,缺省为 2
logfile=/var/log/yum.log
//yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。
pkgpolicy=newest
//包的策略。一共有两个选项,newest 和 last,这个作用是如果你设置了多个 repository,而同一软
件在不同的 repository 中同时存在,yum 应该安装哪一个,如果是 newest,则 yum 会安装最新的那个版
本。如果是 last,则 yum 会将服务器 id 以字母表排序,并选择最后的那个服务器上的软件安装。一般都
是选 newest。
distroverpkg=redhat-release
//指定一个软件包,yum 会根据这个包判断你的发行版本,默认是 redhat-release,也可以是安装的
任何针对自己发行版的 rpm 包。
tolerant=1
//有 1 和 0 两个选项,表示 yum 是否容忍命令行发生与软件包有关的错误,比如你要安装 1,2,3 三个
包,而其中 3 此前已经安装了,如果你设为 1,则 yum 不会出现错误信息。默认是 0。
exactarch=1
//有 1 和 0 两个选项,设置为 1,则 yum 只会安装和系统架构匹配的软件包,例如,yum 不会将 i686
的软件包安装在适合 i386 的系统中。默认为 1。
retries=6
//网络连接发生错误后的重试次数,如果设为 0,则会无限重试。默认值为 6. obsoletes=1
//这是一个 update 的参数,具体请参阅 yum(8),简单的说就是相当于 upgrade,允许更新陈旧的 RPM
包。
plugins=1
//是否启用插件,默认 1 为允许,0 表示不允许。我们一般会用 yum-fastestmirror 这个插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_ page.php?category=yum
# Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h
installonly_limit = 5
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
- yum 的仓库配置文件 /etc/yum.repo.d/*.repo (了解)
yum 仓库就是使用 yum 命令下载软件的镜像地址
我们通常使用 yum install 命令来在线安装 linux 系统的软件, 这种方式可以自动处理依赖性关系,并且一次安装所有依赖的软体包,但是经常会遇到从国外镜像下载速度慢,无法下载的情况.那么此时我们就需要把我们的 yum 源改为国内的镜像, centOs 中 yum 的配置文件在 /etc/yum.repos.d 目录下, 其中有多个配置文件,每一个配置文件中都可以配置一个或多个
repository, 但是最终会被合并为一个交给系统,所以多个文件只是为了方便管理。
- Yum 安装 Nginx
- 安装 nginx 源
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 查看 Nginx 源是否配置成功
- 通过 yum search nginx 看看是否已经添加源成功。如果成功则执行下列命令安装 Nginx。
或者 npm info nginx 也可以看看 nginx 源是否添加成功
- 安装 Nginx
- sudo yum install -y nginx 3、启动 Nginx 并设置开机自动运行
- sudo systemctl start nginx.service
- sudo systemctl enable nginx.service
防火墙
CentOS7使用firewalld打开关闭防火墙与端口实战
- firewalld的基本使用
- 启动: systemctl start firewalld
- 关闭: systemctl stop firewalld
- 查看状态: systemctl status firewalld
- 开机禁用 : systemctl disable firewalld
- 开机启用 : systemctl enable firewalld
- systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
- 启动一个服务:systemctl start firewalld.service
- 关闭一个服务:systemctl stop firewalld.service
- 重启一个服务:systemctl restart firewalld.service
- 显示一个服务的状态:systemctl status firewalld.service
- 在开机时启用一个服务:systemctl enable firewalld.service
- 在开机时禁用一个服务:systemctl disable firewalld.service
- 查看服务是否开机启动:systemctl is-enabled firewalld.service
- 查看已启动的服务列表:systemctl list-unit-files|grep enabled
- 查看启动失败的服务列表:systemctl --failed
- 配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没* 有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
Linux软件安装调试 源代码包编译安装和二进制包配置
linux 下源代码(C 语言)如何编译(安装)
- 先安装源代码编译的软件 gcc,make,openssl 如下:
- yum install -y gcc make gcc-c++ openssl-devel
- 检查系统中是否已经安装 gcc:
- rpm -qa | grep gcc / rpm -ql gcc
- 三步走编译安装 linux 源代码
- 生成编译配置文件(Makefile)
- 开始编译(make)
- 开始安装(make install)
安装 httpd-2.2.9.tar.gz 源代码:- 减压并 cd 到对应目录
- ./configure --prefix=/usr/local/apache 安装路径设置为/usr/local/apache
- make / make -j4
- make install
- 卸载源代码安装的软件
- 结束进程
- pstree|grep httpd
- pkill httpd
- 删除源代码
- cd /usr/local/
- 直接删除源代码 rm -rf apache/
linux 下源代码安装 nodejs
- 下载 nodejs 源码包
- 减压到 usr/local/nodejs 目录
- ./configure
- make / make -j4
- make install
linux 下源代码安装 Apache
- 减压 httpd-2.2.9.tar.gz 到对应目录
- ./configure 编译
- ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ * --with-included-apr --enable-dav
- --enable-so --enable-deflate=shared --enable-expires=shared
- --enable-rewrite=shared
- make 4、make install
- 启动 Apache 测试:
- /usr/local/apache2/bin/apachectl restart
- .查看进程: ps -le | grep httpd
二进制包配置,二进制安装配置 nodejs
二进制包里面包括了已经经过编译,可以马上运行的程序,所以二进制包的安装只需要丢到一个目录里面就可以了。
- 上传或者通过wget下载node二进制包
- wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz
- xz -d node-v8.9.3-linux-x64.tar.xz
- tar -xvf node-v8.9.3-linux-x64.tar
- mv node-v8.9.3-linux-x64 /usr/local/nodejs
- 配置环境变量
vi /etc/profile
- 最后面添加:
- export NODE_HOME=/usr/local/nodejs/bin
- export PATH=PATH
- :wq 保存,然后运行
source /etc/profile
- 可以用 node -v 和 npm -v 来检查下
node -v
- 查看环境变量是否生效
echo $PATH
Linux 内存、cpu、进程、端口、硬盘管理
内存、cup 管理 top 命令
- op 命令的第一行:
top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05
依次对应:系统当前时间 up 系统到目前为止 i 运行的时间, 当前登陆系统的用户数量, load average 后
面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况
- top 命令的第二行
Tasks: 133 total, 1 running, 132 sleeping, 0 stopped, 0 zombie
依次对应:tasks 表示任务(进程),133 total 则表示现在有 133 个进程,其中处于运行中
的有 1 个,132 个在休眠(挂起),stopped 状态即停止的进程数为 0,zombie 状态即僵尸
的进程数为 0 个
- top 命令的第三行,cpu 状态
%Cpu(s): 0.2 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
只看空闲就可以了:cpu 空闲率为 99.3%
- us:user 用户空间占用 cpu 的百分比
- sy:system 内核空间占用 cpu 的百分比
- ni:niced 改变过优先级的进程占用 cpu 的百分比
- 空闲 cpu 百分比
- wa:IO wait IO 等待占用 cpu 的百分比
- hi:Hardware IRQ 硬中断 占用 cpu 的百分比
- si:software 软中断 占用 cpu 的百分比
- st:被 hypervisor 偷去的时间
- top 命令的第四行,内存状态
KiB Mem : 2897496 total, 1995628 free, 191852 used, 710016 buff/cache
总内存:2.76g 空闲:1995628/1024/1024=1.9g 已经使用 0.18g 缓存区内存 0.67g
缓冲区是从主内存中特地预留出的内存,用来存放特定的一些信息,例如从磁盘中取得的文件表,程序正在读取的内容等等
- top 命令第七行,各进程的监控
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID — 进程 id
- USER — 进程所有者
- PR — 进程优先级
- NI — nice 值。负值表示高优先级,正值表示低优先级
- VIRT — 进程使用的虚拟内存总量,单位 kb。VIRT=SWAP+RES
- RES — 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA
- SHR — 共享内存大小,单位 kb
- S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU — 上次更新到现在的 CPU 时间占用百分比
- %MEM — 进程使用的物理内存百分比
- TIME+ — 进程使用的 CPU 时间总计,单位 1/100 秒
- COMMAND — 进程名称(命令名/命令行)
内存、cup 管理 uptime 命令
top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05
- 服务器工作时间
- 在线用户
- 平均负载 一分钟,五分钟,十五分钟的负载情况
看当前登录的账户 who、查看最新操作电脑的用户 last
- who 命令: 显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。
- whoami : 显示出当前终端上使用的用户。
- last:last 作用是显示近期用户或终端的登录情况
进程管理查看、杀死
- 查看进程
- pstree 查看进程树
- pstree -ap 显示所有信息
- pstree | grep httpd
- pstree -ap | grep httpd
- ps -au
- ps -au |grep httpd
- ps -aux
ps 中 aux 的含义:
显示现行终端机下的所有程序,包括其他用户的程序(a)
以用户为主的格式来显示程序状况。 (x)
显示所有程序,不以终端机来区分(u)
- 关闭进程
- pkill httpd : pkill 进程的名字
- kill 2245 : kill 进程号
- kill -9 1234: kill -9 进程号 强制杀死
kill:执行 kill 命令,系统会发送一个 SIGTERM 信号给对应的程序。当程序接收到该 signal 信号后,将会发
生以下事情:
程序立刻停止
当程序释放相应资源后再停止
程序可能仍然继续运行
大部分程序接收到 SIGTERM 信号后,会先释放自己的资源,然后再停止。但是也有程序可能接收信号后,
做一些其他的事情(如果程序正在等待 IO,可能就不会立马做出响应,我在使用 wkhtmltopdf 转 pdf 的项
目中遇到这现象),也就是说,SIGTERM 多半是会被阻塞的。
kill -9: kill -9 命令,系统给对应程序发送的信号是 SIGKILL,即 exit。exit 信号不会被系统阻塞,所以 kill -9
能顺利杀掉进程。
查看端口
netstat -tunpl |grep httpd
- -t 或--tcp 显示 TCP 传输协议的连线状况。
- -u 或--udp 显示 UDP 传输协议的连线状况。
- -n 或--numeric 直接使用 IP 地址,而不通过域名服务器。
- -p 或--programs 显示正在使用 Socket 的程序识别码和程序名称。
- -l 或--listening 显示监控中的服务器的 Socket。
- 关闭防火墙:Firewalld 关闭:systemctl stop firewalld; SELinux 关闭:setenforce 0
查看硬盘信息
df 命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间
- df
- df -h 以人们易读的方式显示,总共多少 g 用了多少 g
- df /home 查看该文件夹所在磁盘的使用情况
Linux systemctl 管理服务、防火墙 firewalld以及 SELinux 配置
使用 systemctl 管理服务
systemctl 就是 service 和 chkconfig 这两个命令的整合,在 CentOS 7 就开始被使用了,systemctl是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起
- Syetemclt 管理服务常用命令
- 启动服务:systemctl start httpd
- 关闭服务:systemctl stop httpd
- 重启服务:systemctl restart httpd
- 查看一个服务的状态:systemctl status httpd
- 查看一个服务是否在运行:systemctl is-active httpd
- 查看当前已经运行的服务:systemctl list-units -t service 6、列出所有服务: systemctl list-units -at service 注意顺序
- 设置开机自启动: systemctl enable httpd
- 停止开机自启动: systemctl disable httpd
- 列出所有自启动服务:
- systemctl list-unit-files|grep enabled
- systemctl list-unit-files|grep disabled
- systemctl list-unit-files|grep disabled | grep httpd
- 使指定服务从新加载配置:systemctl reload httpd
Firewalld 防火墙的设置
从 CentOS7(RHEL7)开始,官方的标准防火墙设置软件从 iptables 变更为 firewalld,相信不少习惯使用iptables 的人会感到十分不习惯,但实际上 firewalld 更为简单易用
- firewalld 的基本使用:
- 启动: systemctl start firewalld
- 关闭: systemctl stop firewalld
- 查看状态: systemctl status firewalld
- 开机禁用 : systemctl disable firewalld
- 开机启用 : systemctl enable firewalld
- 配置 firewall-cmd :
- 显示状态: firewall-cmd --state
- 查看所有打开的端口: firewall-cmd --zone=public --list-ports
- 更新防火墙规则: firewall-cmd --reload
- 那怎么开启一个端口呢:
- firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent 永久生效,没有此参数重启后失效)
- 重新载入:
- firewall-cmd --reload 修改 firewall-cmd 配置后必须重启
- 查看:
- firewall-cmd --zone= public --query-port=80/tcp
- 删除:
- firewall-cmd --zone= public --remove-port=80/tcp --permanent
SELinux 防火墙的设置
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。阿里云安装的 centos 默认已经关闭了。西部数码云服务器默认也是关闭的
- 查看 SELinux 状态
- /usr/sbin/sestatus -v ##如果 SELinux status 参数为 enabled 即为开启状态
SELinux status: enabled - getenforce ##也可以用这个命令检查
- 关闭 SELinux
- 临时关闭(不用重启机器)
- setenforce 0 ##设置 SELinux 成为 permissive 模式
- setenforce 1 设置 SELinux 成为 enforcing 模式
- 修改配置文件需要重启机器
修改/etc/selinux/config 文件将 : SELINUX=enforcing 改为 SELINUX=disabled