Linux-Mac-Shell常用命令
 · 4 min read
工欲善其事,必先利其器。无论是做哪一方面开发的程序员,都免不了和shell打交道,不管是基于Linux的服务器、开发机,还是Mac。
本文主要记录一些Shell命令的基本用法,作为参考/查询手册,随时更新、完善。更多技巧以及详细解释将后续以专题形式持续更新。
命令行操作技巧
光标移动
注意:Mac系统下Terminal以及Iterm下,使用Alt相关功能,需要单独设置。
- ctrl + a移动至行首
- ctrl + e移动至行尾
- alt + f向后移动一个单词
- alt + b向前移动一个单词
- alt + 左键直接移动到点击位置
编辑
- ctrl + k删除至行尾
- ctrl + u删除至行首
- ctrl + w删除前一个单词
- ctrl + y粘贴删除的内容
应用示例:输入命令时,发现忘记在最前面输入sudo,可进行如下操作:
ctrl + u,输入sudo,ctrl + y
其他
- ctrl + x + ex,e依次输入,进入编辑器中编辑命令
- alt + .上一条命令的参数
常用命令
- ls查看当前目录下的文件
- cd进入某目录- cd -跳转回前一目录- cd ~进入当前用户个人目录
- pwd输出当前所在路径
- mkdir新建文件夹
- touch新建文件
- find查找文件
- ln建立链接
- du查看目录大小
- cal显示日历
- date显示当前日期、时间
文件传输类
- mv移动文件/重命名
- cp [File Name] [Destination]拷贝文件
- cp -R [File Name] [Destination]递归拷贝(主要用于文件夹)
- scp远程拷贝,除了需要在远程地址的目录前加入- user@host:形式的地址信息外,命令用法与copy一致
- ftp启动ftp服务。
压缩与解压缩
tar 打包压缩
-c 归档文件
-x 解压缩文件
-v 显示压缩/解压缩过程
-j bzip2压缩文件
-z gzip压缩文件
-f 使用档名
tar -cvf 只打包,不压缩
tar -zcvf 打包,并用gzip压缩
tar -jcvf 打包,并用bzip2压缩
解压缩时,只需将上述命令中c换成x即可。
系统命令类
- whoami显示当前操作用户
- hostname显示主机名
- uname显示系统信息
- top动态显示当前耗费资源最多进程信息
- ps显示瞬间进程状态- ps aux
- kill杀死进程(top/ps查看进程id后,- kill [id])
- netstat显示网络状态信息,- lsof -i :3000查看占用 3000 端口的进程
- which [command]查看命令所在路径- export [VAR]="xxx"为系统变量赋值- alias [short]=[long]为命令设定别名
- du -sh *带有单位显示目录信息
- df查看磁盘大小- df -h带有单位显示磁盘信息
- ps是Process Status的缩写,查看系统进程状态。为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用- top工具。
ps -ef用标准的格式显示进程,是比较常用的一种命令,后面管道接grep,查看确切进程状态,之后结合kill命令,杀死进程。
文本操作类
这是比较重要的一节,后面会专门写文章介绍这些概念,这里只作为一个目录。
- cat查看文件内容
- head查看文件头部内容- tail查看文件尾部内容
- more/less分页显示文件内容
- grep在文本文件中查找某个字符串
- sed管道命令,以行为单位进行处理
- awk管道命令,以列为单位进行处理
- |管道
- > >>重定向。其中,- >为覆盖,- >>为追加。
包管理(ubuntu)
此处主要介绍ubuntu包管理概念,大多数Mac用户使用Brew,原理类似,具体命令参考帮助文档即可。
sudo apt-get update 更新软件源信息
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统(慎重!!!)
sudo apt-get install 安装软件
sudo apt-get -f install   修复安装
sudo apt-get remove 删除软件
sudo apt-get remove --purge 删除软件以及配置文件
sudo apt-get autoremove 自动删除(未删除的依赖)
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
权限管理
- chmod更改权限
- chown更改文件的用户及用户组