0基础带你入门Linux之使用

打印 上一主题 下一主题

主题 537|帖子 537|积分 1611


1.Ubuntu软件管理


回顾一下,我们之前使用su root切换到root模式,使用who

发现为什么显示的还是bd用户呢?为什么呢?
这个who是主要来查看的是我们登录的时间是以什么用户登录的
所以即使我们使用who进行查看的时间显示的还是bd用户
假如想要显示的是root用户的话我们须要在乌班图里面进行命令的输入的

2.用户的操纵

我们在Windows上常用管理工具
大概直接去官网上下载软件
在大多数的Linux中,都有各自的软件管理工具,比如Ubuntu常用的是apt,通过软件管理包来安装和更新软件等
关于apt的使用:

可以发现我们的apt前面都存在一个sudo,因为我们想要安装一个软件、删除和更新的话,普通用户是没有权限的
我们通过sudo进行提权的操纵
-y的意思是:我们在安装软件包的时间,回问我们一下选项,我们回答yes大概是no
加上-y就能自动进行复兴这个的操纵
安装软件:sudo apt install 插件名字

现在我们进行一个下载插件的操纵
我们下载一个sl插件,是一个火车行驶的样子

  1. bd@clem:~$ sudo apt install sl
  2. Reading package lists... Done
  3. Building dependency tree
  4. Reading state information... Done
  5. The following NEW packages will be installed:
  6.   sl
  7. 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
  8. Need to get 12.7 kB of archives.
  9. After this operation, 60.4 kB of additional disk space will be used.
  10. Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 sl amd6                                                                              4 5.02-1 [12.7 kB]
  11. Fetched 12.7 kB in 2s (6,466 B/s)
  12. Selecting previously unselected package sl.
  13. (Reading database ... 119188 files and directories currently installed.)
  14. Preparing to unpack .../archives/sl_5.02-1_amd64.deb ...
  15. Unpacking sl (5.02-1) ...
  16. Setting up sl (5.02-1) ...
  17. Processing triggers for man-db (2.9.1-1) ...
  18. bd@clem:~$
复制代码
通过百度翻译我们能知道这里面大概的命令的意思

下载完毕之后直接sl回车,就出现了下面的画面

我们再安装一个插件cmatrix

  1. bd@clem:~$ sudo apt install cmatrix
  2. [sudo] password for bd:
  3. Reading package lists... Done
  4. Building dependency tree
  5. Reading state information... Done
  6. Suggested packages:
  7.   cmatrix-xfont
  8. The following NEW packages will be installed:
  9.   cmatrix
  10. 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
  11. Need to get 17.2 kB of archives.
  12. After this operation, 52.2 kB of additional disk space will be used.
  13. Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 cmatrix                                                                               amd64 2.0-2 [17.2 kB]
  14. Fetched 17.2 kB in 1s (15.8 kB/s)
  15. Selecting previously unselected package cmatrix.
  16. (Reading database ... 119211 files and directories currently installed.)
  17. Preparing to unpack .../cmatrix_2.0-2_amd64.deb ...
  18. Unpacking cmatrix (2.0-2) ...
  19. Setting up cmatrix (2.0-2) ...
  20. Processing triggers for mime-support (3.64ubuntu1) ...
  21. Processing triggers for man-db (2.9.1-1) ...
  22. bd@clem:~$
复制代码
安装完之后我们输入cmatrix回车

然后我们使用CTRL+C就能退出这个页面了
卸载软件的方式:sudo apt remove 插件名字


  1. bd@clem:~$ sudo apt remove sl
  2. Reading package lists... Done
  3. Building dependency tree
  4. Reading state information... Done
  5. The following packages will be REMOVED:
  6.   sl
  7. 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
  8. After this operation, 60.4 kB disk space will be freed.
  9. Do you want to continue? [Y/n] y
  10. (Reading database ... 119211 files and directories currently installed.)
  11. Removing sl (5.02-1) ...
  12. Processing triggers for man-db (2.9.1-1) ...
  13. bd@clem:~$
复制代码
查看已经安装的软件:apt list --installed


里面安装了很多的软件,从图片里面就能看得出来的
删除软件包---sudo apt purge 软件的名字

sudo apt purge 命令会从你的系统中删除指定的软件包,而且还会删除它们的设置文件

  1. bd@clem:~$ sudo apt purge sl
  2. Reading package lists... Done
  3. Building dependency tree
  4. Reading state information... Done
  5. The following packages will be REMOVED:
  6.   sl*
  7. 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
  8. After this operation, 60.4 kB disk space will be freed.
  9. Do you want to continue? [Y/n] y
  10. (Reading database ... 119221 files and directories currently installed.)
  11. Removing sl (5.02-1) ...
  12. Processing triggers for man-db (2.9.1-1) ...
  13. bd@clem:~$
复制代码
我们软件在安装完成之后大概会有软件安装包的残留
那么我们就须要使用purge进行对应软件安装包的删除操纵
这个时间我们的软件安装包就没了,我们进行sl的输入回车,发现这个软件已经没了

那么现在我们就相识到了两种的软件删除方式了
下载第三方库---pip install 第三方库的名字

