zoukankan      html  css  js  c++  java
  • 20210221-1 Linux命令(下)

    一、搜索命令

     

    搜索命令

    > 搜索文件

    find 目标目录 搜索参数 操作参数

    常用搜索参数如下:

        -name 文件名:根据文件名搜索文件,可以使用通配符。

        -user 用户名:属于某个用户的目录和文件。

    常用操作参数:

        ○-delete:找到后删除文件。

    【例】

        ○ [root@localhost ~]# find / -name "*.txt"搜索命令

    到 root 下寻找含有 file 的文件

    [root@localhost boot]# find /root -name "file*"

    /root/file2

    /root/file1

    /root/newdir/file1

    /root/file3

     

    如果寻找root用户创建的文件

    [root@localhost boot]# find /root -user root

    ……

    root/.local/share/keyrings/login.keyring

    /root/.local/share/keyrings/user.keystore

    /root/.esd_auth

    /root/模板

    /root/公共

    /root/文档

    /root/f1

    /root/.Xauthority

    ……

     

    > 搜索文件

    locate 参数 字符串

    用于定位文件,找到后显示完整路径

    常用参数有:

    -i:忽略大小写。

    -c:显示符合条件的文件数量。

    【例】

        ○ [root@localhost ~]# locate hi.txt

        ○ [root@localhost ~]# updatedb搜索命令

    locate 的查找速度特别快,和find不同,locate相当于有一本书,从目录里翻章节,就会很快,当把某一章节写完后 ,需要添加到目录里才能够存在

    所以或者重启计算机,或者等半个小时以上,或者直接用命令 updatedb,这样才能把新创建的文件写入“目录”

    [root@localhost ~]# locate file3

    [root@localhost ~]# updatedb

    [root@localhost ~]# locate file3

    /root/file3

     

    -i 忽略大小写

    [root@localhost ~]# locate file3

    /root/file3

    [root@localhost ~]# locate File3

    /root/File3

    [root@localhost ~]# locate -i file3

    /root/File3

    /root/file3

     

    -c 显示文件数量

    [root@localhost ~]# locate -ic file3

    2

    [root@localhost ~]# locate -c file3

    1

     

    > 在文件中搜索文本

    grep命令

    前面的 find 和 locate 搜索的都是文件名,grep搜索的是文件内容

        ○ 在文件中搜索文本需要使用grep来实现。

        ○ 格式:grep 参数 字符串 文件名

    常用参数即含义如下:

    无参:显示匹配行

    [root@localhost ~]# grep "b" file3

    b

    abcd

    b

    abc

    -c:显示匹配行数 (显示符合查询条件的行数)

    [root@localhost ~]# grep -c "b" file3

    4

    -e 字符串:匹配特殊字符串,如-开头

    -i:忽略大小写

    -v:输出不匹配行

    在goods.txt中查找有5的行

        ○ [root@localhost ~]# grep "5" goods.txt

    在goods.txt中查找有5的行共有几行

        ○ [root@localhost ~]# grep "5" goods.txt搜索命令

     

    > 在文件中搜索文本

    正则表达式

    正则表达式(regular expression)描述了一种字符串匹配的模式,用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

    正则表达式是由普通字符(如字符a到z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配

    [root@localhost ~]# grep "[Ss]ample" regular.txt搜索命令

    []里的字母表示,匹配S可以,匹配s也可以,linux本身是区分大小写的,[Ss]这样就不会区分大小写了

    [root@localhost ~]# grep "[Bb]ab" file3

    Bab

    bab

     

    正则表达式的匹配点

    ^:以其后的字符串开头的行。

    匹配开头是 B,后面是ab的,第二行的 bab 找到了是因为找的是 ab 的值

    [root@localhost ~]# grep "[^B]ab" file3

    Bab abc

    abc bab

    $:以其前的字符串结束的行。

    .:匹配单个字符。

    *:其前字符串出现(重复)0次或多次。

    *代表匹配多个,.代表匹配单个

    [ ]:从中必取且任取一个。 表示取任意一个值

    :转义。

    [root@localhost ~]# grep "^B" file3

     

    Bab abc

     

    [root@localhost ~]# grep "c$" file3

    Bab abc

    abc

    abc

     

    一些示例

    [root@localhost ~]# cat file3

    a

    1231231231231231231231232123123123

     

    41234

     

    aooooo

    booooooo

    cooooooooooo

    dooo

    Bab abc

    abc bab

    abc

    123123123123123123213123123123123

     

    41234

     

    a

    b

    abc

     

    找至少连续 5 个o

    [root@localhost ~]# grep "o{5}" file3

    aooooo

    booooooo

    cooooooooooo

     

    [root@localhost ~]# grep "o{5,}" file3

    aooooo

    booooooo

    cooooooooooo

    这个代表的是,五个o以上的都能选到

     

    [root@localhost ~]# grep "o{5,10}" file3

    aooooo

    booooooo

    cooooooooooo

     

    前面的是正则表达式的基础字符串,后面的是扩展字符串

    > 在文件中搜索文本

    正则表达式

        ○ 扩展字符集如下,主要用于egrep和grep -E命令。

           ○ +:匹配之前的字符串一次或多次。

           ○ ?:匹配之前的字符串0次或1次。

           ○ |:“或”操作。

    【例】

    [root@localhost ~]# grep “love(able|rs)(ov)+” regular.txt

    [root@localhost ~]# grep -E “love(able|rs)(ov)+” regular.txt

     

    二、用户管理

     

    文件和目录权限管理

    > 用户管理

    在Linux中,根用户(即root账户,类似Windows系统中的Admin账户)具有系统最高的权限,可以进行任何操作,如果在使用这个账号时,出现一个错误操作,就有可能使系统崩溃,因此管理员要根据不同的需要授予用户不同的操作权限,以保障系统的安全及运行的稳定性。

    Linux系统中的用户分为超级用户普通用户和特殊用户3种类型。文件和目录权限管理

    root超级用户不安全,在学习的时候是可以的,但是在未来到项目上,是不会被允许这样使用的

    所以需要创建自己的用户

     

    超级用户:在默认安装的初始情况下,Linux系统中的超级用户为root,也称其为根用户,具有系统中最高的权限,超级用户可以对Linux系统做任何操作。在实际工作中,除非绝对必要,不要使用超级用户来进行操作或者登录,经常使用超级用户进行操作,会使系统存在很大的危险。初学者需要注意,在大部分UNIX和Linux操作系统里,UID为0的即为超级用户,其登录名称未必是“root”。

    每一个用户在 linux 系统中都有一个 UID,U指user,代表用户ID

     

    普通用户:由超级用户创建及授权,普通用户为受限用户,只能操作其拥有权限的目录和文件,用户之间私人的资源可以相互隔离。普通用户只能管理由自己启动的进程,不能结束由其他用户发起的进程

    root超级用户可以结束别人的进程,普通用户只能结束自己的进程

     

    系统用户:也称虚拟用户、伪用户、假用户或特殊用户。在Linux中,每个文件、目录和进程,都归属于某一个用户,为了完成特定的任务,系统内建了若干用户,如mail、ftp、bin等,系统用户也是受限用户。默认情况下,系统用户都是无法登录的,如果给这些用户授权登录口令,就可能使系统存在潜在的危险。所以为了安全起见,最好不要给这些用户授权口令。文件和目录权限管理

    这里的假是指不能登录,不能作为真实的用户去使用

    比如mysql安装完成后,就是一个虚拟用户了,是无法登录的

     

    > 用户管理

    用户信息文件:/etc/passwd

    [root@localhost ~]# cd /etc

    [root@localhost etc]# ls passwd

    passwd

    [root@localhost etc]# cat passwd

    root:x:0:0:root:/root:/bin/bash

    x表示用户设置了密码,但是密码存放于另一个目录,后面的0:0就是UID和组ID

    0代表系统管理员用户

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    ……

    em01:x:1001:1001::/home/em01:/bin/bash

    这个是普通用户,普通用户的 UID 是 1001,可以提为系统管理员用户,把UID改为0即可

    em02:x:1002:1002::/home/em02:/bin/bash

    所以,passwd里存放的就是用户信息

    密码文件:/etc/shadow

    [root@localhost etc]# cat shadow

    root:$6$4bp.AzSfDODkPH5c$o8WDyQLScqUVYPRVr6/CLyfwXq79G4Uaam8B5wXoFf3lvJkEdeY7FLBGDnMdEwQYbI/PcAEolqvqzSTn8laHG.::0:99999:7:::

    bin:*:17632:0:99999:7:::

    ……

    dbus:!!:18652::::::

    polkitd:!!:18652::::::

    ……

    em02:$6$HgiZoU7z$bpIzia8daS5nf4ueWwdyt1cU.XJQmF5kSXgTXiFKdgdRpgqs/PLooQhCQpqcZd5Ikz5QQVr2/S.r75ykX.xWg1:18671:0:99999:7:::

    里面存的是密码,!!代表没有设定密码,凡是没有设定密码的多是虚拟用户

    密码用的是 md5 的加密模式

    用户组文件:/etc/group

    用户组密码文件:/etc/gshadow

    用户配置文件

    /etc/login.defs

    /etc/default/useradd

    新用户信息文件:/etc/skel

    登录信息:/etc/motd文件和目录权限管理

     

    文件和目录权限管理

    > 用户管理

    其实 Linux 并不会直接认识你的“用户名称”,它认识的其实以数字表示的“用户 ID”,每个用户都有一个“用户ID”,称为UID。超级用户的UID为0,系统用户的UID一般为1~499,普通用户的UID默认为500~60000之间的值。

    [root@root:~]#cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    daemon:x:1:1:daemon:/usr/sbin:/bin/sh

    bin:x:2:2:bin:/bin:/bin/sh

    gdm:x:109:118:Gnome Display Manager:/var/lib/gdm:/bin/false

    studnet:x:1000:1000:student,,,:/home/ studnet :/bin/bash

    如果忘记了用户是否创建过,可以用这种方式查询一下

    普通用户一般在最后

     

    以下是登录的整个过程

    Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd、 /etc/shadow、/etc/group这几个。Linux用户登入系统过程实质是系统读取、核对这几个文件的过程。过程如下:

        ○ 首先Linux会出现一个登录系统的画面提示输入账号,输入账号与密码;

        ○ Linux 接着会先找寻 /etc/passwd 里面是否有这个账号名,如果没有则退出登录,如果有的话则将该账号对应的 UID ( User ID )与 GID ( Group ID )读出来,另外,该账号的对应的用户主目录与 shell 设定也一并读出;

        ○ 核对密码表,这时 Linux 会进入 /etc/shadow 里面找出登录账号与 UID相对应的、记录,然后核对一下刚刚输入的密码与此文件的密码是否符合;

        ○ 以上核定没有没有问题,用户正式进入系统

     

    为什么帐号文件与密码文件分开? 安全

    > 用户管理

    /etc/passwd—用户帐号文件

    [root@localhost ~]# cat /etc/passwd

        ○ passwd文件中可以看到,第一行是root用户,紧接的是系统用户,普通用户通常在文件的尾部。passwd文件中的每一行由7个字段的数据组成,字段之间用“:”分隔,其格式如下:

    用户名、口令、用户ID、用户所属组群、全称、用户主目录和登录Shell

    [root@root:~]#cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    daemon:x:1:1:daemon:/usr/sbin:/bin/sh

    bin:x:2:2:bin:/bin:/bin/sh

    gdm:x:109:118:Gnome Display Manager:/var/lib/gdm:/bin/false

    studnet:x:1000:1000:student,,,:/home/ studnet :/bin/bash

     

    用户口令信息文件/etc/shadow

        ○ Shadow 文件只有超级用户才能查看其内容,且采用MD5算法加密

        ○ Shadow文件中每一行代表一个用户帐号,每个用户帐号用“:”分隔

     

    em02:$6$HgiZoU7z$bpIzia8daS5nf4ueWwdyt1cU.XJQmF5kSXgTXiFKdgdRpgqs/PLooQhCQpqcZd5Ikz5QQVr2/S.r75ykX.xWg1:18671:0:99999:7:::

     

    1 em02

    2 $6$HgiZoU7z$bpIzia8daS5nf4ueWwdyt1cU.XJQmF5kSXgTXiFKdgdRpgqs/PLooQhCQpqcZd5Ikz

    5QQVr2/S.r75ykX.xWg1

    3 18671

    4 0 (0表示不用修改密码,如果是 2 表示如果改过密码,2天以后才能修改密码)

    5 99999 (所以99999天之后修改,也就表示不用在修改设置了)

     

    1 2 4 最为重要,这种设计方式也是为了安全

     

    > 用户管理

    查询用户

        ○ whoami:用于查询当前登录账号的名字

        ○ finger 用户名:用于返回指定用户账号的信息

    【例】

        ○ [root@localhost ~]# whoami

        ○ [root@localhost ~]$ finger root

     

    添加用户

    useradd | adduser 参数 用户名

    【例】

        ○ [root@localhost ~]# useradd -c zhsan zhsan

        ○ [root@localhost ~]# finger zhsan

        ○ [root@localhost ~]# ls /home

    useradd和adduser两个命令都是一样的,具体用哪个看习惯就好

     

    常用参数及含义如下:

    -u:直接指定一个特定的UID给这个账号,普通用户的UID默认情况下大于499。

    -c:指定用户信息描述,即用户别名。

    -d:指定用户家目录,不使用系统默认值/home/用户名。

    -s:指定用户shell,而不使用默认的/bin/bash。

    -g:指定用户所在组的ID。

    -G:指定用户所在的多个组集合,组织间用逗号间隔。

    -mk:复制其他用户主目录下的文件和配置信息来创建用户。

    -e expire_date:账号终止日期。日期的指定格式为MM/DD/YY。

    -f inactive_days:账号过期几日后永久停权。当值为0时账号则立刻锁定禁用。而当值为-1时则关闭此功能,预设值为-1。

     

    [root@localhost ~]# useradd -c a1 aA

    [root@localhost ~]# cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    ……

    malakh:x:1000:1000:malakh:/home/malakh:/bin/bash

    em01:x:1001:1001::/home/em01:/bin/bash

    em02:x:1002:1002::/home/em02:/bin/bash

    aA:x:1003:1006:a1:/home/aA:/bin/bash (a1是别名)

     

    [root@localhost ~]# ls /home

    aA em01 em02 malakh

    现在 home 里有了 aA 的目录,创建了一个用户后,会自动在home下创建一个同名的目录,被称为家目录

     

    现在想修改UID,从2000开始,要先创建用户,然后 -u

    [root@localhost ~]# useradd aB -u 2000

    [root@localhost ~]# ls /home

    aA aB em01 em02 malakh

    [root@localhost ~]# cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    ……

    aA:x:1003:1006:a1:/home/aA:/bin/bash

    aB:x:2000:2000::/home/aB:/bin/bash UID就是从2000开始的了

     

    文件和目录权限管理

    > 用户管理

    在linux下,一个用户必须要有密码才能成功登陆

    设置密码

        ○ passwd 参数 用户名

    如果想给当前用户修改密码,直接在当前用户下 passwd 即可

    [root@localhost ~]# passwd

    更改用户 root 的密码 。

    新的 密码:

    无效的密码: 密码少于 8 个字符   这个地方只是提示,并不影响后续操作

    重新输入新的 密码:

    passwd:所有的身份验证令牌已经成功更新。

    如果给其他用户设置密码

    [root@localhost ~]# passwd aA

    更改用户 aA 的密码 。

    新的 密码:

    无效的密码: 密码少于 8 个字符

    重新输入新的 密码:

    passwd:所有的身份验证令牌已经成功更新。

    常用的就是 passwd 用户名;参数也能用,不过用的很少;-d 是很危险的事情,尽量不要用

    [root@localhost ~]# passwd

    [root@localhost ~]# passwd zhsan

     

    > 用户管理

    删除用户

        ○ userdel 参数 用户名

        常用参数如下:

        -r:删除用户的同时删除用户的家目录及其拥有的所有文件

        ○ [root@localhost ~]# ls /home

        ○ [root@localhost ~]# userdel lisi && ls /home

        ○ [root@localhost ~]# userdel -r zhsan && ls /home

    [root@localhost ~]# ls /home

    aA aB em01 em02 malakh

    [root@localhost ~]# userdel aA

    userdel: user aA is currently used by process 20756

    删除失败是因为刚刚用 aA登录了,并没有关闭aA,只是切换了账户

     

    [root@localhost ~]# userdel aB

    [root@localhost ~]# ls /home

    aA aB em01 em02 malakh

    aB还在,因为删除的时候是用 userdel 删除的,并没有加上 -r 选项

    [root@localhost ~]# useradd aC

    [root@localhost ~]# ls /home

    aA aB aC em01 em02 malakh

    [root@localhost ~]# userdel -r aC

    [root@localhost ~]# ls /home

    aA aB em01 em02 malakh

    加上 -r 后,aC 的所有信息就都删除掉了

     

    > 用户管理

    能增加和删除,所有也一定能修改

    修改用户属性

    usermod 参数 用户名

    -l -p -e 一般 较为常用,现在修改用户aA 的别名

    [root@localhost ~]# usermod -c aA AA

    usermod:用户“AA”不存在

    [root@localhost ~]# usermod -c AA aA

    [root@localhost ~]# ls /home

    aA aB em01 em02 malakh

    [root@localhost ~]# cat /etc/passwd

    ……

    aA:x:1003:1006:AA:/home/aA:/bin/bash 在这里看,备注名已经得到了修改

     

    现在用 -l 修改账户名称

    [root@localhost ~]# usermod -l AA aA

    [root@localhost ~]# cd /home

    [root@localhost home]# ls

    aA aB em01 em02 malakh

    依然是 aA,到passwd中查看,发现已经是变成 AA 了,只是家目录中没有变而已,家目录中创建完后就不会变了。如果想变就只能用 -d 变了

    [root@localhost home]# cat /etc/passwd

    ……

    AA:x:1003:1006:AA:/home/aA:/bin/bash

     

    > 用户管理

    切换用户

        ○ su 参数 用户名

    【例】

        ○ [root@localhost ~]# su zhsan

        ○ [zhsan@localhost root]$ pwd

        ○ [zhsan@localhost root]$ su

        ○ [root@localhost ~]# pwd

        ○ [root@localhost ~]# su -l zhsan

        ○ [zhsan@localhost ~]$ pwd

    linux 用户中一定要有密码,从管理员用户切换到普通用户不用输入密码,回到root是需要输入密码的

    [root@localhost home]# su AA

    [AA@localhost home]$ su root

    密码:

     

    现在看普通用户和普通用户之间的切换

    [root@localhost home]# su AA

    [AA@localhost home]$ su malakh

    密码:

    [malakh@localhost home]$ su AA

    密码:

    [AA@localhost home]$

     

    三、权限管理

     

    文件和目录权限管理

    > 权限管理

    为了保证文件信息的安全,Linux设置了文件保护机制,其中之一就是给文件设定了一定的访问权限。当文件被访问时,系统首先检验访问者的权限,只有与文件的访问权限相符时才允许对文件进行访问

    文件或目录的访问权限分为只读只写可执行三种。

    比如windows上的文件,打开可以读到就是只读,打开可以写入就是只写,能不能打开是可执行

    文件或目录被创建时,文件或目录的所有者(一般是文件的创建者)自动拥有对该文件或目录的读、写和可执行权限。用户也可根据需要把访问权限设置为需要的任何组合

    有三种不同类型的用户可对文件或目录进行访问:文件所有者同组用户其他用户。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。

     

    > 权限管理

    查看文件权限

        ○ [root@localhost ~]# ll

    [root@localhost home]# ls

    aA aB em01 em02 malakh

    [root@localhost home]# ls -l

    总用量 4

    drwx------. 5 AA aA 128 2月 16 17:20 aA

    drwx------. 3 2000 2000 78 2月 15 19:37 aB

    drwx------. 5 em01 em01 128 2月 13 16:36 em01

    drwx------. 5 em02 em02 128 2月 13 17:49 em02

    drwx------. 15 malakh malakh 4096 2月 16 06:18 malakh

    一共有 10 个字符

     

    设定权限

        ○ 一个文件或者目录的权限可以通过chmod命令来改变。chmod命令有两种用法,一种是包含文字和操作符表达式字符设定法,另一种是包含数字的数字设定法

    一般看到的目录文件和普通文件较多,分别是d和-

    下面这个是数字设定法,用的是二进制;r—读,w—写,x—执行

     

     

    所以,如果是只读,就是 100,十进制4;如果只是写就是 010,十进制 2;执行 001,十进制1

     

    如果什么权限都不给就是 0,可读可执行,就是 r-x,101,十进制为 5

     

    > 权限管理

    字符设定法

       ○ chmod 参数 权限模式 文件或目录名

    常用权限模式,也就是设置权限时,有三种角色(除了第一位,每三位一段)所有人,同组人,系统内其他人;分别用 u g o 或者直接用 a 简单快速,但是这样将导致权限不够明确

    【例3-3】将文件hi. txt设为所有人都可读取

        ○ [root@localhost test]# chmod ugo+r hi.txt

    【例3-4】将文件hi.txt设为所有者与所有者所在组的成员可写入,其他人则不可写入,命令及结果如下:

        ○ [root@localhost test]# chmod ug+w,o-w hi.txt

     

    现在对 awk 进行权限修改

    [root@localhost ~]# ls -l

    总用量 36

    -rw-r--r--. 1 root root 0 2月 12 04:58 awk

    ……

    -普通文件,rw- 所有者的权限,这里是root的权限,只有读和写的权限;组内其他人员和系统内其他人员都有读的权限 r--

     

    现在把三个角色的权限进行变更

    [root@localhost ~]# chmod ugo-r awk

    [root@localhost ~]# ls -l

    总用量 36

    --w-------. 1 root root 0 2月 12 04:58 awk

    ……

    [root@localhost ~]# chmod ug+r awk

    [root@localhost ~]# ls -l

    总用量 36

    -rw-r-----. 1 root root 0 2月 12 04:58 awk

    ……

     

    > 权限管理

    数字设定法

        ○ 数字设定法用一系列八进制数表示相应的权限,其中0表示没有权限,1表示拥有可执行权限(1的二进制为001,对应到rwx表示r=0,w=0,x=1),2表示可写权限(010),4表示可读权限(100),然后将其相加。所以数字属性的格式应为3个从0~7的八进制数,其顺序是u、g、o。

        ○ 【例3-5】设定hi.txt只有所有者有读、写、执行权限:

           ○ [root@localhost test]# chmod 700 hi.txt

        ○ 【例3-6】设定hi.txt对所有者具有读、写、执行权限,而所在组用户和其他用户只有读、执行权限

           ○ [root@localhost test]# chmod 755 hi.txt

    现在让所有者对 awk 拥有读、写和执行的权限,让其余用户没有权限,所有的权限都给所有者

    第一个数字代表文档所有者,后面两个数组分别代表同组用户和系统内的其他用户

    [root@localhost ~]# chmod 700 awk

    [root@localhost ~]# ls -l

    总用量 36

    -rwx------. 1 root root 0 2月 12 04:58 awk

    ……

     

    >【例】

    将当前目录中的子目录csi权限修改为“777”,也就是说文件的所有者、拥有组、其他用户的权限都是可读(r=4)、可写入(w=2)、可执行(x=1)

    将目录dexter的权限修改为“644”也就是说文件的所有者可读(r=4)、可写入(w=2) ;拥有组(r=4);其他用户的权限都是可读(r=4)

    将目录everwood的权限修改为文件的所有者、拥有组、其他用户的权限都是可读(r=4)、可写入(w=2)、可执行(x=1)

    将目录friends拥有组现有权限减去只读权限

    将目录fringe其他用户权限在现有的基础上加入可读(r)、可写(w)权限。

    将目录house所有者权限更改为可读(r)、可写入(w)、可执行(x);拥有组权限可读(r)、可执行(x);其他用户权限更改为可执行(x)文件和目录权限管理

    这种时候,数字设定法会更简单

     

    > 权限管理

    更改文件或目录的所有者

        ○ 在Linux中,不仅可以更改权限,还可以更改文件或者目录的所有权。chown命令可以修改文件或者目录的所有者及所属用户组

        ○ chown 参数 所有者 文件或目录名

    【例3-7】 将hi.txt的所有者设定为zhsan

        ○ [root@localhost test]# chown zhsan hi.txt

    [root@localhost ~]# ls -l

    总用量 36

    -rwx------. 1 root root 0 2月 12 04:58 awk

    ……

    现在更改 awk 的所有者

    [root@localhost ~]# chown em01 awk

    [root@localhost ~]# ls -l

    总用量 36

    -rwx------. 1 em01 root 0 2月 12 04:58 awk

    ……

     

    四、符号链接命令

     

    补充

    > 符号连接命令

    ln命令用于建立文件的连接,使得某个文件可以同时存在于多个目录之中

    格式:ln [选项] 目标源文件 [连接名]

    硬连接与目标源文件的关系

    符号连接与源文件的关系(软连接)

    ln的链接又有软链接和硬链接两种

        ○ 软链接就是上面所说的ln -s ** **,它只会在用户选定的位置上生成一个文件的镜像,不会重复占用磁盘空间,平时使用较多的都是软链接

    现在对 file2 创建软链接,把 root 目录下的 file2 创建软连接,创建到 boot 下

    [root@localhost ~]# ln -s /root/file2 /boot/file2_ruanlianjie

    [root@localhost ~]# cd /boot

    [root@localhost boot]# ls

    现在看一下软链接的内容,与源文件的内容是完全一致的,这就是创建软链接

    [root@localhost boot]# cat file2_ruanlianjie

    abc

    ABC

     

    1 修改软链接的文件,源文件也会一起变化;修改源文件,软链接后的文件也会改变

    2 删除掉软链接后的文件,不会影响源文件

    3 删除掉源文件,软链接后的文件就无法使用了,file2_ruanlianjie是加红的,代表不能用了

    所以,软链接就相当于 windows 上的快捷方式

     

    硬链接是不带参数的ln ** **,它会在用户选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化

    [root@localhost ~]# cd newdir/

    [root@localhost newdir]# ln /root/file3 file3_ying

    [root@localhost newdir]# ls

    file1 file3_ying zxc1

    硬链接相当于备份,删除硬链接文件,源文件不会有影响;删除源文件,硬链接文件也不会有影响

     

    五、命令别名

     

    补充

    > 命令别名

    别名允许自定义命令名,或者把命令和常用的参数或选项结合在一起。一旦创建,别名就可以像其他任何命令一样被使用

    查看已经定义的别名

    [root@localhost root]#alias

    取消别名

    [root@localhost root]#unalias 别名

    例:

    [root@localhost root]#mount /dev/cdrom /media

    [root@localhost root]#alias m=‘mount /dev/cdrom /media’

    [root@localhost root]#unalias m

     

    比如 ls -l 和 ll 是完全一样的,因为 ll 是 ls -l 的别名

    linux安装软件需要先加载光驱,加载光驱时,可以起一个别名

    [root@localhost ~]# alias m='mount /dev/cdrom /media'

    [root@localhost ~]# m

    mount: /dev/sr0 写保护,将以只读方式挂载

    这样加载光驱的时候,只输入 m 就可以了,现在显示加载成功;光驱就是只读的

    [root@localhost ~]# cd /media

    [root@localhost media]# ls

    CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7

    EFI images Packages RPM-GPG-KEY-CentOS-Testing-7

    EULA isolinux repodata TRANS.TBL

    这就是所有的光驱文件

     

    现在不想用昵称 m了,去掉别名

    [root@localhost media]# alias

    ……

    alias m='mount /dev/cdrom /media'

    ……

    [root@localhost media]# unalias m

    [root@localhost media]# alias

    …… 已经没有 m 了

    [root@localhost media]#

     

    注:没有加载光驱时,是这样的

    [root@node3 ~]# cd /media

    [root@node3 media]# ls

    [root@node3 media]#

     

     

     

  • 相关阅读:
    印度、日本、美国和国内的软件企业的“软件态度”
    限制文本框每行输入的字符数的C#代码
    之我见:没有像样的需求分析、设计就草草开始分块写代码
    Excel 加载项的怪现象
    Excel加载项Dotfuscator注意点
    设计者应增加对本机缓存特性的注意度
    我们的产品有技术含量吗?
    阳光行为,阳光心情
    Google在中国境内设服务器?速度快极了!
    标准重要不重要:标准目录查询网页竟有这样的语句:见证中国目前的软件开发水平
  • 原文地址:https://www.cnblogs.com/azxsdcv/p/14425631.html
Copyright © 2011-2022 走看看