Linux学习(基本指令+组管理+权限管理详解)

mv


mv 移动文件 与 目录或重命名

  • 基本语法
    • mv (oldNameFile) (newNameFile):(功能描述:重命名)
    • mv (/temp/movefile) (/targetFolder):(功能描述:移动文件)
  • 应用实例
    • 案例1:将/home/aaa.txt文件重新命名为pig.txt(当前工作目录为/home)
      • mv aaa.txt pig.txt
    • 案例2:将/home/pig.txt文件移动到root目录下(当前工作目录为/home)
      • mv pig.txt /root

 cat

   cat查看文件内容,是以只读的方式

  • 基本语法
    • cat [选项] 要查看的文件
  • 常用选项
    • -n:显示行号
  • 应用实例
    • 案例1: /ect/profile文件内容,并显示行号
      • cat -n /ect/profile
  • 使用细节
    • cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令| more
      • cat -n /ect/profile | more

more

more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。

more指令中内置了若干快捷键,详见操作说明:

操作功能说明
空白键向下翻一页
Enter向下翻一行
q离开more
Ctrl+F向下滚动一屏
Ctrl+B返回上一屏
=输出当前行号
:f输出文件名和当前的行号
  • 基本语法
    • more 要查看的文件操作说明
  • 应用实例
    • 案例:采用more查看文件/etc/profile
      • more /etc/profile

less

        less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

  • 基本语法
    • less 要查看的文件
  • 操作说明
功能说明
空白键向下翻动一页
[PageDown]向下翻动一页
[PageUp]向上翻动一页
/字串向下搜寻“字串”的功能:n:向下查我;N:向上查找;
?字串向上搜寻“字串”的功能:n:向上查我;N:向下查找;
q离开less这个程序
  • 应用实例
    • 案例:采用less查看一个大文件文件
      • less /opt/金庸-射雕英雄传txt精校版.txt

29_实用指令 >重定向 和 >>追加

>输出重定向 和 >>追加

  • 基本语法

    • ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
    • Is -al >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
    • cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
    • echo “内容”>>文件
  • 应用实例

    • 案例1:将/home目录下的文件列表写入到/home/info.txt中
      • ls -l /home/ > /home/info.txt        (如果文件不存在就创建)
    • 案例2:将当前日历信息.追加到/home/mycal文件中[提示cal]
      • cal >> /home/mycal
    • 案例3:用cat覆盖文件内容
      • cat /etc/profile > c.txt

30_实用指令 echo head tail






echo

echo 输出内容到控制台。

  • 基本语法

    • echo [选项] [输出内容]
  • 应用实例

    • 案例:使用echo指令输出环境变量,输出当前的环境路径。
      • echo $PATH
    • 案例:使用echo指令输出hello,world!
      • echo "hello,world!"

head

head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

  • 基本语法
    • head 文件路径(功能描述:查看文件头10行内容)
    • head -n 5 文件路径(功能描述:查看文件头5行内容,5可以是任意行数)
  • 应用实例
    • 案例:查看/etc/profile的前面5行代码
      • head -n 5 /etc/profile

tail

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。

  • 基本语法
    • tail 文件路径(功能描述:查看文件后10行内容)
    • tail -n 5 文件路径(功能描述:查看文件后5行内容,5可以是任意行数)
    • tail -f 文件路径(功能描述:实时追踪该文档的所有更新)
  • 应用实例
    • 案例1:查看/etc/profile最后5行的代码
      • tail -n 5 /etc/profile
    • 案例2:实时监控mydate.txt,看看到文件有变化时,是否看到,实时的追加日期
      • tail -f mydate.txt

31_实用指令 ln history

ln(软链接尽量使用绝对路径)

软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

  • 基本语法
    • ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)(如果软链接名是目录路径,cd 软链接名 就能跳到目录)
  • 应用实例
  • 案例1:在/home目录下创建一个软连接linkToRoot,连接到/root目录
    • ln -s /root linkToRoot
  • 案例2:删除软连接linkToRoot
    • rm -r linkToRoot
  • 细节说明
    • 当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。

history

