后台运行程序
方法一:
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 # 显示单词计数