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

时间:2022-12-27 22:28:36

作为程序猿,熟悉一些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. Qt Creator介绍

    简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...

  2. jquery的smartWizard插件使用方法

    jquery 的smartWizard插件常用在一些向导式的,按步骤的功能中,是的用户按照我们设定的步骤进行操作,这样一方面有较好的用户体验,可以将庞大的表格 数据分解成多个步骤,是的每个步骤的数据量 ...

  3. 算法设计手冊(第2版)读书笔记, Springer - The Algorithm Design Manual, 2ed Steven S.Skiena 2008

    The Algorithm Design Manual, 2ed 跳转至: 导航. 搜索 Springer - The Algorithm Design Manual, 2ed Steven S.Sk ...

  4. UVa 11621 - Small Factors

    称号:发现没有比给定数量少n的.只要2,3一个因素的数字组成. 分析:数论.贪婪,分而治之. 用两个三分球,分别代表乘法2,和繁殖3队列,队列产生的数字,原来{1}. 然后.每取两个指针相应元素*2和 ...

  5. Anti-pattern/反模式

      常见的与"直觉"相背离的anti-pattern产生的实际原因是没有深入.全面地考虑问题,即只关注到自己关心的方面,忽略了其他重要的.起相反作用的因素. 所以这个"直 ...

  6. yum安装centos系统依赖库

    安装centos系统依赖库,安装软件过程中,经常需要的一些库,可以在编译安装软件前执行如下命令: 首先更新系统(这步可以不执行) yum -y update 这种更新是全部更新,但是有时一些软件不想更 ...

  7. iOS开发——iOS国际化 APP内语言切换

    最近一个一直在迭代的老项目收到一份新的开发需求,项目需要做国际化适配,简体中文+英文.由于项目中采用了storyboard和纯代码两种布局方式,所以国际化也要同时实现.上网查了些资料,实现了更改系统语 ...

  8. HBase Bulk Loading

    将数据导入到HBase有三种方式:(1) Mapreduce,输出为TableOutputFormat.(2) 用HBase API .(3)Bulk Loading.对于大量的数据入库,第三种数据是 ...

  9. 1--STM32 ADC1与ADC2 16通道DMA采集笔记(原创)

    最近在搞ADC,网上还是很多资源的,以下为参考链接:1.对STM32 ADC单次转换模式 连续转换模式 扫描模式的理解:https://www.cnblogs.com/zhanghankui/p/51 ...

  10. 微信小程序传值以及获取值方法

    http://www.51xuediannao.com/xiaochengxu/xiaochengxu-chuanzhi.html