Copyright@HuaHuaJiangLeetCode
EP2 运行脚本
python my_echo的运行
- 在文件开头添加
1 | #!/usr/bin/env python3 |
- 添加可执行权限
1 | chmod +x my_echo.py |
这时已经可以通过./my_echo.py
来执行了
- 去掉py后缀
1 | mv my_echo.py my_echo |
运行脚本:./my_echo hello world
- 把当前路径添加到环境变量中
1 | PATH=$PATH:$PWD |
可以在任意位置运行my_echo脚本,可以通过which my_echo
查看脚本位置
执行脚本:my_echo hello world
which python3
查询到的路径非常长,并非/usr/bin/env python3
?加入
#!/usr/bin/env python3
后,系统会在执行脚本时自动从环境变量中寻找python3的路径。这一步的意思是指定解释器
前提是已经将python3加入环境变量中
#!
#!
: shebang (SharpBang of haSHBang)- 必须放在第一行,并使用绝对路径
chmod
chmod: (Change Mode) 改变文件权限
% chmod +x foo # 增加可执行权限 / +w +r
% chmod -x foo # 移除可执行权限 / -w -r
% chmod 740 foo # 把foo权限设置为740
- Owner: 7 = 1 + 2 + 4 = 可执行 + 可写 + 可读
- Group: 4 = 4 = 可读
- Others: 0 = 没有任何权限
常见:
- 644 -rw-r–r– # default
- 755 -rwxr-xr-x
- 777 -rwxrwxrwx # 危险! use chown / chgrp instead
文件基本操作
mv: (Move) 移动文件 重命名 剪切+粘贴
- % mv hwllo.txt hello.txt # 重命名
- % mv 四六级 大学/英语/ # 移动文件夹
cp: (Copy) 复制文件
- % cp a.txt a_copy.txt # 复制单个文件
- % cp -r dir1 dir2 # 复制文件夹 -r = recursive
rm: (Remove) 删除文件 没有回收站!!!
- % rm a.txt # 删除单个文件
- % rm a.txt b.txt c.txt # 删除多个文件 / rm *.txt
- % rm -r dir1 # 递归删除dir1和所有子目录/文件
$PATH 环境变量 + which 命令
- $PATH: 以:分割的文件夹列表
从哪里去找可执行文件(按照文件夹的顺序)
- % PATH=$PATH:%PWD *# 把当前目录追加到PATH中*- % echo $PATH<figure class="highlight elixir"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">...<span class="symbol">:/Users/Augists/cmd2</span></span><br></pre></td></tr></table></figure>
which: locate a program file in user’s path
- % which my_echo
1
/Users/Augists/cmd2/my_echo
- % my_echo hello world # runs from anywhere
hello world
- % which my_echo