0%

Linux Terminal Command Run Script

Copyright@HuaHuaJiangLeetCode

EP2 运行脚本

python my_echo的运行

  1. 在文件开头添加
1
#!/usr/bin/env python3
  1. 添加可执行权限
1
chmod +x my_echo.py

这时已经可以通过./my_echo.py来执行了

  1. 去掉py后缀
1
mv my_echo.py my_echo

运行脚本:./my_echo hello world

  1. 把当前路径添加到环境变量中
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

玩转Linux命令行 - 运行脚本 - EP2

Welcome to my other publishing channels