#表示立即关机
shutdown -h now
# 表示1分钟后关机
shutdown -h 1
# 立即重启
shutdown -r now
就是直接使用,效果等价于关机
就是重启系统。
把内存的数据同步到磁盘
当我们关机或者重启时,都应该先执行以下sync指令,把内存的数据写入磁盘,防止数据丢失。
logout在图形运行级别中无效,运行级别3下有效
# 如果创建用户没有指定组,则会创建一个和用户同名的组,把他放在该组之下,/home/目录下会多一个xm的目录
useradd helin
# 指定用户目录(会自动创建/home/hss目录,如果先创建会提示已有目录创建失败)
useradd -d /home/hss helin
# 创建用户时直接把他加入he用户组
useradd -g he helin
# 给用户设置密码。即使出现无效的密码,只要第二次输入和第一次匹配依然可以创建成功
passwd helin
更改用户 helin 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 已经超出服务重试的最多次数
# 如果成功
passwd:所有的身份验证令牌已经成功更新。
# 删除用户不删除/home/helin目录
userdel helin
# 删除用户以及/home/helin目录
userdel -r helin
# uid:用户id gid:所在组id 组:组名称
[helin@localhost /]$ id helin
uid=1000(helin) gid=1000(helin) 组=1000(helin)
[helin@localhost /]$ id root
uid=0(root) gid=0(root) 组=0(root)
# 如果用户不存在
[helin@localhost /]$ id he
id: he: no such user
# 低权限用户切换到同权限或高权限用户需要输入密码
[helin@localhost /]$ su
密码:
# 输入exit返回原用户
[root@localhost /]$ exit
exit
[helin@localhost /]$
# 高权限用户切换到低权限用户不需要输入密码
[root@localhost home]$ su helin
[helin@localhost home]$ exit
exit
您在 /var/spool/mail/root 中有新邮件 #登陆日志会记录
[root@localhost home]$ cd /var/spool/mail/root
[root@localhost ~]$ groupadd he
[root@localhost ~]$ groupdel he
# user -g 用户组 用户名
[root@localhost home]$ usermod -g he helin
[root@localhost home]$ id helin
uid=1000(helin) gid=1001(he) 组=1001(he)
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
jenkins:x:998:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false
gitlab-www:x:997:993::/var/opt/gitlab/nginx:/bin/false
git:x:996:992::/var/opt/gitlab:/bin/sh
gitlab-redis:x:995:991::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:994:990::/var/opt/gitlab/postgresql:/bin/sh
registry:x:993:989::/var/opt/gitlab/registry:/bin/sh
gitlab-prometheus:x:992:988::/var/opt/gitlab/prometheus:/bin/sh
# helin:用户名 x:密码 1000:用户id 1001:组id [空格]:注释 /home/helin:主目录 /bin/bash:登陆shell
helin:x:1000:1001::/home/helin:/bin/bash
root:$6$peFneqycKw7tWHom$BIMcVZRoyz/20trdcX90XPxMvBF7UfwAmUnOho2Pb7nzjcLkLXFSUfr0EeVLMuGQgdCtcGmohNOMMRcs4X7AV1::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::
lp:*:17632:0:99999:7:::
sync:*:17632:0:99999:7:::
shutdown:*:17632:0:99999:7:::
halt:*:17632:0:99999:7:::
mail:*:17632:0:99999:7:::
operator:*:17632:0:99999:7:::
games:*:17632:0:99999:7:::
ftp:*:17632:0:99999:7:::
nobody:*:17632:0:99999:7:::
systemd-network:!!:18274::::::
dbus:!!:18274::::::
polkitd:!!:18274::::::
tss:!!:18274::::::
sshd:!!:18274::::::
postfix:!!:18274::::::
jenkins:!!:18278::::::
gitlab-www:!!:18282::::::
git:!!:18282::::::
gitlab-redis:!!:18282::::::
gitlab-psql:!!:18282::::::
registry:!!:18282::::::
gitlab-prometheus:!!:18282::::::
# helin:用户名 $6$iVe……:加密密码 18283:最后一次修改时间 0:最小时间间隔 99999:最大时间间隔 7:警告时间
# [空格]:不活动时间 [空格]:失效时间 [空格]:标志
helin:$6$iVepFI8W$MFhTqifwXzAEZ4jXl3CB8JkzVJGH0GYMZdI9ZdajXDomH97YW5HplPvWasxiMUlXAicAxNfn9FtzvdjYY4nII/:18283:0:99999:7:::
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
ssh_keys:x:997:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
cgred:x:996:
docker:x:995:
jenkins:x:994:
gitlab-www:x:993:
git:x:992:
gitlab-redis:x:991:
gitlab-psql:x:990:
registry:x:989:
gitlab-prometheus:x:988:
# helin:组名 x:密码 1000:组id [空格]:组内用户列表
helin:x:1000:
he:x:1001:
# 编辑/etc/inittab文件
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#CentOS6才有此行,修改其数字可以变更默认运行级别
id:5:initdefault
# 关机
[root@localhost etc]$ init 0
man ls
###
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor
--sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
等等……
# 输入h获取帮助或输入q退出
[root@localhost etc]$ help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
HOME shell variable.
The variable CDPATH defines the search path for the directory containing
DIR. Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory. If DIR begins
with a slash (/), then CDPATH is not used.
If the directory is not found, and the shell option `cdable_vars' is set,
the word is assumed to be a variable name. If that variable has a value,
its value is used for DIR.
Options:
-L force symbolic links to be followed
-P use the physical directory structure without following symbolic
links
-e if the -P option is supplied, and the current working directory
cannot be determined successfully, exit with a non-zero status
The default is to follow symbolic links, as if `-L' were specified.
Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
-P is used; non-zero otherwise.
[root@localhost etc]$ pwd
/etc
[helin@localhost home]$ ls
helin
# 显示当前目录所有文件和目录,包括隐藏的
[helin@localhost home]$ ls -a
. .. helin
# 以列表的方式和显示信息,可以和a一起用
[helin@localhost home]$ ls -la
总用量 0
drwxr-xr-x. 3 root root 19 1月 22 22:17 .
dr-xr-xr-x. 20 root root 274 1月 15 19:12 ..
drwx------ 2 helin he 83 1月 22 22:43 helin
# 回到自己的/home/helin目录
[helin@localhost home]$ cd ~ #或[helin@localhost home]$ cd
[helin@localhost ~]$
# 回到当前目录的上级目录
[helin@localhost ~]$ cd .. #../../返回当前目录上两级目录
[helin@localhost home]$
#回到根目录
[helin@localhost home]$ cd /
[helin@localhost /]$
# 创建单目录
[helin@localhost ~]$ mkdir a
[helin@localhost ~]$ ll
总用量 0
drwxrwxr-x 2 helin helin 6 1月 23 00:09 a
# 如果上级目录不存在会报错
[helin@localhost ~]$ mkdir b/a
mkdir: 无法创建目录"b/a": 没有那个文件或目录
# 创建多级目录,中间不存在的目录都会创建
[helin@localhost ~]$ mkdir -p b/a
[helin@localhost ~]$ ll
总用量 0
drwxrwxr-x 2 helin helin 6 1月 23 00:09 a
drwxrwxr-x 3 helin helin 15 1月 23 00:11 b
# 删除空目录
[helin@localhost ~]$ rmdir a
[helin@localhost ~]$ ll
总用量 0
drwxrwxr-x 3 helin helin 15 1月 23 00:11 b
# 如果目录不为空,则会删除失败
[helin@localhost ~]$ rmdir b
rmdir: 删除 "b" 失败: 目录非空
# 创建单个文件,如果文件存在,则不会创建
[helin@localhost ~]$ touch a.txt
[helin@localhost ~]$ ls
a.txt
# 创建多个文件
[helin@localhost ~]$ touch b.txt c.txt
[helin@localhost ~]$ ls
a.txt b.txt c.txt
[helin@localhost ~]$ ll
总用量 8
-rw-rw-r-- 1 helin helin 9 1月 23 00:17 a.txt
-rw-rw-r-- 1 helin helin 12 1月 23 00:17 b.txt
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 c.txt
drwxrwxr-x 2 helin helin 6 1月 23 00:19 dir
-rw-rw-r-- 1 helin helin 0 1月 23 00:17 d.txt
# 拷贝文件a.txt到dir/文件夹中
[helin@localhost ~]$ cp a.txt dir/
[helin@localhost ~]$ ls
a.txt b.txt c.txt dir dir1 d.txt
# 递归复制dir整个文件夹到dir1/目录下,目标目录下有相同文件会提示是否覆盖
[helin@localhost ~]$ cp -r dir dir1/
# 强制覆盖不提示的方法
[helin@localhost ~]$ \cp -r dir dir1/
[helin@localhost ~]$ ll
总用量 8
-rw-rw-r-- 1 helin helin 9 1月 23 00:24 a.txt
-rw-rw-r-- 1 helin helin 12 1月 23 00:17 b.txt
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 c.txt
drwxrwxr-x 2 helin helin 19 1月 23 00:19 dir
drwxrwxr-x 3 helin helin 17 1月 23 00:21 dir1
-rw-rw-r-- 1 helin helin 0 1月 23 00:17 d.txt
# 删除文件
[helin@localhost ~]$ rm b.txt
[helin@localhost ~]$ ll
总用量 4
-rw-rw-r-- 1 helin helin 9 1月 23 00:24 a.txt
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 c.txt
drwxrwxr-x 2 helin helin 19 1月 23 00:19 dir
drwxrwxr-x 3 helin helin 17 1月 23 00:21 dir1
-rw-rw-r-- 1 helin helin 0 1月 23 00:17 d.txt
#无法直接删除文件夹
[helin@localhost ~]$ rm dir
rm: 无法删除"dir": 是一个目录
#递归删除整个目录
[helin@localhost ~]$ rm -r dir
[helin@localhost ~]$ ll
总用量 4
-rw-rw-r-- 1 helin helin 9 1月 23 00:24 a.txt
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 c.txt
drwxrwxr-x 3 helin helin 17 1月 23 00:21 dir1
-rw-rw-r-- 1 helin helin 0 1月 23 00:17 d.txt
#递归强制删除不提示
[helin@localhost ~]$ rm -rf dir1
[helin@localhost ~]$ ll
总用量 4
-rw-rw-r-- 1 helin helin 9 1月 23 00:24 a.txt
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 c.txt
drwxrwxr-x 2 helin helin 6 1月 23 00:28 dir
-rw-rw-r-- 1 helin helin 0 1月 23 00:17 d.txt
# 移动文件
[helin@localhost ~]$ mv a.txt dir/
[helin@localhost ~]$ ll
总用量 0
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 c.txt
drwxrwxr-x 2 helin helin 19 1月 23 00:29 dir
-rw-rw-r-- 1 helin helin 0 1月 23 00:17 d.txt
# 移动文件同时重命名,如果只要重命名就把目标目录设为当前目录
[helin@localhost ~]$ mv c.txt dir/cc.txt
[helin@localhost ~]$ cd dir
[helin@localhost dir]$ ll
总用量 4
-rw-rw-r-- 1 helin helin 9 1月 23 00:24 a.txt
-rw-rw-r-- 1 helin helin 0 1月 23 00:15 cc.txt
# 查看内容
[helin@localhost dir]$ cat a.txt
1111111
# 显示行号
[helin@localhost dir]$ cat -n a.txt
1 1111111
2
# 带上管道命令进行分页浏览
[helin@localhost dir]$ cat -n a.txt |more
# 查看内容
[helin@localhost dir]$ more a.txt
操作 | 功能说明 |
---|---|
space | 向下翻一页 |
enter | 向下翻一行 |
q | 离开more |
ctrl+f | 向下滚动一屏 |
ctrl+b | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行的行号 |
# 查看内容
[helin@localhost dir]$ less a.txt
操作 | 功能说明 |
---|---|
space | 向下翻一页 |
pagedown | 向下翻一页 |
pageup | 向上翻一页 |
/字符串 | 向下搜索字符串,n:向下查找 N:向上查找 |
?字符串 | 向上搜索字符串,n:向上查找 N:向下查找 |
q | 离开less |
# 把当前目录覆写到d.txt中
[helin@localhost ~]$ ls -l >d.txt
[helin@localhost ~]$ cat d.txt
总用量 0
drwxrwxr-x 2 helin helin 33 1月 23 00:36 dir
-rw-rw-r-- 1 helin helin 0 1月 23 14:47 d.txt
# 把当前内容追加到文件尾部
[helin@localhost ~]$ ls -al >>d.txt
[helin@localhost ~]$ cat d.txt
总用量 0
drwxrwxr-x 2 helin helin 33 1月 23 00:36 dir
-rw-rw-r-- 1 helin helin 0 1月 23 14:47 d.txt
总用量 28
drwx------ 3 helin he 139 1月 23 00:48 .
drwxr-xr-x. 3 root root 19 1月 22 22:17 ..
-rw------- 1 helin he 799 1月 23 00:50 .bash_history
-rw-r--r-- 1 helin he 18 4月 11 2018 .bash_logout
-rw-r--r-- 1 helin he 193 4月 11 2018 .bash_profile
-rw-r--r-- 1 helin he 231 4月 11 2018 .bashrc
drwxrwxr-x 2 helin helin 33 1月 23 00:36 dir
-rw-rw-r-- 1 helin helin 108 1月 23 14:47 d.txt
-rw------- 1 helin helin 41 1月 23 00:48 .lesshst
-rw------- 1 helin helin 1729 1月 23 00:36 .viminfo
#输出环境变量
[helin@localhost ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/helin/.local/bin:/home/helin/bin
# 显示前10行
[helin@localhost dir]$ head a.txt
1111111
1111111
1111111
1111111
1111111
1111111
1111111
1111111
1111111
1111111
# 查看前3行,行数可以任意
[helin@localhost dir]$ head -n 3 a.txt
1111111
1111111
1111111
# 显示后10行
[helin@localhost dir]$ tail cc.txt
111111
222222
333333
444444
555555
666666
777777
888888
999999
000000
# 查看后3行,行数可以任意
[helin@localhost dir]$ tail -n 3 cc.txt
888888
999999
000000
#实时追踪文档更新,常用于查看日志
[helin@localhost dir]$ tail -f cc.txt
111111
222222
333333
444444
555555
666666
777777
888888
999999
000000
# 输入ctrl+c退出监控
# 建立软链接,在/home/helin目录下创建一个指向/home/helin/dir/a.txt的软链接,名叫alink.txt
[helin@localhost ~]$ ln -s /home/helin/dir/a.txt alink.txt
[helin@localhost ~]$ ll
总用量 4
lrwxrwxrwx 1 helin he 21 1月 23 15:02 alink.txt -> /home/helin/dir/a.txt
drwxrwxr-x 2 helin helin 33 1月 23 14:55 dir
-rw-rw-r-- 1 helin helin 660 1月 23 14:49 d.txt
[helin@localhost ~]$ head -n 3 alink.txt
1111111
1111111
1111111
# 删除软链接(不会删除到源文件)
[helin@localhost ~]$ rm -rf alink.txt
# 查看历史命令
[helin@localhost ~]$ history
1 exit
2 ll
3 pwd
4 useradd he
5 su useradd he
6 sudo useradd he
7 sudo
8 sudo -V
…………等等
# 查看历史3个命令
[helin@localhost ~]$ history 3
125 head -n 3 alink.txt
126 history
127 history 3
# 执行第127个命令
[helin@localhost ~]$ !127
history 3
125 head -n 3 alink.txt
126 history
127 history 3
# 计算d.txt的行数,字数,字节数 14:行数 112:字数 660:字节数
[helin@localhost ~]$ wc d.txt
14 112 660 d.txt
# 统计多个文件
[helin@localhost ~]$ wc d.txt helintask.sh
14 112 660 d.txt
1 3 31 helintask.sh
15 115 691 总用量
# 只显示字节数
[helin@localhost ~]$ wc -c d.txt
660 d.txt
# 只显示字数
[helin@localhost ~]$ wc -w d.txt
112 d.txt
# 只显示行数
[helin@localhost ~]$ wc -l d.txt
14 d.txt
# 显示当前时间
[helin@localhost ~]$ date
2020年 01月 23日 星期四 15:16:15 CST
# 显示当前年月日
[helin@localhost ~]$ date "+%Y-%m-%d"
2020-01-23
# 显示当前年月日时分秒
[helin@localhost ~]$ date "+%Y-%m-%d %H:%M:%S"
2020-01-23 15:18:45
# 设置当前时间
[helin@localhost ~]$ date -s "2020-01-10 11:11:11"
2020年 01月 10日 星期五 11:11:11 CST
[helin@localhost ~]$ date
2020年 01月 10日 星期五 11:11:11 CST
# 查看日历,当天是23日,所以23会高亮
[helin@localhost ~]$ cal
一月 2020
日 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 '23' 24 25
26 27 28 29 30 31
# 显示2020年日历
[helin@localhost ~]$ cal 2020
2020
一月 二月 三月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 1 1 2 3 4 5 6 7
5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14
12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21
19 20 21 22 '23' 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28
26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31
四月 五月 六月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 1 2 1 2 3 4 5 6
5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
26 27 28 29 30 24 25 26 27 28 29 30 28 29 30
31
七月 八月 九月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 1 1 2 3 4 5
5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
30 31
十月 十一月 十二月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
25 26 27 28 29 30 31 29 30 27 28 29 30 31
# 查询/home目录下叫cc.txt的文件和目录(精确查询) -name:指定文件名方式查找
[helin@localhost ~]$ find /home -name cc.txt
/home/helin/dir/cc.txt
# 用通配符模糊查询,需要带引号
[helin@localhost ~]$ find /home -name "*.txt"
/home/helin/d.txt
/home/helin/dir/cc.txt
/home/helin/dir/a.txt
/home/helin/alink.txt
# 查询/home目录下用户名为helin的文件和目录 -user:指定所属用户方式查找
[helin@localhost ~]$ find /home -user helin
/home/helin
/home/helin/.bash_logout
/home/helin/.bash_profile
/home/helin/.bashrc
/home/helin/.bash_history
/home/helin/d.txt
/home/helin/dir
/home/helin/dir/cc.txt
/home/helin/dir/a.txt
/home/helin/.lesshst
/home/helin/.viminfo
/home/helin/alink.txt
# 查询/home 目录下大于1kb的文件(+n:大于 -n:小于 n:等于) -size:指定文件大小范围方式查找
[helin@localhost ~]$ find /home -size +1k
/home/helin/dir/a.txt
/home/helin/.viminfo
# 由于locate基于数据库进行查询,第一次运行前必须使用updatedb创建locate数据库
[root@localhost helin]# updatedb
#如果出现“-bash: updatedb: 未找到命令”,则安装mlocate包
[helin@localhost ~]$ su root
密码:
[root@localhost helin]# yum -y install mlocate
# 搜索
[helin@localhost ~]$ locate cc.txt
/home/helin/dir/cc.txt
|
:管道符,表示将前一个命令的处理结果输出传递给后面的命令进行处理# 显示cc.txt文件中0的所在之处,匹配默认区分大小写 -n:显示匹配行以及行号
[helin@localhost ~]$ cat /home/helin/dir/cc.txt|grep -n 0
10:00000
20:000000
# 显示cc.txt文件中YY的所在之处,忽略大小写 -i:忽略字母大小写
[helin@localhost ~]$ cat /home/helin/dir/cc.txt|grep -ni YY
11:yyyYYY
12:yYadd
# 压缩文件,不保留原文件
[helin@localhost dir]$ gzip a.txt
[helin@localhost dir]$ ll
总用量 8
-rw-rw-r-- 1 helin he 57 1月 23 00:36 a.txt.gz
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
# 解压文件,不保留压缩包
[helin@localhost dir]$ gunzip a.txt.gz
[helin@localhost dir]$ ll
总用量 12
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
# 把dir/目录压缩成dir.zip文件 -r:递归压缩目录
[helin@localhost ~]$ zip -r dir.zip dir/
adding: dir/ (stored 0%)
adding: dir/cc.txt (deflated 59%)
adding: dir/a.txt (deflated 100%)
[helin@localhost ~]$ ll
总用量 8
lrwxrwxrwx 1 helin he 21 1月 23 15:02 alink.txt -> /home/helin/dir/a.txt
drwxrwxr-x 2 helin helin 33 1月 23 16:00 dir
-rw-r--r-- 1 helin he 576 1月 23 16:02 dir.zip
-rw-rw-r-- 1 helin helin 660 1月 23 14:49 d.txt
# 解压文件到/home/helin目录 -d:指定解压文件存放目录
[helin@localhost ~]$ unzip -d /home/helin/ dir.zip
Archive: dir.zip
# 已有文件,是否覆盖cc.txt
# [y]es,[n]o,[A]ll,[None],[r]ename
replace /home/helin/dir/cc.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: cc1
inflating: /home/helin/cc1
replace /home/helin/dir/a.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: a1
inflating: /home/helin/a1
[helin@localhost ~]$ ll
总用量 20
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a1
lrwxrwxrwx 1 helin he 21 1月 23 15:02 alink.txt -> /home/helin/dir/a.txt
drwxrwxr-x 2 helin helin 33 1月 23 16:00 dir
-rw-rw-r-- 1 helin he 220 1月 23 15:00 cc1
-rw-r--r-- 1 helin he 576 1月 23 16:02 dir.zip
-rw-rw-r-- 1 helin helin 660 1月 23 14:49 d.txt
# 把cc1.txt、a1.txt、d.txt压缩成dir.tar.gz
[helin@localhost ~]$ tar -zcvf dir.tar.gz cc1.txt a1.txt d.txt
cc1.txt
a1.txt
d.txt
[helin@localhost ~]$ ll
总用量 24
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a1.txt
lrwxrwxrwx 1 helin he 21 1月 23 15:02 alink.txt -> /home/helin/dir/a.txt
-rw-rw-r-- 1 helin he 405 1月 23 16:12 cc1.txt
drwxrwxr-x 2 helin helin 33 1月 23 16:00 dir
-rw-r--r-- 1 helin he 948 1月 23 16:13 dir.tar.gz
-rw-r--r-- 1 helin he 576 1月 23 16:02 dir.zip
-rw-rw-r-- 1 helin helin 660 1月 23 14:49 d.txt
# 把dir.tar.gz解压到/home/helin/dir/目录中 -C:指定解压目录,该目录必须存在
[helin@localhost ~]$ tar -zxvf dir.tar.gz -C /home/helin/dir/
cc1.txt
a1.txt
d.txt
[helin@localhost ~]$ cd dir
[helin@localhost dir]$ ll
总用量 28
-rw-r--r-- 1 helin he 6601 1月 23 00:36 a1.txt
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-r--r-- 1 helin he 405 1月 23 16:12 cc1.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后文件名 |
-z | 打包同时压缩 |
-x | 解压.tar文件 |
每个文件都有
的概念。
# 查看文件所有者,第一列helin为文件的所有者,第二列为所在组
[helin@localhost dir]$ ls -ahl
总用量 28K
drwxrwxr-x 2 helin helin 75 1月 23 16:49 .
drwx------ 3 helin he 218 1月 23 16:13 ..
-rw-r--r-- 1 helin he 6.5K 1月 23 00:36 a1.txt
-rw-rw-r-- 1 helin he 6.5K 1月 23 00:36 a.txt
-rw-r--r-- 1 helin he 405 1月 23 16:12 cc1.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
[root@localhost dir]$ touch root.txt
[root@localhost dir]$ ll
总用量 16
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
-rw-r--r-- 1 root root 0 1月 23 17:07 root.txt
# 修改文件所有者为helin
[root@localhost dir]$ chown helin root.txt
[root@localhost dir]$ ll
总用量 16
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
-rw-r--r-- 1 helin root 0 1月 23 17:07 root.txt
# 修改d.txt所有者为helin,所在组为he -R:处理指定目录以及目录下所有文件
[root@localhost helin]$ chown -R helin:he d.txt
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rwxr-xr-x 1 helin he 660 1月 23 14:49 d.txt
# 若文件是其他所有者的
[root@localhost dir]$ chown root root.txt
[root@localhost dir]$ ll
总用量 16
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
-rw-r--r-- 1 root root 0 1月 23 17:07 root.txt
# 其他用户只有只读权限
[helin@localhost dir]$ cat root.txt
root
[helin@localhost dir]$ vim root.txt #只有只读权限
# 如果要强行写入,输入wq!强制执行,执行后文件的所有者和所在组均变为修改用户的
[helin@localhost dir]$ ll
总用量 20
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
-rw-r--r-- 1 helin he 8 1月 23 17:18 root.txt
# 修改文件的所在组为helin
[root@localhost dir]$ chgrp helin root.txt
[root@localhost dir]$ ll
总用量 20
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
-rw-r--r-- 1 helin helin 8 1月 23 17:18 root.txt
# 修改目录下所有的文件和目录的所在组为he
[root@localhost dir]$ chgrp -R he root.txt
[root@localhost dir]$ ll
总用量 20
-rw-rw-r-- 1 helin he 6601 1月 23 00:36 a.txt
-rw-rw-r-- 1 helin helin 220 1月 23 15:00 cc.txt
-rw-r--r-- 1 helin he 660 1月 23 14:49 d.txt
-rw-r--r-- 1 helin he 8 1月 23 17:18 root.txt
# 查看helin的当前所在组为he
[root@localhost dir]# id helin
uid=1000(helin) gid=1001(he) 组=1001(he)
# 修改helin的所在组为helin 第一个helin:组名 第二个helin:用户名
[root@localhost dir]# usermod -g helin helin
[root@localhost dir]# id helin
uid=1000(helin) gid=1000(helin) 组=1000(helin)
# 修改helin用户home目录到/home/he/目录下
[root@localhost ~]$ usermod -d /home/he/ helin
[helin@localhost ~]$ ll
总用量 4
# 第1个字符'-':文件类型(-:普通文件 d:目录 l:软链接 c:串口设备[键鼠] b:块文件[硬盘])
# 第2-4个字符'rw-':文件所有者权限(1.读r 2.写w 3.执行x,权限位置不变,没有权限为'-')--User
# 第5-7个字符'rw-':文件所在组用户的权限(1.读r 2.写w 3.执行x,权限位置不变,没有权限为'-')--Group
# 第8-10个字符'r--':文件其它组的用户拥有的权限(1.读r 2.写w 3.执行x,权限位置不变,没有权限为'-')--Other
# 后面的'1':如果是文件,表示硬链接数;如果是目录则表示子目录个数
# 后面'helin helin':分别表示文件所有者和所在组
# 后面'660':表示文件或目录大小660字节
# 后面'1月 23 14:49':文件最后修改时间
# 后面'd.txt':文件名
-rw-rw-r-- 1 helin helin 660 1月 23 14:49 d.txt
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
rwx作用到文件
- [r]代表可读(read):可以读取,查看
- [w]代表可写( write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该
文件所在的目录有写权限,才能删除该文件.- [x]代表可执行( execute:可以被执行
rwx作用到目录
- [r]代表可读(read):可以读取,ls查看目录内容
- [w]代表可写( write):可以修改,目录内创建+删除+重命名目录
- [x]代表可执行( execute):可以进入该目录
rwx的数字表示(r=4,w=2,x=1)
- 因此
- rw=6,rx=5,wx=3
- rwx=7
=
:设置权限+
:增加权限-
:移除权限u
:所有者权限(user)g
:所在组用户权限(group)o
:其它组用户权限(other)a
:所有用户权限(all)[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rw-rw-r-- 1 helin helin 660 1月 23 14:49 d.txt
# 修改d.txt权限,所有者([u]ser)权限改为rwx,所在组([g]roup)用户权限改为r-x,其它组([o]ther)用户权限改为--x
[root@localhost helin]$ chmod u=rwx,g=rx,o=x d.txt
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rwxr-x--x 1 helin helin 660 1月 23 14:49 d.txt
# 删除d.txt文件的other中x权限
[root@localhost helin]$ chmod o-x d.txt
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rwxr-x--- 1 helin helin 660 1月 23 14:49 d.txt
# 删除d.txt文件的group中x权限,添加w权限
[root@localhost helin]$ chmod g-x,g+w d.txt
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rwxrw---- 1 helin helin 660 1月 23 14:49 d.txt
# 数字方式变更权限,等于u=rwx,g=r-x,o=r-x
[root@localhost helin]$ chmod 755 d.txt
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rwxr-xr-x 1 helin helin 660 1月 23 14:49 d.txt
# 修改dir目录下所有文件和目录的权为775
[root@localhost helin]$ chmod -R 775 dir/
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin 62 1月 23 17:26 dir
-rwxr-xr-x 1 helin he 660 1月 23 14:49 d.txt
项目 | 含义 | 范围 |
---|---|---|
第一个* |
一小时中的第几分钟 | 0~59 |
第二个* |
一天中的第几小时 | 0~23 |
第三个* |
一个月中的第几天 | 1~31 |
第四个* |
一年中的第几个月 | 1~12 |
第五个* |
一周中的星期几 | 0~7(0和7都是周日) |
特殊符号 | 含义 |
---|---|
* |
代表任何时间。 |
, |
代表不连续的时间。比如“0 8,12,16 * * *”命令,表示在每天8点0分,12点0分,16点0分都执行一次。 |
- |
代表连续的时间范围。比如“0 5 * * 1-6”命令,表示在周一到周六的5点0分执行。 |
*/n |
代表每隔多久执行一次。比如“*/10 * * * *”命令,表示每隔10分钟就执行一次。 |
# 设置定时任务 -e:添加编辑当前crontab定时任务
[root@localhost helin]$ crontab -e
# 编写任务
# 从任意时间的0秒开始每1秒执行一次,把/etc目录下的所有文件和目录list追加到/tmp/to.txt中
*/1 * * * * ls -l /etc >> /tmp/to.txt
# 保存后显示‘crontab: installing new crontab’表示设置成功
# 列出当前有哪些定时任务调度
[root@localhost tmp]$ crontab -l
*/1 * * * * ls -l /etc >> /tmp/to.txt
# 删除当前任务调度
[root@localhost tmp]$ crontab -r
[root@localhost tmp]$ crontab -l
no crontab for root
# 启动cron服务
[root@localhost tmp]$ systemctl start crond
# 停止cron服务
[root@localhost tmp]$ systemctl stop crond
# 重启cron服务
[root@localhost tmp]$ systemctl restart crond
# 开机启动cron服务
[root@localhost tmp]$ systemctl enable crond.service
/home/helin/tmp/mydate
中# 编写可执行任务脚本 .sh文件是可执行文件
[helin@localhost ~]$ vim helintask.sh
date >> /home/helin/tmp/mydate
# 给helintask.sh分配权限,所有者可执行权限
[helin@localhost ~]$ chmod 744 helintask.sh
# 创建新的任务
[helin@localhost ~]$ crontab -e
# 任务内容
*/1 * * * * /home/helin/helintask.sh
# 执行成功
no crontab for helin - using an empty one
crontab: installing new crontab
# 查询当前系统的分区情况
[root@localhost tmp]$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 CentOS 7 x86_64 2018-05-03-20-55-23-00
# 硬盘类型
nvme0n1
# nvme0n1p1:分区情况 xfs:分区类型 d22086c9……:40位UUID /boot:挂载点
├─nvme0n1p1 xfs d22086c9-1fe1-498b-a5ae-e97bb7e74528 /boot
├─nvme0n1p2 swap c4d32e73-2b41-4c21-aadc-11790dda029c [SWAP]
└─nvme0n1p3 xfs f1c5703b-df9a-42c6-ba3a-e1f7db7c45d4 /
# 查看当前系统的分区情况(查看分区大小)
[root@localhost tmp]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 4.2G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
├─nvme0n1p2 259:2 0 512M 0 part [SWAP]
└─nvme0n1p3 259:3 0 19.2G 0 part /
# 查询磁盘使用情况
[root@localhost tmp]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/nvme0n1p3 20G 5.8G 14G 30% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 297M 117M 180M 40% /boot
tmpfs 781M 0 781M 0% /run/user/0
tmpfs 781M 0 781M 0% /run/user/1000
# 查询指定目录的磁盘占用情况,默认为当前目录 -h:带计量单位
[root@localhost tmp]$ du -h /home/helin/
20K /home/helin/dir
4.0K /home/helin/tmp
56K /home/helin/
# 查询指定目录磁盘占用大小汇总 -s:磁盘占用大小汇总
[root@localhost tmp]$ du -sh /home/helin/
56K /home/helin/
# 查询带文件的大小占用 -a:包含文件
[root@localhost tmp]$ du -ah /home/helin
4.0K /home/helin/.bash_logout
4.0K /home/helin/.bash_profile
4.0K /home/helin/.bashrc
4.0K /home/helin/.bash_history
4.0K /home/helin/d.txt
4.0K /home/helin/dir/cc.txt
8.0K /home/helin/dir/a.txt
4.0K /home/helin/dir/d.txt
4.0K /home/helin/dir/root.txt
20K /home/helin/dir
4.0K /home/helin/.lesshst
4.0K /home/helin/helintask.sh
4.0K /home/helin/tmp/mydate
4.0K /home/helin/tmp
4.0K /home/helin/.viminfo
56K /home/helin
# 查询明细同时查出汇总值 -c:列出明细同时查询汇总值
[root@localhost tmp]$ du -ch /home/helin/
20K /home/helin/dir
4.0K /home/helin/tmp
56K /home/helin/
56K 总用量
# 查询1级子目录的磁盘占用 --max-depth=1:设置子目录深度
[root@localhost tmp]$ du -ch --max-depth=1 /home/helin/
20K /home/helin/dir
4.0K /home/helin/tmp
56K /home/helin/
56K 总用量
# 查询/home/helin目录下所有文件和目录,然后过滤查询以“-”开头的文件("^-"是正则表达式),然后统计(wc是统计总数)
# 把“ls -la /home/helin |grep "^-"”过滤得到的内容当做文件,使用wc -l查询该“文件”的行数即为文件数
[root@localhost home]$ ls -la /home/helin |grep "^-" |wc -l
8
# 查询目录个数
[helin@localhost ~]$ ls -la /home/helin |grep "^d" |wc -l
3
# 递归查询目录中(包括子目录)的所有文件个数
[helin@localhost ~]$ ls -laR /home/helin |grep "^-" |wc -l
12
# 递归查询目录中(包括子目录)的所有目录个数
[helin@localhost ~]$ ls -laR /home/helin |grep "^d" |wc -l
5
# 如果没有tree则使用yum安装
[root@localhost helin]$ tree
-bash: tree: 未找到命令
[root@localhost helin]$ yum install tree
# 使用tree展示文件结构目录
[root@localhost helin]$ tree
.
├── dir
│ ├── a.txt
│ ├── cc.txt
│ ├── d.txt
│ └── root.txt
├── d.txt
└── helintask.sh
1 directory, 6 files
# 测试4次
[root@localhost helin]$ ping -c 4 192.168.0.106
PING 192.168.0.106 (192.168.0.106) 56(84) bytes of data.
64 bytes from 192.168.0.106: icmp_seq=1 ttl=128 time=0.413 ms
64 bytes from 192.168.0.106: icmp_seq=2 ttl=128 time=0.602 ms
64 bytes from 192.168.0.106: icmp_seq=3 ttl=128 time=0.335 ms
64 bytes from 192.168.0.106: icmp_seq=4 ttl=128 time=0.800 ms
--- 192.168.0.106 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.335/0.537/0.800/0.181 ms
# 查看网络配置
[root@localhost helin]$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:c5:70:f4:95 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.250 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::3891:39fa:7869:3871 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fb:0b:6c txqueuelen 1000 (Ethernet)
RX packets 17908 bytes 6855419 (6.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11960 bytes 1762402 (1.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 244850 bytes 692066693 (660.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 244850 bytes 692066693 (660.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 修改网卡配置文件
[root@localhost helin]$ vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 有可能是ifcfg-eth0
# 文件内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 从none改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 # 网卡名称
UUID=cbe94f25-5b23-4448-b1f7-afb722f0194d
DEVICE=ens33
ONBOOT=yes # 改为yes
IPADDR=192.168.137.250 # 指定固定ip
NETMASK=255.255.255.0 # 指定子网掩码
GATEWAY=192.168.137.2 # 指定网关
# 如果需要配DNS
# DNS1=192.168.137.2
# 最后重启网络服务
[root@localhost helin]$ systemctl start network.service
# 或
[root@localhost helin]$ service network restart
# 显示所有包含其他使用者的行程
# -a:显示当前终端所有进程信息 -u:以用户的格式显示进程信息 -x:显示后台进程运行参数
# USER:进程所有者 PID:进程识别号 %CPU:CPU占用率 %MEM:内存占用率 VSZ:占用的虚拟内存大小
# RSS: 占用的物理内存大小 TTY: 使用的终端 STAT: 进程的状态(s:休眠 r:运行) START: 开始时间
# TIME: 占用cpu总时间 COMMAND:所执行的指令
[root@localhost network-scripts]$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 191272 4272 ? Ss 1月23 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 1月23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 1月23 0:07 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 1月23 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 1月23 0:01 [migration/0]
root 8 0.0 0.0 0 0 ? S 1月23 0:00 [rcu_bh]
root 9 0.1 0.0 0 0 ? S 1月23 1:13 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 1月23 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S 1月23 0:00 [watchdog/0]
root 12 0.0 0.0 0 0 ? S 1月23 0:00 [watchdog/1]
root 13 0.0 0.0 0 0 ? S 1月23 0:01 [migration/1]
root 14 0.0 0.0 0 0 ? S 1月23 0:05 [ksoftirqd/1]
root 16 0.0 0.0 0 0 ? S< 1月23 0:00 [kworker/1:0H]
root 17 0.0 0.0 0 0 ? S 1月23 0:00 [watchdog/2]
root 18 0.0 0.0 0 0 ? S 1月23 0:01 [migration/2]
…………等等
# 只查询docker的进程状态,使用管道符配合grep过滤
[root@localhost network-scripts]$ ps -aux|grep docker
root 828 0.0 0.9 907388 72772 ? Ssl 1月23 0:15 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 55217 0.0 0.0 112724 980 pts/0 S+ 03:00 0:00 grep --color=auto docker
# 查询指令父进程
# UID:进程所有者用户ID PID:进程ID PPID:父进程ID STIME:进程启动的时间 CMD:启动进程所用命令和参数
# C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是IO密集型运算,执行优先级会提高
[root@localhost network-scripts]$ ps -ef|more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 1月23 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 1月23 ? 00:00:00 [kthreadd]
root 3 2 0 1月23 ? 00:00:07 [ksoftirqd/0]
root 5 2 0 1月23 ? 00:00:00 [kworker/0:0H]
root 7 2 0 1月23 ? 00:00:01 [migration/0]
root 8 2 0 1月23 ? 00:00:00 [rcu_bh]
符号 | 状态说明 |
---|---|
S |
睡眠 |
s |
该程是会话先导进程 |
N |
优先级较低的进程 |
R |
正在运行 |
D |
无法中断的休眠状态(通常 IO 的进程) |
Z |
僵尸进程(不存在但暂时无法消除) |
T |
被跟踪或被停止 |
X |
死掉的进程(从来没见过); |
W |
进入内存交换(从内核2.6开始无效) |
< |
优先级高的进程 |
L |
有些页被锁进内存 |
l |
多进程的 |
+ |
位于后台的进程组 |
# 查询系统登陆的用户
[root@localhost network-scripts]$ ps -aux|grep sshd
root 817 0.0 0.0 112856 4296 ? Ss 1月23 0:00 /usr/sbin/sshd -D
root 1823 0.0 0.0 161468 6040 ? Ss 1月23 0:00 sshd: root@pts/0
root 1910 0.0 0.0 161468 5972 ? Ss 1月23 0:00 sshd: helin [priv]
helin 1916 0.0 0.0 161632 2500 ? S 1月23 0:00 sshd: helin@pts/1
root 55513 0.0 0.0 112724 984 pts/0 S+ 03:50 0:00 grep --color=auto sshd
# 踢掉helin用户
[root@localhost network-scripts]$ kill 1916
# 终止sshd进程,禁止远程访问
[root@localhost network-scripts]$ kill 817
# 强制终止进程
[root@localhost network-scripts]$ kill -9 1823
# 通过名称杀掉进程,支持通配符
[root@localhost network-scripts]$ killall docker
# 如果没有pstree,安装
[root@localhost helin]$ pstree -pu
-bash: pstree: 未找到命令
[root@localhost helin]$ yum -y install psmisc
# 查询
[root@localhost helin]$ pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─containerd───18*[{containerd}]
├─crond
├─dbus-daemon
├─dockerd───16*[{dockerd}]
├─irqbalance
├─java───46*[{java}]
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─runsvdir───16*[runsv───svlogd]
├─sshd─┬─sshd───bash───pstree
│ └─sshd───sshd───bash
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
# -p:显示进程PID -u:显示进程所属用户
[root@localhost helin]$ pstree -pu
systemd(1)─┬─NetworkManager(578)─┬─{NetworkManager}(602)
│ └─{NetworkManager}(605)
├─VGAuthService(576)
├─agetty(609)
├─auditd(552)───{auditd}(553)
├─containerd(826)─┬─{containerd}(1010)
│ ├─{containerd}(1011)
│ ├─{containerd}(1012)
│ ├─{containerd}(1015)
│ ├─{containerd}(1016)
│ ├─{containerd}(1045)
│ ├─{containerd}(1046)
│ ├─{containerd}(1047)
│ ├─{containerd}(1075)
│ ├─{containerd}(1079)
│ ├─{containerd}(1091)
│ ├─{containerd}(1188)
│ ├─{containerd}(2381)
│ ├─{containerd}(2382)
│ ├─{containerd}(2589)
│ ├─{containerd}(3696)
│ ├─{containerd}(15829)
│ └─{containerd}(15830)
├─crond(590)
├─dbus-daemon(577,dbus)
├─dockerd(828)─┬─{dockerd}(1104)
│ ├─{dockerd}(1105)
│ ├─{dockerd}(1106)
│ ├─{dockerd}(1107)
│ ├─{dockerd}(1110)
│ ├─{dockerd}(1134)
│ ├─{dockerd}(1153)
│ ├─{dockerd}(1156)
│ ├─{dockerd}(1164)
│ ├─{dockerd}(1165)
│ ├─{dockerd}(1171)
│ ├─{dockerd}(1189)
│ ├─{dockerd}(1251)
│ ├─{dockerd}(1252)
│ ├─{dockerd}(1255)
│ └─{dockerd}(1260)
├─irqbalance(580)
├─java(1366,jenkins)─┬─{java}(1385)
│ ├─{java}(1389)
│ ├─{java}(1390)
│ ├─{java}(1391)
│ ├─{java}(1392)
│ ├─{java}(1393)
│ ├─{java}(1394)
│ ├─{java}(1395)
│ ├─{java}(1396)
│ ├─{java}(1415)
│ ├─{java}(1432)
│ ├─{java}(1434)
│ ├─{java}(1455)
│ ├─{java}(1457)
│ ├─{java}(1460)
│ ├─{java}(1461)
│ ├─{java}(1462)
│ ├─{java}(1466)
│ ├─{java}(1467)
│ ├─{java}(1669)
│ ├─{java}(1670)
│ ├─{java}(1672)
│ ├─{java}(1673)
│ ├─{java}(1675)
│ ├─{java}(1677)
│ ├─{java}(1721)
│ ├─{java}(1722)
│ ├─{java}(1724)
│ ├─{java}(1725)
│ ├─{java}(1726)
│ ├─{java}(1821)
│ ├─{java}(1847)
│ ├─{java}(1853)
│ ├─{java}(1854)
│ ├─{java}(1855)
│ ├─{java}(1856)
│ ├─{java}(1857)
│ ├─{java}(1858)
│ ├─{java}(1870)
│ ├─{java}(1879)
│ ├─{java}(1880)
│ ├─{java}(1884)
│ ├─{java}(1885)
│ ├─{java}(1886)
│ ├─{java}(33585)
│ └─{java}(43650)
├─lvmetad(418)
├─master(1101)─┬─pickup(55517,postfix)
│ └─qmgr(1124,postfix)
├─polkitd(583,polkitd)─┬─{polkitd}(594)
│ ├─{polkitd}(595)
│ ├─{polkitd}(600)
│ ├─{polkitd}(603)
│ └─{polkitd}(610)
├─rsyslogd(823)─┬─{rsyslogd}(842)
│ └─{rsyslogd}(843)
├─runsvdir(1512)─┬─runsv(1514)───svlogd(1538)
│ ├─runsv(1515)───svlogd(1539)
│ ├─runsv(1516)───svlogd(1534)
│ ├─runsv(1517)───svlogd(1540)
│ ├─runsv(1518)───svlogd(1535)
│ ├─runsv(1519)───svlogd(1537)
│ ├─runsv(1520)───svlogd(1523)
│ ├─runsv(1521)───svlogd(1547)
│ ├─runsv(1522)───svlogd(1545)
│ ├─runsv(1524)───svlogd(1532)
│ ├─runsv(1526)───svlogd(1548)
│ ├─runsv(1527)───svlogd(1553)
│ ├─runsv(1528)───svlogd(1560)
│ ├─runsv(1529)───svlogd(1557)
│ ├─runsv(1530)───svlogd(1559)
│ └─runsv(1531)───svlogd(1543)
├─sshd(817)─┬─sshd(1823)───bash(1828)───pstree(55581)
│ └─sshd(55519)───sshd(55521,helin)───bash(55522)
├─systemd-journal(400)
├─systemd-logind(585)
├─systemd-udevd(437)
├─tuned(818)─┬─{tuned}(1324)
│ ├─{tuned}(1334)
│ ├─{tuned}(1337)
│ └─{tuned}(1468)
└─vmtoolsd(582)───{vmtoolsd}(613)
[root@localhost ~]$ free
total used free shared buff/cache available
Mem: 1865284 591028 827712 9668 446544 1059216
Swap: 524284 0 524284
# 启动防火墙
[root@localhost network-scripts]$ service iptables start
# 关闭防火墙
[root@localhost network-scripts]$ service iptables stop
# 重启防火墙
[root@localhost network-scripts]$ service iptables restart
# 查看状态
[root@localhost network-scripts]$ service iptables status
#启动防火墙:
systemctl start firewalld
#查状态:
systemctl status firewalld
#禁用:
systemctl disable firewalld
#停止:
systemctl stop firewalld
#在开机时启用一个服务:
systemctl enable firewalld.service
#在开机时禁用一个服务:
systemctl disable firewalld.service
#查看服务是否开机启动:
systemctl is-enabled firewalld.service
#查看已启动的服务列表:
systemctl list-unit-files|grep enabled
#查看启动失败的服务列表:
systemctl --failed
# 如果没安装则进行安装
[root@localhost ~]$ setup
-bash: setup: 未找到命令
# 安装setuptool
[root@localhost ~]$ yum -y install setuptool
# 系统服务管理
[root@localhost ~]$ yum -y install ntsysv
# setup中配套的防火墙设置也得装上去,不然会出现很多selinux上面的问题
[root@localhost ~]$ yum -y install system-config-securitylevel-tui
# 安装setup中配套的网络设置
[root@localhost ~]$ yum -y install system-config-network-tui
# 安装时区,不然装上软件,会发现时间不对劲的。
[root@localhost ~]$ yum -y install system-config-date
# 之后执行该命令能操作图形界面
[root@localhost ~]$ setup
[root@localhost helin]$ chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
jenkins 0:关 1:关 2:关 3:开 4:关 5:开 6:关
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
# 查看jenkins的运行级别是否自动开启
[root@localhost helin]$ chkconfig --list|grep jenkins
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
jenkins 0:关 1:关 2:关 3:开 4:关 5:开 6:关
# sshd服务在运行级别为5的情况下不自启动
[root@localhost helin]$ chkconfig --level 5 sshd off
# sshd服务在所有运行级别的情况下不自启动
[root@localhost helin]$ chkconfig sshd off
# 重启生效
[root@localhost helin]$ reboot
注意:
chkconfig重新设置服务自动启动或关闭,需要重启才生效
# 动态显示正在执行的进程(3秒自动刷新一次)
# 04:39:43:当前时间 up 14:04:系统运行时间 2 users:2个登陆用户 load average: 0.00, 0.01, 0.05:负载均衡
# Tasks: 174 total:总共174个进程 1 running:1个正在运行 173 sleeping:173个休眠 0 stopped:0个停止
# 0 zombie:0个僵尸进程 %Cpu(s):cpu使用情况 KiB Mem:内存使用情况 KiB Swap:虚拟内存使用情况
[root@localhost helin]$ top
top - 04:39:43 up 14:04, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 174 total, 1 running, 173 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 7992312 total, 5253992 free, 1354668 used, 1383652 buff/cache
KiB Swap: 524284 total, 524284 free, 0 used. 6240340 avail Mem
# 输入u后出现下面文字,输入用户名回车查询该用户的所有进程
Which user (blank for all) helin
# 输入k后出现下面文字,输入PID回车杀死进程
PID to signal/kill [default pid = 1] 55521
# 输入P按照%CPU大小排序(默认),M按照%MEM大小排序,N按照PID排序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
57 root 20 0 0 0 0 S 0.3 0.0 0:17.82 kworker/1:1
55606 root 20 0 161976 2324 1584 R 0.3 0.0 0:00.03 top
1 root 20 0 191272 4272 2592 S 0.0 0.1 0:01.68 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:07.98 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:01.89 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
# q或ctrl+c退出
# 设置10秒刷新一次
[root@localhost helin]$ top -d 10
# 不显示闲置或僵尸进程
[root@localhost helin]$ top -i
# 仅仅监控某进程的状态
[root@localhost helin]$ top -p 55521
# 查看系统所有的网络服务 -an:按一定顺序排列输出 -p:显示哪个进程在调用
[root@localhost helin]$ netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 817/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1101/master
tcp 0 52 192.168.137.250:22 192.168.137.1:8960 ESTABLISHED 1823/sshd: root@pts
tcp 0 0 192.168.137.250:22 192.168.137.1:6425 ESTABLISHED 55519/sshd: helin [
tcp6 0 0 :::8080 :::* LISTEN 1366/java
tcp6 0 0 :::22 :::* LISTEN 817/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1101/master
udp6 0 0 :::33848 :::* 1366/java
udp6 0 0 :::5353 :::* 1366/java
raw6 0 0 :::58 :::* 7 578/NetworkManager
# 查询docker是否安装
[root@localhost ~]$ rpm -qa|grep docker
# docker-ce-19.03.5:文件名和版本号 el7.x86_64:centos7.x的64位系统版本
# 如果是i686、i386表示32位系统版本,noarch表示通用
docker-ce-19.03.5-3.el7.x86_64
docker-ce-cli-19.03.5-3.el7.x86_64
# 查询安装的所有rpm软件包
[root@localhost ~]$ rpm -qa
# 查询软件包是否安装
[root@localhost ~]$ rpm -q docker
未安装软件包 docker
[root@localhost ~]$ rpm -q jenkins
jenkins-2.214-1.1.noarch
# 查询软件包信息
[root@localhost ~]$ rpm -qi jenkins
Name : jenkins
Version : 2.214
Release : 1.1
Architecture: noarch
Install Date: 2020年01月18日 星期六 00时49分58秒
Group : Development/Tools/Building
Size : 62436894
License : MIT/X License, GPL/CDDL, ASL2
Signature : DSA/SHA1, 2020年01月13日 星期一 07时38分14秒, Key ID 9b7d32f2d50582e6
Source RPM : jenkins-2.214-1.1.src.rpm
Build Date : 2020年01月13日 星期一 07时38分11秒
Build Host : atlas
Relocations : (not relocatable)
URL : http://jenkins.io/
Summary : Jenkins Automation Server
Description :
Jenkins is an open source automation server which enables developers around the world to reliably automate their development lifecycle processes of all kinds, including build, document, test, package, stage, deployment, static analysis and many more.
Jenkins is being widely used in areas of Continuos Integration, Continuous Delivery, DevOps, and other areas. And it is not only about software, the same automation techniques can be applied in other areas like Hardware Engineering, Embedded Systems, BioTech, etc.
For information see https://jenkins.io
Authors:
--------
Kohsuke Kawaguchi <[email protected]>
# 查询软件包中的文件
[root@localhost ~]$ rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
# 查询/etc/init.d/jenkins文件所属的软件包
[root@localhost ~]$ rpm -qf /etc/init.d/jenkins
jenkins-2.214-1.1.noarch
# 卸载软件包
[root@localhost ~]$ rpm -e gitlab-ee
# 如果卸载报错(有其他软件依赖此软件)
[root@localhost ~]$ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
# 强制卸载(不推荐)
[root@localhost ~]$ rpm -e --nodeps foo
# 安装软件包 i:install安装 v=verbose安装 h=hash 进度条
[root@localhost ~]$ rpm -ivh /opt/firefox-45.0.1-1.el7.centos.X86_64.rpm
# 查询yum服务器所有安装包list
[root@localhost ~]$ yum list
# 查询yum服务器是否有jenkins安装包
[root@localhost ~]$ yum list|grep jenkins
jenkins.noarch 2.214-1.1 @jenkins
hudson.noarch 1.395-1.1 jenkins
jenkins.noarch 2.217-1.1 jenkins
# 联网安装
[root@localhost ~]$ yum install jenkins
# 更新所有软件命令
[root@localhost ~]$ yum update
# 列出所有可更新的软件清单
[root@localhost ~]$ yum check-update
# 查找软件包
[root@localhost ~]$ yum search jenkins
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
========================================================== N/S matched: jenkins ===========================================================
jenkins.noarch : Jenkins Automation Server
名称和简介匹配 only,使用“search all”试试。
# 删除软件包
[root@localhost ~]$ yum remove jenkins
# 备份/etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
[root@localhost ~]$ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@localhost ~]$ mv CentOS6-Base-163.repo CentOS-Base.repo
# 生成缓存
[root@localhost ~]$ yum clean all
[root@localhost ~]$ yum makecache
wget
是Linux下下载文件的最常用命令。
wget支持
HTTP,
HTTPS和
FTP`协议,支持自动下载,即可以在用户退出系统后在后台执行,直到下载结束。
用法:wget [参数] [URL]
常用参数
-o
:将日志信息写入FILE;-b
:启动后转入后台;-O
:将文档写入FILE(重命名);-q
:安静模式(无信息输出);-N
:只获取比本地文件新的文件;--no-check-certificate
:不要验证HTTPS服务器的证书;-r
:指定递归下载;-c
:断点续传下载文件。# 下载nginx安装包
wget http://nginx.org/download/nginx-1.10.1.tar.gz