库是模块的意思,模块分为三种
1.内置模块(安装python自带的)
2.自界说的py文件
3.第三方模块(别人写的py文件)
现在我们下载一个requests这个库

  1. bd@clem:~$ pip install requests
  2. Requirement already satisfied: requests in /usr/lib/python3/dist-packages (2.22.0)
  3. bd@clem:~$
复制代码
这里显示的是我们已经存在了,那么我们就不做操纵
查看已有的第三方库---pip list


删除第三方库---pip uninstall 要删除的第三方库的名字


然后我们使用pip list查看目前的第三方库

发现requests已经被删除了
虚拟机和本机文件互传
现在我们想将桌面的xuanxuan.txt这个文件同步到虚拟机里面我们该怎么做呢?

我们直接将这个文件拖动到左边这个文件夹里面就行了
  1. bd@clem:~$ pwd
  2. /home/bd
  3. bd@clem:~$ ls
  4. 68  environment  kaizi  kk  py_case  xuanxuan.txt
  5. bd@clem:~$
复制代码
我们通过cat能看到这个文件我们在移动到这里之前在里面写的数据

  1. bd@clem:~$ cat xuanxuan.txt
  2. 12345678bd@clem:~$
复制代码
还存在第二种方式,但是已经被镌汰了

2.用户的操纵


用户的添加操纵 useradd -m 用户名

-m的解释

我们在创建新用户的时间通常会使用到-m
在 Linux 系统中,使用 useradd 命令添加新用户时,-m 选项用于创建用户的主目次。
具体来说:

  • -m 选项会创建一个新的主目次(通常是 /home/用户名)。
  • 假如不使用 -m 选项,须要手动创建用户的主目次。
例如:
  1. sudo useradd -m username
复制代码
这个命令会添加一个名为 username 的新用户,并自动创建 /home/username 主目次。
假如不使用 -m 选项:
  1. sudo useradd username
复制代码
这个命令会添加一个名为 username 的新用户,但不会创建主目次。你须要手动创建主目次:
  1. sudo mkdir /home/username
  2. sudo chown username:username /home/username
复制代码
总结一下:


  • -m 选项:自动创建用户的主目次。
  • 不使用 -m 选项:须要手动创建用户的主目次。
最上面就是我们会用到的简短指令
添加用户的操纵

使用sudo useradd -m xiaohei
先提权再新建一个用户,肯定要加-m。作用上面说了
我们在第二步输入暗码之后就创建乐成了

  1. bd@clem:~$ sudo useradd -m xiaohei
  2. [sudo] password for bd:
复制代码
创建乐成之后我们cd到home目次里面去
使用ls进行查看操纵,然后发现多了一个xiaohei 的用户

  1. bd@clem:~$ cd /home/
  2. bd@clem:/home$ ls
  3. bd  xiaohei
复制代码
我们创建用户的时间都会生成一个文件夹的,在home目次里面生成的
那么我们现在能不能切换到xiaohei 这个用户里面呢?
这个明显是不能的
因为是刚刚创建的,而且没有设置这个用户的暗码,那么我们是不能进行用户的切换的
所以我们须要设置一下暗码

  1. bd@clem:/home$ sudo passwd xiaohei
  2. New password:
  3. Retype new password:
  4. passwd: password updated successfully
复制代码
那么这个时间我们已经给xiaohei设置好了暗码了
我们cd回车
然后看看pwd看看现在在哪里,可以看的出我们在xiaohei这里面

  1. bd@clem:/home$ su xiaohei
  2. Password:
  3. $ pwd
  4. /home
  5. $ ls
  6. bd  xiaohei
  7. $ cd
  8. $ pwd
  9. /home/xiaohei
  10. $
复制代码

通过背面的vim的知识,我们将设置文件进行了修改的操纵

我们su到了xiaohei 的界面,然后显示就正常了
用户的删除操纵 sudo userdel -rf 要删除的用户名

我们先通过前面的知识创建一个新用户xiaomiong而且设置好暗码

  1. bd@clem:/home$ sudo useradd -m xiaoming
  2. [sudo] password for bd:
  3. bd@clem:/home$ ls
  4. bd  xiaohei  xiaoming
  5. bd@clem:/home$ sudo passwd xiaoming
  6. New password:
  7. Retype new password:
  8. passwd: password updated successfully
  9. bd@clem:/home$ su bd
  10. Password:
  11. bd@clem:/home$
  12. bd@clem:/home$ su xiaohei
  13. Password:
  14. xiaohei@clem:/home$ cd /
  15. xiaohei@clem:/$ ls
  16. bin   etc   lib32   lost+found  opt   run   srv       tmp
  17. boot  home  lib64   media       proc  sbin  swap.img  usr
  18. dev   lib   libx32  mnt         root  snap  sys       var
  19. xiaohei@clem:/$ cd home
  20. xiaohei@clem:/home$ ls
  21. bd  xiaohei  xiaoming
