bash 和 powershell 常用命令集锦

个人笔记,只会列出我自己还不太熟悉的命令

Linux Shell

# 1. 后台运行命令
nohup python xxx.py &
# 也可以使用 tmux,tmux 提供的 session 功能比 nohup 更好用。

# 查找替换

## 只在目录中所有的 .py 和 .dart 文件中递归搜索字符"main()"
grep "main()" . -r --include *.{py, dart}

## 1) 全文搜索并替换
sed -i "s/pattern_str/replace_str/g" `grep "key_pattern" 'path_pattern' -rl`

## 2)文件名搜索,替换文件内容
sed -i "s/pattern_str/replace_str/g" `find . -name "pattern"`

## 3)批量转换大小写
# 将当前文件夹内,所有的 gitlab URL 都转换成小写
# \L 转小写  \U 转大写
sed -i 's@http://GITLAB.*.git@\L&@g' `find . -name pubspec*`

Powershell

powershell 的命令有一致的命名规则:谓词-名词,谓词表示动作:Get/Set/Stop/Start 等,名词指示操作对象:Service/Member/ChildItem/Command 等。
这样的命名格式使我们可以很容易地猜测到自己需要的命令的名称。

为了使用方便,powershell 还提供了一些常用命令的缩写,并且添加了大量类似 Linux 命令的别名。

还有就是,Windows 默认不区分字母大小写,日常使用可以全部小写。

# 删除文件/文件夹
remove-item xxx  -confirm
ri xxx
rm xxx
rmdir xxx

# 复制
copy-item xxx xx -r
cp -r xxx xx

# 显示工作目录
get-location
gl
pwd

# 切换工作目录
set-location xxx
sl xxx
cd xxx

# 查看环境变量
get-childitem env:
gci env:
gci env:PATH  # 查看 PATH 变量

$env:XXX="value"   # 临时设置环境变量
$env:Path += ";SomeRandomPath"  # 临时在 Path 末尾添加新路径
[Environment]::SetEnvironmentVarible("XXX", $env:XXX + ";value", [EnvironmentVariableTarget]::User)  # 修改当前用户的环境变量(永久),只对新进程有效
[Environment]::SetEnvironmentVarible("XXX", "value", [EnvironmentVariableTarget]::Machine)  # 给这台电脑设置环境变量(永久),只对新进程有效,需要管理员权限
[Environment]::SetEnvironmentVarible("XXX", $env:XXX + ";value", "User")  # target 也可用字符串指定

# 删除文件夹

# 查看命名位置(类似 Linux Shell 的 which)
get-command xxx
gcm xxx

# 通过关键字查找 powershell 命令
gcm | select-string 

# 通过关键字查找 powershell 命令和环境变量中的程序,比较慢
gcm * | select-string 

# 查看别名对应的真实命令
get-alias

# 类似 linux 的 find/ls 命令
get-childitem -Recurse -Include *.py
gci -r -i *.py

# 清空终端的输出
clear-host
clear

# 查看文件内容
get-content xx.py | more
get-content xx.py | out-host -paging
cat xx.py
gc xx.py

# 字符串搜索,不能对对象使用
# 类似 linux 的 grep 命令
cat xxx.log | select-string 
gci env: | out-string  -stream | select-string   # 需要先使用 out-string 将对象转换成 string
gci env: | where-object {$_.Name -like }

# 计算输出的行数/对象个数
gci env: | measure-object
gci env: | measure  # 这是缩写

# 查看所有进程
get-process | more
ps | more  # 别名

# 查找某进程(替代掉 tasklist)
get-process -name exp*,power*  # 使用正则查找进程
get-process | select-string   # 效果同上

# 通过 id 杀掉某进程(替代掉 taskkill)
# 也可以通过 -Name 用正则匹配进程
stop-process 
kill   # 别名

# 关机/重启
stop-computer
restart-computer

你可能感兴趣的:(bash 和 powershell 常用命令集锦)