operations-cheat-sheet

Linux 操作指令

用户

指令用法示例
useradd -d /home/[用户名] -m [用户名]创建普通用户
userdel -r [用户名]删除用户
passwd [用户名]给用户设置密码

进程

指令用法示例
lsof -i:[端口号]根据端口号列出进程调用情况查看端口号 8000 的进程调用情况:lsof -i:8000
kill -HUP [进程 ID 号]重启进程重启进程 ID 号为 43389 的进程:kill -HUP 43389
kill -9 [uwsgi 进程]强制关闭进程
`ps -efgrep [字符串]`根据字符串查找相关的进程
// 关闭与查询字符串相关全部进程
kill -9 `ps -ef | grep [查询字符串] | awk '{print $2}' `

服务

指令用法示例
systemctl start [服务名]启动服务启动 neo4j 服务:systemctl start neo4j
systemctl status [服务名]检查服务状态检查 mysql 的服务状态:systemctl status mysql.service
service [服务名] stop关闭服务关闭 mysql 的服务:service mysql stop
`netstat -pnagrep [端口号]`查看端口号相应的服务

文件

指令用法示例
pwd [文件名]获取到文件的绝对路径
wc -l [文件名]获取文件行数
ls -lht查看当前目录下的文件大小
mv [原文件名] [目标文件名]重命名
grep -c [字符串] [文件名]查看文件中出现字符串的行数统计日志文件 test.log 中的"ERROR"出现的行数:grep -c 'ERROR' test.log
grep -i [字符串] [文件名]查看文件中出现字符串的行内容,不区分大小写
grep -r --include="*.py" "[字符串]" . -l当前目录及子目录下文件包含字符串的 py 脚本列表
tail -f [文件路径]动态查看文件
`tail -f [文件路径]grep -v [匹配文本]`动态查看文件且过滤显示不包含匹配文本的所有行
tar -czvf [压缩后文件名].tar.gz [文件名]压缩文件
tar -xzvf [压缩后文件名].tar.gz解压文件
sha256sum [文件名]数据传输后验证文件完整性
sudo vim /etc/hosts更改 hosts 文件
sudo chown -R [部署用户名]:[部署用户名] [项目文件夹路径]部署时,为项目文件夹赋予拥有者权限
sudo chmod -R [权限值] [项目文件夹路径]递归将项目文件夹中所有内容修改为某权限值sudo chmod -R 755 project_path
scp -P [端口号] [文件名] [用户名]@[目标 ip 地址]:[目标路径]scp 指定端口传文件
find . -ctime 1将当前目录及其子目录下所有在 1 天内修改过的文件列出来
du -h --max-depth=1 [文件夹名]查看文件夹磁盘大小
ulimit -n 128000设置系统可打开最大文件数
`python3 [python 文件名].pytee -a [日志文件名]`运行 py 程序显示标准输出并追加到日志
awk -F "," '{print $1}' [csv 文件名]提取 csv 文件的第一列
head -[行数] [文件名]获取文件前行数
文件权限
权限备注
644文件常用权限
755文件夹常用权限

公私钥

指令用法示例
cd ~/.ssh/公钥目录
ssh-keygen生成公钥
cat ~/.ssh/id_rsa.pub查看公钥
ssh-agent bash启用 ssh-agent
ssh-add id_rsa在 ssh-agent 列表中添加私钥
ssh-add -l查询 ssh-agent 列表

性能

指令用法示例
df -hl查看磁盘使用空间
htop查看资源使用情况

定时任务

指令用法示例
*/时间 * * * * cd [脚本路径] && [venv路径]/venv/bin/python3 -u [py脚本] >> [日志文件名].log 2>&1定时运行某 py 脚本,并将标准输出和标准错误输出都输出到日志文件
crontab -l直接查看定时任务的内容
sudo systemctl status cron查看 crontab 的状态
sudo systemctl start cron开启 crontab
sudo systemctl stop cron暂停 crontab

