工欲善其事,必先利其器。无论是做哪一方面开发的程序员,都免不了和shell打交道,不管是基于Linux的服务器、开发机,还是Mac。
本文主要记录一些Shell命令的基本用法,作为参考/查询手册,随时更新、完善。更多技巧以及详细解释将后续以专题形式持续更新。
常用命令
ls
查看当前目录下的文件cd
进入某目录cd -
跳转回前一目录`cd ~` 进入当前用户个人目录
pwd
输出当前所在路径mkdir
新建文件夹touch
新建文件find
查找文件ln
建立链接du
查看目录大小`du -sh *` 带有单位显示目录信息
df
查看磁盘大小` df -h` 带有单位显示磁盘信息
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
显示网络状态信息which [command]
查看命令所在路径export [VAR]="xxx"
为系统变量赋值
alias [short]=[long]
为命令设定别名
文本操作类
这是比较重要的一节,后面会专门写文章介绍这些概念,这里只作为一个目录。
cat
查看文件内容head
查看文件头部内容tail
查看文件尾部内容more/less
分页显示文件内容grep
在文本文件中查找某个字符串|
管道> >>
重定向
包管理(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
更改文件的用户及用户组