博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux学习(二)
阅读量:698 次
发布时间:2019-03-21

本文共 4588 字,大约阅读时间需要 15 分钟。

Linux

七 Linux实用指令

在Linux系统中预设了七个运行级别分别为0(关机)、1(单用户模式)、2(多用户无网络服务)、3(多用户网络服务)、4(保留级别)、5(图形化界面)、6(系统重启)。

  • 运行级别的配置文件为/etc/inittab,常用的运行级别为3和5.可以使用指令查看默认的运行级别——systemctl set-default TARGET.targetsystemctl get-default
  • 切换到指定的运行级别
    init [0123456],一般来说运行级别不为0或者6,否则系统将关机或者重启。该指令不能在远端修改,只能在服务器本地完成。

在Linux系统中存在一些帮助指令,可以帮助使用人员更好的使用指令

  • man [命令或者配置文件],可以获得帮助信息
  • help [命令],可以获取帮助指令

Linux中一切皆文件,当然也预设了很多帮助我们操作文件或者目录的指令

  • pwd,用于显示当前工作目录的绝对路径

  • ls [选项] [目录或文件],用于显示当前目录下的文件,常用参数有-a-l

  • cd [参数] 目录,表示切换到指定的目录(change directory)。特别的,cd ~或者cd表示为回到自己的家目录

  • mkdir [选项] 目录,表示创建新目录。使用参数-p为创建多级目录,如mkdir -p a/b/c/d

  • rmdir [选项] 目录,表示删除指定的空目录

  • touch 文件名,用于创建空文件。

  • cp [选项] cource dest,拷贝文件到指定目录,如cp a.txt b/。使用参数-r表示递归复制文件夹下的所有内容,如cp -r a/ b/。当目标目录下有相同的文件时会提示是否覆盖,可以使用\cp来强制复制。

  • rm [选项] 文件夹或者目录,用于删除文件或者目录。常用参数有-r-f

  • mv source dest,该指令用于移动文件夹或者目录(move),当然也可以用于重命名文件或目录,如mv a.txt b.txt

  • cat [选项] 文件,用于只读打开文件。使用参数-n可以只读时显示行号。经常与管道指令和more一同使用cat a.txt | more

  • more,该指令是基于vi编辑器的文本过滤器,将会以全屏幕的方式按页显示。内置快捷键如q=:f

  • less,该指令用于分屏查看文件内容,功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示内容时不会一次性加载整个文件,而是根据需要加载内容,对大型文件的显示效率很高。

  • >>>>指令为输出重定向指令,会将原来的文件内容覆盖;>>为输出追加指令,可以追加到文件内容的末尾。如cat a.txt >> log.outls -la > list.txt

  • echo [选项] [输出内容],该指令会输出内容到控制台,可以与>>等指令一同使用。如echo "你们好" >> hello.txt

    需要注意的是,在linux系统中有一个特殊的指令字符!,在使用该字符时会被当做历史命令行替换来处理,因此在使用的时候不能使用双引号来引入,需要使用单引号,如echo 'hello!' > hello.txt
    !指令在linux中有很多奇妙的作用,逻辑非为常用功能,如rm !(*.conf)。还有历史命令行替换的功能,如!!!1024!-5

  • head [-n] 文件名,该指令用于显示文件开头部分的内容,默认情况下会显示文档前十行的内容,使用-n表示显示文件前n行的内容。

  • tail [选项] 文件名tail指令用于输出文件末尾的内容,默认情况下会显示文件末尾10行的内容。该指令在查看日志或者输出信息时非常常用,可以使用参数-f或者-F来实时追踪文件的所有更新。

    需要注意的是,在使用vi/vim对文件进行更新时,会发现tail -f指令失效,这是因为vim编辑的原理是先将原文件删除,将编辑内容存入到swap文件中后进行覆盖。因此实际上经过vim编辑的文件已经不是原来的文件了,故tail -f会失效。但是使用tail -F就可以解决这个问题,该参数可以使tail指令对vim/vi/echo等有效

  • ln -s [原文件或者目录] [软连接名],该指令用于创建文件的软连接。软链接也叫符号链接,类似于windows中的快捷方式(当然与快捷方式还是有区别的),主要存放了其他文件的路径。当使用pwd指令时,仍然会看到软连接所在的目录。

  • history nhistory指令用于查看已经执行过的历史命令,也可以用!执行历史命令。如history 10查看历史执行的10条命令,!1001用于执行编号为1001的历史命令

Linux中包含的一些关于时间日期的指令有:

  • date,该指令用于显示当前时间,可以使用+%Y-%m-%d %H:%M:%s等给予时间格式
  • date -s,该指令还可以用于设置时间,使用参数-s,就可以设置当前系统时间,如date -s "2018-10-10 11:22:12";
  • cal [选项] (0~9999),日历指令,可以查看年月日历