复制代码
然后现在我们想将xiaoming 这个用户进行删除的操纵
那么我们应该怎么做呢?

  1. xiaohei@clem:/home$ sudo userdal xiaoming
  2. [sudo] password for xiaohei:
  3. xiaohei is not in the sudoers file.  This incident will be reported.
  4. xiaohei@clem:/home$
复制代码
我们须要先切换到bd,因为xiaoming这个用户没有增删改查的权利
我们在bd用户实现删除之后我们发现xiaoming这个文件夹还存在,为什么呢?

  1. bd@clem:/home$ sudo userdel xiaoming
  2. bd@clem:/home$ ls
  3. bd  xiaohei  xiaoming
复制代码
那么就是说现在还没有删除完

  1. bd@clem:/home$ sudo userdel -rf xiaoming
  2. userdel: user 'xiaoming' does not exist
  3. bd@clem:/home$
复制代码
我们使用-rf进行逼迫删除的操纵
其实用户xiaoming已经不存在了,但是这个文件夹还在啊,那么我们就将文件夹删除了

xiaoming这个文件夹里面是没有东西的

  1. bd@clem:/$ cd home
  2. bd@clem:/home$ ls
  3. bd  xiaohei  xiaoming
  4. bd@clem:/home$ rm -rf xiaoming
  5. rm: cannot remove 'xiaoming/.bash_logout': Permission denied
  6. rm: cannot remove 'xiaoming/.bashrc': Permission denied
  7. rm: cannot remove 'xiaoming/.profile': Permission denied
复制代码
上面的这个就是拒绝访问的意思,还是我们的权利不够
可以看的出还是删的不干净
那么我们就进行提权的操纵

  1. bd@clem:/home$ sudo rm -rf xiaoming
  2. [sudo] password for bd:
  3. bd@clem:/home$ ls
  4. bd  xiaohei
复制代码
然后通过ls就能看的到我们已经将xiaoming这个文件夹删除了
用户组的操纵

相识分组的意义

用户组分组在Linux和Unix系统中是一种告急的权限管理机制。通过用户组,系统管理员可以有效地控制用户对文件、目次和设备的访问权限,以及对系统资源的使用。以下是用户组分组的一些主要用途:

  • 权限管理


  • 用户组可以用来设置文件和目次的权限。例如,管理员可以赋予某个组的成员对特定文件的读写权限,而其他用户则没有这些权限。
  • 通过组来管理权限比单独为每个用户设置权限要高效得多。

  • 资源共享


  • 用户组可以用于在组内共享资源。组内的成员可以访问组内共享的文件和目次,这对于团队协作非常有效。

  • 简化用户管理


  • 管理员可以通过管理组来简化用户管理。例如,管理员可以给整个组分配权限,而不是单独为每个用户分配,这样可以镌汰管理工作量。

  • 安全性


  • 用户组可以资助实现更细粒度的安全控制。通过将用户分配到不同的组,并为这些组设置不同的权限,可以限制对敏感数据的访问。

  • 组织布局


  • 在大型组织中,用户组可以资助反映组织布局。例如,可以将所有财务部门的用户放在一个组中,然后为这个组分配特定的权限。

  • 项目或任务分组


  • 用户组可以用来组织参与特定项目或任务的用户。这样可以方便地为参与特定项目标所有效户分配须要的资源和权限。

  • 自动化脚本和程序


  • 某些脚本和程序大概须要以特定的用户组身份运行。通过将用户添加到得当的组,可以确保这些脚本和程序可以或许正确实行。

  • 系统服务和守卫进程


  • 系统服务和守卫进程通常以特定的用户组身份运行,以限制它们的权限并进步系统的安全性。

  • 审计和监控


  • 用户组可以资助系统管理员进行审计和监控。管理员可以监控特定组的活动,以辨认埋伏的安全题目或不妥活动。
通过公道地使用用户组,系统管理员可以进步系统的安全性、可管理性和效率。
创建用户组


我们须要切到bd用户,因为权限不够

  1. bd@clem:/home$ sudo groupadd python
  2. [sudo] password for bd:
  3. bd@clem:/home$
复制代码
给xiaohei进行分组的操纵
  1. xiaohei@clem:/home$ cd
  2. xiaohei@clem:~$ ls
  3. t1.txt
  4. xiaohei@clem:~$ ls -l
  5. total 0
  6. -rw-rw-r-- 1 xiaohei xiaohei 0 Sep 16 20:24 t1.txt
  7. xiaohei@clem:~$ newgrp python
  8. Password:
  9. Invalid password.
  10. xiaohei@clem:~$ newgrp python
复制代码
这里显示暗码是无效的,我们无法将xiaohei放到python组里面
我们须要先给xiaohei设置主组和附属组,主组是xiaohei的家目次,附属组是python和Linux
我们在这个之前先创建了两个组:python和linux
我们先切换到bd用户

  1. bd@clem:/home/xiaohei$ sudo usermod -g xiaohei -G python,linux xiaohei
复制代码
-g是主组, -G是附属组
-G附属组,附属组