开机启动

指令用法示例
sudo vim /etc/rc.local编辑开机启动配置文件

vim 操作指令

指令用法示例
e光标定位到目前单词的末尾
b光标定位到目前单词的开始
0光标定位到一行的开始
$光标定位到一行的末尾
G光标定位到末尾一行
H光标定位到当前屏幕的第一行
M光标定位到当前屏幕的中间行
L光标定位到当前屏幕的最后一行
:[行号]光标定位到相应的行数
dd删除当前行
x删除光标后的字母
i在光标之前插入字符
I在当前行的开始插入字符
a在光标之后插入字符
A在当前行的结束插入字符
o在光标下一行新建一行并插入字符
/[正则表达式]回车后光标定位到查询的位置(n N 进行上下翻动)
u撤销上一次的操作
U撤销所有在这一行做的操作
ctrl + r重新恢复上一次的操作
:%s/[字符串 A]/[字符串 B]/g全局将字符串 A 替换为字符串 B
:set paste进入粘贴模式
:wq!sudo 仍无法修改只读文件,可用此直接覆盖

tmux 操作指令

指令用法示例
tmux开始一个新会话
tmux ls查看会话列表
tmux a -t [会话名]进入到相应名称的会话
tmux kill-session -t [会话名]删除相应名称的会话
tmux rename-window [窗口名]更改窗口名
tmux rename-session -t [原会话名] [新会话名]重命名会话名
ctrl+b d离开当前会话
ctrl+b p切换上一窗口
ctrl+b n切换下一窗口
ctrl+b c新建窗口
ctrl+b &关闭当前窗口
ctrl+b %当前面板左右一分为二,右侧新建面板
ctrl+b "当前面板上下一分为二,下侧新建面板
ctrl+b 左右方向键向左或向右切换面板
ctrl+b x删除当前面板
ctrl+b [进入翻页模式(可查看面板中上面隐藏的信息)

python3 操作指令

指令用法示例
`pip3 listgrep [字符串]`查看安装与字符串相关 pip 包的情况
python3 -m venv [虚拟环境文件夹名]创建虚拟环境
source [虚拟环境文件夹名]/bin/activate激活虚拟环境source venv/bin/activate
deactivate退出虚拟环境
pip3 install [pip 包名] -i http://pypi.douban.com/simple/pip3 第三方库安装(镜像)
python3 -m pip install [pip 包名]pip3 第三方库安装
pip3 freeze > requirements.txtpip3 生成 requirements.txt 依赖包文件
pip3 install -r requirements.txtpip3 安装 requirements.txt
python3 -m unittest xxx_test运行单元测试
pip3 install --upgrade pip升级 pip3
pip3 install virtualenv-clone -i http://pypi.douban.com/simple/ virtualenv-clone [被复制文件夹]/venv [目标文件夹]/venv复制虚拟环境

Anaconda 虚拟环境

指令用法示例
conda deactivate退出虚拟环境
conda env list显示虚拟环境列表
conda activate [虚拟环境名]进入虚拟环境
conda create -n [虚拟环境名]创建虚拟环境

uwsgi 操作指令

指令用法示例
uwsgi --ini [配置文件名].ini通过 ini 配置文件的方式启动 uwsgiuwsgi --ini aml_bj.ini
[venv路径]/venv/bin/uwsgi --ini [ini路径] --uid [用户名] --gid [用户名]用相应的用户运行 uwsgi(尽可能都使用绝对路径)

django 操作指令

指令用法示例
python3 manage.py collectstatic静态文件生成
python3 manage.py runserver [ip]:[端口号]在对应 ip 和端口号运行 django 服务python3 manage.py runserver 127.0.0.1:8000
python3 manage.py makemigrations根据 Model 的改动创建新 migrate
python3 manage.py migrate根据 migrate 文件情况将 Model 改动同步到数据库
python3 manage.py inspectdb > [app 名称]/models.py根据数据表生成 models.py 文件
python3 manage.py createsuperuser创建后台超级管理员用户
python3 manage.py shell进入 django 的 shell(可以导入 django 的函数进行执行)
python3 -m django --version查看 django 版本

iterm2 操作指令

指令用法示例
ctrl+w删除光标的前一个单词
ctrl+l清除屏幕
ctrl+a光标移到行首
ctrl+e光标移到行尾
option+左右方向键向前向后移动单词

mysql 操作指令

指令用法示例
mysql -h 127.0.0.1 -u [用户名] -pdocker-mysql 登录指令
mysql -u [用户名] -pmysql 登录指令
create database [数据库名];创建数据库
show databases;查看数据库列表
use [数据库名];使用数据库
show tables;查看数据表列表
truncate [数据表名];清空数据表
desc [数据表名];查看表结构
show create table [数据表名];查看创建表的 DDL 语句
select count(*) from [数据表名];查看数据表中记录的条数
alter table [数据表名] add [字段名] [字段类型];添加字段
alter table [数据表名] drop index [唯一约束字段名];删除字段唯一约束
alter table [数据表名] drop column [字段名];删除字段
alter table [数据表名] modify [字段名] [字段类型];修改字段类型
alter table [数据表名] add unique([唯一约束字段名]);添加字段唯一约束
alter table [数据表名] convert to character set utf8mb4;更改字符类型为 utf8mb4
create user '[用户名]'@'[主机名]' identified by '[密码]';创建用户
grant all privileges on [数据库名].* to '[用户名]'@'[主机名]'; flush privileges;授权用户拥有某个数据库全部权限
update [数据表名] set [字段名]=[更改值] where [查询字段名]=[查询字段值];更新数据表字段值
INSERT INTO [数据表名] ( [字段名 1], [字段名 2], ... ) VALUES ( [字段值 1], [字段值 2], ... );新增一条数据
INSERT IGNORE INTO [数据表名] ( [字段名 1], [字段名 2], ... ) VALUES ( [字段值 1], [字段值 2], ... );新增一条数据并忽略冲突
delete from [数据表名] where [查询字段名]=[查询字段值];删除对应记录
create table [备份表名] like [被备份表名]; insert into [备份表名] select * from [被备份表名];表备份
use information_schema; select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='[数据库名]' and table_name='[数据表名]';查看数据表存储大小
CREATE TABLE IF NOT EXISTS [临时表名] SELECT * FROM [表名] WHERE [WHERE 子句];克隆部分数据创建临时表
mysqldump -h 127.0.0.1 -u [用户名] -p [数据库名] [数据表名] > [导出数据表路径]/[文件名].sql导出数据表(在正常 shell 中执行)
source [文件名]导入数据表(在 mysql shell 中执行)
mysqldump -h 127.0.0.1 -u [用户名] -p [数据库名] > [导出数据库路径]/[文件名].sql导出数据库(在正常 shell 中执行)
select [字段名] from [数据表名] where [where 子句] into outfile '[文件路径]';查询结果导出到文件select [字段名] from [数据表名] where [where 子句] into outfile '/var/lib/mysql/[文件名].csv';
select [字段名] from [数据表名] where [另一个表的字段名] in (select [另一个表的字段名] from [另一个数据表名] where [另一个表的字段名] = [另一个表的字段值]);嵌套查询
select [字段名], count(*) from [数据表名] group by [字段名];统计字段相同出现的次数
select [字段名], group_concat([字段名 1]) from [数据表名] group by [字段名];合并字段名 1 的结果,中间用逗号隔开
rename table [初始数据表名] to [新数据表名];更改表名
drop table [要删除的数据表名];删除表
SHOW ENGINE INNODB STATUS;查看死锁日志(在 mysql 交互页面使用)
select * from [数据表名] where [重复字段名] in (select [重复字段名] from [数据表名] group by [重复字段名] having count(*)>1)查看重复记录
SELECT DISTINCT [字段名] FROM [数据表名]查找同一字段的不同属性值
ALTER TABLE [字段名] ADD INDEX [索引名] ( [索引字段名] );添加索引
show variables like '%max_connections%';查看最大连接数
set GLOBAL max_connections = [最大连接数];修改最大连接数
show processlist;查看 mysql 中的当前进程
kill [mysql 进程号]杀死 mysql 中的某进程
select [字段名], count(*) from [表名] [where 语句] group by [字段名]统计字段频数
drop database [数据库名];删除数据库

WHERE 子句

子句用法示例
where [字段名] in [元组集]IN 方式查询记录where user_name in ("Kangkang", "Jack")

nginx 操作指令

指令用法示例
nginx -t -c /etc/nginx/nginx.conf测试 nginx
vim /etc/nginx/nginx.conf配置 nginx
cd /etc/nginx/conf.d/cd 到 nginx 配置目录
service nginx start启动 nginx
service nginx restart重启 nginx
cd /var/log/nginxcd 到 nginx 日志文件目录

git 操作指令

指令用法示例
git init初始化 git
git remote add origin [git clone 链接]为初始化的 git 添加远程仓库(后 origin 即为 git clone 链接)
git checkout -b [分支名]切换分支
git checkout [想撤销的文件名]撤销对指定文件的修改(若为.,即所有已修改但未提交的文件,不包括新增的文件)
git reset HEAD [想撤销的文件名]对添加文件后的撤销
git reset --soft HEAD^Commit 的撤销(工作空间中的内容不撤销)
cd [代码所在目录] git init git remote add origin git@github.com:slowmist/[git clone 链接] git pull origin master:master git status git add [添加文件名] git commit -m "[提交备注内容]" git push -u origin master已有代码 push 到 git
git fetch --all git reset --hard origin/[分支名] git pull强制拉取并覆盖本地代码
git clone [项目 ssh 链接]克隆项目
git branch查看分支列表
git fetch origin [分支名]拉远程分支到本地
git pull origin [分支名]拉取分支代码
git diff [分支名] [分支名] --stat列出两分支文件列表的差异
git diff查看文件差异情况
git log git checkout [commit ID]切换 Commit
git add -u提交被修改和被删除文件,不包括添加文件

docker 操作指令

指令用法示例
docker pull [镜像名称]拉取镜像
docker images查看镜像列表
docker ps -a查看 docker 中的容器列表
docker start [容器 ID]启动对应的容器
docker stop [容器 ID]终止容器
docker rm [容器 ID]删除容器
docker image rm [镜像 ID]删除本地镜像(需要先删除容器)
docker run --name [运行名称] -p [主机(宿主)端口号]:[容器端口号] -d [镜像名称]启动对应的镜像docker run -it -d -p 7474:7474 -p 7687:7687 neo4j
docker logs --detail [容器 ID]查看 docker 日志
docker exec -it [容器 ID] /bin/bashdocker 进入容器
exitdocker 退出容器
docker inspect [容器 ID]查看 docker 的配置
docker cp [容器 ID]:[容器中传输文件路径] [本地接收路径]容器传输文件到本地
docker cp [本地传输路径] [容器 ID]:[容器中接收文件路径] 本地传输文件到容器

Neo4j-Cypher 操作指令

指令用法示例
CREATE INDEX ON :标签名(属性名);添加索引
:schema查看索引添加情况
MATCH (n:标签名) WHERE n.属性名="属性值" RETURN n;根据标签名和属性值筛选图数据
profile MATCH (n:标签名) WHERE n.属性名="属性值" RETURN n;查看图数据筛选执行计划
DROP INDEX 索引名删除索引

npm 操作指令

指令用法示例
npm list -g --depth 0查看 npm 全局安装过的包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值