Linux下面的一些常用命令和terminal的常用快捷键整理,并不断补充
系统信息
命令 | 功能 |
---|---|
date | 显示系统日期与时间 |
cal | 显示本月月历 |
uptime | 显示开机时数 |
w | 显示在线用户列表 |
whoami | 显示目前用户名 |
uname -a | 显示系统核心信息 |
cat /proc/cpuinfo | 显示CPU信息 |
cat /proc/meminfo | 显示内存信息 |
df -h | Disk Free,显示硬盘空间信息 |
du -h | Directory Usage,以易读的方式显示目录的硬盘占用情况 |
du -sh | 跟上面一样,但不会列出所有文件,只是文件夹的整体占用,可根据通配符*来列出子文件夹 |
free -m | 显示内存与Swap区的用量 |
sudo fdisk -l | 列出所有磁盘的详细信息 |
键盘快捷键
按键 | 说明 |
---|---|
Enter | 执行命令 |
↑ | 显示前一个命令 |
Ctrl+R | 搜索执行过的命令 |
Ctrl+Z | 将执行中的命令丢到后台并暂停执行 |
Ctrl+C | 中止执行中的命令 |
Ctrl+L | 清除屏幕,同clear命令 |
命令|more | 命令输出满一页暂停,空格翻页,按q跳出 |
命令|less | 同more功能,但支持vim下的查看的命令快捷键 |
!! | 再次执行上一个命令 |
命令 !$ | 取上一个命令的参数当做此命令之参数 |
Esc + . | 显示上一命令的参数、修改后执行 |
Ctrl+A | 光标移回开头位置 |
Ctrl+E | 光标移回最后位置 |
Ctrl+U | 剪下光标前方所有文字并复制到暂存粘贴板 |
Ctrl+K | 剪下光标后方所有文字并复制到暂存粘贴板 |
Ctrl+Y | 从暂存粘贴板贴上Ctrl+U与Ctrl+K剪下的文字 |
Ctrl+T | 对调光标左侧两个字元 |
Ctrl+W | 删除光标前方的单词(Word) |
Ctrl+D | 退出Terminal,同exit命令 |
Ctrl+Shift+C | 复制选中区域的文字到粘贴板 |
Ctrl+Shift+V | 贴上粘贴板文字到Terminal里 |
选中、鼠标中键 | 先用左钮拖拉选取需要的文字后移动光标到新位置按中键 (两键鼠标则是同时按左右钮),选中文字会被复制到新位置。(linux下默认选中的文件会被复制到粘贴板中) |
查看命令手册
按键 | 说明 |
---|---|
man 命令 | 显示命令的手册内容(man=manual) |
man -k 关键字 | 显示含有关键字的手册 |
man -t 手册主题 |ps2pdf –> 手册主题.pdf | 将指定的手册输出成PDF档 |
搜索文件
命令 | 说明 |
---|---|
grep 样式 文件s | 在文件s里搜索符合样式的内容 |
grep -r 样式 目录 | 在目录里搜索符合样式的内容 |
grep 搜索字串 /dir | 由dir目录开始搜索含有搜索字串的文件 |
命令|grep 样式 | 在命令的输出里搜索符合样式的内容,如:ps aux | grep smb |
locate 文件 | 搜索符合的文件或目录;必须先用updatedb建立文件名索引。locate -b ‘\name’列出名为name的文件,没加反斜线的话,会列出所有含name的文件 |
which 可执行文件名 | 列出可执行文件名所在路径 |
find / -name 文件名 | 由根目录开始搜索文件名 |
find . -name 文件名 | 由当前目录开始搜索文件名,可以指定目录,文件名支持通配符 |
grep更多详情可以参考http://notes.maxwi.com/2016/02/19/linux-command-tools/#1
文件权限
命令 | 说明 |
---|---|
chmod 权限数值 文件 | 变更文件或目录的存取权限为指定的权限数值; 数值为3个八进位数字,依序代表用户(u)、 群组(g)与其他用户(Other)权限,每个数字 可为4(或r,表示可读read)、2(或w,表示可写 write)或1(或x,表示可执行execute)。 chmod的ch是change,mod是mode |
chmod 权限字串 文件 | 我们也可以用字串来指定权限:r、w或x, 字串前用+(加号)、-(减号)表示增加或移除, 或=(等号)直接指派权限 |
例:chmod 777 myfile 或chmod a+rwx myfile | 设定myfile的存取权限为所有人皆可读、可写、可执行 |
例:chmod 755 myfile | 第一个数字是设定用户权限具有所有权限(7=4+2+1), 第二个数字是设定群组权限具有读取与执行权限 (5=4+1),第三个数字设定其他人的权限为读取与 执行权限 |
例:chmod a+x myfile | 所有人(all)增加执行权限 |
chown usr1:user2 file | 更改文件或目录的用户及所属组 |
chmod和chown都可以跟参数-R来递归地修改文件夹及其子文件夹中的所有文件。
文件与目录相关命令
命令 | 说明 |
---|---|
ls | 显示目前所在目录的文件清单(ls=list) |
ls -l | 显示长格式以呈现更多文件信息 |
ls -al | 以长格式显示包含隐藏文件在内的所有文件 |
ls -ahl | 以长格式显示包含隐藏文件在内的所有文件,文件大小以易读的方式显示,例如mb |
ls -F | 附加文件类型,目录附加/,可执行文件附加* |
cd 目录 | 切换目录到指定的目录(cd=Change Directory) |
cd – | cd 减号;切换目录到前一个目录 |
cd ~ | 切换目录回家目录 |
mkdir [-p] 目录 | 建立目录,-p参数表示多级目录不存在时自动创建 |
pwd | 显示目前位置(pwd=print Working Directory) |
rm 文件 | 删除文件(rm=remove) |
rm -r 目录 | 删除目录 |
rm -f 文件 或 rm -rf 目录 | 强制删除文件或目录 |
cp 文件1 文件2 | 复制文件1为文件2 |
cp -r 目录1 目录2 | 递归地复制目录1及其中的文件为目录2,目录2不存在时会建立 |
mv 文件1 文件2 | 文件2不存在时是改名,文件2存在且为目录时是移动 |
ln -s 实体文件 连结名 | 建立符号连结 |
touch 文件 | 变更文件时间为目前时间 |
cat 文件 | 显示文件内容(cat=concatenate,连接) |
cat 文件1 文件2 > 文件3 | 连接文件1与文件3的内容并输出为文件3 |
more 文件 | 显示文件内容并做分页处理,通过空格翻页 |
less 文件 | 显示文件内容并做分页处理,支持vim下的查看命令快捷键 |
head 文件 | 显示文件开头10行内容 |
head -nn 文件 | 显示文件开头nn行内容 |
tail 文件 | 显示文件倒数10行内容 |
tail -nn 文件 | 显示文件倒数nn行内容 |
更符号连接可以参考这里:http://notes.maxwi.com/2016/08/03/linux-soft-hard-link/
压缩
命令 | 说明 |
---|---|
tar -cf 文件.tar 要压缩的文件… | 将指定的文件压缩到文件.tar(tar=tape archice,c=create) |
tar -xf 文件.tar | 解压缩文件.tar(x=extract) |
tar -cfz 文件.tar.gz | 把.tar文件再用GZip压缩 |
tar -xfz 文件.tar.gz | 用GZip解压缩.tar文件 |
tar -zxvf 文件.tar.gz -C dir | 用GZip解压缩.tar.gz文件到指定的目录dir |
tar -cfj 文件.tar.bz2 | 把.tar文件再用BZip2压缩 |
tar -xfj 文件.tar.bz2 | 用BZip2解压缩.tar文件 |
gzip 文件 | 将文件压缩为文件.gz |
其中tar后面可以直接接命令,而不需要-
,v表示显示命令操作过程
网络
命令 | 说明 |
---|---|
ifconfig [-a] | 列出本机启动中的的网卡信息及ip,加上-a表示所有网上 |
ip a show | 列出本机所有的网卡信息,新系统中通常用ip命令替换为ifconfig |
ping [-c n] 主机 | ping指定的主机,-c表示ping的次数,否则一直ping |
whois 网域 | 显示网域主机信息 |
dig 网域 | 显示网域的DNS信息 |
host -a 网域 | 显示网域的DNS详细信息 |
sudo netstat | 显示所有网络连接、路由表等网络信息,可配合grep使用 |
arp -an | 查看本机arp缓存 |
nmap -sP 192.168.1.0/24 | 使用nmap扫描同一子网下的所有ip |
wget 网址 | 下载网址文件 |
ssh 帐号@主机 | 用SSH登录主机 |
scp 帐号1@主机1:文件名1 帐号2@主机2:文件名2 | 用scp将主机1上的文件1拷贝到主机2上的文件2中,可省略其中一个主机,换为本地文件 |
scp -r 帐号1@主机1:文件夹1 帐号2@主机2:文件夹2 | 用scp递归地将主机1上的文件夹1及其中的内容拷贝到主机2上的文件夹2中,同样可活省其中一个主机,换为本地文件夹 |
进程管理
命令 | 说明 |
---|---|
ps | 显示工作中的所有进程 |
ps aux | 显示所有进程 |
ps aux | grep 字串 | 过滤含有字串的进程 |
top | 依CPU占用率显示进程信息,可通过按数据1键显示各核CPU的占用 |
kill 进程pid | 删除指定pid的进程 |
killall 进程名 | 删除所有指定名称的进程 |
命令 & | 命令后面跟&,让命令在后台执行 |
jobs | 查看当前后台运行的命令,及其编号 |
ctrl + z | 将当前命令暂停到后台 |
bg %jobnumber | 让指定进程号的进程在后台运行(bg=background),不跟编号则执行最后一个命令 |
fg %jobnumber | 将最近一个背景进程变更到前景(fg=foreground),不跟编号则执行最后一个任务 |
用户与组管理
其他科普内容
管道符号(|)
linux下shell中的竖线,即是unix中的航管道,其作用是command1 | command2 把第一个命令command 1执行的结果作为command2的输入传给command2
例如:
1 | $ ls -sha | sort -nr |
以易读的方式列出所有文件的大小,并按从大到小重排
ls的命令-s是列出文件大小,-h是以易读的方式显示文件大小,-a是显示所有文件。sort是排序,-n是根据字符串中的数据由小到大重新排序字符串,-r是反转排序结果。
管道支持多级级连操作
正则表达式
grep支持正则表达式的匹配,常见的比较强大的编辑器也都支持正则表达式,更多正则表达式可以参见:
http://notes.maxwi.com/categories/Regular-Expressions/
参考:
http://jdev.tw/blog/3599/linux-terminal-commands-and-shortcuts
补充并修正了原文中存在的很多问题