假如存在多个组的话我们就使用逗号进行分开的操纵
sudo usermod -g xiaohei -G python,linux xiaohei
这个命令是用来修改用户组信息的,具体来说:


  • sudo:以超级用户权限实行背面的命令。
  • usermod:用户账户修改命令。
  • -g xiaohei:将用户 xiaohei 的主用户组(primary group)修改为 xiaohei。
  • -G python,linux:将用户 xiaohei 添加到 python 和 linux 这两个附加组(supplementary groups)中。
实行这个命令后,用户 xiaohei 的主用户组将被设置为 xiaohei,而且他还会是 python 和 linux 组的成员。这通常用于:

  • 权限管理:通过将用户添加到特定的组,可以控制用户对某些文件或设备的访问权限。例如,假如 python 组有权限实行某些 Python 脚本,那么将用户添加到这个组后,用户就可以实行这些脚本。
  • 组织用户:在多用户系统中,通过将用户分配到不同的组,可以更有效地管理用户和权限。例如,所有使用 Python 的用户都可以被添加到 python 组。
  • 简化权限分配:而不是单独为每个用户设置权限,可以通过修改组权限来一次性影响组内的所有效户。
请注意,修改用户组信息大概须要重新登录或重启系统才能完全生效。此外,确保你有足够的权限来实行这个命令,因为它涉及到系统级别的用户账户修改。

  1. bd@clem:/home/xiaohei$ su xiaohei
  2. Password:
  3. xiaohei@clem:~$ groups
  4. xiaohei python linux
  5. xiaohei@clem:~$
复制代码
我们切换到xiaohei这个用户上,我们使用groups看看是哪个组的,可以看见我们设置的三个组别
我们可以看的到xiaohei 是主组,剩下的两个就是附属组
查看用户组 groups


  1. xiaohei@clem:/home$ groups
  2. xiaohei
复制代码
每个用户的默认组都是自己的家目次

  1. bd@clem:/home/xiaohei$ su xiaohei
  2. Password:
  3. xiaohei@clem:~$ groups
  4. xiaohei python linux
  5. xiaohei@clem:~$
复制代码
使用groups可以查看到该用户加入的所有效户组
切换用户组


  1. xiaohei@clem:~$ newgrp python
  2. xiaohei@clem:~$ groups
  3. python xiaohei linux
  4. xiaohei@clem:~$
复制代码
我们使用newgrp 要进行切换的组名
切换完成之后,然后我们发现主组变成了python了
用户在哪个组,那个组就变成主组了
我们现在创建了一个t2.txt文件
  1. xiaohei@clem:~$ newgrp python
  2. xiaohei@clem:~$ groups
  3. python xiaohei linux
  4. xiaohei@clem:~$
  5. ^Cxiaohei@clem:~$ touch t2.txtxiaohei@clem:~$ lst1.txt  t2.txtxiaohei@clem:~$ ls -ltotal 0-rw-rw-r-- 1 xiaohei xiaohei 0 Sep 16 20:24 t1.txt-rw-rw-r-- 1 xiaohei python  0 Sep 16 20:58 t2.txt
复制代码

我们对于刚创建的t2.txt文件来说的话
这个文件是处于python是主组的情况下创建的
那么这个文件就是属于python组的
那么闻一知十:现在我们现在使用newgrp切换到linux这个组的话,然后我们进行文件的创建的操纵,然后我们可以使用ls -l发现我们创建的文件是linux组的

  1. xiaohei@clem:~$ newgrp linux
  2. xiaohei@clem:~$ touch t3.txt
  3. xiaohei@clem:~$ ls -l
  4. total 0
  5. -rw-rw-r-- 1 xiaohei xiaohei 0 Sep 16 20:24 t1.txt
  6. -rw-rw-r-- 1 xiaohei python  0 Sep 16 20:58 t2.txt
  7. -rw-rw-r-- 1 xiaohei linux   0 Sep 16 21:03 t3.txt
复制代码

所以我们发现我们切换到的是哪个组,那么我们在这个组中创建的文件都是这个组的
-rw-rw-r-- 这个是文件的权限
1是文件的数目
背面的xiaohei是创建文件的用户
再背面的python就是创建文件的用户组,背面的就是时间
那么最后我们将主组切换归去

删除用户组 sudo groupdel 要删除的用户组

删除用户组的话我们须要先su 到bd

  1. bd@clem:/home/xiaohei$ sudo groupdel linux
  2. bd@clem:/home/xiaohei$ su xiaohei
  3. Password:
  4. xiaohei@clem:~$ groups
  5. xiaohei python
  6. xiaohei@clem:~$
复制代码
使用sudo groupdel 指定的用户组
将指定的用户组进行删除的操纵
然后我们使用groups查看当前存在的组,那么linux就不存在了

那么我们之前在linux组中创建的文件的显示就不是linux了
3.文件编辑-Vim的使用

vim分为三种模式:
1.命令模式:打开文件就会进入的模式,通过上下左右键进行光标的移动操纵,输入:进入编辑模式
2.输入模式:在命令模式下,输入i键进入输入模式,按Esc退出输入模式,进入到命令模式
3.编辑模式(末行模式):在命令模式输入:就能进入编辑模式


修改设置文件

通过vim进行
设置文件在etc文件中

