1.linux的登录注销
1.登录时尽量少用root账号登录,因为他是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再用“su - 用户名“命令来切换成系统管理员身份
2.在提示符下输入logout即可注销账户(logout注销指令在图形运行级别无效,在运行级别3下有效)
2.linux的关机&重启命令
shutdown -h now 立刻进行关机
shudown -h 1(/2/3/4) 1分钟后关机
shutdown -r now 现在重启计算机
halt 关机,作用和上面一样
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘
建议进行以上操作前来执行一次sync
3.添加用户
useradd <用户名>
应用案例:添加一个用户xiaokeai,默认该用户的家目录在/home/xiaokeai
ubuntu用户创建用户需要加-m参数才会创建同名家目录;
手动创建家目录并设置权限:
创建家目录:使用
sudo mkdir /home/新用户名命令创建家目录。修改目录所有者:使用
sudo chown 新用户名:新用户名/home/新用户名命令修改家目录的所有者为新用户。修改目录权限:使用
sudo chmod 755 /home/新用户名命令修改家目录的权限,确保新用户可以访问和使用
细节说明:(1)当创建用户成功后,会自动创建和用户同名的家目录 (2)也可以通过useradd -d <指定目录> <新的用户名>,给新创建的用户指定家目录.
4.指定/修改密码
passwd <用户名> <密码>
若不指定用户名默认修改当前登录密码
5.删除用户
userdel <用户名>
注意:删除<用户名>默认保留其家目录;若要删除其目录则输入userdel -r <用户名>
6.切换账户
su - root
su <用户名> 切换账户
sudo su 切换root账户
7.用户组指令
介绍:类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
groupadd <组名> 新增组
groupdel <组名> 删除组
增加用户时直接加上组
基本用法:useradd -g <用户组> <用户名>
修改用户的组
usermod -g <用户组> <用户名>
8.用户和组相关文件
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名;口令;用户标识号;组标识号;注释性描述;主目录;登录shell
/etc/shadow 文件
口令的配置文件
每行的含义:登录名;加密口令;最后一次修改时间;最小时间间隔;最大时间间隔;警告时间;不活动时间;失效时间;标志
/etc/group 文件
组(group)的配置文件,记录linux包含的组的信息
每行含义:组名;口令;组标识号;组内用户列表
9.指定运行级别
运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常见的运行级别是3和5,也可以指定默认运行级别
应用实例
命令:initp[123456]应用案例:通过init来切换不同的运行级别,比如动5-3,然后关机
10.文件目录类
pwd 显示当前工作目录的绝对路径
ls 查看当前目录的所有内容信息
ls [选项] [目录或是文件]
常用选项
-a 显示当前目录所有的文件和目录,包括隐藏的
-l 以列表的方式显示信息
cd 切换到指令目录
cd [参数]
~
cd ~ 或者cd:回到自己的家目录
..
cd .. 回到上一级目录
cd ../.. 回到前两级目录
mkdir 用于创建目录
mkdir [选项] [ 创建目录]
-p 可以使其创建多集目录
rmdir 删除空目录
rmdir [选项] [要删除的空目录]
注意:rmdir删除的是”空目录“若目录下有内容则无法删除
-rf 可以使其删除非空目录
touch指令 创建空文件
touch [文件名称]
cp 拷贝文件到制定目录
cp [选项] source dest
-r:递归复制整个文件夹
应用实例
1.将/home/hello.txt 拷贝到/home/bbb目录下
cp hello.txt /home/bbb
#接着在home目录下bbb成为了/home/bbb/txt2.递归复制整个文件夹,比如将/home/bbb整个目录拷贝到/opt
cp -r /home/bbb /opt应用细节
强制覆盖不提示的方法:\cp
rm 移除文件或目录
rm [选项] [要删除的文件或目录]
-r 递归删除整个文件夹
-f 强制删除不提示
应用实例
rm -r /home/bbb
mv 移动文件与目录或重命名
基本语法:
重命名:
mv [olenamefile] [newnamefile]
移动文件
mv /temp/movefile /targetfolder
应用实例:
1.将/home/cat.txt文件重命名为pig.txt
2.将/home/pig.txt移动到/root目录下
cat 查看文件(与vim不同的是cat不能修改文件,更加安全)
cat [选项] 要查看的文件
-n:显示行号
使用细节
管道命令:| more
cat -n profile | more
more指令 一个基于vi编辑器的文本过滤器,它以全屏的方式按页显示文本的内容,more指令内置的若干快捷键
more [文件]
操作说明

less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示的,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
less [文件]
操作说明

