Linux常用命令,超强万字总结!
时间:2020-07-16 09:34:41
手机看文章
扫描二维码
随时随地手机看文章
[导读]来自:JAVA小咖秀 链接:https://juejin.im/post/5ee444ea6fb9a047ca10f796 ls 最高使用频率的命令之一。 命令格式: ls [OPTION]... [FILE]...单纯的输入:
[root@iz2ze76ybn73dvwmdij06zz /]
# ls
bin dev home lib64 media
来自:JAVA小咖秀
链接:https://juejin.im/post/5ee444ea6fb9a047ca10f796
ls
[root@iz2ze76ybn73dvwmdij06zz /] # ls
bin dev home lib64 media opt proc run srv tmp var
boot etc lib lost+found mnt patch root sbin sys usr www
加 option -l 它展示了权限,属主,属组,大小,时间,文件名称
[root@iz2ze76ybn73dvwmdij06zz /] # ls -l
总用量 68
lrwxrwxrwx 1 root root 7 8月 26 22:36 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 8月 26 22:39 boot
drwxr-xr-x 19 root root 2960 4月 11 12:59 dev
drwxr-xr-x. 81 root root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root root 4096 4月 11 12:59 home
lrwxrwxrwx 1 root root 7 8月 26 22:36 lib -> usr/lib
lrwxrwxrwx 1 root root 9 8月 26 22:36 lib64 -> usr/lib64
drwx------. 2 root root 16384 10月 15 2017 lost+found
drwxr-xr-x. 2 root root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root root 4096 8月 26 23:00 patch
dr-xr-xr-x 110 root root 0 4月 11 12:59 proc
dr-xr-x---. 12 root root 4096 9月 11 20:59 root
drwxr-xr-x 26 root root 760 9月 7 21:50 run
lrwxrwxrwx 1 root root 8 8月 26 22:36 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 4月 11 12:59 srv
dr-xr-xr-x 13 root root 0 4月 11 12:59 sys
drwxrwxrwt. 9 root root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root root 4096 8月 26 22:55 var
drwxr-xr-x 6 root root 4096 8月 26 22:39 www
ls -a (all) linux '.'(点)开头的文件默认是隐藏的,-a可以查询所有的文件。
[root@iz2ze76ybn73dvwmdij06zz /] # ls -a
. bin etc lib64 mnt .pearrc run sys usr
.. boot home lost+found opt proc sbin .test var
.autorelabel dev lib media patch root srv tmp www
ls -F 以"/"结尾的方式展示文件夹。
[root@iz2ze76ybn73dvwmdij06zz /] # ls -F
bin@ dev/ home/ lib64@ media/ opt/ proc/ run/ srv/ tmp/ var/
boot/ etc/ lib@ lost+found/ mnt/ patch/ root/ sbin@ sys/ usr/ www/
ls -r 倒叙展示,默认的顺序是(a,b,c,d)正序这样展示
[root@iz2ze76ybn73dvwmdij06zz /] # ls -r
www usr sys sbin root patch mnt lost+found lib etc boot
var tmp srv run proc opt media lib64 home dev bin
ls -R ()递归展示子目录
[root@iz2ze76ybn73dvwmdij06zz test] # ls -R
.:
data
./data:
img
./data/img:
car product user
./data/img/car:
./data/img/product:
./data/img/user:
ls -lS 按照文件大小降序显示
[root@iz2ze76ybn73dvwmdij06zz /] # ls -lS
总用量 72
drwx------. 2 root root 16384 10月 15 2017 lost+found
dr-xr-xr-x. 5 root root 4096 8月 26 22:39 boot
drwxr-xr-x. 81 root root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root root 4096 4月 11 12:59 home
drwxr-xr-x. 2 root root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root root 4096 8月 26 23:00 patch
dr-xr-x---. 12 root root 4096 9月 15 22:03 root
drwxr-xr-x. 2 root root 4096 4月 11 12:59 srv
drwxr-xr-x 3 root root 4096 9月 15 22:10 test
drwxrwxrwt. 9 root root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root root 4096 8月 26 22:55 var
drwxr-xr-x 6 root root 4096 8月 26 22:39 www
drwxr-xr-x 19 root root 2960 4月 11 12:59 dev
drwxr-xr-x 26 root root 760 9月 7 21:50 run
lrwxrwxrwx 1 root root 9 8月 26 22:36 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 8 8月 26 22:36 sbin -> usr/sbin
lrwxrwxrwx 1 root root 7 8月 26 22:36 bin -> usr/bin
lrwxrwxrwx 1 root root 7 8月 26 22:36 lib -> usr/lib
dr-xr-xr-x 110 root root 0 4月 11 12:59 proc
dr-xr-xr-x 13 root root 0 4月 11 12:59 sys
ls -g 不输出所有者(属主)信息
[root@iz2ze76ybn73dvwmdij06zz /] # ls -g
总用量 72
lrwxrwxrwx 1 root 7 8月 26 22:36 bin -> usr/bin
dr-xr-xr-x. 5 root 4096 8月 26 22:39 boot
-rw-r--r-- 1 root 0 9月 15 22:20 c
drwxr-xr-x 19 root 2960 4月 11 12:59 dev
drwxr-xr-x. 81 root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root 4096 4月 11 12:59 home
lrwxrwxrwx 1 root 7 8月 26 22:36 lib -> usr/lib
lrwxrwxrwx 1 root 9 8月 26 22:36 lib64 -> usr/lib64
drwx------. 2 root 16384 10月 15 2017 lost+found
drwxr-xr-x. 2 root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root 4096 8月 26 23:00 patch
dr-xr-xr-x 110 root 0 4月 11 12:59 proc
dr-xr-x---. 12 root 4096 9月 15 22:18 root
drwxr-xr-x 26 root 760 9月 7 21:50 run
lrwxrwxrwx 1 root 8 8月 26 22:36 sbin -> usr/sbin
drwxr-xr-x. 2 root 4096 4月 11 12:59 srv
dr-xr-xr-x 13 root 0 4月 11 12:59 sys
drwxr-xr-x 3 root 4096 9月 15 22:18 test
drwxrwxrwt. 9 root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root 4096 8月 26 22:55 var
drwxr-xr-x 6 root 4096 8月 26 22:39 www
ls -lG 隐藏所有组(属组)信息
[root@iz2ze76ybn73dvwmdij06zz /] # ls -lG
总用量 72
lrwxrwxrwx 1 root 7 8月 26 22:36 bin -> usr/bin
dr-xr-xr-x. 5 root 4096 8月 26 22:39 boot
-rw-r--r-- 1 root 0 9月 15 22:20 c
drwxr-xr-x 19 root 2960 4月 11 12:59 dev
drwxr-xr-x. 81 root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root 4096 4月 11 12:59 home
lrwxrwxrwx 1 root 7 8月 26 22:36 lib -> usr/lib
lrwxrwxrwx 1 root 9 8月 26 22:36 lib64 -> usr/lib64
drwx------. 2 root 16384 10月 15 2017 lost+found
drwxr-xr-x. 2 root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root 4096 8月 26 23:00 patch
dr-xr-xr-x 110 root 0 4月 11 12:59 proc
dr-xr-x---. 12 root 4096 9月 15 22:18 root
drwxr-xr-x 26 root 760 9月 7 21:50 run
lrwxrwxrwx 1 root 8 8月 26 22:36 sbin -> usr/sbin
drwxr-xr-x. 2 root 4096 4月 11 12:59 srv
dr-xr-xr-x 13 root 0 4月 11 12:59 sys
drwxr-xr-x 3 root 4096 9月 15 22:18 test
drwxrwxrwt. 9 root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root 4096 8月 26 22:55 var
drwxr-xr-x 6 root 4096 8月 26 22:39 www
10.ls -li 显示文件的索引号
[root@iz2ze76ybn73dvwmdij06zz /]# ls -li
ls -li 显示文件的索引号
[root@iz2ze76ybn73dvwmdij06zz /] # ls -li
总用量 72
7628 lrwxrwxrwx 1 root root 7 8月 26 22:36 bin -> usr/bin
1179650 dr-xr-xr-x. 5 root root 4096 8月 26 22:39 boot
4923 -rw-r--r-- 1 root root 0 9月 15 22:20 c
1026 drwxr-xr-x 19 root root 2960 4月 11 12:59 dev
917505 drwxr-xr-x. 81 root root 4096 9月 5 17:09 etc
655362 drwxr-xr-x. 2 root root 4096 4月 11 12:59 home
17 lrwxrwxrwx 1 root root 7 8月 26 22:36 lib -> usr/lib
13 lrwxrwxrwx 1 root root 9 8月 26 22:36 lib64 -> usr/lib64
11 drwx------. 2 root root 16384 10月 15 2017 lost+found
786434 drwxr-xr-x. 2 root root 4096 4月 11 12:59 media
131074 drwxr-xr-x. 2 root root 4096 4月 11 12:59 mnt
393219 drwxr-xr-x. 3 root root 4096 8月 26 22:40 opt
1966081 drwxr-xr-x 2 root root 4096 8月 26 23:00 patch
1 dr-xr-xr-x 110 root root 0 4月 11 12:59 proc
131073 dr-xr-x---. 12 root root 4096 9月 15 22:18 root
218 drwxr-xr-x 26 root root 760 9月 7 21:50 run
15 lrwxrwxrwx 1 root root 8 8月 26 22:36 sbin -> usr/sbin
393220 drwxr-xr-x. 2 root root 4096 4月 11 12:59 srv
1 dr-xr-xr-x 13 root root 0 4月 11 12:59 sys
2097153 drwxr-xr-x 3 root root 4096 9月 15 22:18 test
393217 drwxrwxrwt. 9 root root 4096 9月 15 03:19 tmp
1048578 drwxr-xr-x. 13 root root 4096 8月 26 22:36 usr
262145 drwxr-xr-x. 19 root root 4096 8月 26 22:55 var
1441793 drwxr-xr-x 6 root root 4096 8月 26 22:39 www
ls -lt 按照修改时间排序(倒序)依次创建文件 a b
[root@iz2ze76ybn73dvwmdij06zz test] # ls -lt
总用量 0
-rw-r--r-- 1 root root 0 9月 15 22:18 b
-rw-r--r-- 1 root root 0 9月 15 22:18 a
ls -version
[root@iz2ze76ybn73dvwmdij06zz test] # ls --version
ls (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。
由Richard M. Stallman 和David MacKenzie 编写。
cat
cat -n 查看并显示行号
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat -n a
1 this is a txt
2 hello every body
3 hello world
4 hahaha
cat 创建一个空文件 b
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat >b <<EOF
> EOF
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# ls
a b
cat 清空文件内容
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat >a<<EOF
> EOF
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat a
cat 写入内容(如果原来有内容将被覆盖)
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat >a<<EOF
> today is a good day
> because off work
> hahaha
> EOF
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat a
today is a good day
because off work
hahaha
cat 同时显示多个文件内容( b中写出happy)
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat a > b
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat b
today is a good day
because off work
hahaha
追加内容 可以看到用了连个>以后内容是追加的
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat a >> b
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat b
today is a good day
because off work
hahaha
today is a good day
because off work
hahaha
cat --help (如想学习更多,可以自己动手尝试)
[root@iz2ze76ybn73dvwmdij06zz linuxdemo] # cat --help
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
-A, --show-all 等于-vET
-b, --number-nonblank 对非空输出行编号
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果没有指定文件,或者文件为"-",则从标准输入读取。
示例:
cat f - g 先输出f 的内容,然后输出标准输入的内容,最后输出g 的内容。
cat 将标准输入的内容复制到标准输出。
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告cat 的翻译错误
要获取完整文档,请运行:info coreutils 'cat invocation'
用户权限
linux角色分类
系统用户 UID:1-999(rhel7 centos7) 1-499(rhel6)
本地用户 UID:1000+(rhel7 centos7) 500+(rhel6)
linux组分类
根据账号的功能分类:
超级用户组:root GID:0
普通用户组 :
系统用户组: GID 1---999
本地用户组: GID 1000+
linux用户和组的关系
linux用户和组的相关配置文件
linux用户信息文件
cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh
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
linux密码信息文件
cat /etc/shadow
root:$6$LxE7qiaZ$ZZXf/aCO1Zqs1oOS9WDutUk9rFOq4MOoSG9IeXq2f5sduGrgfYvzOWHZmJZFGC.0Of1DjCna0M.oQZTY8r00/.:17769:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
linux组信息文件
~ cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
安装包管理基础
基于redhat
基于centos
rpm
yum
进程管理基础
进程的类型
进程的属性
-
运行 -- R
-
休眠 -- S
-
僵尸 -- Z
父子进程的关系
进程管理工具
ps: 查看进程。
top: 可以查看进程的动态信息。
kill: 杀进程。
pstree: 查看进程树。
pgrep: 搜进程。
lsof: 查看进程打开的文件。
进程管理实践
ps
a 显示所有用户的进程
r 显示运行中的进程
l 长格式输出
u 按用户名和启动时间的顺序来显示进程
f 用树形格式来显示进程
x 显示没有控制终端的进程
~ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 43364 3596 ? Ss 11月03 0:01 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 11月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/0:0H
root 7 0.0 0.0 0 0 ? S 11月03 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月03 0:05 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/1]
root 12 0.0 0.0 0 0 ? S 11月03 0:00 [migration/1]
root 13 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/1]
root 15 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/1:0H
~ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11月03 ? 00:00:01 /usr/lib/systemd/systemd --syste
root 2 0 0 11月03 ? 00:00:00 [kthreadd]
root 3 2 0 11月03 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 11月03 ? 00:00:00 [kworker/0:0H]
root 7 2 0 11月03 ? 00:00:00 [migration/0]
root 8 2 0 11月03 ? 00:00:00 [rcu_bh]
root 9 2 0 11月03 ? 00:00:05 [rcu_sched]
root 10 2 0 11月03 ? 00:00:00 [watchdog/0]
root 11 2 0 11月03 ? 00:00:00 [watchdog/1]
root 12 2 0 11月03 ? 00:00:00 [migration/1]
root 13 2 0 11月03 ? 00:00:00 [ksoftirqd/1]
root 15 2 0 11月03 ? 00:00:00 [kworker/1:0H]
root 17 2 0 11月03 ? 00:00:00 [kdevtmpfs]
root 18 2 0 11月03 ? 00:00:00 [netns]
root 19 2 0 11月03 ? 00:00:00 [khungtaskd]
root 20 2 0 11月03 ? 00:00:00 [writeback]
root 21 2 0 11月03 ? 00:00:00 [kintegrityd]
属性详解:
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
Z 僵尸进程;
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程)
~ ps aux --sort %cpu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 43364 3596 ? Ss 11月03 0:01 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 11月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/0:0H
root 7 0.0 0.0 0 0 ? S 11月03 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月03 0:05 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/1]
~ ps aux --sort -%cpu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21342 0.3 0.4 137184 17112 ? Ssl 03:24 1:16 /usr/local/aegi
root 1 0.0 0.0 43364 3596 ? Ss 11月03 0:01 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 11月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/0:0H
root 7 0.0 0.0 0 0 ? S 11月03 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月03 0:05 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/1]
root 12 0.0 0.0 0 0 ? S 11月03 0:00 [migration/1]
root 13 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/1]
top
~ top
top - 11:38:42 up 13:15, 2 users, load average: 0.01, 0.03, 0.05
Tasks: 98 total, 1 running, 97 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881688 total, 229264 free, 543932 used, 3108492 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 3026944 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 43364 3596 2340 S 0.0 0.1 0:01.79 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.14 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.33 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:05.73 rcu_sched
属性解释:
11:38:42 当前时间
up 13:15 系统运行时间,格式为时:分
2 user 当前登陆用户数量
load average: 0.01, 0.03, 0.05 系统负载,任务队列平均长度 1分钟,5分钟,15分钟前到现在的平均值。
98 total 进程总数量
1 running 正在运行的进程数量
97 sleeping 睡眠的进程数量
0 stopped 停止的进程数量
0 zombie 僵尸进程数量
%Cpu(s):
0.2 us 系统用户进程使用cpu百分比
0.0 sy 内核进程占用cpu百分比
0.0 ni 用户进程空间内改变过优先级的进程占用cpu百分比
99.8 id 空闲cpu百分比
0.0 wa 等待输入输出的cpu时间百分比
0.0 hi 硬件cpu中断占用百分比
0.0 si 软中断占用百分比
0.0 st 虚拟机占用百分比
3881688 total 物理内存总量
229264 free 空闲内存总量
543932 used 使用的物理内存总量
3108492 buff/cache 内核缓存的内存量
1049596 total 交换区总量
1049596 free 空闲交换区总量
0 used 使用的交换区总量
3026944 avail Mem 可利用的内存量
d: 不可中断的睡眠状态
r: 运行
s: 睡眠
t: 跟踪
z: 僵尸进程
kill
kill [-s signal|-p] [-q sigval] [-a] [--] pid...
kill -l [signal]
-l 列出所有信号名称
-s 指定发送信号(默认)
-u 指定用户
~ kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
~ kill -9 23423
终止
~ kill -15 22323
~ kill -u superh
proc目录
/proc ls
1 21320 21628 240 392 7 diskstats loadavg swaps
10 21342 21976 242 42 722 dma locks sys
10353 21465 21977 243 44 7561 driver mdstat sysrq-trigger
10509 21613 21978 244 442 8 execdomains meminfo sysvipc
107 21614 22 249 45 803 fb misc timer_list
11 21615 220 26 46 8179 filesystems modules timer_stats
11010 21616 22285 261 466 8307 fs mounts tty
11102 21617 22287 262 467 8327 interrupts mtrr uptime
12 21618 22361 267 469 9 iomem net version
13 21619 22363 268 476 acpi ioports pagetypeinfo vmallocinfo
14461 21620 22396 3 477 buddyinfo irq partitions vmstat
15 21621 22467 31 485 bus kallsyms sched_debug zoneinfo
17 21622 225 3198 5 cgroups kcore schedstat
18 21623 229 32 505 cmdline keys scsi
19 21624 23 33 506 consoles key-users self
2 21625 23884 336 5217 cpuinfo kmsg slabinfo
20 21626 23885 34 5515 crypto kpagecount softirqs
21 21627 24 357 65 devices kpageflags stat
free
-b, --bytes byte为单位展示
-k, --kilo k为单位展示
-m, --mega m为单位展示
-g, --giga g为单位展示
~ free -m
total used free shared buff/cache available
Mem: 3790 536 210 2 3043 2950
Swap: 1024 0 1024
~ free -h
total used free shared buff/cache available
Mem: 3.7G 538M 207M 2.4M 3.0G 2.9G
Swap: 1.0G 0B 1.0G
文件查找
概览
which : 查看执行文件的位置。
whereis : 查看可执行文件位置和相关文件。
locate : 配合数据库缓存,快速查看文件的位置。
grep : 过滤匹配,他是一个文件搜索工具。
find : 可以根据条件查看文件。
which
--all, -a 显示所有的匹配路径
~ which pwd
/usr/bin/pwd
whereis
一般不加参数使用
-b 只搜索二进制文件
-B <目录> 定义二进制文件查找路径
-m 只搜索 man 手册
-M <目录> 定义 man 手册查找路径
-s 只搜索源代码
-S <目录> 定义源代码查找路径
~ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
locate
~ ls /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db
~ ls /etc/updatedb.conf
/etc/updatedb.conf
~ ls /etc/cron.daily/mlocate
/etc/cron.daily/mlocate
~ touch shafa
~ locate shafa
~ updatedb
~ locate shafa
/root/shafa
grep
-v 取反
-i 忽略大小写
-n 输出的同时打印行号
^* 以*开头
*$ 以*结尾
^$ 空行
~ grep root /etc/passwd
root:x:0:0:root:/root:/bin/zsh
operator:x:11:0:operator:/root:/sbin/nologin
~ grep -v root /etc/passwd
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
~ grep -n www /etc/passwd
23:www:x:1000:1000::/home/www:/sbin/nologin
find
路径: 例如用 . 来表示当前目录,用 / 来表示系统根目录。
-print:显示的时候”\n”做为定界符, 换行
-print0:与xargs配套使用,以“\0”做为定界符
-name 按照文件名查找文件。“名称”
-perm 按照文件权限来查找文件。666 777 等
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-user 按照文件属主来查找文件
-atime -ctime (单位是天)
-mmin -cmin -amin(单位是分钟)
-size n [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
~ find . -name "test*"
./test.txt
./autojump/tests
./test.1
~ find . -name "test*" - print
./test.txt
./autojump/tests
./test.1
~ find . -name "test*" -print0
./test.txt./autojump/tests./test.1
-exec 这个参数后可以跟自定义shell命令
test find . -name "*.txt" - exec ls -l {} \;
-rw-r--r-- 1 root root 0 11月 4 14:56 ./xq1.txt
-rw-r--r-- 1 root root 0 11月 4 14:56 ./xq.txt
-rw-r--r-- 1 root root 0 11月 4 14:56 ./xq2.txt
test find . -name "*.txt" - exec mv {} {}.bak \;
test ls
xq1.txt.bak xq2.txt.bak xq.txt.bak
-a 并且
-o 或者
+ 高于
- 低于
test find . -name "*.sh" -o -name "*.q"
./book.q
./stop.sh
./start.sh
test find . -name "*.sh" -a -name "s*"
./stop.sh
./start.sh
test ll
总用量 12K
-rw-r--r-- 1 root root 9 11月 4 15:10 book.q
-rw-r--r-- 1 root root 13 11月 4 15:10 start.sh
-rw-r--r-- 1 root root 4 11月 4 15:10 stop.sh
-rw-r--r-- 1 root root 0 11月 4 14:56 xq1.txt.bak
-rw-r--r-- 1 root root 0 11月 4 14:56 xq2.txt.bak
-rw-r--r-- 1 root root 0 11月 4 14:56 xq.txt.bak
test find /etc/ -size +40k -a -size -50k
/etc/selinux/targeted/active/modules/100/sysadm/hll
/etc/selinux/targeted/contexts/files/file_contexts.homedirs.bin
计划任务
任务类型
任务类型对应的命令
at的使用
-l 查看任务列表
-c 查看任务详情
[root@iz2ze0ajic0vbv28hcdctpz ~] # systemctl status atd
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2018-11-13 11:50:47 CST; 1 day 9h ago
Main PID: 491 (atd)
CGroup: /system.slice/atd.service
└─491 /usr/sbin/atd -f
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Started Job spooling tools.
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Starting Job spooling tools...
[root@iz2ze0ajic0vbv28hcdctpz ~] # ls
soft
[root@iz2ze0ajic0vbv28hcdctpz ~]# at 21:17
at> mkdir sk
at> <EOT>
job 6 at Wed Nov 14 21:17:00 2018
[root@iz2ze0ajic0vbv28hcdctpz ~] # at 20:00 2018-11-19
at> mkdir happy
at> <EOT>
job 7 at Mon Nov 19 20:00:00 2018
[root@iz2ze0ajic0vbv28hcdctpz ~] # at now + 3min
at> mkdir hello
at> <EOT>
job 8 at Wed Nov 14 21:41:00 2018
[root@iz2ze0ajic0vbv28hcdctpz ~] # at 11:11 tomorrow
at> mkdir world
at> <EOT>
job 9 at Thu Nov 15 11:11:00 2018
[root@iz2ze0ajic0vbv28hcdctpz ~] # at 3:24 pm +2 days
at> mkdir new
at> <EOT>
job 11 at Fri Nov 16 15:24:00 2018
[root@iz2ze0ajic0vbv28hcdctpz ~] # atq
5 Thu Nov 15 21:11:00 2018 a root
[root@iz2ze0ajic0vbv28hcdctpz /] # at -c 7
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
XDG_SESSION_ID=243; export XDG_SESSION_ID
HOSTNAME=iz2ze0ajic0vbv28hcdctpz; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
SSH_CLIENT=113.46.167.195\ 17211\ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/0; export SSH_TTY
USER=root; export USER
MAVEN_HOME=/usr/local/apache-maven-3.6.0; export MAVEN_HOME
MAIL=/var/spool/mail/root; export MAIL
PATH=/usr/local/apache-maven-3.6.0/bin:/usr/local/jdk1.8.0_191/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
PWD=/root; export PWD
JAVA_HOME=/usr/local/jdk1.8.0_191; export JAVA_HOME
LANG=zh_CN.UTF-8; export LANG
HISTCONTROL=ignoredups; export HISTCONTROL
SHLVL=1; export SHLVL
HOME=/root; export HOME
LOGNAME=root; export LOGNAME
CLASSPATH=.:/lib/dt.jar:/lib/tools.jar; export CLASSPATH
SSH_CONNECTION=113.46.167.195\ 17211\ 172.17.187.244\ 22; export SSH_CONNECTION
LC_CTYPE=zh_CN.UTF-8; export LC_CTYPE
LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
cd /root || {
echo 'Execution directory inaccessible' >&2
exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER550b4fbb'
mkdir happy
marcinDELIMITER550b4fbb
[root@iz2ze0ajic0vbv28hcdctpz /] # atq
7 Mon Nov 19 20:00:00 2018 a root
5 Thu Nov 15 21:11:00 2018 a root
11 Fri Nov 16 15:24:00 2018 a root
9 Thu Nov 15 11:11:00 2018 a root
12 Wed Nov 14 22:11:00 2018 a root
[root@iz2ze0ajic0vbv28hcdctpz /] # atrm 12
[root@iz2ze0ajic0vbv28hcdctpz /]# atq
7 Mon Nov 19 20:00:00 2018 a root
5 Thu Nov 15 21:11:00 2018 a root
11 Fri Nov 16 15:24:00 2018 a root
9 Thu Nov 15 11:11:00 2018 a root
定时任务处理
服务启动
查看服务是否启动
[root@iz2ze0ajic0vbv28hcdctpz ~] # systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2018-11-13 11:50:47 CST; 1 day 10h ago
Main PID: 489 (crond)
CGroup: /system.slice/crond.service
└─489 /usr/sbin/crond -n
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Started Command Scheduler.
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Starting Command Scheduler...
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz crond[489]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 7...ed.)
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz crond[489]: (CRON) INFO (running with inotify support)
Hint: Some lines were ellipsized, use -l to show in full.
如果没有启动,执行
systemctl start crond
systemctl enable crond
crontab命令
crontab -u #指定用户的cron信息
crontab -l #列出当前用户下的cron服务的信息
crontab -u user -l #列出指定用户的cron服务的信息
crontab -r #删除cron服务
crontab -e #编辑cron服务
crontab -r -u user #删除指定用户的定时任务
[root@iz2ze0ajic0vbv28hcdctpz ~] # crontab -e
crontab: installing new crontab
[root@iz2ze0ajic0vbv28hcdctpz ~] # crontab -l
22 22 22 * * mkdir /linux/test
[root@iz2ze0ajic0vbv28hcdctpz ~] # crontab -r
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l
no crontab for root
[root@iz2ze0ajic0vbv28hcdctpz ~] # crontab -u qa -l
22 22 22 * * mkdir /linux/test
[root@iz2ze0ajic0vbv28hcdctpz ~] # crontab -u qa -r
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -l
no crontab for qa
系统任务
[root@iz2ze0ajic0vbv28hcdctpz ~] # ll /etc/crontab
-rw-r--r-- 1 root root 451 Nov 15 07:49 /etc/crontab
[root@iz2ze0ajic0vbv28hcdctpz ~] # cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
[root@iz2ze0ajic0vbv28hcdctpz etc] # ll cr
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab crypttab
cron.d/ 是系统自动定期需要做的任务(不是按照时,分,秒等时间周期执行的)
cron.deny 在该文件内的用户无法做计划任务
其他文件为不同周期的执行脚本。
定时任务规则
#每晚的20:30重加载nginx
30 20 * * * /usr/local/nginx/sbin/nginx -s reload
#每月1、10、15日的5:30重加载nginx
30 5 1,10,15 * * /usr/local/nginx/sbin/nginx -s reload
#每天20: 00至22 : 00之间每隔30分钟重加载nginx
0,30 20-22 * * * /usr/local/nginx/sbin/nginx -s reload
每星期六的10 : 00 pm 重加载nginx
0 22* * 6 /usr/local/nginx/sbin/nginx -s reload
#每一小时重加载一次nginx
0 */1 * * * /usr/local/nginx/sbin/nginx -s reload
expect
expect介绍
expect安装
expect使用
1.定义脚本执行使用的shell。
#!/usr/bin/expect
2.设置超时时间,单位为秒,timeout -1 为永不超时。
set timeout 2
3.壳子
spawn需要在expect环境下运行,用来传递交互指令。
4.expect命令
判断输出结果是否包含某字符串,没有立即返回,否则就等一段时间后返回,用timeout设置等待时间。
5.send
执行交互动作,将交互要执行的动作进行输入给交互指令。命令字符串结尾要加上"\r",如果出现异常等待的状态可以进行核查。
6.exp_continue
继续执行接下来的交互操作。
7.interact
执行后保持交互状态,把控制权交给控制台,如不加interact,交互完成会自动退出。
免密码通过ssh登陆服务器
batch cat sf
#!/usr/bin/expect -f
spawn ssh root@ip
expect {
"yes/no" { send "yes\r";exp_continue}
"*password:" { send "passwordstr\r" }
}
interact
batch ./35
spawn ssh root@ip
root@ip's password:
Last login: Sat Jan 5 10:15:56 2019 from 113.46.187.213
Welcome to Alibaba Cloud Elastic Compute Service !
-END-
推荐阅读
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!