linux后台运行nohup | 进程查看、终止 | linux基础命令记录

时间:2024-12-10 22:27:21

后台运行程序

方法一:

command &

缺点:退出终端 即退出执行命令。

  • nohup:可以记录发生日志。
  • tmux:可以保存上次的工作流。

方法二:

nohup command &
exit //输入exit命令退出终端

nohup命令递交到后台之后会出现的日志文件,该文件包含命令的执行过程。可以用以下代码指定输出的日志文件:

nohup bash  > log_out.txt 2>&1 &

假设要执行一个.sh文件,该文件的执行过程会保存至log_out.txt中。

2>&1:2表示标准错误,&1表示标准输出,即将标准错误2也存至标准输出1中,这里即存在log_out.txt文件中。

2 — stderr (standard error,标准错误输出)

1 — stdout (standard output,标准输出)

0 — stdin (standard input,标准输入)

杀死进程

kill -9 进程号

查看后台进程

查看当前终端的后台进程

job -l

查看全局后台进程

ps -aux|grep 

## a:显示所有程序 
## u:以用户为主的格式来显示 
## x:显示所有程序,不以终端机来区分

ps -ef | grep 进程号
#监控进程

查找进程

ps -def | grep 文件名
bg  %n    //将编号n的任务转为后台运行
fg  %n    //将编号n的任务转为前台运行

通配符 (*?[]{}!\)

命令行通配符

星号(*)代表匹配零个或多个字符;

问号(?)代表匹配单个字符;

中括号([])内加上数字[0-9]代表匹配 0-9 之间的单个数字的字符;

中括号([])内加上字母[abc]则是代表匹配 a、 b、 c 三个字符中的任意一个字符。

转义字符

反斜杠( \):使反斜杠后面的一个变量变为单纯的字符串。
单引号( ''):转义其中所有的变量为单纯的字符串。
双引号( ""):保留其中的变量属性,不进行转义处理。
反引号( ``):把其中的命令执行后返回结果。
 

Linux相关 命令操作

一、更改权限(chmod)

有两种更改权限的方式(符号字母/数字)。

①符号字母

# chmod [参数] filename
chmod u=rwx,g=rx,o=r text1
# 对text1文件的权限修改为用户可读写执行/组用户可读与执行/其他用户可读

# 修改text1的权限为 禁止所有用户的执行权限
chmod a-x text1

②数字

每种权限对应不同的值,按照用户、组、其他用户三部分进行赋值。

r:4        ———       w:2        ———        x:1

chmod -R 777 file
# 7=4+2+1(赋予可读、写入、执行权限)
# 777(赋予所有用户可读、写入、执行权限)
# -R参数是递归 处理目录下的所有文件以及子文件夹

二、目录管理

  • ls: list file(列出当前目录)
  • cd:change dictionary(更改目录)
  • pwd:print work dictionary(打印当前目录路径)
  • mkdir:make dictionary(创建目录)
  • rmdir:remove dictionary(删除目录)
  • cp:copy(复制目录)
  • mv:move(移动目录、或修改文件与目录的名称)
  • rm:remove(删除目录)
# ls: list file(列出当前目录)
ls [-adl]
# (参数可加可不加)-a:列出当前目录全部文件(包括隐藏);-d:列出当前目录中包含的目录名;-l:列出当前目录中文件的属性与权限等基本信息(同ll)

# cd:change dictionary(更改目录)
cd ./..
# 返回上级目录(多练练就熟悉了 这个命令很简单)

# pwd:print work dictionary(打印当前目录路径)
pwd [-P]
# (参数可加可不加)-P:列出路径的绝对位置,而非使用链接 (link) 路径

# mkdir:make dictionary(创建目录)
mkdir [-mp] dictionary_name
# (参数可加可不加)-m:配置目录权限;-p:创建多层目录
mkdir -m 744 file1 # 创建一个drwxr--r--的目录
mkdir -p file1/subfile1 # 创建新的file1文件夹,其中包含subfile1的亚文件夹

