shell常用命令
说明
编写环境:darwin(macOS, terminal), zsh
仅列出本人常用命令,详情请自行用man
查看
持续更新(大概)
基本命令
man #查看指定指令的详细用法
man ls #查看指令ls的用法
sudo #在命令前加上,获取管理员权限
cd #进入指定路径
cd .. #进入上层路径
cd folder #进入当前路径下的folder文件夹
ls #查看当前路径下的文件
ls dir #查看指定路径下的文件
pwd #输出当前路径
echo #输出字符串
echo "Hello, World!" #输出Hello, World!
> >> < #重定向
echo "Hello, world!" > file #输出并覆盖文件file
echo "Hello, World!" >> file #输出到文件file末尾
program < file #将程序program的标准输入重定向到文件file
| #管道
program1 | program2 #将program1标准输出和program2的标准输入连接起来
文件和文件夹
#特殊文件(夹)
. #当前文件夹
.. #上层文件夹
* #通配符,指所有字符串(所有文件)
mkdir #创建文件夹
mkdir folder #创建名为folder的文件夹
touch #创建文件
touch file #创建名为file的文件
cp file1 file2 #复制文件file1为file2
mv file1 file2 #移动文件file1为file2(可以用来重命名)
paste file1 file2 ... > file3 #将file1,file2...逐行合并
diff file1 file2 #比较file1和file2的不同
ln -s dir dir_ln #给文件或文件夹dir创建链接(快捷方式)到dir_ln
vim #调用自带编辑器vim来编辑文件
vim file #编辑文件file
# vim中简单指令
# i 编辑模式
# esc 退出编辑模式
# :wq保存并退出
cat #从前往后查看文件
tac #从后往前查看文件
less #查看文件
more #查看文件
rm #删除文件
-r #删除文件夹及其内容
-f #强制删除
rm file #删除文件file
rm -rf folder #强制删除文件夹folder
搜索相关
find #查找文件
find file #在当前目录下查找文件file,不进入子文件夹
find . -name file #在当前目录下查找文件file,进入子文件夹
find . -iname file #在当前目录下查找文件file,进入子文件夹,且不区分大小写
grep #查找关键词(支持正则)
grep "Hello, world!" file1 file2 ... #在列举的文件中查找Hello, world!
#留坑
进程相关
ps #查看当前控制台所属用户的进程
-e #显示系统所有进程
-f #显示更多信息
ps -ef | grep "name" #查看进程名为name的进程信息
top #动态监视系统资源
kill pid #杀死指定pid的进程
killall name #杀死进程名为name的进程
pkill name #杀死进程名为name的进程
权限相关
# 查看权限
ls -all
chmod #修改文件权限
chmod [ugoa] [+/-/=] [rwx] file #对file权限进行修改
# u:user,文件所有者 g:group,文件所属组 o:other其他人 a:所有人(默认)
# +:添加 -:删除 =:覆盖
# r:读 w:写 x:执行
chmod 777 file
# r:4 w:2 x:1 权限数字相加即可
# 三个数字分别设定user, group, other
chown, chgrp #修改文件所属用户或所属组
chown user file #将文件file所有者变更为user
chown user:group file #将文件file所有者变更为user,所属组变更为group
chgrp group file #将文件file所属组变更为group
远程相关
ssh username@host #通过ssh连接到远程服务器
scp file username@host:dir #将文件file上传到远程服务器的目录dir内
ssh-keygen -t [rsa/dsa] #生成rsa/dsa格式的ssh密钥
ssh-add dir/id_xxx #将密钥dir/id_xxx添加到ssh-agent中
ssh-add -d dir/id_xxx.pub #将密钥dir/id_xxx从ssh-agent中删除
ssh-add -D #删除ssh-agent中所有密钥
ssh-add -l #查看ssh-agent中的密钥
软件相关
# homebrew(macOS)
# 安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 使用
brew search name
brew install name
brew install name --cask
brew uninstall name
# git
git clone "xxx.git"
git push
git fetch
git pull
git remote
git remote add origin "xxx.git"
git remote set-url origin "xxx.git"