作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的。 今天我们就介绍一些在linux上的文件系统结构和基本操作命令。

命令:ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip

好了,开始吧。

1.ls命令

ls == list,根据不同的选项,列举指定目录或文件的相关信息,是Unix/Linux下最常用的命令之一,cd到某一目录下后执行的第一个命令。

ls命令格式:ls [OPTION]... [FILE]...

列举文件信息(默认为当前目录)。

ls

无参数:显示当前目录下的文件和目录(隐藏文件除外)。

ls -a

-a选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件)和.目录和..目录。

ls -A

-A选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件),但不包括.目录和..目录。

ls -l

-l选项的ls命令将列举当前目录或指定目录中文件或者子目录的详细信息。

ls -l列举的信息包含7个以Tab的域:

  • 第一个域:第一个字符指明了文件类型

    • -: 普通文件;
    • d: 目录文件;
    • l: 符号链接;
    • s: socket文件;
    • b: 块设备;
    • c: 字符设备;
    • p: 管道文件。

    后面的9个字符指明了文件的访问权限:每三位指明一类用户的权限,分别是文件属主、同组用户、其它用户,权限分为读(r)、写(w)、执行(x)。

  • 第二个域:链接数。普通文件至少为1,目录至少为2(.和..);
  • 第三域:文件属主;
  • 第四域:用户组;
  • 第五域:文件大小,其中目录大小通常为块大小的整数倍;
  • 第六域:文件的最近修改日期和时间,修改文件意味着对其内文件或子目录的增添和修改;
  • 第七域:文件名

ls -t

按文件的修改时间列举文件,最近修改的在前。

ls -1

单独行列举文件。

ls -lat

组合选项,即是说,各个选项可以结合使用,除了互相排斥的选项,例如-a和-A,上面的组合就是ls -l 、ls -a、ls -t的组合

ls -lh

组合选项,-h表示文件size以人性化表示,那样就会以K、M、G为单位查看文件大小

模糊列举: 其中,*代表任意个字符(包括0个),?代表一个字符。

ls /etc/a*e

列出/etc/目录下以字母a开头且以字母e结尾的目录和文件。

ls /bin/l?

列出/bin/目录下以字母l开头的目录和文件,且目录名或文件名的长度为2.

2.chmod

变更文件或目录的权限。

说明:在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

  1. 文字设定法: chmod [who] [+ | - | =] [mode] 文件名

      命令中各选项的含义为:

      操作对象who可是下述字母中的任一个或者它们的组合:

      u 表示“用户(user)”,即文件或目录的所有者。

      g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

      o 表示“其他(others)用户”。

      a 表示“所有(all)用户”。它是系统默认值。

      操作符号可以是:

      + 添加某个权限。

      - 取消某个权限。

      = 赋予给定权限并取消其他所有权限(如果有的话)。

      设置mode所表示的权限可用下述字母的任意组合:

      r 可读。

      w 可写。

      x 可执行。

      X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

      s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

      t 保存程序的文本到交换设备上。

      u 与文件属主拥有一样的权限。

      g 与和文件属主同组的用户拥有一样的权限。

      o 与其他用户拥有一样的权限。

      文件名:以空格分开的要改变权限的文件列表,支持通配符。

      在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example

      使同组和其他用户对文件example 有读权限。

  2. 数字设定法: 我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

      例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

      数字设定法的一般形式为:

      chmod [mode] 文件名

举例说明: 为user添加读写权限:

chmod u+rw test.txt  或者 chmod  644 test.txt(假设默认的group 和 other的权限为读权限)

由于篇幅问题,先介绍 ls 和chmod 其他的后面介绍。。。