我们在xiaohei这个用户是不能暂时提权的
我们须要先切换到bd用户里面,因为xiaohei 没有sudo 的权限
进入命令模式


  1. sudo vim /etc/passwd
复制代码

这个页面就是命令模式了,我们在命令模式通过上下左右键进行光标的移动操纵
在这个页面我们通过上下左右键位找到xiaohei

找到xiaohei 然后将最背面的sh改成bash
进入输入模式进行内容的修改操纵

因为现在是命令模式,我们须要按i键进入到输入模式

按了i之后就变成了输入模式了,下面出现了INSERT了
然后我们就能进行一个修改的操纵了

将原先的sh改成bash就实现了我们想要的修改设置文件的操纵了
改完之后我们想要退出怎么做呢?
我们按左上角的Esc就能实现退出输入模式的操纵了

现在我们改完了,想要退出这个页面进入编辑模式我们改怎么做呢?
进入编辑模式

我们在命令模式输入冒号:进入编辑模式
我们在命令模式输入:进入编辑模式的时间我们能选择做一些小操纵
  1. q---退出(在没有对文件进行内容改动的情况下)
  2. q!---强制退出(在对文件进行了改动,但是不想保存改动的内容)
  3. wq---保存退出(在文件进行了改动,并且要保存的情况下使用)
复制代码
我们现在已经将sh修改为了bash了
那么我们就须要进行一个生存的操纵了
那么我们如何做呢?
那么我们就须要输入:wq
因为我们改动了而且须要进行生存的操纵

在这里输入wq进行回车的操纵

我们就回到了原先的界面了

使用vim对t2.txt这个文件进行编辑操纵
进入命令模式

我们输入i进入输入模式,在书写完自己的文之后,我们如何退出这个页面呢?
我们先按左上角的Esc

然后输入冒号:

然后输入exit直接退出这个页面
然后我们使用cat就能查到我们刚刚在这个文件里面写入的代码了

  1. xiaohei@clem:~$ vim t2.txt
  2. xiaohei@clem:~$ cat t2.txt
  3. print(123)
  4. xiaohei@clem:~$
复制代码

必须在命令模式进行命令的输入
我们在使用vim进入到xuanxuan.txt的编辑模式后,我们在其中一行点击yy,这一行的内容就被复制下来了
然后在另一行点击p,那么就在这里粘贴我们之前复制的那行的文本了
寄存器


我们先输入冒号然后输入reg
我们就能查看寄存器内容

使用dd可以删除行


4.查找命令

命令搜索
使用whereis进行搜索命令的位置和资助文档的位置

  1. bd@clem:~$ vim xuanxuan.txt
  2. bd@clem:~$ whereis vim
  3. vim: /usr/bin/vim.basic /usr/bin/vim /usr/bin/vim.tiny /etc/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
复制代码
假如单纯的只是想要搜索位置的话,我们可以使用上which

  1. bd@clem:~$ which vim
  2. /usr/bin/vim
复制代码
在 Linux 系统中,命令搜索是一个常见的任务,尤其是当你须要找到特定的命令大概相识命令的用法时。以下是一些常用的方法来搜索 Linux 命令:

  • 使用 man 命令: man 是 "manual" 的缩写,它提供了一个在线资助系统,你可以使用它来查找命令的手册页。
  1. man command_name
复制代码

  • 使用 whatis 命令: whatis 命令提供了一个快速的方式来查看命令的简短描述。
  1. whatis command_name
复制代码

  • 使用 apropos 命令: apropos 命令可以在手册页的名称和简短描述中搜索关键词。
  1. apropos search_keyword
复制代码

  • 使用 whereis 命令: whereis 命令用于定位二进制、源和手册页文件的位置。
  1. whereis command_name
复制代码

  • 使用 which 命令: which 命令显示给定命令的绝对路径。
  1. which command_name
复制代码

  • 使用 type 命令: type 命令用于显示命令的类型,比如是内置命令、别名还是可实行文件。
  1. type command_name
复制代码

  • 使用 history 命令: history 命令可以查看你之前输入的命令历史,偶然间你可以在这里找到你之前使用过的命令。
  1. history | grep search_keyword
复制代码

  • 使用 find 命令: find 命令可以在文件系统中搜索文件和目次,可以用来查找命令的可实行文件。
  1. find / -type f -name command_name
复制代码

  • 使用 grep 命令: grep 命令可以用来搜索包罗特定文本的文件,你可以用它来搜索包罗命令用法的文件。
  1. grep -r "command_name" /path/to/search
复制代码

  • 使用 alias 命令: 假如你设置了命令的别名,alias 命令可以显示别名的界说。
  1. alias command_name
复制代码

  • 使用 update-alternatives 命令: 在某些 Linux 发行版中,update-alternatives 用于管理软件的多个版本,可以用来查找命令的不同版本。
  1. update-alternatives --list command_name
复制代码

  • 使用 locate 命令: locate 命令使用预建的数据库来查找文件,可以快速定位命令的位置。
  1. locate command_name
复制代码
这些方法可以资助你在 Linux 系统中有效地搜索命令。记得在使用这些命令时,你大概须要根据你的具体需求调整搜索参数。
find命令