在Linux中的搜索查找指令

  • find [搜索范围] [选项]

    find指令将从指定的目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示出来。

    • find [搜索范围] -name <文件名>,表示将按照指定的文件名查找模式查找文件,如find /home -name hello.txt
    • find [搜索范围] -user <用户名>,表示将按照文件所有者的查找模式查找属于该用户的所有文件,如find /home -user xiaohu
    • find [搜索范围] -size <文件大小>,表示将按照文件大小查找文件,如find /home -size +20M(表示查找大于20M的文件)
  • locate 文件名

    locate指令可以快速的定位文件的路径,它利用事先建立的系统中所有文件名称和路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度很快。但是为了保证查询结果的准确性,必须定时更新locate数据库
    由于该指令基于数据库查询,因此在第一次运行前,必须使用updatedb指定创建locate数据库
    updatedb——>lcoate hello.txt

  • grep和管道符号|

    grep指令用于过滤查找,管道指令表示将前一个命令的执行结果输出传递给后面的指令进行处理

    • grep -n表示用于显示匹配行及行号
    • grep -i表示忽略字母大小写
      cat hello.txt | grep -ni yesls -la | grep ^d

Linux系统中提供了很多指令用于压缩解压或者打包文件

  • gzipgunzip
    gzip 文件,只能将文件压缩为*.gz文件,当使用了该指令后不会保留原来的文件
    gunzip 文件.gz,表示将压缩文件解压,当使用该指令后不会保留原有的压缩文件
  • zipunzip
    该指令常用于项目打包,(使用如zip bajie.zip bajie.txt)常用参数有zip -r 目录,表示压缩目录;unzip -d 目录,表示指定解压到该目录下
  • tar
    tar指令是打包指令,需要使用一些参数完成打包解包,最终打包完成的文件为*.tar.gz。语法格式为tar [选项] xxx.tar.gz 打包内容
    • tar -c该参数表示产生.tar打包文件
    • tar -z表示使用gzip或者gunzip提供支持
    • tar -f表示指定压缩后的文件名
    • tar -v表示显示详细信息
    • tar -x表示解包.tar文件,-C表示为解包指定目录
    • 压缩多个文件为a.tar.gz
      tar -zcvf a.tar.gz a.txt b.txt
    • 将目录打包压缩
      tar -zcvf home.tar.gz /home/
    • 将包解压到当前目录下
      tar -zxvf a.tar.gz
    • 将包解压到指定目录下
      tar -zxvf a.tar.gz -C /home/home1(注意,在使用-C时目标目录必须存在,否则会失败)

八 组管理和权限管理

在Linux系统中,每个用户必须属于一个组,不能独立于组外。每个文件都有文件所有者、所在组、其他组的概念。

  • 所有者
    文件或者目录的所有者一般为文件的创建者,创建该文件的人自然就成为了该文件的所有者。使用ls -la可以查看文件的所有者,使用root权限chown 用户名 文件名指令可以修改文件所有者。
  • 所在组
    同样的,使用ls -la可以查看文件的所在组,使用chgrp 组名 文件名可以修改文件的所在组。
  • 其他组
    除文件所有者和所在组的用户外,系统其他的用户都是文件的其他组
    在添加用户时,可以使用-g参数指定将用户添加到某个组中。同样的也可以使用root权限和指令usermod -g 用户组 -d 用户初始目录来改变用户的所在组

在这里插入图片描述

如上图所示,在Linux系统中,每个文件都有着自己的权限。使用ls -l指令即可以获取到文件或者目录的权限信息。以wukong文件夹为例,进行介绍

  • drwxrwx---
    • 该串第0位用于确定文件的类型,文件类型共有五种
      • d,表示当前文件为目录
      • -,表示当前文件为普通文件
      • /,表示当前文件为软连接
      • c,表示当前文件为字符设备(键盘鼠标等)
      • b,表示当前文件为块文件、硬盘等
    • 1-3位用于确定文件所有者的权限
    • 4-6位用于确定文件所有组用户的权限
    • 7-9位用于确定其他组用户所有的权限
  • 5 wukong moster 175
    • 数字5用于表示该文件的硬链接个数,如果是目录的话则表示该目录下子目录的个数
    • wukong表示该文件的所有者为用户wukong
    • monster表示该文件的所在组为组monster
    • 数字175表示文件的大小,如果是文件是目录则该数字上限为4096
  • rwx意义解释
    rwx可以用数字代替,r为4,w为2,x为1。故rwx加和为7。
    • rwx作用于文件时
      • r表示读取查看权限
      • w表示修改权限,但这并不意味着可以删除该文件。删除一个文件的权限前提是对该文件所在目录拥有修改权限
      • x表示execute,即拥有对该文件的执行权
    • rwx作用于目录时
      • r表示读取查看权限,即可以ls查看目录内容
      • w可以修改、删除、创建、重命名目录内的文件内容
      • x表示execute,即可以进入该目录

在Linux中还可以通过很多指令修改文件的权限、所有者等信息,这就涉及到文件的权限管理了。

  • 使用chmod修改文件或者目录的权限
    • 可以使用+-=来修改(但是比较繁琐,不建议使用)
      chmod u=rwx g=rx o=x 文件目录名(u为user g为group o为other)
    • 还可以通过数字修改权限
      chmod 777 文件目录名(相当于修改为rwxrwxrwx
  • 修改文件的所有者
    使用chown newowner file来对文件的所有者进行修改,使用chown -R对目录下的所有文件进行递归修改
  • 修改文件所在组
    使用chgrp newgroup file对文件的所在组进行修改

转载地址:http://fxqez.baihongyu.com/

你可能感兴趣的文章