# rmdir:remove dictionary(删除空目录)
rmdir [-p] 
# (参数可加可不加)-p:递归删除指定目录及指定目录下的空目录
rmdir -p test1/subtest # 删除test1目录及其亚目录subtest(直接rmdir test会报错)

# cp:copy(复制目录或文件)
cp [-aipr] filename1 file2
# (参数可加可不加)-a:复制时尽可能保留文件所有属性;-i:若复制目标处已存在,复制时会询问是否覆盖;-p:连同文件属性一同复制(备份常用);-r:递归复制;

# mv:move(移动目录、或修改文件与目录的名称)

# rm:remove(删除目录)

三、文件内容管理

  • cat:显示文件所有内容
  • tac:从最后一行开始显示文件所有内容( tac 是 cat 的倒着写)
  • nl:显示文件所有内容+行号
  • more:按页显示文件内容()

        Space(空格):向下翻一页;Enter(回车):向下翻一行;/字符串:向下搜寻该字符串;:f:显示文档名及所在行数;q:离开;b/Ctrl+b:往回翻页(只对文件有用)

  • less:与 more 类似,但是比 more 更好的是,他可以往前翻页!

        /字符串:向下搜寻『字符串』;?字符串:向上搜寻『字符串』;n:重复前一个搜寻;N:反向重复前一个搜寻

  • head:默认查看文件前10行
  • tail:默认查看文件后10行

vi编辑器

vi filename

编辑器存在三种模式:命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。

主要记住命令模式下: i-插入字符;wq:保存;q!:放弃保存

   i   :输入(非常重要!);                                          p/P  :粘贴内容到光标下/上方;

   x   :删除光标所在字符;                                               u   :撤销上一步;

   : :底线命令模式;                                                   ctrl+r :重做上一次撤销操作;

   a   :插入;                                                                  :wq   :保存并退出;

  o/O :在光标下/上方插入新行,并输入;                   :q/:q!   :退出不保存;

  dd   :剪切当前行;                                                         yy   :复制当前行;

持续监听进程运行状态

top

 

 第一部分(任务队列信息):系统当前时间、系统的运行时间(本机己经运行 1 天 13 小时 32 分钟)、当前登录了两个用户、系统在之前 1 min/5 min/15 min的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)

第二部分(进程信息)

第三部分( CPU 信息)

 第四部分(物理内存信息)

第五部分(交换分区[swap]信息 )

  • 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
  • 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

第六部分(系统进程信息)

cut命令

cut命令用于显示/提取每行从开头算起 num1 到 num2 的文字

[option] -b/-c/-d/-f
cut -b [数字] # 以字节为单位 开始数
    -c [数字] # 以字符为单位
    -d ['分隔符类型'] [数字] # 自定义分隔符,默认为制表符。
    -f [数字] # 与-d一起使用,指定显示哪个区域。直接加数字表示提取某一列
    --complement 提取指定字段之外的列(一般与-f合用)

# 还可以指定长度范围
N-  # 从第N个字节、字符、字段到结尾;
-M  # 从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
N-M # 从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;


.
cut -b 3- filename # 打印文件中第3个字节到最后的内容

tail命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

tail -f []       # 循环读取
     -n+[数目n]  # 显示文件的尾部 n 行内容(第n行到末尾)。
     -c <数目n>  # 从文件末尾开始往前计数 n 个字节数
     –pid=PID	 # 一般与 -f 一块使用,表示在进程 ID、PID 死掉之后结束
     -v    # 显示详细的处理信息(在我看来与直接 tail filename是一样的;都是显示默认最后十行)
     -q	   # 不显示处理信息

查看文件行列

wc指令可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。 wc filename

# 查看文件有多少列
awk '{print NF}' filename | sort -nu | tail -n 1

# 查看文件有多少行 
wc -l filename

[option] 
wc -c # 统计字节数
   -m # 统计字符数
   -l # 统计行数
   -L # 显示最长一行的内容
   -w # 显示单词计数