find命令格式:find [-path] -options
path就是我们要查找的目次,默认是当前目次
以下是 find 命令的归纳总结:
find 命令格式:

  1. find [path] -options
复制代码


  • path: 要查找的目次,默认是当前目次。
  • options: 用于指定查找的条件。
常用选项:


  • -name: 按文件名的某种规则查找。
  • -type: 按文件类型查找。常用值:


  • f:普通文件
  • d:目次

  • -size: 按文件巨细查找。
  • -exec: 实行命令。假设 find 指令的回传值为 True,就实行该命令。
  • -print: 输出查找结果。假设 find 指令的回传值为 True,就将文件或目次名列出到标准输出,默认格式是 ./ 开头的相对路径。
通配符:



  • *:匹配任意内容。
  • ?:匹配任意一个字符。
  • []:匹配任意一个中括号内的字符。

这是 find 命令的基本布局和常见选项,资助你进行文件和目次的机动查找。
用的比较多的是前三项
线下我们想查看当前文件夹下的所有py文件
  1. bd@clem:~$ find -name '*.py'
复制代码

查询之后我们能看到很多的隐藏的py文件
find -name '*.py'
探求全部(*)的文件中name是.py结束后缀的文件
当前文件夹所有的py文件
进行txt文件的查找

这个*是通配符
我们查找普通的目次--就是这里的文件夹
find -type d
d是目次的意思

  1. bd@clem:/home/xiaohei$ find -type d
  2. .
  3. ./jianyi
  4. bd@clem:/home/xiaohei$
复制代码
找出当前目次中巨细为0的文件

  1. bd@clem:/home/xiaohei$ find -size 0
  2. ./t3.txt
  3. bd@clem:/home/xiaohei$
复制代码
查找当前目次巨细为10的内容

但是这里我们是没有的
grep命令


您上传的图片内容为有关 grep 命令的选项分析,以下是该内容的归纳总结:
grep 命令及选项分析:



  • 命令格式:grep [选项] 文件
  • 常用选项
  • -c:盘算符合样本样式的行数。
  • -E:将样本样式扩展为普通表示法(启用扩展正则表达式)。
  • -i:忽略字母巨细写的差别。
  • -n:在显示符合样式的行前,标示该行的编号。
  • -s:不显示错误信息。
  • -v:反转查找,显示不符合样式的行。
  • -w:只显示完全匹配的行。
  • -x:只显示完全符合的行。
  • -o:只输出文件中匹配到的部分。
这些选项资助在文本中进行更精确的查找和过滤。
grep参数 正则表达式 查找的文件
我们先创建一个1.py文件,里面写上几句代码

然后将文件拖到bd用户的文件夹里面

我们先使用cat查看里面的内容

  1. bd@clem:/home/xiaohei$ cd /home
  2. bd@clem:/home$ ls
  3. bd  xiaohei
  4. bd@clem:/home$ cd bd
  5. bd@clem:~$ ls
  6. 1.py  68  environment  kaizi  kk  py_case  xuanxuan.txt
  7. bd@clem:~$ cat 1.py
  8. print(123)
  9. def test():
  10.     print(12)
  11. for i in range(1,5):
  12.     print(i)
  13. test()
复制代码
然后我们使用grep进行符合条件的内容的查找了
现在我们查找的是文件中print的数据行

  1. bd@clem:~$ grep 'print' 1.py
  2. print(123)
  3.     print(12)
  4.     print(i)
复制代码
那么就会将print的语句打印出来
现在我们想查看文件中含有冒号的句子
]

  1. bd@clem:~$ grep ':' 1.py
  2. def test():
  3. for i in range(1,5):
  4. bd@clem:~$
复制代码
那么我们循环和函数背面都带有冒号,那么都会在这里显示出来
-n 查看符合条件的语句在多少行

现在我们想看这上面的两个符合条件的句子在多少行,那么我们就须要进行参数的添加操纵了
-n的添加可以看行数

  1. bd@clem:~$ grep ':' 1.py
  2. def test():
  3. for i in range(1,5):
  4. bd@clem:~$
  5. ^Cbd@clem:~$ grep -n ':' 1.py3:def test():6:for i in range(1,5):bd@clem:~$
复制代码
可以看到前面加上了行数,第几行的数据
-c 查看有几个符合参数的

假如想看这个文件中有几个匹配项的话可以使用参数-c进行查看的

  1. bd@clem:~$ grep -c ':' 1.py
  2. 2
  3. bd@clem:~$
复制代码
-v 反向查找---将不符合条件的内容筛选出来


  1. bd@clem:~$ cat 1.pyprint(123)def test():    print(12)for i in range(1,5):    print(i)test()bd@clem:~$ grep 'print' 1.py
  2. print(123)
  3.     print(12)
  4.     print(i)
  5. bd@clem:~$ ^Cbd@clem:~$ ^Cbd@clem:~$ ^Cbd@clem:~$ grep ':' 1.py
  6. def test():
  7. for i in range(1,5):
  8. bd@clem:~$
  9. ^Cbd@clem:~$ grep -n ':' 1.py3:def test():6:for i in range(1,5):bd@clem:~$ ^Cbd@clem:~$ grep -c ':' 1.py
  10. 2
  11. bd@clem:~$
  12. ^Cbd@clem:~$ grep -v ':' 1.pyprint(123)    print(12)    print(i)test()bd@clem:~$