echo 输出内容到控制台
echo [选项] [输出内容]
应用案例
使用echo指令输出环境变量,比如输出$PATH $HOSTNAME,echo $HOSTNAME
使用echo指令输出 hello,world!
head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前十行内容
head [文件] (功能描述:查看文件头10行内容)
head -n [文件] (功能描述:查看文件头5行内容,5可以是任意行数)
tail指令 用于输出文件中尾部的内容,默认情况下tail指令显示文件的、后十行内容
tail 文件 (查看文件尾部10行内容)
tail -n 5 文件 (查看文件尾部5行内容,5可以是任意行数)
tail -f 文件 (实时追踪该文档的所有更新)
实时监控mydate.txt当有变化时,会提醒
>指令>>指令 >:输出重定向和 >>:追加
ls -l > 文件 (列表的内容写入文件a.txt中(覆盖写))
ls -al >>文件 (列表的内容追加到文件aa.txt的末尾)
cat 文件1 > 文件2 (将文件1内容覆盖到文件2)
echo “内容” >> 文件 (追加)
其他指令
clear 清除当前显示
vim 查看,浏览
cat 查看,浏览
小知识
UID(用户标识符)
基本概念:每个用户在系统中都有一个唯一的
UID,它是一个非负整数。系统内核使用UID来识别不同的用户,而不是用户名。当用户登录系统并执行操作时,系统会根据UID来判断用户对文件、目录等资源的访问权限。取值范围:
超级用户:
UID为 0 的用户是超级用户(通常是root用户),拥有系统的最高权限,可以对系统进行任何操作,包括修改系统配置、管理其他用户等。系统用户:一般
UID取值在 1 - 999 之间(不同系统可能略有差异)的用户为系统用户,这些用户通常是系统安装时自动创建的,用于运行特定的系统服务,比如daemon、nobody等,它们不需要交互式登录,仅为了满足系统服务运行的需要。普通用户:
UID从 1000 开始(在许多 Linux 发行版中是这样设定的)分配给普通用户,每个普通用户都有自己独立的UID,普通用户的权限受到限制,只能访问被授权的资源。
作用示例:假设有两个普通用户
user1和user2,user1的UID是 1001,user2的UID是 1002。user1创建了一个文件,默认情况下,只有UID为 1001 的用户(即user1)以及UID为 0 的超级用户root对该文件有相应的操作权限(具体权限由文件的权限位决定 ),user2没有经过授权是无法随意访问或修改这个文件的。
GID(组表示符)
基本概念:用户组是具有相同特征用户的集合,每个用户组对应一个唯一的
GID,同样是一个非负整数。一个用户可以属于多个用户组,用户在访问文件或目录时,除了根据自身的UID来判断权限外,还会根据所在用户组的GID来判断是否具有相应的组权限。取值范围:与
UID类似,其取值也有一定的范围划分。系统组的GID通常在较低范围(如 1 - 999 之间 ),普通用户组的GID一般从 1000 开始。作用示例:比如系统中有一个用户组
devgroup,GID是 1003,user1和user2都属于这个用户组。现在有一个文件,设置了所属组为devgroup,并且给组用户赋予了读写权限。那么user1和user2都可以基于所在的devgroup用户组,对该文件进行读写操作 。
UID与GID关联与应用
文件权限管理:在 Linux 中,文件和目录的权限分为所有者(
UID对应的用户 )、所属组(GID对应的用户组 )以及其他用户三类。通过设置这三类的权限(读、写、执行 ),可以精细地控制不同用户和用户组对资源的访问。用户和组的管理:管理员可以使用命令如
useradd(添加用户,会自动分配UID等 )、groupadd(添加用户组,分配GID),以及usermod(修改用户所属组等信息 )等工具,来管理用户的UID和GID,从而构建一个合理的用户权限体系,保障系统的安全性和资源的合理分配。
总之,UID 和 GID 是 Linux 系统实现用户管理和权限控制的基础,理解它们对于掌握 Linux 系统的用户权限机制至关重要。
Shell
Shell 的定义与本质:
Shell 是操作系统与用户之间的 命令行接口(Command Line Interface,CLI),它充当着用户与操作系统内核之间的 “翻译官” 角色。当用户在终端中输入命令时,Shell 会对这些命令进行解析,并将其转换为内核能够理解的指令,进而执行相应的操作。从本质上讲,Shell 是一个用 C 语言编写的程序,它是用户使用操作系统的桥梁,常见于 Unix、Linux 等系统中。
Shell 的主要功能:
命令解释执行:接收用户输入的命令(如
ls、cd、mkdir等),解析后传递给内核执行,并将执行结果返回给用户。脚本编程:支持编写 Shell 脚本,将一系列命令按逻辑组合成脚本文件(通常以
.sh为后缀),实现自动化任务处理,例如批量文件操作、系统管理等。变量与参数处理:允许定义和使用变量存储数据,处理命令行参数,增强命令的灵活性和可复用性。
流程控制:包含条件判断(如
if - then - else)、循环结构(如for、while)等编程元素,使脚本具备逻辑处理能力。管道与重定向:通过管道符
|将一个命令的输出作为另一个命令的输入;利用重定向符号(>、<、>>等)控制命令的输入和输出流向,例如将命令结果写入文件。命令历史与补全:记录用户输入过的命令,支持通过上下方向键调用历史命令;使用 Tab 键自动补全命令、文件名等,提高操作效率。