【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)

文章目录

一、前言

上一篇博客介绍了centos7与Finalshell的安装,本篇命令介绍也使用Finalshell连接。

快捷键:alt+enter :Finalshell的进入/退出全屏。

1.1、Linux的文件结构是一颗从 根目录/ 开始的一个多叉树。

复制代码
    叶子节点:一定是普通文件或空目录
    非叶子节点:一定是非空目录

1.2、绝对路径与相对路径

绝对路径:直接将文件的路径点出来,例:cd /etc/yum,直接切换到yum目录

相对路径:以非根目录为参照位置,定位一个文件,例:在etc目录下进行cd ./yum,切换到当前目录(etc)下的yum目录

1.3、命令的本质是可执行文件。

1.4、家目录

复制代码
在Linux系统中,家目录(Home Directory)是分配给每个用户的个人目录,用于存储个人文件、配置文件、下载内容等。每个用户都有一个独特的家目录,通常位于/home目录下,其名称与用户的用户名相同。例如,用户jyan的家目录通常是/home/jyan。当然,root用户除外。

二、文件管理

c 复制代码
命令 --help   #查找该命令的用法

2.1、文件操作

1、pwd

c 复制代码
# pwd    #打印当前工作目录

显示当前目录的绝对路径

2、ls

c 复制代码
# ls     #显示该目录下文件的属性信息

ls 命令后可以写入不同的参数,会有不同的作用。

ls命令用法很多,我们这里只讲解常用用法。

c 复制代码
# ls		#显示当前目录下的所有文件(不包含隐藏文件)
# ls -a   #显示当前目录下的所有文件(包含隐藏文件)
# ls -l   #显示当前目录下的所有文件与其详细信息
# ls -d   #查看目录属性
# ls -t   #按时间顺序列出文件

3、cd

c 复制代码
# cd 文件路径   #切换当前工作目录到对象目录
# cd ./文件名	 #切换到当前目录下的目录中
# cd ..        #切换当前目录至上一级目录
# cd ~         #切换到当前用户的家目录

1、

c 复制代码
# cd 文件路径    #更改当前工作目录到对象目录

注:cd 后有空格

将文件从 ~ 切换到 / (根目录)

将文件从 / (根目录)切换到 yum

2、

c 复制代码
# cd ./文件名	 #切换到当前目录下的目录中

etc目录下有以下文件

当前目录为etc目录,该目录下有yum文件

切换到当前目录下的yum文件中。

3、

c 复制代码
# cd ..        #切换当前目录至上一级目录

etc的上一级目录为根目录 / , 使用改命令可以回退到上级目录。

4、

c 复制代码
# cd ~         #切换到当前用户的家目录 


root用户的家目录的路径在 /root 下

4、touch

c 复制代码
# touch 文件名     #更新文件时间,若文件不存在,则会创建一个新文件。

创建一个新文件 myfile

更新时间。

5、mkdir

创建文件。

c 复制代码
# mkdir [选项] [参数]