复制代码
xargs



  1. bd@clem:/home$ cd bd
  2. bd@clem:~$ ls
  3. 1.py  68  environment  kaizi  kk  py_case  xuanxuan.txt
  4. bd@clem:~$ find -name '1.py' | xargs rm
  5. bd@clem:~$ ls
  6. 68  environment  kaizi  kk  py_case  xuanxuan.txt
  7. bd@clem:~$
复制代码
find -name '1.py' | xargs rm
对于这个指令来说的话,我们使用前面将1.py这文件找到,然后给到背面进行指定的命令
我们这里的命令就是删除操纵
然后我们回车,这个文件就被删除了
我们这里就是指定删除命令

  1. bd@clem:~$ cd py_case
  2. bd@clem:~/py_case$ ls
  3. kaikai  kaikai.py  t  t1.py  test.py
  4. bd@clem:~/py_case$ find -name '*.py' | xargs ls -l
  5. -rw-rw-r-- 1 bd bd 10 Sep 16 12:08 ./kaikai.py
  6. -rw-rw-r-- 1 bd bd 33 Sep 10 10:05 ./t1.py
  7. -rw-rw-r-- 1 bd bd  0 Sep 10 10:05 ./test.py
  8. bd@clem:~/py_case$
复制代码
我们使用find命令找到当前目次所有的.py文件,然后使用xargs进行命令的实行,我们实行的命令是ls -l就是查看文件的所有信息
然后我们回车,这个目次直线的所有.py文件的信息就显示出来了
肯定要有这个竖线进行分割,右边实行的命令加在左边找到的文件上,
5.权限管理

权限的解释


-rw-rw-r--
第一个符号:-为文件 d为目次(文件夹)l为链接文件
  1. - 为文件
  2. d 为目录(文件夹)
  3. l 为链接文件
复制代码
第二个到第四个字符:所有者(u)的权限
第五个到第七个字符:所属组(g)的权限
第八个到第十个字符:其他用户(o)的权限

这几个字符关乎到不同的用户有着不同的增删改查的操纵
权限指对文件进行读写实行的操纵
还能通过数字进行表示
r (4)可读
w(2) 可写
x (1)可实行
所有者(u)
所属组(g)
其他用户(o)
-表示没有权限

  1. xiaohei@clem:~$ mkdir jianyi
  2. xiaohei@clem:~$ ls -l
  3. total 8
  4. drwxrwxr-x 2 xiaohei xiaohei 4096 Sep 17 13:20 jianyi
  5. -rw-rw-r-- 1 xiaohei xiaohei    0 Sep 16 20:24 t1.txt
  6. -rw-rw-r-- 1 xiaohei python    12 Sep 16 21:31 t2.txt
  7. -rw-rw-r-- 1 xiaohei    1005    0 Sep 16 21:03 t3.txt
复制代码
前面的rwx是我们的权限,可读可写可实行
背面的是其他用户的权限,只能读和实行,是不能进行写的

我们这个jianyi是xiaohei用户创建的,那么我们切换到bd用户,然后cd到jianyi用户里面,我们进行文件的创建,然后回车,发现报错了,分析我们只能看只能读,但是不能对这个文件夹大概是在这个文件夹里面进行一系列的操纵
就是jianyi这个文件夹是xiaohei这个用户创建的,只有xiaohei这个用户才能对jianyi 这个文件夹进行一系列的操纵---增删改查,
其他的用户只能看,不能对这个文件夹做出任何的改动
权限的修改只有文件的拥有者和root用户才有改变文件的权限

从下面我们知道rwx可以通过数字进行表示
那么我们现在想要
读写:


  • rw-
  • 6 (r是4,w是2,那么加起来就是6)
读、可实行:


  • r-x
  • 5 (r是4,x是1,加起来就是5)
读写、可实行


  • rwx
  • 7 (所有权限)
没有权限



  • 0


我们对其他用户创建的文件进行vim操纵的时间是不可的,因为我们只有读的权限
这个报错缘故起因:对只读文件进行修改

改变权限 sudo chmod 对什么用户(字母表示)+、-(添加权限大概删除权限)操纵(r w x) 要添加权限的文件名字

主要是改变其他用户对这个文件的权限
添加权限---对jianyi这个文件添加可写的操纵

sudo chmod 对什么用户(字母表示)+操纵(r w x) 要修改的文件名字

