• linux


    一、Linux文件系统

    1.Linux文件系统结构

    Linux目录结构的组织形式和Windows有很大的不同。首先Linux没有“盘(C盘、D盘、E盘)”的概念。已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写。

    • windows:用反斜杠""来标识目录结构

    • Linux:用斜杠"/"来区分目录结构

    windows和Linux目录结构

    登录linux后,在teminate中运行

    1
    ls /

    在Linux底下,所有的文件与目录都是由根目录开始,是目录与文件的源头,然后一个个的分支下来,如同树枝状,因此称为这种目录配置为:目录树。

    目录树的特点是什么呢?

    • 目录树的起始点是根目录(/,root);

    • 每一个目录不止能使用本地的文件系统,也可以使用网络上的文件系统,可以利用NFS服务器挂载特定目录。

    • 每一个文件在此目录树中的文件名,包含完整路径都是独一无二的。

    2.目录树的说明

    目录结构的更多说明:

    • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的可执行命令。

    • /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    • /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

    • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

    • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    1
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    • /root:该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    • /selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    • /srv:该目录存放一些服务启动之后需要提取的数据。

    • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    • /tmp:这个目录是用来存放一些临时文件的。

    • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    • /usr/bin:系统用户使用的应用程序。

    • /usr/src:内核源代码默认的放置目录。

    • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    几个重要的目录

    在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

    • /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

    • /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

    值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

    • /var: 一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

    3.文件权限

    在Linux中,一切皆文件,文件又有如下分类:

    普通文件

    目录文件

    设备文件

    管道文件

    连接文件:类似于windows下的快捷方式,链接又可以分为软链接(符号链接)和硬连接。

    文件权限

    Linux中,文件针对不同的用户提供不同的权限,

    访问用户:

    • 用户自己访问(所有者)
    • 指定用户组中的用户访问(用户组)
    • 系统中的任何用户访问(其他用户)

    访问权限

    • 读权限(r):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
    • 写权限(w):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除,移动目录内文件的权限。
    • 可执行权限(x):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

    第一个字母代表文件的类型:

    • “d”:代表文件夹
    • “-”:代表普通文件
    • “c”:代表硬件字符设备
    • “b”:代表硬件块设备
    • “s”:表示管道文件
    • “l”:代表软链接文件

    二、文件管理常用命令

    Linux中的操作莫过于命令的操作了,通过命令基本上可以操作linux中的一切内容。

    Linux中命令的格式:command [-options] [parameter1]..

    • commond:命令名,相应功能的英文单词或单词缩写
    • [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选
    • parameter1...:传递给命令的参数,可以是0个或多个

    1.查看命令帮助文档

    --help

    一般是Linux命令自带的帮助信息,并不是所有命令都自带这个选项。

    使用方法:

    1
    ls --help  # 查看ls命令的详细用法

    man命令

    man是Linux提供的一个手册,包含了绝大部分的命令,函数使用说明,该手册分成很多章节(section),使用man时可以指定不同的章节来浏览不同的内容。

    1. man各个章节的意义:
    2. standart commands(标准命令)
    3. System calls (系统调用,如open,write)
    4. Library functions(函数库,如printf,foprn)
    5. Special devices(设备文件的说明,/dev下各种设备)
    6. File formats(文件格式,如passwd)
    7. Games and toys(游戏和娱乐)
    8. Miscellaneous(杂项,惯例与协定等,例如Linux档案系统,网络协定,ASCII码,environ全局变量)
    9. Adminstrative commands(管理员命令,如ifconfig)

    man使用方式:man [选项] 命令行

    man命令提供了如下功能键:

    • 空格键:显示手册的下一页,
    • Enter键:一次滚动手册的一行
    • b:回滚一屏
    • f:前滚一屏
    • q:退出man命令
    • h:列出所有功能键
    • /word:搜索word字符串

    具体是方法:如查看ls的用法

    1
    man ls  # (1:为数字"1",代表第一个section,标准命令)

    2.文件管理相关指令

     

    序号命令对应英文作用
    1 ls list 查看当前文件夹下的内容
    2 pwd print work directory 查看当前所在文件夹
    3 cd [目录名] change diretory 切换文件夹
    4 mkdir [目录名] make directory 创建目录
    5 rmdir [空目录名] remove directory 删除空的文件夹
    6 touch [文件名] touch 如果文件不存在,新建文件
    7 rm [文件名] remove 删除指定的文件名
    8 clear clear 清空
    9 ">",">>"   输出重定向
    10 cat cat 查看或合并文件
    11 more more 分屏查看文件
    12 | 管道符 命令拼接,输出
    13 ln make links between files 建立链接文件
    14 grep grep 文本过滤
    15 find find 文件查找
    16 cp copy 拷贝文件
    17 mv move 移动文件
    18 file file 获取文件类型
    19 tar tar 归档管理
    20 gzip   文件压缩/解压
    21 zip/unzip zip/unzip 文件压缩/解压
    22 which which 查看命令位置

    文件管理常用命令详解

    ls:列表显示文件夹下内容

    • -a:显示指定目录下所有的子目录与文件,包括隐藏文件

    • -l:以列表方式显示文件的详细信息

    • -h:配合-l以人性化的方式显示文件大小

    mkdir:创建新目录

    • -p参数:【mkdir -p /home/oldboy/python】或【mkdir -p /ryxiong/{熊大,熊二,熊三}】

    rmdir:删除空目录

    • 不能删除非空目录,

    相对路径的表示法

    1
    2
    3
    4
    .   当前目录
    ..  上一层目录
    -   前一个工作目录
    ~   当前【用户】所在的家目录

    重定向输出符

    2.Linux的环境变量PATH

    同学们应该都会配置windows下的环境变量(PATH),都知道系统会按照PATH的设定,去每个PATH定义的目录下搜索可执行文件。

    那么如何查看Linux下的PATH环境变量呢?

    1
    2
    3
    echo $PATH
    echo命令是有打印的意思
    $符号后面跟上PATH,表示输出PATH的变量

    PATH(一定是大写的)这个变量是由一堆目录组成,分隔符是":"号,而不同于windows的";"号。

    修改环境变量

    第一种:零时修改环境变量,直接在teminate中执行给$PATH赋值新的路径

    1
    $PATH="/root/:/ryxiong/:/opt/"

    第二种:永久修改配置文件,/etc/profile

    1
    2
    3
    4
    vim /etc/profile
    # 文件最后加上
    $PATH="/root/:/ryxiong/:/opt/"
    :wq! # 保存退出
     
     
  • 相关阅读:
    每日一练4
    每日一练3
    每日一练2 字符串逆序输出
    每日一练1
    python全局变量
    python __file__ 与argv[0]
    python 静态方法和类方法
    常用的python库(不断更新)
    django 自定义用户user模型的三种方法
    实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)
  • 原文地址:https://www.cnblogs.com/XLHIT/p/11750615.html
Copyright © 2020-2023  润新知