Linux Shell 脚本编程学习之【第2章 Linux文件系统和文本编辑器(第一部分)】

这篇具有很好参考价值的文章主要介绍了Linux Shell 脚本编程学习之【第2章 Linux文件系统和文本编辑器(第一部分)】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 用户和用户组

1.1 概念

1、root用户

系统唯一,是真实的。该用户既可以登录系统,可 以操作系统任何文件和命令,拥有最高权限。

2、虚拟用户

这类用户也被称为伪用户或假用户,与真实用户区分开来,这类用户不 具有登录系统的能力,但却是系统运行不可缺少的用户,比如 bin、daemon、adm、 ftp、mail等;这类用户是系统自身拥有的,而非后来添加的,当然,我们也可以添 加虚拟用户。

3、普通真实用户

这类用户能登录系统,但只能操作其根目录的内容,权限受到限制, 这类用户都是系统管理员自行添加的。

1.2 命令

用户组 (groupadd+groupdel+groupmod)

// 创建用户组
[root@localhost ~]# groupadd -g 808 xjgroup
[root@localhost ~]# cat /etc/group | grep xjgroup
xjgroup:x:808:
// 修改用户组
[root@localhost ~]# cat /etc/group |grep xj
xjgroup:x:808:
[root@localhost ~]# groupmod -g 809 xjgroup 
[root@localhost ~]# cat /etc/group |grep xj
xjgroup:x:809:
[root@localhost ~]# 

// 删除用户组
[root@localhost ~]# groupdel xjgroup
[root@localhost ~]# cat /etc/group |grep xjgroup
[root@localhost ~]# 

用户 (useradd+adduser+userdel+usermod)

// 创建用户root。命令useradd等同于adduser
-- [-u] 指定用户ID
-- [-g] 指定用户所属组
-- [-d] 指定家目录
[root@localhost ~]# useradd -u 808 -g xjgroup -d /home/xj xj
[root@localhost ~]# adduser -u 809 -g xjgroup -d /home/xj1 xj1
[root@localhost ~]# cat /etc/passwd | grep xj
xj:x:808:808::/home/xj:/bin/bash
xj1:x:809:808::/home/xj1:/bin/bash
[root@localhost ~]# 

// 设置用户密码后适用用户
[root@localhost ~]# passwd xj1

// 删除用户。root用户操作。
[root@localhost ~]# userdel xj xj1

// 修改用户。usermod
-- 修改用户有效期为3[root@localhost ~]# usermod -e 3 xj
-- 修改用户登录的初始目录
[root@localhost ~]# usermod -d /home/xj1 xj
-- 修改用户密码
[root@localhost ~]# usermod -p Xj123@22 xj

2 文件和文件夹

2.1 概念

1、文件名
由字母、数字、下画线和圆点组成的字符串 构成。长度要求:小于255个字符。
2、扩展名
文件名与扩展名之间用圆点分开。如:test.txt,txt为扩展名。
3、文件目录
是将所有文件的说明信息采用树形结构组织起来,即我们常说的目录。

整个文件系统有一个“根” (root), 然后在根上分“权” (directory), 任何一个分权上都可以再分权,权上也可以长出“叶子”。 “根”和“杈”在Linux 中被称 为“目录”或“文件夹”,而“叶子”则代表一个个的文件。

4、路径path
路径的主要构成是目录名称,中间 用“/”符号分开。对文件进行访问时使用。

任一文件在文件系统中的位置都是由相应的路径决定的。用户在对文件进 行访问时,要给出文件所在的路径,这又分相对路径和绝对路径。相对路径是从用户工作目 录开始的路径;绝对路径是指从“根”开始的路径,也称为完全路径。

2.2 文件操作命令

文件清单命令(ls)

选 项 意 义
-a 显示指定目录下所有的子目录与文件,包括隐藏文件
-A 显示指定目录下所有的子目录与文件,包括隐藏文件,且不列出“. ”和“. ”
-b 对文件名中的不可显示字符用八进制逃逸字符显示
-c 按文件的修改时间排序
-C 分成多列显示各项
-d 如果参数是目录,只显示其名称,而不显示其下的各文件。往往与1选项一起使用,以得到目录的详 细信息
-f 不排序,该选项将使ts选项失效,使用aU选项有效
-i 在输出的第一列显示文件的i节点号
-1 以长格式来显示文件的详细信息,每行列出的信息依次是:文件类型与权限、链接数、文件属主、文 件属组、文件大小、最近修改的时间、名字
-L 若指定的名称为一个符号链接文件,则显示链接所指向的文件
-m 输出按字符流格式,文件跨页显示,以逗号分开
-n 输出格式与1选项相同,只不过在输出文件属主和属组是用相应的UID号和GID号来表示,而不是 实际的名称
-0 与1选项相同,只是不显示拥有者信息
-p 在目录后面加一个“/”
-q 将文件名中的不可显示字符用“?”代替
-r 按字母逆序或最早优先的顺序显示输出结果
-R 递归式地显示指定目录的各个子目录中的文件
-s 给出每个目录项所用的块数,包括间接块
-t 显示时按修改时间(最近优先)而不是按名字排序;若文件修改时间相同,则按字典顺序,修改时间 取决于是否使用了c或u选顶。默认的时间标记是最后一次修改时间
-u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间标记修改为最后一次访 问的时间
-x 按行显示出各排序项的信息

文件复制命令(cp)

选 项 意 义
-a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录
-d 复制时保留链接
-f 删除已经存在的目标文件而不提示
-i 在覆盖目标文件之前将给出提示要求用户确认。回答y时,目标文件将被覆盖,是交互式复制
-p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r 若给出的源文件是目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须 为一个目录名
-1 不进行复制操作,只是链接文件

