一、命令行提示符

1.1 命令行基础

bearpi:当前用户名,在@前是用户名

ubuntu:用户所在的域名,在@后面,这是我自定义的,默认应该是主机名

~ 波浪线为目前所在目录,~代表家目录(home directory)

后面紧跟的 $ 为当前所具有的权限,$ 代表普通用户 # 代表 root 管理员

1.2 一些简单的命令

1.2.1 sudo su 命令

可以暂时获得 root 权限,可见后边的 $ 变成了 #

1.2.2 date 命令

顾名思义,这个命令是获得当前系统时间

1.2.3 ls 命令

ls 是 list 的缩写,是列出、列举的意思,在 linux 中,ls 命令是列出当前目录的文件或文件夹。

下面列举出了用户家目录的文件夹,从左到右分别是 桌面、文档、下载、音乐等文件夹

1.3 寻找命令的快捷键

在寻找任何命令或者文件都可以摁 tab 键显示提示,下面在终端输入 da 之后摁两下 tab 键即给出提示:

在 cd 后摁两下 tab 键 可以给出可选的文件名

1.4 命令的参数

参数是在命令后的一些补充项,命令和参数用空格隔开即可

  • 参数可以有多个,都用空格隔开
  • 参数可以包括数字、字母等,并且区分大小写
  • 参数没有固定的格式,但要遵守一般的规范

1.4.1 短参数

段参数是指,只有一个字母的参数,是参数的缩写方式,由一个 - 短杆作为前缀

下图执行了 ls -a 这个短参数命令 ,其作用是显示隐藏的文件或文件夹

 ls -l 短参数命令,作用是列出详细的信息

段参数可以加好几个,也可以合并一起用:

1.4.2 长参数

长参数使用两个 -- 作为参数开头,在 ls 命令中,-a 和 --all 的功能完全一致

二、linux 的文件与目录

在 linux 中,一!切!皆!文!件!即使是通过驱动挂载的外设也是文件

linux 的不像 windows 一样有 C盘、D盘等。linux 只有一个根目录 / (斜杠)

linux 中没有比根目录再高一阶的目录了,没有目录包括根目录。

2.1 根目录的结构

执行 ls / 可显示根目录下的结构,在这里有一些是我自行添加的,新装的 ubuntu 系统并没有。

其中有几个重要的文件夹:

bin 是英语 binary 的缩写,表示二进制文件
boot 和引导启动程序密切相关的文件
dev 外设,他的子目录,每一个对应一个外设
etc 包括系统的配置文件
home 表示 “家”,用户的私人目录,类似于 windows 中我的文档
lib 表示库,包括被调用的库文件,也就是 windows 中的 .dll 文件
media 媒体文件夹,可移动的外设,光盘、U盘等,就可以通过此目录访问
mnt 英语 mount 的缩写,表示挂载,挂载一些外设即可通过此目录访问
 opt 目录 应用程序目录,第三方软件或者插件

其中所有根目录结构基本如下,home 目录的每一个文件夹即代表一个用户,当前图中表示有两个目录,oscar 和 john。但是 root 用户文件夹则在根目录而不在此文件夹中。

执行 ls /home 查看home目录下结构,可见系统中只有 bearpi 一个用户文件夹

2.2 witch 命令

witch 命令可以查看命令程序所在的目录,执行 which pwd 显示 pwd 命令在 bin 下。

2.3 ls 命令常用参数

-t 按修改、创建时间正序
-a 显示所有目录,包括隐藏的,以 . 开头的文件是隐藏文件
-A 将不包括 . 和 .. 也就是本目录和上一级目录
-l 列出详细信息
-h

以 Kb、Mb、Gb 列出信息

-a-A 区别:

 ls -l 命令详解,其中下面这些陌生的东西会在后边讲解

推荐使用 ls -lh 这样文件大小比较直观

2.4 cd 命令 跳转目录

cd (change directory) 切换目录,最常用的命令。

cd ../ 跳转到上一级目录

cd /home 跳转到 /home 目录

2.5 du 命令 查看目录大小

ls -l 命令其实并不会深入统计子目录的文件大小,du 命令会递归统计文件夹所有大小

2.6 touch 命令 创建一个空白文件

touch test 在当前目录创建一个名为 test 的文件,如果执行 touch / test 则是在根目录创建

如果执行 touch test1 test2 则会创建两个文件

touch 命令是触摸这个文件的意思,如果对一个已经存在的文件使用 test 命令,则会更新修改时间,没有则会自动创建

2.7 mkdir 命令  创建一个目录

mkdir 是 make 和 directory 的缩写,表示创建一个文件夹

2.8 cp 命令 拷贝文件与文件夹

2.8.1 拷贝文件

使用 cp test dir1 即可将 test 文件拷贝到 dir1 文件夹中

2.8.2 拷贝目录

只需要在后边加上 -r 参数,意思是为递归的 (recursive),即可递归拷贝过去

比如:cp dir1 dir2 -r 即可将 dir1 拷贝到 dir2 目录下

