linux命令
命令 | 功能 |
---|---|
cd old | 进入old文件夹 |
ll -a | 当前文件列表(包含隐藏文件) |
rm -rf old | 删除old文件夹(包含子文件夹) |
mkdir old | 新建old文件夹 |
ps aux | grep node | 显示当前包含node的进程名称 |
find old -type f -name "*.l" -exec rm -f {} ; | 删除old目录下的,所有子目录中,后缀为.l的文件 |
find old -maxdepth 1 -type f -name "*.l" -exec rm -f {} ;` | 删除old目录下的,后缀为.l的文件(不涉及子目录) |
cp -r dir1/. dir2 | 将old文件夹下所有文件(包括子目录)复制到new文件夹下 |
pwd | 显示当前位置 |
sudo 命令 | 使用管理员权限来执行命令 |
cat a.txt | grep test | cat是输出一个整个文本文件。|是管道输入,把左边命令的输出作为右边命令的输入。从a.txt文件里匹配test字符串 |
unzip xxx.zip -d aaa目录 | 解压xxx.zip到aaa目录 |
ln -s 真实目录 软链接目录 | 建立软链接 |
linux的文本查看命令
共有cat,more,less,head,tail
这5个命令。
cat是输出一个整个文本文件。常这样搭配cat a.txt | grep test
,从一个文本中匹配字符串。
more命令场景是查看超长文本内容。因为more可以指定从第几行开始显示,一屏显示几行。
more +3 -4 /etc/profile
表示从第3行开始显示,一屏显示4行内容。
less
命令和more
命令功能差不多。
head -n 10 /etc/profile
命令,显示/etc/profile的前10行内容。
tail
命令是显示文本的最后几行。通常用于日志文件查看。
tail -n 5 /etc/profile
显示/etc/profile的最后5行内容。
tail -f -n 5 /var/log/syslog
显示文件 syslog 的最后5行内容并在文件内容增加后,且自动显示新增的文件内容。
获得nohup后台运行进程的PID
用nohup创建进程时,就用shell的特殊变量$!把最后一个后台进程的PID保存下来。
nohup command > logfile.txt & echo $! > pidfile.txt
需要结束进程的时候,直接进行kill。
kill -9 `cat pidfile.txt`
nohup命令
nohup 命令 >>日志文件 &
使用nohup运行程序:
- 结果默认会输出到nohup.out
- 使用Ctrl + C发送SIGINT信号,程序关闭
- 关闭session发送SIGHUP信号,程序免疫
使用&运行程序:
- 结果会输出到终端
- 使用Ctrl + C发送SIGINT信号,程序免疫
- 关闭session发送SIGHUP信号,程序关闭
使用nohup和&运行程序:
- 同时免疫SIGINT和SIGHUP信号
重定向>和>>
>
是重定向到一个文件,>>
是追加内容到文件。
两个命令都是如果文件不存在则创建文件。
1>
是标准输出重定向
2>
是标准错误重定向
> xxx.txt
标准输出重定向到xxx.txt,而标准错误会输出到控制台。
more命令
参数 | 功能 |
---|---|
空格键 | 向下滚动一屏 |
b | 向上滚动一屏 |
= | 输出当前行的行号 |
q | 退出more |
命令行交互快捷键
参数 | 功能 |
---|---|
Ctrl – a | 移到行首 |
Ctrl – e | 移到行尾 |
Alt – d | 由光标位置开始,往右删除单词。往行尾删 |
Alt – w | 由光标位置开始,往左删除单词。往行首删 |
Alt-BackSpace | 用于删除本行所有的内容 |
vim
默认进入的是normal模式。
从normal模式可以切换到其它模式。
其它模式只能按esc
切到normal模式。
normal模式
按键 | 功能 |
---|---|
esc |
进入normal模式 |
i |
进入insert模式 |
v |
进入visual line模式 |
citrl+v |
进入visual block模式 |
: |
进入命令行模式 |
$ | 将光标移到当前行的行尾 |
0(零) | 将光标移到当前行的行首 |
命令行模式
按键 | 功能 |
---|---|
q | 退出vi编辑器 |
q! | 不保存文件,退出vi编辑器 |
w | 保存文件 |
wq | 保存文件,退出vi编辑器 |
dd | 删除光标所在的行 |
x | 删除光标位置指定的字符 |
visual line模式
文本选择:
按键 | 功能 |
---|---|
h | 左选择 |
l | 右选择 |
j | 上选择 |
k | 下选择 |
^ | 选中当前行,光标位置到行首(或者使用键盘的HOME键) |
$ | 选中当前行,光标位置到行尾(或者使用键盘的END键) |
**文本编辑: **
按键 | 功能 |
---|---|
d | 剪切操作 |
y | 复制操作 |
p | 粘贴操作 |
shell bash脚本
脚本加上这一行,让系统强制使用这个路径的脚本解析器
#!/bin/bash
变量声明和控制台输出
# 变量声明
string="hello world"
# 变量输出。注意$这个符号
echo $string
# 反引号的字符串来调用linux命令,并把pwd的命令输出结果赋值给变量PWD
PWD=`pwd`
echo $PWD
选择分支结构
# 注意[]里面前后都有空格,不能省略
#-z判断字符串是否空
str=""
if [ -z $str ]; then
echo "yes"
else
echo "no"
fi
#其它比较符号: 相等(-eq)、大于(-gt)、小于(-lt)、大于等于(-ge)、小于等于(-le)
# -f 判断文件是否存在
if [ -f "./dir/a.txt" ]; then
echo "yes"
else
fi
# -d 判断目录是否存在
if [ -d "./dir/" ]; then
echo "yes"
else
fi
程序、进程(process)、线程(thread)、服务(service)的关系
程序只是一堆代码。
进程(process)是指运行中的程序。
每一个进程都有自己独立的内存空间。
一个程序可以同时启动多个进程。比如开启多个Chrome浏览器,就开启了多个Chrome进程。
一个进程可以运行多个线程(thread)。
比如一个Chrome浏览器进程包含JS引擎,UI渲染,网络通信等等线程运行。
服务(service)也是进程。
区别在于是谁启动进程。
一般的进程是由用户启动,而服务(service)由系统启动。
网友评论