linux 常用命令

文章内容摘自:http://www.cnblogs.com/vamei

1.chmod 设置文件执行权限,umask 改变权限 mask

$ chmod 777 ./pythontest/hello.py

$ umask 022

说明:777 代表具有所有权限,. 表示当前目录,默认为主文件夹所在目录,/ 表示根目录,.. 表示上级目录,主文件夹路径为 /home/shen

        由于目录文件中都有.和..的条目,我们可以在路径中加入.或者..来表示当前目录或者父目录,比如 /home/shen/pythontest/.. 与 /home/pythontest 等同。

        当我们创建文件的时候,比如使用touch,它会尝试将新建文件创建为权限666,也就是rw-rw-rw-。但操作系统要参照权限mask来看是否真正将文件创建为666。权限mask表示操作系统不允许设置的权限位,比如说037(----wxrwx)的权限mask意味着不允许设置设置group的wx位和other的rwx位。如果是这个权限mask的话,最终的文件权限是rw-r----- (group的w位和other的rw位被mask)。我们可以通过 $umask 022 的方式改变权限mask。

相关介绍:

        对于文件,我们可以读取(read),写入(write)和运行(execute)。读取是从已经存在的文件中获得数据。写入是向新的文件或者旧的文件写入数据。如果文件储存的是可执行的二进制码,那么它可以被载入内存,作为一个程序运行。在Linux的文件系统中,如果某个用户想对某个文件执行某一种操作,那么该用户必须拥有对该文件进行这一操作的权限。文件权限的信息保存在文件信息(metadata)中, 见下一节。

        文件附加信息 (metadata)

        文件自身包含的只有数据。文件名实际上储存在目录文件。除了这些之外,还有操作系统维护的文件附加信息,比如文件类型,文件尺寸,文件权限,文件修改时间,文件读取时间等。可以用ls命令查询文件信息($ls -l file.txt),得到如下结果:

-rw-r--r-- 1 vamei vamei 8445 Sep  8 07:33 file1.txt

         各个部分的含义如下:

    • 我们先介绍最开始的-,它表示文件类型,说明file1.txt是常规文件(如果是目录文件,则应显示d)。
    • 随后有九个字符,为rw-r--r--,它们用于表示文件权限。这九个字符分为三组,rw-, r--, r--,分别对应拥有者(owner),拥有组(owner group)和所有其他人(other)。回顾Linux开机启动,登录后,我会有一个用户身份和一个组身份, 相当于我的名片。第一组表示,如果我的名片上的用户身份证明我是该文件的拥有者,那么我就可以对该文件有读取(r),写入(w)该文件的权限,但不拥有执行(-,如果拥有执行权限,则为x)该文件的权限。第二组表示,如果我的名片上的组身份证明我所在的组是该文件的拥有组的一员,那么我有从该文件读入的权限。第三组表示,如果我的名片显示我既不是拥有者,也不是拥有组的一员,那么我只有读入的权限。当我想要进行一个读取操作时,Linux会先看我是否是拥有者下文会进一步解释拥有者和拥有组。
    • 后面的1是硬连接(hard link)数目(link count)。
    • 之后的vamei表示用户vamei是文件的拥有者(owner),文件的拥有者有权更改文件权限(比如改为rwxrwxrwx)。而后面的vamei文件的拥有组是组vamei。文件的拥有者和拥有组在文件创建时就附加在文件上(相当于给文件上锁,只有有合适名片的用户才能打开操作)。要注意,Linux有一个超级用户root (也叫做根用户),该用户拥有所有的文件。
    • 随后的8445表示文件大小,单位为字节(byte)。
    • Sep 8 07:33表示文件的上一次写入的时间(modification time)。实际上在文件附加信息中还包含有文件的上一次读取时间(access time),没有显示出来。

详细说明参照:http://www.cnblogs.com/vamei/archive/2012/09/09/2676792.html

 

2.命令行中执行 python 程序

$ python ./pythontest/hello.py

 

3.命令行中执行 python 脚本:

$ chmod 755 ./pythontest/hello.py

$ ./pythontest/hello.py

说明:以脚本方式运行时必须设置脚本文件的执行权限,且 python 脚本中必须包含 #!/usr/bin/env python 段,指定执行程序。

例 hello.py 文件以脚本方式运行时包含如下代码:

#!/usr/bin/env python
print('Hello World!')

 

4.ls 显示目录下的所有文件,ls -l 显示文件或目录的权限:

$ ls /home/shen/pythontest

$ ls -l pythontest/hello.py
-rwxrwxrwx 1 shen shen 165 4月 17 21:19 pythontest/hello.py

$ ls -l -a /home /bin

$ ls -la /home /bin

上面两个命令等价

列出/home和/bin目录下的文件,-a表示列出全部文件(即使是隐藏文件也要列出), -l表示列出每个文件的详细信息。

如果命令没有被放在默认路径中,你也可以输入绝对路径来执行

 

5.pwd 查询当前所处的工作目录

说明:Linux会在进程中,维护一个工作目录(present working directory)的变量。在 shell 中,你可以随时查询到到工作目录(在命令行输入$pwd)。这是为了省去每次都输入很长的绝对路径的麻烦。比如说我们将工作目录更改为 /home/shen ($cd /home/shen),那么此时我们再去找 hello.py 就可以省去/home/shen/ ($ls pythontest/hello.py),这样得到的路径叫相对路径(relative path),上面的 pythontest/hello.py 就是这样一个相对路径。

$ pwd

/home/shen

 

6.type 显示命令的类型:

$ type ls

$ type cd

 

7.sudo 临时以root的身份执行某条命令

$ sudo ls .

 

如何了解一个陌生的命令?

有一些命令可以用来了解某个命令本身的情况,比如这个命令的绝对路径。

$which ls

which 在默认路径中搜索命令,返回该命令的绝对路径。

$whereis ls

whereis 在相对比较大的范围搜索命令,返回该命令的绝对路径。

$whatis ls

whatis 用很简短的一句话来介绍命令。

$man ls

man 查询简明的帮助手册。对于大部分的Linux自带的命令来说,当作者编写它的时候,都会带有一个帮助文档,告诉用户怎么使用这个命令。

(man可以说是我们了解Linux最好的百科全书,它不但可以告诉你Linux自带的命令的功能,还可以查询Linux的系统文件和系统调用。如果想要深入学习Linux,就必须要懂得如何用man来查询相关文档。)

$info ls

info 查询更详细的帮助信息

 

此外,在shell中,你还可以用向上箭头来查看之前输入运行的命令。

你也可以用

$history

来查询之前在命令行的操作。

 

当一个命令运行时,你中途想要停止它时,可以用Ctrl + c。如果你只是想暂时停止,使用Ctrl + z。具体机制与信号(signal)有关,我们将在以后介绍

 

转载于:https://www.cnblogs.com/cnshen/p/3669531.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值