2.9 mv 命令 移动/重命名文件与文件夹

2.9.1 移动文件或文件夹

使用方法与 cp 命令一样,只是换成了 mv,不再赘述

也可以配合通配符使用:如 mv *.txt dir1 即可将所有的 txt 文件移动到 dir1 下

2.9.2 重命名文件或文件夹

除了移动文件,mv 命令还可以用于重命名文件。

在 linux 系统中,没有单独重命名文件的命令,因为 mv 命令可以移动文件,如果我们把一个文件移动到当前文件夹,并且取一个新名字,不就是等同于重命名了吗?

下图中,我们执行了 mv dir1 dir2 把 dir1 文件夹重命名为 dir2。

2.10 rm 命令 删除文件或目录

rm test 命令即可删除本目录的 test 文件

其中可以添加参数 -r 递归删除;-f 不询问,强制删除;-i 挨个文件提示

来分析一下大名鼎鼎的 rm -rf/*

-r 递归删除,-f 不询问,/* 即代表删除根目录下所有的文件。执行后会删除整个系统

注意,请不要将 windows 的盘挂载到 linux 中还执行这条命令,挂载盘也在根目录下。

2.11 硬链接

硬链接类似于 windows 的快捷方式,在 linux 下有两种链接方式:

  • physical link:物理链接或硬链接
  • ymbolic link:符号链接或软连接

其中,硬链接只能连接文件,软连接可以连接文件夹。

2.11.1 inode 标识

每个文件的文件内容均被分配到一个标识号码,就是 inode。因此,如果要在 linux 实现类似于快捷方式的东西,只需要将这个 “快捷方式文件”,指向这个唯一的 inode 即可。

2.11.2 ln 命令创建硬连接

ln file1 file2 命令即可为file1 文件创建了 名为 file2 的硬链接

下图中使用了 stat file1/file2 来查看文件的 inode 值,可见在创建硬连接后,这两者值是相同的。

此时,我们删除file1 或者 file2 任意一个文件都不会 inode 指向的这一块数据产生影响,只有当两者都删除,linux 才会将这块数据删除。

三、用户权限和群组

一图说明 root,群组和用户的关系

3.1 sudo 在普通用户下获得 root 权限

sudo 是命令 substitute user do 的缩写,substitute 是代替的意思 u 则是 user 的缩写。合在一起就是替用来执行... 的意思。

普通的用法就是 sudo 后接希望 root 权限执行的命令。下图中 使用 root 权限执行了 date

 sudo su 命令可以让当前终端暂时获得 root 权限。在下图中,我在一个中断窗口使用 sudo su 获得root 权限,可见使用后 $ 变成了 #,但是我打开一个新窗口则还是普通权限的 $。

3.2 创建用户

创建用户有两个命令:useradd 和 adduser

  • 使用 useradd 时,如果后面不添加任何参数选项,例如:sudo useradd test 创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。
  • 使用adduser 则默认添加了这三者,并且要求输入初始密码。

下面我们只演示 adduser 的用法,输入 adduser abc 即可创建一个名为 abc 的用户,在注销后即可用这个账号从新登录。

3.2 passwd 命令 修改密码

passwd abc 即可修改 abc 用户的密码,下面我们用 root 权限来执行试试:

3.3 userdel 命令 删除用户命令

userdel abc 可以删除我们刚刚创建的 abc 用户。不过这种办法并不会删除 home 目录下 abc 的目录。

加入  -r 参数 或者 --remove 可以将 home 目录下也一起删除

3.4 groupadd 命令 添加群组

groupadd group1 命令创建一个名为 group1 的群组

3.5 usermod 命令 修改用户账户

usermod -g group1 abc 将 abc 添加到 group1 组,可见使用 ls -l /home 命令查看 abc 群组,已经是 group1 组了。

使用 usermod -G group1 group2 group3 abc 大写 -G 参数即可将 abc 添加到多个群组。

但是 -G 参数会先删除当前群组再添加,此时可以使用 -G -a 两个参数,a是 append 的意思。

3.6 groupdel 命令 删除群组

使用 groupdel group1 命令即可删除 group1 群组,但是要需要此群组下没有任何用户,如果有先使用 usermod -G 命令将其移动到别的组。

3.7 文件权限的原理

使用 ls -l 命令,左边第一组即说明这个文件的权限。

属性:d 英语 directory 的缩写表示这是一个文件夹。在第二行第一个则是 - 表示这是一个连接,说明这是一个文件或者软/硬连接。

所有组:r 表示读 (read),w 表示写 (write),x 表示可执行 (execute)。rwx 表示当前用户可读可写可执行。如果是 - 则说明没有这个权限。

群组用户:说明了当前群组的对该文件的权限

其他用户:顾名思义,说明了其他用户对该文件的权限

比如第二行 -rw-rw-r-- 表示这是一个文件或者软/硬连接,所有者权限可读可写不可执行,群组权限相同,其他用户只可读。

3.8 修改文件权限 chmod 命令

linux 对每种权限都分配了一个数字。

比如我们要分配读、写、不可执行的权限,那么就将 4+2=6,6即代表这种权限。

由上一章 3.7,linux 共有三组权限:所有组、群组用户组、其他用户组,那么我们用三个数组就可以配置这些权限。

由此可知,最高的权限自然是 777,任何用户可读可写可执行。最低的权限是 000 任何用户都不能对这个文件做什么。

下面来执行一下 chmod 000 file2 可见在执行后文件权限都变成了 ----------

Linux 学习笔记 文件、目录操作与用户群组权限相关推荐

  1. Linux学习笔记 文件服务Vsftp详细介绍

    Linux学习笔记 文件服务Vsftp详细介绍 知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据 ...

  2. Linux学习笔记-文件权限与路径

    Linux学习笔记-文件与目录 目前从电子信息科学与技术转到了计算机专业,因此想趁着大四比较闲的时候补一些计算机的知识.我想说:你好,生活[斜眼笑]!愿生活温柔以待!哈哈,这是我写的第一篇博客,谨以此 ...

  3. MySQL学习笔记07【事务、用户管理和权限管理】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  4. Linux学习笔记(二)(Vim文本编辑器 权限管理(用户,用户组) 系统相关(磁盘,进程))

    Linux学习笔记(二) 5.账号管理 概述 一.用户账号管理 概述 1. 添加账号 :useradd(`useradd 选项 用户名`) 2. 删除帐号(`userdel 选项 用户名`) 3. 修 ...

  5. Linux学习笔记——文件IO

    文章目录 前言 C语言操作文件的函数 系统接口 文件描述符 文件系统 动态库和静态库 前言   在系统角度理解文件:文件=内容+属性,内容和属性都是数据,对于文件的所有操作无外乎对于文件内容操作和对于 ...

  6. linux修改文件/目录所属的用户和组

    在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用户可以修改该文件的拥有者及用户组别:或者在root用户下,这样可以修改任何文件的拥有者及用户组. 而修改文件所属用户和组,需 ...

  7. Linux学习笔记——文件的查找与检索

    文章目录 文件的查找 按照文件名搜索 按照文件大小进行搜索 按照修改时间搜索 按照权限搜索 按照所有者和所属组搜索 按照文件类型搜索 逻辑运算符 其他选项 文件的检索 在当前目录查找 递归查找 反向查 ...

  8. RHCE 学习笔记(5)- 本地用户和组的管理

    这一节跟老师学习了RHEL7的用户管理 在windows里面,用户信息和密码是保存C:\windows\system32\config\sam 中,类似的,RHEL是将信息保存在 /etc/passw ...

  9. linux添加有效群组,linux 用户/群组/权限

    PHP获取时间日期的多种方法 分享下PHP获取时间日期的多种方法. <?php echo "今天:".date("Y-m-d")." " ...

最新文章

  1. MATLAB禁用!!MATLAB教程对高校全免费!!
  2. SOAP消息机制简介
  3. 从业务在线到互联互通,钉钉宜搭进入低代码3.0阶段新模式
  4. 进程间通信--无名管道(pipe)
  5. 前端H5怎么切换语言_「自学系列一」HTML5大前端学习路线+视频教程完整版
  6. 看到他我一下子就悟了---委托
  7. terminal mysql_MySQL的终端(Terminal)管理数据库、数据表、数据基本操作
  8. 2008年07月《安全天下事之莫须有的敌人与看得到的威胁》、2008年08月《安全天下事之七月流火》...
  9. MAC地址和IP地址
  10. 12113个岗位争夺AI人才!中国成为AI岗位空缺最多的国家
  11. piechart 文档 android,Android饼图 PieChart
  12. 全球及中国建筑设计行业十四五发展方向与投资决策建议报告2022版
  13. java古诗词打印_java古诗词自动生成程序.doc
  14. Cinema 4D(一):初识C4D
  15. Life feelings--10--inspiration and inner motivation
  16. N-gram和NNLM语言模型
  17. java限制手机号码,更严格的手机号码正则表达式写法 --java
  18. python 时间序列数据 重采样
  19. 彻底卸载Office 2010:Office 2010清理工具
  20. 用Python数据分析告诉你,《三十而已》凭什么这么戳中观众的心

热门文章

  1. 个人收集的RSA常用脚本
  2. 生活感悟——我对三句话的理解
  3. CCAI 讲师专访 | 机器学习奠基人Thomas Dietterich:人类将如何受到AI威胁
  4. vue路由导航守卫控制访问权限
  5. 巴菲特说的七段话,简短精辟
  6. SpringBoot实现输入三条边长,如果能构成三角形就计算周长和面积
  7. 深夜一家面馆里所发生的一幕
  8. 字体颜色、类型与大小
  9. freeswitch conference命令解释(mod_ conference)
  10. 鸿蒙系统游戏和安卓系统通用吗,华为鸿蒙系统玩王者荣耀和安卓是互通的吗