查看已轻执行过历史命令,也可以执行历史指令

  • 基本语法

    • history(功能描述,查看已经执行过历史命令)
  • 应用实例

    • 案例1:显示所有的历史命令
      • history
      • 案例2:显示最近使用过的10个指令。
        • history 10
      • 案例3:执行历史编号为5的指令
        • !5

33_实用指令 find locate grep 管道符

find

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

  • 基本语法

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

选项功能
-name <查询方式>按照指定的文件名查找模式查找文件
-user <用户名>查找属于指定用户名所有文件
-size <文件大小>(+n大于-n小于n等于(n为数目))按照指定的文件大小查找文件

应用实例

  • 案例1:按文件名:根据名称查找/home目录下的hello.txt文件

    • find /home -name hello.txt
  • 案例2:按拥有者:查找/opt目录下,用户名称为nobody的文件

    • find /opt -user nobody
    • 案例3:查找整个linux系统下大于、等于、小于20m的文件

      • find / -size +20M

      • find / -size 20M

      • find / -size -20M

    • 案例4:按文件名:根据名称查找/目录下的以txt结尾的文件

      • find / -name *.txt

locate

        locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

  • 基本语法

    • locate 搜索文件
  • 特别说明

    • 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
  • 应用实例

    • 案例1:请使用locate指令快速定位hello.txt文件所在目录
      • updatedb
      • locate hello.txt

grep与管道符

grep过滤查找,管道符"|",表示将前一个命令的处理结果输出传递给后面的命令处理

  • 基本语法

    • grep [选项] 查找内容源文件
  • 常用选项

选项功能
-n显示匹配行及行号。
-i忽略字母大小写
  • 应用实例
    • 案例1:请在hello.txt文件中,查找"yes”所在行,并且显示行号
      • cat hello.txt | grep -n yes

34_实用指令 压缩和解压类指令










gzip/gunzip指令

gzip用于压缩文件,gunzip用于解压的

  • 基本语法

    • gzip (文件)(功能描述:压缩文件,只能将文件压缩为*.gz文件)
    • gunzip (文件.gz)(功能描述:解压缩文件命令)
  • 应用实例

  • 案例1:gzip压缩,将/home下的hello.txt文件进行压缩
    • gzip hello.txt
  • 案例2:gunzip压缩,将/home下的hello.txt.gz文件进行解压缩
    • gunzip hello.txt.gz
  • 细节说明

    • 当我们使用gzip对文件进行压缩后,不会保留原来的文件。

zip/unzip指令

zip用于压缩文件, unzip用于解压的,这个在项目打包发布中很有用的。

  • 基本语法

    • zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
    • unzip [选项] XXX.zip (功能描述:解压缩文件)
  • zip常用选项

    • -r:递归压缩,即压缩目录unzip的常用选项
    • -d <目录>:指定解压后文件的存放目录

应用实例(有书写顺序)

  • 案例1:将/home下的所有文件进行压缩成mypackage.zip
    • zip -r mypackage.zip /home/
  • 案例2:将mypackge.zip解压到/opt/tmp目录下
    • upzip -d /opt/tmp/ mypackage.zip

tar指令

tar指令是打包指令,最后打包后的文件是.tar.gz的文件。

  • 基本语法

tar [选项] XXX.tar.gz 打包的内容(功能描述,打包目录,压缩后的文件格式.tar.gz)。

  • 选项说明
选项功能
-c产生.tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-z通过gzip支持压缩或解压缩
-x解包.tar文件
  • 应用实例
    • 案例1:压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
      • tar -zcvf a.tar.gz a1.txt a2.txt
    • 案例2:将/home的文件夹压缩成myhome.tar.gz
      • tar -zcvf myhome.tar.gz /home
    • 案例3:将a.tar.gz解压到当前目录
      • tar -zxvf a.tar.gz
    • 案例4:将myhome.tar.gz解压到/opt/temp2自录下
      • tar -zxvf myhome.tar.gz -C /opt/temp2

                        C 表示解压到指定文件中

  • 细节说明

    • 指定解压到的那个目录,事先要存在才能成功,否则会抛错。

!!!组管理以及权限管理!!!