文件移动命令(mv)

选 项 意 义
-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用 户回答y或n,这样可以避免误覆盖文件
-f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不 再起作用
-p 移动时保持权限

文件删除目录(rm)

选 项 意 义
-f 忽略不存在的文件,从不给出提示
-r 指示rm将参数中列出的全部目录和子目录均递归地删除
-i 进行交互式删除

2.3 目录操作命令

创建目录命令(mkdir)

选 项 意 义
-m 对新建目录设置存取权限
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
-v 每次创建新目录都显示信息
[rootalocalhost   shell]#mkdir -p testdir/test

删除目录命令(rmdir)

选 项 意 义
-p 递归删除。当子目录删除后,其父目录为空时,也将会一同被删除。如果整个路径被删除 或者由于某种原因保留部分路径,则系统会在标准输出上显示相应的信息
–ignore-fail-on-non-empty 忽略非空目录的错误信息

rmdir 仅仅能删除父目录中只包含空子目录的情况,如果目录中存在文件,则使用 rmdir和 rmdir -p命令是无法删除该目录的,这时候使用:rm -rf [directoryName]文章来源地址https://www.toymoban.com/news/detail-577509.html

目录切换命令(cd)

选 项 意 义
cd 返回登录目录
cd~ 同样是返回登录目录
ed/ 返回系统根目录
cd /root 返回到根用户或超级用户(在安装时创建的账号)的主目录,但必须是根用户才能访问该目录
ed /home 返回到home目录,home目录通常为用户登录目录的上级目录
ed . 向上移动一级目录
cd- 返回上次访问的目录

到了这里,关于Linux Shell 脚本编程学习之【第2章 Linux文件系统和文本编辑器(第一部分)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Shell脚本编程实践——第3关:使用Shell脚本创建文件目录

    任务描述 本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。 相关知识 为了完成

    2023年04月22日
    浏览(32)
  • Linux——Shell脚本编程(1)

    1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 2)对于 JavaEE 和 Python 程序员来说,工作的需要,要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。 3) 对于大数据程序员来说,需要编写Shell程序来管

    2024年02月09日
    浏览(47)
  • Linux_5_Shell脚本编程

    程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构: 数据在计算机中的类型和组织方式 面向过程语言 做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理 问题规模小,可以步骤化,按部

    2024年02月13日
    浏览(35)
  • Linux实验4 shell脚本编程基础

    1.假设在/tmp下有以当前用户的帐号命名的目录,请在命令行中临时修改环境变量PATH的值,要求该目录的路径附加到该变量的最后。 2.请在命令行中临时设置命令输入提示行格式为:“当前系统时间-用户#”。 3.在命令行定义一个字符串变量str,并且赋值为“test for shell”,然

    2024年04月17日
    浏览(41)
  • 【Linux命令行与Shell脚本编程】第十六章 Shell函数

    脚本函数基础 函数返回值 在函数中使用变量 数组变量和函数 函数递归 创建库 在命令行中使用函数 可以将shell脚本代码放入函数中封装起来,这样就能在脚本的任意位置多次使用. 函数是一个脚本代码块,可以并在脚本中的任何位置重用它。当需要在脚本中使用该代码块时

    2024年02月14日
    浏览(41)
  • 3.7 Linux shell脚本编程(分支语句、循环语句)

    目录 分支语句(对标C语言中的if) 多路分支语句(对标C语言中的swich case) 分支语句(对标C语言中的if) 语法结构:          if    表达式                  then  命令表          fi     如果表达式为真, 则执行命令表中的命令; 否则退出if语句, 即执行fi后面的语句。

    2024年02月02日
    浏览(36)
  • Linux shell编程学习笔记29:shell自带的 脚本调试 选项

    Linux shell脚本的调试方法比较多,上次我们探讨和测试了shell内建命令set所提供的一些调试选项,其实 shell 本身也提供了一些调试选项。我们以bash为例来看看。 purleEndurer @ csdn ~ $ bash --help GNU bash, version 4.2.46(2)-release-(x86_64-redhat-linux-gnu) Usage:  bash [GNU long option] [option] ...      

    2024年02月04日
    浏览(40)
  • 【Linux命令行与Shell脚本编程】第十四章,呈现数据

    第十四章 呈现数据 1.1,标准文件描述符 文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT 标准输出 2 STDERR 标准错误 1.1.1,STDIN 标准输入 1.1.2,STDOUT 标准输出 1.1.3,STDERR 错误输出 1.2,重定向错误 1.2.1.只重定向错误 n 1.2.2.重定向错误消息和正常输出 2.1,临时重定向 2.2,永久重定向 exec 4

    2023年04月25日
    浏览(30)
  • Linux shell编程学习笔记44:编写一个脚本,将md5sum命令执行结果保存到变量中,进而比较两个文件内容是否相同

    在  Linux shell编程学习笔记42:md5sum https://blog.csdn.net/Purpleendurer/article/details/137125672?spm=1001.2014.3001.5501 中,我们提到编写一个在Linux系统下比较两个文件内容是否相同的脚本。 基本思路是: 其中有两个难点: 1.文件的md5值的获取 2.md5值的比较 对于第1个难点,我们的解决办法是

    2024年04月10日
    浏览(56)
  • linux|shell编程|shell脚本内的加减乘除运算实现示例

    shell脚本内的加减乘除是由于在编写kubernetes巡检脚本的时候,某些部分需要做一点简单的运算,突然发现我其实对这些不太熟悉。 因此,查阅了一些资料,现在就加减乘除运算在shell脚本内如何应用做一个简单的总结,写的不对的地方请各位轻点喷 首先,我们看一个错误的示

    2024年02月17日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包