现在我们能看的到jianyi对于其他用户来说的话只有r-x的权限 ,就是只能看和读不能写
现在我们想用bd用户来对xiaohei用户创建的文件夹进行文件的添加操纵
那么我们就须要给其他的用户添加一个可写的操纵
我们先sudo进行提权的操纵,然后使用chmod进行操纵
o是其他用户的表示
+w表示添加一个可写的操纵
最背面就是给那个文件进行权限的修改

  1. bd@clem:/home/xiaohei$ sudo chmod o+w jianyi
  2. [sudo] password for bd:
  3. bd@clem:/home/xiaohei$ ls -l
  4. total 8
  5. drwxrwxrwx 2 xiaohei xiaohei 4096 Sep 17 13:20 jianyi
  6. -rw-rw-r-- 1 xiaohei xiaohei    0 Sep 16 20:24 t1.txt
  7. -rw-rw-r-- 1 xiaohei python    12 Sep 16 21:31 t2.txt
  8. -rw-rw-r-- 1 xiaohei    1005    0 Sep 16 21:03 t3.txt
复制代码
这个时间我们就能发现我们现在对于其他用户而言的话,jianyi这个文件是有rwx这三种权限的
那么我们通过了chmod对jianyi这个文件添加了可写的操纵
原先是只能进行读和可实行
删除权限---对jianyi这个文件调整为只能读,不能写和实行


  1. bd@clem:/home$ cd /home/xiaohei
  2. bd@clem:/home/xiaohei$ ls
  3. jianyi  t1.txt  t2.txt  t3.txt
  4. bd@clem:/home/xiaohei$ sudo chmod o-wx jianyi
  5. bd@clem:/home/xiaohei$ ls -l
  6. total 8
  7. drwxrwxr-- 2 xiaohei xiaohei 4096 Sep 17 13:20 jianyi
  8. -rw-rw-r-- 1 xiaohei xiaohei    0 Sep 16 20:24 t1.txt
  9. -rw-rw-r-- 1 xiaohei python    12 Sep 16 21:31 t2.txt
  10. -rw-rw-r-- 1 xiaohei    1005    0 Sep 16 21:03 t3.txt
  11. bd@clem:/home/xiaohei$
复制代码
sudo chmod o-wx jianyi
这个命令的意思就是:我们先提权(sudo),然后将其他用户(o)对jianyi这个文件的的wx(写和可实行的权限) 删除(-)
那么现在其他用户对xiaohei创建的jianyi这个文件只有读的权限了
添加权限---对文件t1.txt进行修改的操纵,加上可写的权限


  1. bd@clem:/home/xiaohei$ cd /home/xiaohei
  2. bd@clem:/home/xiaohei$ ls
  3. jianyi  t1.txt  t2.txt  t3.txt
  4. bd@clem:/home/xiaohei$ sudo chmod o+w t1.txt
  5. bd@clem:/home/xiaohei$ ls-l
  6. ls-l: command not found
  7. bd@clem:/home/xiaohei$ ls -l
  8. total 8
  9. drwxrwxr-- 2 xiaohei xiaohei 4096 Sep 17 13:20 jianyi
  10. -rw-rw-rw- 1 xiaohei xiaohei    0 Sep 16 20:24 t1.txt
  11. -rw-rw-r-- 1 xiaohei python    12 Sep 16 21:31 t2.txt
  12. -rw-rw-r-- 1 xiaohei    1005    0 Sep 16 21:03 t3.txt
  13. bd@clem:/home/xiaohei$
复制代码
那么现在t1.txt就变成了可读可写的文件了
那么我们现在就能开始进行写
对于用户组的权限

chgrp--修改文件的所属用户组

chgrp 要修改为哪个组 须要修改的文件

上节课我们将t3的主组删除了,现在我们想将t3切换到别的组该怎么做呢?

  1. xiaohei@clem:~$ chgrp xiaohei t3.txt
  2. xiaohei@clem:~$ ls -l
  3. total 12
  4. drwxrwxr-- 2 xiaohei xiaohei 4096 Sep 17 13:20 jianyi
  5. -rw-rw-rw- 1 xiaohei xiaohei   11 Sep 17 14:50 t1.txt
  6. -rw-rw-r-- 1 xiaohei python    12 Sep 16 21:31 t2.txt
  7. -rw-rw-r-- 1 xiaohei xiaohei    0 Sep 16 21:03 t3.txt
复制代码
使用chgrp将t3.txt这个文件的主组设置为xiaohei
我们假如想改变用户组的权限的话,我们通过g就能进行修改的操纵了
改变属主

现在我们想将t2.txt的用户从xiaohei改成bd

  1. bd@clem:/home/xiaohei$ ^C
  2. bd@clem:/home/xiaohei$ sudo chown bd t2.txt
  3. [sudo] password for bd:
  4. bd@clem:/home/xiaohei$ ls -l
  5. total 12
  6. drwxrwxr-- 2 xiaohei xiaohei 4096 Sep 17 13:20 jianyi
  7. -rw-rw-rw- 1 xiaohei xiaohei   11 Sep 17 14:50 t1.txt
  8. -rw-rw-r-- 1 bd      python    12 Sep 16 21:31 t2.txt
  9. -rw-rw-r-- 1 xiaohei xiaohei    0 Sep 16 21:03 t3.txt
  10. bd@clem:/home/xiaohei$
复制代码
在bd用户中使用sudo chown bd t2.txt这个命令
将t2.txt文件的归属用户改成bd
xiaohei用户是改变不了的


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表