一.用户与组的概念
1.理解linux多用户,多任务的特性
Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响,例如某台linux服务器上有4个用户,分别是root、www、ftp和mysql,在同一时间内,root用户可能在查看系统日志,管理维护系统,www用户可能在修改自己的网页程序,ftp用户可能在上传软件到服务器,mysql用户可能在执行自己的SQL查询,每个用户互不干扰,有条不紊的进行着自己的工作,而每个用户之间不能越权访问,比如www用户不能执行mysql用户的SQL查询操作,ftp用户也不能修改www用户的网页程序,因此可知,不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
2.linux下用户的角色分类
 在linux下用户是根据角色定义的,具体分为三种角色:
 超级用户:拥有对系统的最高管理权限,默认是root用户。
 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上面提到的www用户、ftp用户等。
 虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的
3.用户和组的概念
 我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
 每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。
 用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。

 17_用户管理 创建用户指定密码(root下才能使用)

     

  1. Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  2. Linux 的用户需要至少要属于一个组。

添加用户


useradd [选项] 用户名

如:useradd xm

当创建用户成功后,会自动的创建和用户同名的家目录

也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

给用户指定或者修改密码


passwd 用户名

如:passwd xm


 

18_用户管理 删除用户root下才能使用)

userdel 用户

删除用户 xm,但是要保留home目录

 

删除用户 xh 以及用户主目录

在删除用户时,我们一般不会将home目录删除的。

19_用户管理 查询用户(非root下)

查询用户

id 用户名

案例:

组 =0(root)

表示是root组

当用户不存在时,返回”无此用户”。

20_用户管理 组的管理(root权限)

类似于角色,系统可以对有共性的多个用户进行统一的管理。

增加组

groupadd 组名

删除组

groupdel 组名



增加用户时直接加上组

useradd -g 用户组 用户名

-g 作用:指定用户的用户主组,选项的值可以是用户组的id,也可以是组名

