我个人推荐smart work, 在我的team从来不鼓励加班,所以如何做高效工作呢,那就是高效利用我们的开发工具,只有熟练的使用武器才能给你减少时间上的浪费,从而带来一些时间增益。下面我这边将汇总一些常用工具快捷键,可以提高我们工作效率;
1. VIM编辑器指令汇总
2. Ubuntu常用指令和快捷键汇总
3. Docker常用指令汇总
4. IDEA常用快捷键汇总
5. VsCode常用快捷键汇总
6. Win10常用快捷键汇总
7. Chrome常用快捷键汇总
建议所有的快捷键每个季度花一个小时复习一遍,直到完全被你的手指记住~
ubuntu本身也是基于linux的内核开发,所以command指令也是从linux继承过来的,所以这篇随笔将分为两部分,一是ubuntu的指令 二是ubuntu界面端常用快捷键
1. ubuntu指令汇总
1.1 linux的目录结构
1.2 linux vim 指令
可以参考我的这篇博客: VIM编辑器指令汇总
1.3 linux 用户管理
1.3.1 用户常用指令
代码语言:javascript复制创建用户默认在 /home目录下
useradd username
创建用户并指定目录
useradd -d /xxxx username
指定和修改密码
passwd username
删除用户
userdel username
删除用户及目录
userdel -r username
查询用户信息
id username
查看当前用户
whoami
切换用户
su - username
1.3.2 用户组常用指令
代码语言:javascript复制添加用户组
groupadd xxxxx
修改用户组
usermod -g usergroup username
删除用户组
groupdel xxxxx
1.3.3 查看和用户相关文件
代码语言:javascript复制cat /etc/passwd
user的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
cat /etc/shadow
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
cat /etc/group
group的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
1.4 linux 帮助指令
代码语言:javascript复制man man
help
1.5 linux 文件目录指令
1.5.1 创建文件和目录
代码语言:javascript复制pwd - 查看目录的绝对路径
ll 或 ls - 显示当前目录所有的文件和目录
cd - 切换目录
1. cd 回到自己的家目录
2. cd .. 回到上级目录
3. cd - 切换到上一次目录
mkdir - 创建目录
1. mkdir /xxxx 创建多级目录
2. mkdir -p /xxx/xx/xx 创建多级目录
rm -rf - 删除目录
touch - 创建空文件
1.5.2 cp 和mv
代码语言:javascript复制cp - 拷贝
1. cp xx.txt /xxx 拷贝文件到目录
2. cp -r xx/xx /aa/bb 拷贝整个文件夹
3. cp -r xx/xx /aa/bb 强制覆盖不提示
mv - 移动
1. mv oldName newName 重命名
2. mv /xxx /targetFolder 移动文件或文件夹
1.5.3 查看文件
代码语言:javascript复制cat - 查看文件
1. cat aa.txt
2. cat -n 显示行号
more - 查看文件按页显示
空白键 向下翻一页
Enter 向下翻一行
= 输出当前行号
q 退出
less - 查看文件按页显示
空白键 向下翻一页
/字符 搜索字符 n-向下找 N-向上找
q 退出
echo - 输出内容
head - 查看文件开头部分
默认显示10行
-n 数字 显示多少行
tail - 查看文件尾部
默认显示10行
-n 数字 显示多少行
-数字f 实时显示并追踪多少行
1.5.4 > 和 >>
代码语言:javascript复制> - 输出重定向
>> - 追加
1. ll > a.txt 列表的内容写入文件 a.txt 中(覆盖写)
2. ll >> a.txt 列表的内容追加到文件 aa.txt 的末尾
3. cat a.txt > b.txt 将文件 a.txt 的内容覆盖到文件 b.txt
4. echo "内容">> a.txt 追加内容到a.txt
1.5.5 ln
代码语言:javascript复制ln - 软链接,类似于 windows 里的快捷方式
1. ln -s [原文件或目录] [软链接名]
2. 删除软连接用rm
1.5.6 histery
代码语言:javascript复制history - 查看执行过历史命令
1. history - 显示所有的历史命令
2. history 10 - 显示最近使用过的10个指令
3. !555 - 执行历史编号为555的指令
1.6 时间日期指令
代码语言:javascript复制date - 显示日期
cal - 显示日期
1.7 搜索指令
代码语言:javascript复制find - 从指定目录向下递归遍历其子目录
find [搜索范围] [选项]
[选项] -name 根据名称查找
[选项] -user 按拥有者查找
[选项] -size 按文件大小查找 ( n大于,-n小于,n等于, 单位有 k,M,G)
locate - 快速定位文件路径
locate file
which - 查看某个指令在哪个目录下,比如 ls 指令在哪个目录
which ls
grep - 查找内容
[选项] -n 显示匹配行及行号
[选项] -i 忽略字母大小写
grep -n "keyword" /home/aaa.txt
1.8 压缩和解压缩
1.8.1 gzip 和 gunzip
代码语言:javascript复制1. gzip 将文件压缩为*.gz 文件
gzip /home/aaa.txt
2. gunzip 文件.gz 解压缩文件命令
gunzip /home/aaa.txt.gz
1.8.2 zip 和 unzip
代码语言:javascript复制1.zip 用于压缩文件
-r:递归压缩,即压缩目录
zip -r aaa.zip /home/aaa/
2.unzip 用于解压缩
-d<目录> :指定解压后文件的存放目录
unzip -d /opt/tmp /home/aaa.zip
1.8.3 tar
代码语言:javascript复制打包后缀为.tar.gz的文件
[选项] -c 产生.tar打包文件
[选项] -v 显示详情信息
[选项] -f 值定压缩后的文件名
[选项] -z 打包时压缩
[选项] -x 解包.tar文件
1: 压缩多个文件,将 /home/aaa.txt 和 /home/bbb.txt 压缩成ccc.tar.gz
tar -zcvf ccc.tar.gz /home/aaa.txt /home/bbb.txt
2: 将/home/asd 的文件夹压缩成 asd.tar.gz
tar -zcvf asd.tar.gz /home/asd/
3:将 pc.tar.gz解压到当前目录
tar -zxvf pc.tar.gz
4: 将 asd.tar.gz解压到 /opt/tmp2 目录下
mkdir /opt/tmp2
tar -zxvf /home/asd.tar.gz -C /opt/tmp2
1.9 组管理和权限管理
1.9.1 chown
代码语言:javascript复制chown - 修改文件所有者
chown 用户名 文件/目录
chown 用户名:组名 文件/目录
-R 如果是目录 则使其下所有子文件或目录递归生效
1.请将/home/test目录下所有的文件和目录的所有者都修改成cal
chown -R cal /home/test
1.9.2 chgrp
代码语言:javascript复制 chgrp - 修改文件/目录所在的组
chgrp 组名 文件名
1.请将 /home/test 目录下所有的文件和目录的所在组都修改成 casl
chgrp -R casl /home/test
1.9.3 usermod
代码语言:javascript复制 usermod - 改变用户所在组
usermod –g 新组名 用户名
改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。
usermod –d 目录名 用户名
1.9.4 chmod
代码语言:javascript复制chmod- 修改权限
通过chmod指令,可以修改文件或者目录的权限。
第一种修改方式: 、-、= 变更权限
u:所有者
g:所有组
o:其他人
a:所有人(u、g、o 的总和)
1. chmod u=rwx,g=rx,o=x 文件/目录名
2. chmod o w 文件/目录名
3. chmod a-x 文件/目录名
1.给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
chmod u=rwx,g=rx,o=rx abc
2.给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g w abc
3.给abc文件的所有用户添加读的权限
chmod a r abc
第二种修改方式:通过数字变更权限
r=4 w=2 x=1
rwx=4 2 1=7
chmod u=rwx,g=rx,o=x 文件/目录名 相当于 chmod 751 文件/目录名
1.将/home/abc.txt 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现:
chmod 755 /home/abc.txt
1.10 linux任务调度
代码语言:javascript复制crontab [选项]
-e:编辑crontab定时任务
-l:查看crontab任务
-r:删除当前用户搜有的crontab任务
①设置任务调度文件:/etc/crontab ②设置个人任务调度,执行 crontab -e命令 ③输入任务到调度文件 如:*/1 * * * * ls -l /etc/ > /tmp/sss.txt 意思是每小时的每分钟执行 ls -l /etc/ > /tmp/sss.txt 命令
五个占位符的说明 第一个 * :每小时当中的第几分钟 第二个 * :一天当中的第几小时 第三个 * :一个月当中的第几天 第四个 * :一年当中的第几月 第五个 * :一周当中的周几 例如: 45 22 * * *:在22点45分执行命令 0 17 * * 1:没周怡的17点0分执行命令 40 4 * * 1-5:每周一到周五的凌晨4点40分执行 */10 4 * * *:每天凌晨4点,每隔10分执行一次 0 0 1,15 * 1:每月的1号和15号,每周一的0点0分执行命令
1.12 进程管理
1.12.1 ps -aux
ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数.
代码语言:javascript复制ps –aux|grep xxx
指令说明 USER:用户名称 PID:进程号 %CPU:进程占用 CPU 的百分比 %MEM:进程占用物理内存的百分比 VSZ:进程占用的虚拟内存大小(单位:KB) RSS:进程占用的物理内存大小(单位:KB) TTY:终端名称,缩写 . STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 STARTED:进程的启动时间 TIME:CPU 时间,即进程使用 CPU 的总时间 COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
1.12.2 ps -ef
ps -ef 是以全格式显示当前所有的进程 -e 显示所有进程。 -f 全格式
代码语言:javascript复制ps -ef|grep xxxx
UID:用户 ID PID:进程 ID PPID:父进程 ID C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU 时间 CMD:启动进程所用的命令和参数
1.12.3 top
top 与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程
代码语言:javascript复制top [选项]
-d 秒数 指定命令多久更新一次,默认3秒
-i 不显示闲置和僵死进程
-p 通过PID显示
交互操作说明:(在终端输入) P 以cpu使用率排序(默认) M 以内存使用率排序 N 以PID排序 q 退出top
样例 1.监视特定用户, 比如我们监控 brian 用户 输入top 回车,然后输入“u”回车,再输入用户名 样例 2:终止指定的进程, 比如我们要结束 tom 登录 输入top 回车,然后输入“k”回车,再输入要结束的进程 ID 号 样例3:指定系统状态更新的时间(每隔 10 秒自动更新), 默认是 3 秒 top -d 10
1.12.4 kill 和 killall
代码语言:javascript复制kill [选项] 进程号
killall 进程名称 (通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9 :表示强迫进程立即停止
1.12.5 pstree
代码语言:javascript复制pstree [选项] ,更加直观的来看进程信息
-p :显示进程的 PID
-u :显示进程的所属用户
1.12.6 service
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd防火墙等),因此我们又称为守护进程
代码语言:javascript复制service 服务名 [start | stop | restart | reload | status]
service 指令管理的服务在 /etc/init.d 查看
1.12.7 systemctl
设置服务的自启动状态
代码语言:javascript复制systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态, grep 可以进行过滤)
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled 服务名 (查询某个服务是否是自启动的)
1.12.8 netstat
代码语言:javascript复制netstat [选项]
-an 按一定顺序排列输出
-p 显示哪个进程在调用
netstat -anp | grep xxxx
查看tcp和udp端口 netstat -tulpn
查看端口占用 lsof -i:8888
1.13 APT管理
apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具。在 Ubuntu 下,我们可以使用 apt 命令进行软件包的安装、删除、清理等,类似于 Windows 中的软件管理工具。
代码语言:javascript复制sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包信息,如说明,大小,版本等
sudo apt-get remove package 删除包
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载包源代码
下面这四个指令也会常用到
查看端口占用 lsof -i:8888
查看tcp和udp端口 netstat -tulpn
ssh上传文件 scp -r /home/<files> <remote-username>@<remote-ip>:<remote-folder>
deb安装指令 sudo dpkg -i XXXXX
查看整个系统磁盘使用情况 df -h
产看某个目录磁盘使用情况 du -sh *
2. ubuntu界面端常用快捷键汇总
2.1 终端快捷键
代码语言:javascript复制启动终端 Ctrl Alt T
新建标签页 Ctrl Shift T
关闭标签页 Ctrl Shift W
关闭终端窗口Ctrl Shift Q
切换到第N个标签页(N=0...9)Alt N
放大窗口(包括窗口内的字体) Ctrl Shift
缩写窗口(包括窗口内的字体) Ctrl -
普通大小(阿拉伯数字 0) Ctrl 0
复制 Ctrl Shift C
粘贴 Ctrl Shift V
光标移动到行的开头 Ctrl A
光标移动到行的结尾 Ctrl E
光标移动到上一个单词的词首 Ctrl Left
光标移动到下一个单词的词尾 Ctrl Right
剪切从行的开头到光标前一个位置的所有字符 Ctrl U
剪切从光标位置到行末的所有字符 Ctrl K
粘贴ctrl u或ctrl k剪切的内容 Ctrl Y
删除光标位置的前一个单词 Ctrl W
恢复ctrl h或ctrl d或ctrl w删除的内容 Ctrl &
暂停屏幕输出 Ctrl S
继续屏幕输出 Ctrl Q
命令运行对话框 Alt F2
2.2 窗口或应用快捷键
代码语言:javascript复制关闭所有普通窗口 Win D
关闭当前窗口 Alt F4
隐藏当前窗口 Win H
切换窗口 Alt Tab
切换应用 Win Tab
直接切换窗口 Alt Esc
显示全部打开的应用 Alt F1
打开窗体菜单 Alt Space
最大化窗口 Win Up
还原窗口 Win Down
切换窗体最大与普通大小 Alt F10
当前窗口移动到屏幕左侧显示 Win Left
将当前窗口移动到屏幕右侧显示 Win Right
移动窗口 Alt F7
2.3 屏幕放大器快捷键
代码语言:javascript复制启动或关闭放大器 Alt Win 8
启动放大器后,放大 Alt Win =
启动放大器后,缩小 Alt Win -
2.4 其它快捷键
代码语言:javascript复制切换输入法 Win Space
显示应用列表 Win A
显示通知列表 Win V
登出 Ctrl Alt Delete