【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    #查看文件创建过程

在当前目录下创建文件 myfile2

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     #删除时要进行一一确认

上图中,箭头指向的一行为确认删除,输入 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 文件名

2、more

分页显示文件内容。

c 复制代码
# more [文件名]

相关快捷键:

快捷键 说明
f/Space 显示下一页
Enter 显示下一行
q/Q 退出

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		#统计字数

参数:一般是文件名

2.3、文件搜索

1、which

获取指定命令的绝对路径。

c 复制代码
# which 命令

例:

搜索ls命令所在的路径

2、find

借助搜索关键字查找文件或目录

c 复制代码
# find [搜索路径] [选项] 搜索关键字 

若不指定搜索路径,则find命令默认在当前路径下搜索。若当前路径下存在目录,则find命令会进入目录中逐级搜索。

搜索关键字可以是:文件名、文件大小、文件所有者等

[选项]:

c 复制代码
-name		#根据文件名查找
-size		#根据文件大小查找
-user		#根据文件所有者查找

3、locate

借助搜索关键字查找文件或目录

c 复制代码
# locate [选项] 搜索关键字

搜索效率高,因为它搜索的是一个包含所有本地文件信息的数据库而非具体目录,该数据库系统自动创建。locate命令默认搜索这个数据库。
可用 -d 来指定搜索路径

注:使用locate之前,要通过updatedb 命令来手动更新数据库。

4、grep

在文件中搜索与指定字符串匹配的行并打印到终端。

c 复制代码
# grep [选项] 指定字符 源文件

[选项]:

c 复制代码
-c		#统计文本中与指定字符串匹配的行数
-E		#使用扩展正则表达式进行匹配
-i		#不区分大小写

查找 /etc/passwd 文件中包含 root 的行

三、用户与用户组管理

Linux中的用户分为两大类:root超级用户和普通用户。

要知道与用户相关的命令:

输入user,之后点击两次tab键

3.1、用户管理

1、useradd 添加用户

c 复制代码
# useradd [选项] 用户名

[选项]:

c 复制代码
-d		#指定用户登录时的目录
-c		#指定账户的备注文字
-e		#指定账号的有效期限
-f		#缓冲天数,密码过期时在指定天数后关闭该账号
-g		#指定用户所属组
-G		#指定用户所属的附加用户组

输入以下命令:创建新用户jyan,并令其ID为jyan

2、passwd设置用户密码

c 复制代码
# passwd [选项] 用户名
c 复制代码
#为新用户jyan设置密码
# passwd jyan

这里是刚刚创建的新用户:

3、su 用户切换

c 复制代码
# su [选项] [用户名]

若选项和用户名缺省,表示切换到root用户,但仍保留原来用户的工作环境。

若使用 su - ,则表示从当前用户切换到root用户,并切换到root用户的工作目录。

[选项]:

c 复制代码
-c		#执行完指定指令后,切换到原来用户
-l		#切换用户的同时,切换到对应用户的工作目录,环境变量改变
-m,-p	#切换用户时,环境变量不变
-s		#指定要执行的shell

#:表示当前为超级用户

$:表示当前为普通用户

注:使用su命令时,从root用户切换到普通用户,不用输入密码;但从普通用户切换到目标用户时,需要输入密码。

4、删除用户

c 复制代码
# userdel [选项] 用户名

[选项]:

c 复制代码
-f		#强制删除用户
-r		#删除用户的同时,删除与其相关的所有文件

3.2、用户组管理

一般将权限相同的用户放在同一个用户组里。

要知道与组相关的命令:

输入group,之后点击两次tab键

1、新增用户组

groupadd 命令主动添加。

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

[选项]:

c 复制代码
-g		#指定新建用户组的组ID
-r		#创建系统用户组,组ID范围在1~499
-o		#创建组ID已经存在的用户组

2、删除用户组

c 复制代码
# groupdel 用户组名

3、修改用户组属性

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

四、谢谢观看!

相关推荐
小码农<^_^>6 分钟前
c++继承(下)
开发语言·c++
秋风起,再归来~7 分钟前
【Linux庖丁解牛】—Linux基本指令(中)!
linux·指令
非著名架构师9 分钟前
js混淆的方式方法
开发语言·javascript·ecmascript
Themberfue10 分钟前
基础算法之双指针--Java实现(下)--LeetCode题解:有效三角形的个数-查找总价格为目标值的两个商品-三数之和-四数之和
java·开发语言·学习·算法·leetcode·双指针
冬风诉14 分钟前
汇编内存寻址
汇编
Eternal-Student18 分钟前
预处理、编译、汇编、链接
linux·汇编·windows
深山夕照深秋雨mo19 分钟前
在Java中操作Redis
java·开发语言·redis
盒马盒马21 分钟前
Redis:cpp.redis++通用接口
数据库·c++·redis
barbyQAQ37 分钟前
Qt源码阅读——事件循环
开发语言·数据库·qt
记得开心一点嘛38 分钟前
在Java项目中如何使用Scala实现尾递归优化来解决爆栈问题
开发语言·后端·scala