一些常用终端命令.

分割线

通用

指令作用
cd path // cd .. // cd / // cd ~进入 指定 // 上层 // 根 // home 目录
Ctrl + L清屏
exit退出
ping测试网络通断状态
Ctrl + C停止当前任务
exit停止任务或终端
mkdir新建文件夹
cp(xcopy)/mv/rm文件(夹)复制、移动与删除
curl + URL访问 URL(可加参数,具体百度)
pwd显示当前全路径
dir/ls列出当前目录(样式不同)
cat(按参数格式)输出文件所有内容
clear清屏
echo回显,常用作文本输出
shutdown -h now / reboot关机 / 重启
ls | grep abc过滤 ls 的输出,只显示含"abc"的内容
ls | tee [-a] t.log显示 ls 输出同时[追加]输出到 t.log 里
mktemp临时创建一个 temp 文件

文件末尾追加命令

指令作用
echo 'add content'>/home/data/test.sh覆盖原文件内容
echo 'add content'>>/home/data/test.sh在末尾追加
date +"%Y-%m-%d %H:%M:%S.%N" >> keepchange.txt这种写法也可以,就是把前面当成字符串输入文件

输出重定向

指令作用
ls > ls.txt把 ls 输出内容输出到 ls.txt
>/dev/null把标准输出重定向到黑洞,相当于(1>/dev/null) 标准输入 0,标准输出 1,标准错误 2
>/dev/null 2>&1把标准错误重定向到标准输出,也就是这俩都进了黑洞
2>&1 >/dev/null把标准错误重定向到标准输出(屏幕),标准输出进黑洞

2>/dev/null 和>/dev/null 2>&1 和 2>&1>/dev/null 的区别


启动程序

同步(Synchronous)和异步(Asynchronous) 同步,就是调用某个东西时,调用方得等待这个调用返回结果才能继续往后执行。异步,和同步相反 调用方不会理解得到结果,而是在调用发出后调用者可用继续执行后续操作,被调用者通过状体来通知调用者,或者通过回掉函数来处理这个调用

  • start 异步
  • call 同步

清垃圾(?

  • 写脚本时,如果遇到两种情况:

    1. 要删除某路径下所有东西

    2. 路径是变量

    那就有可能就变成删库跑路了…


  • 比如

    1
    2
    set PATH=%1
    rm -rf %PATH%/*

  • PATH 靠调用脚本时传入的参数来定义,没传参数的话就 undefined,以至于下一行变成大名鼎鼎的

    rm -rf /*


与或-管道运算符

command1 & command2 & command3: 不论成败都会执行

command1 && command2 && command3: 左边全都执行成功/返回 0 才会执行右边的命令

command1 || command2 || command2: 左边全都执行失败/返回 1 才会执行右边的命令

command1 | command2: 把左边的命令的输出结果作为右边的命令的输入,例如 ps | grep win

分割线

CMD/PowerShell

批处理定义子程序
批处理命令之 Start 的详细用法

bat 与 shell 互转 Appendix L. Converting DOS Batch Files to Shell Scripts

指令作用
md创建目录,同 mkdir
rd删除目录,同 rm
del删除文件
cls清屏,同 clear
ipconfig查看网络配置
start + exe打开应用程序
start/explore + URL/HTML文件用默认浏览器打开
microsoft-edge:URL用 edge 打开 URL
xxx /?xxx 的帮助
  • 注意 cmd 不支持/作为路径,PowerShell 支持

分割线

Linux

指令作用
su root获取最高权限(需要输入 root 密码)
ifconfig查看网络配置
dhclientDHCP 重新配置 IP
./xxx.sh start/restart/xxx启动/重启 shell 脚本
nohup xxx.sh &不挂起执行 xxx (退出终端不影响程序运行),需要 ps/kill 杀死进程
tail -n 20 README.md输出 READMD 最后 20 行内容(默认是 10 行)
systemctl start/enable/status xxx.servicexxx 服务-开启/开机启动/状态
touch a.txt创建 a.txt 文件

Linux nohup 命令
Linux tail 命令
基于 VSCode 和 CMake 进行 C/C++开发「第一讲」linux 系统介绍


查杀进程

指令作用
ps -ef/aux显示进程(注意多个进程用’,'隔开而非空格)
kill -9 pid杀死进程
lsof -i:8080 / -i@12:34:56:78Linux 中一切皆文件,此命令可以显示指定文件信息

ps -ef 和 ps -aux 和 ps aux
Linux kill 命令
Linux 命令神器:lsof


宝塔

指令作用
/etc/init.d/bt default查看宝塔面板入口

分割线

Git

指令作用
git remote add origin 你的远程库地址添加远程
  • Git 三连
    指令作用
    git add .加入暂存区
    git commit -m "提交消息,可添加emoji😝"提交
    git push [origin(远程名字,默认是origin) master(分支名字)]推送

分割线

Docker

指令作用
docker ps [-a]列出[所有]容器
docker ps --filter "abcd / status=running筛选出含"abcd"/状态为 running 的容器
docker kill xxx关闭 xxx 容器
docker list| grep abc筛选 docker list 命令中含有 abc 字符串的结果集

分割线

Vim

指令作用
:q!如何获得一个随机字符串? >让新手退出 vim

分割线

扩展程序

5 款超级好用的命令行工具,提升你的开发效率!
推荐 18 个终端命令行工具

fzf

  • 与 grep 相似,不同点:

    • grep 是查找写死的东西,查找范围固定

    • fzf 可动态查找用户输入的内容,并且范围大

指令作用
fzf模糊查找
ls | fzf在 ls 的输出内容中查找

tldr

命令帮助文档,优化版的 man,有个类似的工具 cheat.sh,一番角逐之下我还是用的 tldr

指令
tldr cd
tldr java