组,权限,
添加新的用户账号使用useradd命令
useradd 选项 用户名
修改所属组和用户权限
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。
当为 d 则是目录
当为 - 则是文件;
若是 l 则表示为链接文档(link file);
若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
上图所示,从左到右,共4组,依次表示1-文件属性,2-所属主权限,3-组成员的权限,4-其他人权限
rwx,分别对应,读写执行,如果没有此权限则是”-“
chown (change owner) : 修改文件的所属用户。
[root@localhost ~]# chown bin 1.txt #修改1.txt的文件所属者为bin
[root@localhost ~]# ll
total 28
-rw-r--r--. 1 root root 144 Feb 27 08:32 1.tar.gz
-rw-r--r--. 1 bin root 0 Feb 28 05:30 1.txt
修改文件的所属组
[root@localhost ~]# ll
total 28
-rw-r--r--. 1 root root 144 Feb 27 08:32 1.tar.gz
-rw-r--r--. 1 bin root 0 Feb 28 05:30 1.txt
[root@localhost ~]# chgrp monster 1.txt
[root@localhost ~]# ll
total 28
-rw-r--r--. 1 root root 144 Feb 27 08:32 1.tar.gz
-rw-r--r--. 1 bin monster 0 Feb 28 05:30 1.txt
-
添加用户并加入到组中
[root@localhost ~]# groupadd monster #创建组
[root@localhost ~]# useradd fox #创建用户
[root@localhost ~]# usermod -aG monster fox #将用户加入到组中,-a表示添加G表示加入到组的名字
查看组
改变用户的所在组
[root@localhost ~]# id hi #查看hi用户信息
uid=1005(hi) gid=1006(monster) groups=1006(monster)
[root@localhost ~]# usermod -g fox hi #修改hi到fox
[root@localhost ~]# id hi
uid=1005(hi) gid=1007(fox) groups=1007(fox)
rwx权限-难点
rwx作用文件
1.【r】可以读取,查看文件
2.【w】可以修改文件,但无法删除,想要删除,必须要有,文件所在的目录的w权限
3.【x】可以执行文件,./执行
rwx作用目录
1.【r】可以读取目录的内容
2.【w】可以修改目录,删除,创建,重命名
3.【x】可以进入此目录
修改权限chmod
语法:
u=所有者,g=所有组,o=其他人,a=所有人
chown [–R] 所有者 文件名 chown [-R] 所有者:属组名 文件名
所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:
chmod [-R] xyz 文件或目录
实践案例
#创建组
[root@localhost ~]# groupadd police
[root@localhost ~]# groupadd bandit
#创建警察角色
[root@localhost ~]# useradd -g police jack
[root@localhost ~]# useradd -g police jerry
#创建土匪角色
[root@localhost ~]# useradd -g bandit xh
[root@localhost ~]# useradd -g bandit xq
#创建文件赋予权限
[root@localhost ~]# touch jack.txt && chmod 640 jack.txt
[root@localhost ~]# chmod o=r,g=r jack.txt
[root@localhost ~]# usermod -g police xh
任务调度
Linux crontab 是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
而 linux 任务调度的工作主要分为以下两类:
- 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
- 2、个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
时间说明
特殊符号
案例说明
[root@localhost home]# crontab -e #编辑
[root@localhost home]# crontab -l #查看当前任务
*/1 * * * * /home/my.sh
#重新启动调度任务
[root@localhost home]# service crond restart
Redirecting to /bin/systemctl restart crond.service
[root@localhost home]# crontab -r #终止任务
定时任务
案例
磁盘
Linux的硬盘和目录有对应关系,可以将某分区挂载到某目录上,在此目录的数据就会存储到此磁盘上
[root@localhost home]# fdisk /dev/sda #增加分区,m帮助,n添加,w保存
[root@localhost home]# mkfs -t ext4 /dev/sda1 #给分区格式化
[root@localhost home]# mount /dev/sda1 /home/test #将新创建的分区挂载到test目录上,以后在此目录上创建的数据都会存放在sda1这个分区中,sda这个磁盘中
永久挂载
vi /etc/fstab
最后的 0 0 代表,是否备份,是否检测
mount-a的意思是将/etc/fstab的所有内容重新加载
磁盘操作命令
查询整体情况
[root@localhost ~]# df -h
查询指定目录的情况
[root@localhost ~]# du - h
工作中实用命令
显示opt下文件的个数
[root@localhost ~]# ll /opt/ | grep "^-" | wc -l
0显示目录的个数
[root@localhost ~]# ls -l /opt/ | grep "^d" | wc -l
2显示文件的个数,包括子目录的
[root@localhost ~]# ls -lR /opt/ | grep "^-" | wc -l
1
主机名
#查看主机名及详细信息
[root@localhost ~]# hostnamectl
Static hostname: localhost
Icon name: computer-vm
Chassis: vm
Machine ID: de75d6e53bef49c7b6e8418ba9ac21c7
Boot ID: 6a54f93645d74f65a446412888751038
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-862.el7.x86_64
Architecture: x86-64
#修改主机名为master
hostnamectl set-hostname master
#修改后需要重启,才可以生效,或者用“bash”命令重新开一个线程,(推荐重启)
主机映射
[root@localhost ~]# vi /etc/hosts
在里面添加本机的用户名和ip地址例如:
192.168.100.10 localhost
添加后,可以直接ping用户名,系统自动解析对方的ip
ping localhost
进程管理(重点)
在Linux中,一个程序就是一个进程,每一个进程都会被分配一个pid,进程号
进程分为,前台:后台
系统服务一般都是后台服务
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
- -A 列出所有的进程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的进程
STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除 (僵死进程,最好不要出现)
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
[root@localhost ~]# ps -aux | grep sshd #查看是否有sshd的进程
root 938 0.0 0.1 112796 4280 ? Ss 00:32 0:00 /usr/sbin/sshd -D
root 1426 0.0 0.1 158804 5556 ? Ss 00:33 0:00 sshd: root@pts/0
root 1503 0.0 0.0 112704 956 pts/0 R+ 01:15 0:00 grep --color=auto sshd
# ps -ef //显示所有命令,连带命令行 e显示所有进程 f全格式
注意:-ef会查出来 ppid 是父进程的id,工作中常用的查看父进程
# ps -u root //显示root进程用户信息
# ps -A // 列出所有的进程
子父进程
#查看sshd的父进程
可以看到sshd的父进程是1,去查看1的进程是
[root@localhost ~]# ps -ef | grep sshd
root 938 1 0 00:32 ? 00:00:00 /usr/sbin/sshd -D
root 1426 938 0 00:33 ? 00:00:00 sshd: root@pts/0
#通过查看子父进程得知sshd的关系是
/usr/sbin/sshd 是938号进程 父亲是 1号进程
sshd: root@pts/0 (解释:用root登录的sshd) 的父亲是 938也就是 /usr/sbin/sshd
终止进程
Linux kill 命令用于删除执行中的程序或工作。
kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看。
最常用的信号是:
- 1 (HUP):重新加载进程。
- 9 (KILL):杀死一个进程。
- 15 (TERM):正常停止一个进程。
pstree树状看进程(技巧)
可以更清晰的看进程的树状关系
#树状看进程
[root@localhost ~]# yum install -y psmisc #安装pstree
[root@localhost ~]# pstree -p #显示进程号
systemd(1)─┬─NetworkManager(680)─┬─{NetworkManager}(696)
│ └─{NetworkManager}(707)
├─VGAuthService(665)
├─agetty(689)
├─anacron(1614)
[root@localhost ~]# pstree -u #显示用户
服务
注意:有一些系统不带setup
服务运行级别
chkconfig实例
注意:一下查出来的服务级别和上图运行级别一一对应,
列出chkconfig 所知道的所有命令。
# chkconfig --list
开启服务。
# chkconfig telnet on //开启 Telnet 服务 # chkconfig --list //列出 chkconfig 所知道的所有的服务的情况
关闭服务
# chkconfig telnet off // 关闭 Telnet 服务 # chkconfig --list // 列出 chkconfig 所知道的所有的服务的情况
systemctl
如何查看防火墙的服务名
因为/usr/lib/systemd/system下是systemctl控制的服务
[root@localhost ~]# ls -l /usr/lib/systemd/system | grep fire
关闭防火墙
[root@localhost ~]# systemctl status firewalld 查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# systemctl disable firewalld #禁止防火墙自启,否则重启会自动开启防火墙
[root@localhost ~]# systemctl is-enabled firewalld #查看是否自启动
disabled #否
指定打开关闭端口
#开启111端口
[root@localhost ~]# firewall-cmd --permanent --add-port=111/tcp
#刷新防火墙
[root@localhost ~]# firewall-cmd --reload
#查看111端口是否开启
[root@localhost ~]# firewall-cmd --query-port=111/tcp
#关闭111
[root@localhost ~]# firewall-cmd --permanent --remove-port=111/tcp
动态监控系统
Linux top 是一个在 Linux 和其他类 Unix 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。
使用权限:所有使用者。
-d <秒数>
:指定 top 命令的刷新时间间隔,单位为秒。-n <次数>
:指定 top 命令运行的次数后自动退出。-p <进程ID>
:仅显示指定进程ID的信息。-u <用户名>
:仅显示指定用户名的进程信息。-H
:在进程信息中显示线程详细信息。-i
:不显示闲置(idle)或无用的进程。-b
:以批处理(batch)模式运行,直接将结果输出到文件。-c
:显示完整的命令行而不截断。-S
:累计显示进程的 CPU 使用时间。
- uptime:系统的运行时间和平均负载。
- tasks:当前运行的进程和线程数目。
- CPU:总体 CPU 使用率和各个核心的使用情况。
- 内存(Memory):总体内存使用情况、可用内存和缓存。
终止进程时,先输入pid,然后输入信号量如:9
参考:韩顺平教育 菜鸟教程