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 -ef grep [字符串]` 根据字符串查找相关的进程
// 关闭与查询字符串相关全部进程
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 -pna grep [端口号]` 查看端口号相应的服务
文件
指令 用法 示例 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 文件名].py tee -a [日志文件名]` 运行 py 程序显示标准输出并追加到日志 awk -F "," '{print $1}' [csv 文件名]
提取 csv 文件的第一列 无 head -[行数] [文件名]
获取文件前行数 无
文件权限
公私钥
指令 用法 示例 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 list grep [字符串]` 查看安装与字符串相关 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.txt
pip3 生成 requirements.txt 依赖包文件 无 pip3 install -r requirements.txt
pip3 安装 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 配置文件的方式启动 uwsgi uwsgi --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 [用户名] -p
docker-mysql 登录指令 无 mysql -u [用户名] -p
mysql 登录指令 无 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/nginx
cd 到 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/bash
docker 进入容器 无 exit
docker 退出容器 无 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 全局安装过的包 无