-u 作用:uid,用户的id(用户标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配,可以通过该选项自定义

-G 作用:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
 

修改用户的组

usermod -g 用户组 用户名

同useradd

-l 作用:修改用户名,新用户名在前

 usermod -l 新名 旧名

21_用户管理 用户和组的配置文件(root权限)

vim /etc/passwd文件
用户(user)的配置文件,记录用户的各种信息。
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

/etc/shadow文件
口令的配置文件(加密)
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

 
/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息。
每行含义:组名:口令:组标识号:组内用户列表。

!!!这里又系统的学习了一下管理类知识!!!

35_组管理

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

  1. 所有者
  2. 所在组
  3. 其它组
  4. 改变用户所在的组

用户家目录的概念

        /home/

        目录下有各个创建的用户对于的家目录,当用户登录时,会自动的进入到自己的家目录。

  • /home/xm
  • /home/xh
  • /home/zwj

文件/目录所有者

一般为文件的创建者谁创建了该文件,就自然的成为该文件的所有者。

  • 查看文件的所有者
    • 指令:ls -ahl   a是显示隐藏 h 所有者
    • 应用实例:创建一个组police,再创建一个用户tom,将tom放入police组,然后使用tom来创建一个文件ok.txt,看看情况如何。
      • groupadd police
      • useradd -g police tom
      • passwd tom 修改密码
      • touch ok.txt
      • ls -ahl
  • 修改文件所有者

    • 指令:chown 用户名 文件名
    • 应用案例:使用root创建一个文件apple.txt ,然后将其所有者修改成tom。
      • chown tom apple.txt

组的创建

  • 基本指令

    • groupadd 组名
  • 应用实例:

    • 创建一个组monster
      • groupadd monster
    • 创建一个用户fox ,并放入到monster组中
      • useradd -g monster fox
      • id fox

                增加用户时直接加上组

       useradd -g 用户组 用户名  

      

文件/目录所在组


        当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。

  • 查看文件/目录所在组
    • 基本指令
      • ls -ahl
    • 应用实例
  • 修改文件所在的组
    • 基本指令
      • chgrp 组名 文件名
    • 应用实例:使用root用户创建文件 orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到police组。
      • touch orange.txt
      • chgrp police orange.txt

其它组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。














改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组

  • 改变用户所在组
    • usermod -g 组名 用户名
    • usermod -d 目录名 用户名:改变该用户登陆的初始目录。
  • 应用实例
    • 创建一个土匪组(bandit)将tom这个用户从原来所在的police组,修改到 bandit(土匪)组。
      • id tom:查看tom组信息
      • groupadd bandit
      • usermod -g bandit tom
         

36_权限详细介绍

         主要指文件和目录的权限





权限的基本介绍

ls -l中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

前0~9位字符说明

  1. 第0位确定文件类型(d, -, l, c, b)
  • -:普通文件
  • l:软链接
  • c:字符设备(键盘,鼠标)
  • d:   目录
  • b:块文件,硬盘
  1. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
  2. 第4-6位确定所属组(同用户组的)拥有该文件的权限,–Group
  3. 第7-9位确定其他用户拥有该文件的权限—Other

rwx权限详解

  • rwx作用到文件
    • [r]代表可读(read):可以读取,查看
    • [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
    • [x]代表可执行(execute):可以被执行
  • rwx作用到目录
    • [r]代表可读(read):可以读取,ls查看目录内容
    • [w]代表可写(write):可以修改,目录内创建+删除+重命名目录
    • [x]代表可执行(execute):可以进入该目录

文件及目录权限实际案例

ls -中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
  • 前10个字符确定不同用户能对文件干什么
    • 第一个字符代表文件类型:文件(-),目录(d),链接(I)
    • 其余字符每3个一组(rwx)读(r)写(w)执行(x)
      • 第一组rwx:文件拥有者的权限是读、写和执行
      • 第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
      • 第三组r–:不与文件拥有者同组的其他用户的权限是读不能写和执行
    • 可用数字表示为:r=4,w=2,x=1因此rwx=4+2+1=7
  • 1:
    • 如果是文件,表示硬连接数
    • 如果是目录,表示子目录数
  • root:用户
  • root:组
  • 1213:文件大小(字节,如果是文件夹,显示4096字节
  • Feb 2 09:39:最后修改日期
  • abc:文件名

37_权限管理









修改权限-chmod

  • 基本说明:
    • 通过chmod指令,可以修改文件或者目录的权限。
  • 第一种方式:+、-、=变更权限
    • 字符意义:
      • u:所有者
      • g:所有组
      • o:其他人
      • a:所有人(u、g、o的总和)
    • 一些示例
      • chmod u=rwx,g=rx,o=x(文件目录名)
      • chmod o+w(文件目录名)  添加一个权限
      • chmod a-x(文件目录名)    减少一个权限
    • 案例演示
      • 给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
        • chmod u=rwx,g=rx,o=rw abc
      • 给abc文件的所有者除去执行的权限,增加组写的权限
        • chmod u-x,g+x abc
      • 给abc文件的所有用户添加读的权限
        • chmod a+r abc
  • 第二种方式:通过数字变更权限
    • r=4 w=2 x=1 rwx=4+2+1=7
    • (chmod u=rwx,g=rx,o=x 文件目录名)相当于 (chmod 751文件目录名)
    • 案例演示
      • 将/home/abc.txt文件的权限修改成rwxr-xr-x,使用给数字的方式实现
      • chmod 755 /home/abc.txt
         

修改文件所有者-chown

  • 基本介绍
    • chown newowner file 改变文件的所有者
    • chown newowner:newgroup file 改变文件的所有者和所有组
    • -R 如果是目录则使其下所有子文件或目录递归生效
  • 案例演示:
    • 请将/home/abc .txt 文件的所有者修改成tom
      • chown tom abc.txt
    • 请将/home/kkk 目录下所有的文件和目录的所有者都修改成tom
      • chown -R tom kkk/


修改文件所在组-chgrp

  • 基本介绍
    • chgrp newgroup fle 改变文件的所有组
  • 案例演示:
    • 请将/home/abc .txt文件的所在组修改成shaolin
      • chgrp shaolin /home/abc.txt
    • 请将/home/kkk目录下所有的文件和目录的所在组都修改成shaolin
      • chgrp -R shaolin /home/kkk
         

38_权限最佳实践

案例:警匪游戏

  1. 先用root修改xh的组
    • usermod -g police xh
  2. 使用jack给他的家目录/home/jack的所在组一个rx的权限
    • chmod g=rx jack/
  3. xh需要重新注销在到jack目录就可以操作jack的文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值