参数\]: 一般为目录或路径名,若参数为目录时,要保证新建目录不与同路径下的目录重名。若参数为路径时,要保证路径下的目录存在,或通过选项创建路径缺失的目录。 \[选项\]: ```c -p #若路径中的目录不存在,则先创建目录 -v #查看文件创建过程 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/73a2bd21ac4f4a9fb0182ce5c626d3d1.png) 在当前目录下创建文件 myfile2 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9e150f2461bc43fa84d97550a72e3ca4.png) #### 6、cp copy,将一个或多个源文件复制到指定的目录。 ```c # cp [选项] [源文件或目录] [目的目录] ``` \[选项\]: ```c -R #递归处理,将指定目录下的文件及子目录一并处理 -p #复制的同时不改变文件属性 -f #强行复制文件或目录 ``` 用法示例: ```c #将当前路径下的文件a复制到目录./dir中 # cp a ./dir #将当前目录下的b目录复制到./home/bxg # cp -R b ./home/bxg ``` #### 7、rm 删除目录中的文件或目录 ```c # rm [选项] 文件或目录 ``` ```c -r #删除文件 -f #强制删除,一般不要使用 -rf #删除文件,并且不一一确认 -i #删除时要进行一一确认 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/362fe9a60a6b40e48a9e118de07cdb07.png) 上图中,箭头指向的一行为确认删除,输入 y ,确认删除;输入 n,不删除。 #### 8、mv 移动文件或目录。 若该命令操作是相同路径下的两个文件,其功能变为修改文件名。 ```c # mv [选项] 源文件/目录 目标目录 ``` \[选项\]: ```c -b #若目标目录中文件已存在,则覆盖前为其创建一个备份 -f #若目标目录与现有目录重复,直接覆盖现有目录 -i #重名,覆盖前对要覆盖的内容进行逐一确认 -u #当源文件比目标文件新或目标文件不存在时,才执行移动 ``` 用法示例: ```c # 将文件a移动到 目录./home/bxg中 # mv a ./home/bxg ``` #### 9、rmdir 仅用于删除目录。 ```c # rmdir [-p] 目录 ``` ### 2.2、查看文件 #### 1、cat 将文件中的内容打印到输出设备上。 ```c # cat 文件名 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7665726ba6f04be0b271788bca6caacb.png) #### 2、more 分页显示文件内容。 ```c # more [文件名] ``` 相关快捷键: | 快捷键 | 说明 | |---------|-------| | f/Space | 显示下一页 | | Enter | 显示下一行 | | q/Q | 退出 | ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2a80a24d926f4ba89b638dd7bd1761e7.png) #### 3、less more命令只能向下翻页,而less命令可以实现向前翻页的功能。 ```c # less 文件路径 ``` #### 4、head 查看指定文件的前n行内容。 ```c # head -n 文件名(路径) ``` 其中 n 为要查找的行数 #### 5、tail 查看指定文件的后n行内容。 ```c # tail -n 文件名 ``` #### 6、wc 计算文件的字节数、字数和列数。 ```c # wc [选项] 参数 ``` \[选项\]: ```c -c #统计字节数 -l #统计行数 -w #统计字数 ``` 参数:一般是文件名 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7443d70f288c4daf80aa78ff10642730.png) ### 2.3、文件搜索 #### 1、which 获取指定命令的绝对路径。 ```c # which 命令 ``` 例: 搜索ls命令所在的路径 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1e4d40ba2224467b95acaf229a84ded8.png) #### 2、find 借助搜索关键字查找文件或目录 ```c # find [搜索路径] [选项] 搜索关键字 ``` 若不指定搜索路径,则find命令默认在当前路径下搜索。若当前路径下存在目录,则find命令会进入目录中逐级搜索。 搜索关键字可以是:文件名、文件大小、文件所有者等 \[选项\]: ```c -name #根据文件名查找 -size #根据文件大小查找 -user #根据文件所有者查找 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e9f7962e4848466cb9ced8a8f34b4434.png) #### 3、locate 借助搜索关键字查找文件或目录 ```c # locate [选项] 搜索关键字 ``` 搜索效率高,因为它搜索的是一个包含所有本地文件信息的数据库而非具体目录,该数据库系统自动创建。locate命令默认搜索这个数据库。 **可用 -d 来指定搜索路径** 注:使用locate之前,要通过updatedb 命令来手动更新数据库。 #### 4、grep 在文件中搜索与指定字符串匹配的行并打印到终端。 ```c # grep [选项] 指定字符 源文件 ``` \[选项\]: ```c -c #统计文本中与指定字符串匹配的行数 -E #使用扩展正则表达式进行匹配 -i #不区分大小写 ``` 查找 /etc/passwd 文件中包含 root 的行 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/da9c7d3f7c7d48a38ac1822fa3530494.png) ## 三、用户与用户组管理 Linux中的用户分为两大类:root超级用户和普通用户。 要知道与用户相关的命令: 输入user,之后点击两次tab键 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/230142e28635405daadc7813f3992cde.png) ### 3.1、用户管理 #### 1、useradd 添加用户 ```c # useradd [选项] 用户名 ``` \[选项\]: ```c -d #指定用户登录时的目录 -c #指定账户的备注文字 -e #指定账号的有效期限 -f #缓冲天数,密码过期时在指定天数后关闭该账号 -g #指定用户所属组 -G #指定用户所属的附加用户组 ``` 输入以下命令:创建新用户jyan,并令其ID为jyan ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5e7382f4cdfd4ee899b98356367e0229.png) #### 2、passwd设置用户密码 ```c # passwd [选项] 用户名 ``` ```c #为新用户jyan设置密码 # passwd jyan ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/91bba5b0fe03464fb42c3f0eb3c53e17.png) 这里是刚刚创建的新用户: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/980f1bfa44884080aa2ec27e4b0959c7.png) #### 3、su 用户切换 ```c # su [选项] [用户名] ``` 若选项和用户名缺省,表示切换到root用户,但仍保留原来用户的工作环境。 若使用 su - ,则表示从当前用户切换到root用户,并切换到root用户的工作目录。 \[选项\]: ```c -c #执行完指定指令后,切换到原来用户 -l #切换用户的同时,切换到对应用户的工作目录,环境变量改变 -m,-p #切换用户时,环境变量不变 -s #指定要执行的shell ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/42455a45096b4c1883bcc19c77f3c344.png) #:表示当前为超级用户 $:表示当前为普通用户 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2fc8131fbf9145d4ad8739f7a47a77a8.png) **注:使用su命令时,从root用户切换到普通用户,不用输入密码;但从普通用户切换到目标用户时,需要输入密码。** #### 4、删除用户 ```c # userdel [选项] 用户名 ``` \[选项\]: ```c -f #强制删除用户 -r #删除用户的同时,删除与其相关的所有文件 ``` ### 3.2、用户组管理 一般将权限相同的用户放在同一个用户组里。 要知道与组相关的命令: 输入group,之后点击两次tab键 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4021e97cc2f4484e85cd479e32fbd628.png) #### 1、新增用户组 groupadd 命令主动添加。 ```c # groupadd [选项] 参数 ``` \[选项\]: ```c -g #指定新建用户组的组ID -r #创建系统用户组,组ID范围在1~499 -o #创建组ID已经存在的用户组 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4e3ab7fb1f3343b78264836ebb5e1b50.png) #### 2、删除用户组 ```c # groupdel 用户组名 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/081ea2b406a949ae80879a5327072b45.png) #### 3、修改用户组属性 ```c # groupmod [选项] 参数 ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b6d97c5bc472478bb7c78af2f4a62d56.png) ## 四、谢谢观看!

相关推荐
❀͜͡傀儡师几秒前
多台服务器上docker部署 Redis 集群
运维·服务器·redis
JCBP_4 分钟前
数据结构4
运维·c语言·数据结构·vscode
AdrichPro12 分钟前
10、Linux C 网络编程(完整版)
linux·服务器·c语言·网络
橘猫云计算机设计16 分钟前
基于JavaWeb的二手图书交易系统(源码+lw+部署文档+讲解),源码可白嫖!
java·开发语言·前端·毕业设计·php
半桔17 分钟前
红黑树剖析
c语言·开发语言·数据结构·c++·后端·算法
江烽渔火26 分钟前
C++ 多态
开发语言·c++
今天_也很困34 分钟前
牛客2025年愚人节比赛
c++·算法
嘤国大力士34 分钟前
C++11&QT复习 (十)
java·c++·qt
Joe_Wang536 分钟前
[图论]拓扑排序
数据结构·c++·算法·leetcode·图论·拓扑排序
IT 小旋风40 分钟前
Linux centos 7 常用服务器搭建
linux·服务器·centos