0%

Linux常用命令速查手册

linux命令

1.1 基础命令

  • 程序挂到后台运行
1
2
3
4
nohup python3 scala.py &    //不指定日志输出文件,程序后台运行,并且日志默认输出到nohup.out中
nohup python3 scala.py > log.file 2 >&1 & //指定日志输出文件,程序后台运行,并且日志重定向到log.file中
nohup python3 scala.py > /dev/null 2 >&1 &
//不生成日志文件(/dev/null相当于黑洞),程序后台运行
  • 进程查询
1
2
3
ps ux     //查看所有进程 
ps -a //任务管理器
ps ux grep | 'python3' //进程筛选,返回包含python3字符的进程
  • 在命令行中将一个命令的结果传给另一个命令当参数使用‘$(command)’方法
1
2
3
4
5
6
spark-submit .......... arg[0]  arg[1] //原命令语句
//现在需要获取当前日期传给以上命令当参数
spark-submit .......... $(date +%F) $(date +%F)或者
spark-submit .......... `date +%F` `date +%F`

//date +%F:获取当前时间命令,使用$(command)就可以把date方法的结果传入上述语句中

1.2 进程管理(pgrep,systemd,nohup+&,screen的区别)

1. pgrep

pgrep是首字母缩略词,代表“Process-ID Global Regular Expressions Print”。
pgrep查看当前正在运行的进程,并将与选择条件匹配的进程ID列出到stdout(屏幕)。当你想要某个进程的PID时,pgrep很方便。
例如,如果我只想知道我的nginx进程的进程ID,使用pgrep nginx将返回进程ID 值,如:

1
2
3
4
[root@vm1 ~]# pgrep nginx
71982
71984
[root@vm1 ~]#
  1. systemd

    systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。

与多数发行版使用的System V风格init相比,systemd采用了以下新技术: (1) 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能; (2) 用Cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。

  1. nohup+&

    &是指在后台运行一般在执行命令后,都会显式的在前台执行,当Ctrl+C后进程回宕掉,但是 在命令后加&,即使Ctrl+C,程序还在进行,但是,当关闭Xshell后,程序就会宕掉。

nohup是指忽略SiGHUP信号,当关掉Xshell后,程序会一直存在,但是当执行Ctrl+C后程序还是会宕掉。

  1. screen

    Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令 行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行

  1. 其他:grep

    grep是“Global Regular Expressions Print”的首字母缩写词,意为全局正则表达式打印。

grep是一个逐行扫描指定文件或文件的程序,返回包含模式的行。模式是一种表达式,它通过将字符解释为元字符来指定一组字符串。例如,星号元字符(*)被解释为“前面元素的零个或多个”。这使用户能够在grep命令中键入一系列短字符和元字符,以使计算机向我们显示哪些文件匹配的行。
一些常见的标志如下:

1
2
3
4
5
-c 用于计算成功匹配的数量而不打印实际匹配
-i 以使搜索大小写不敏感
-n 在每个匹配打印输出之前打印行号
-v 以获取正则表达式的补码(即返回行不匹配)
-l 打印带有与表达式匹配的行的文件的文件名