【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作的更多相关文章

  1. Step one : 熟悉Unix/Linux Shell 常见命令行 (三)

    3.学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd 端口查看 ps -- process status ps aux  观察程序所有程序 ...

  2. Step one : 熟悉Unix/Linux Shell 常见命令行 (四)

    4.了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息 了解/etc目录下的各种配置文章 /etc/hosts  主机配置文件 /etc/netwo ...

  3. Step one : 熟悉Unix/Linux Shell 常见命令行 (二)

    2.学会使用一些文本操作命令 sed -- stream editor 1. Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pat ...

  4. Step one : 熟悉Unix/Linux Shell 常见命令行 (一)

    1.文件系统结构和基本操作 ls  - - list directory contents -a/A 列出全部文件(包含隐藏文件) - i 列出inode号码 -n 查看UID and GID -d ...

  5. 【程序员技术练级】学习一门脚本语言 python(三)跟数据库打交道

    接着上一篇,该篇讲述使用python对数据库进行基本的CRUD操作,这边以sqlite3为例子,进行说明.sqlite3 是一个非常轻型的数据库,安装和使用它是非常简单的,这边就不进行讲述了. 在py ...

  6. 【程序员技术练级】学习一门脚本语言 python(二)遍历本地文件系统

    这篇将讲述怎么使用python来遍历本地文件系统,并把文件按文件大小从小到大排序的一个小例子 在这个例子中,主要会用到python内置的和OS模块的几个函数: os.walk() : 该方法用来遍历指 ...

  7. 【程序员技术练级】学习一门脚本语言 python(一)文件处理

    现在工作上主要用的语言是java,java在企业级的应用上能够发挥很好的用途,但有时候要做一个小功能时,比如批量更新文件,抓取网页等,这时候用java就显得太笨重了.因此就学习了python这门脚本语 ...

  8. J2EE程序员应该要掌握的linux知识

    J2EE程序员应该要掌握的linux知识 大型J2EE应用都在建构在linux环境下的.开发环境下我们可以通过samba映射成本地的网络驱动器,直接在windows环境下进行编程调试.但是最后的发布还 ...

  9. PowerShell_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell

    上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows   vista开始,计划要改变这种局面,于是就有 了Powershell的出现. 1.兼容shell命令 ...

随机推荐

  1. 更改SAP的字段翻译

    TC:SE63在SAP用户选择屏幕中,用鼠标选定一个栏位后按F1键,可以看到SAP对其具体解释,通常这种解释文本分为两部分,一部分为标题,一部分为正文.比如:  有时,SAP的翻译让人感觉很别扭,对于 ...

  2. SharePoint 2013 列表关于大数据的测试<二>

    1.给测试列表添加查阅项字段,100个,代码如下: 2.插入测试数据的方法,注意查阅项字段的格式,代码如下: 3.插入10w条数据,时间花费如下(不建议List[LISTNAME].Items.Add ...

  3. android tools使用方式

    我们希望在布局中显示测试的属性,而这个属性不会影响到正式代码,因此我们就需要tools这个命名空间. 首先定义:xmlns:tools="http://schemas.android.com ...

  4. Java中“==”与equals方法的区别

    1. 用“==”比较两个变量,如果两个变量是基本类型变量,且都是数值类,则值相等就返回true 如果两个变量是引用型变量,则两个对象的地址一样,即指向同一个对象,则返回true 2.equals:St ...

  5. 通过settings.db自定义Android系统默认设置

    Android的系统设置数据存放在/data/data/com.android.providers.settings/databases/settings.db 中 数据库结构如下: 数据库中的默认数 ...

  6. iOS_UITableView性能优化那些事

    UITableView在实际开发中使用频率实在是很高, 因此, UITableView的性能优化是必不可少的, 本文下面就略微总结一下UITableView性能优化那些事. 本文着重介绍具体方法, 原 ...

  7. Hierarchyid 常用操作

        ---------内置函数------------ select hierarchyid::GetRoot()--0x select hierarchyid::Parse('/1/1/') - ...

  8. js去掉字符串前后空格的五种方法

    转载 :http://www.2cto.com/kf/201204/125943.html 第一种:循环检查替换[javascript]//供使用者调用  function trim(s){  ret ...

  9. coursera机器学习笔记-神经网络,初识篇

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  10. mysql-1

    接触mysql已经一年多了,但是平时很少用到,仅限于安装部署,最近在学习运维开发,需要用到数据库,于是买了一本mysql必知必会,给自己一个两个星期的时间,学完这本书, 写这一系列的博客,就是记录学习 ...