跟着尚硅谷的Linux教程学习
看视频可以直接点击 b站视频地址
关机、重启和用户登录注销
关机&重启指令
-
shutdown(要有root权限)
shutdown -h now 立即关机
shutdown -h 1 1分钟后关机
shutdown -r now 立刻重启计算机
-
halt
直接使用,等价于关机
-
reboot
重启系统
-
poweroff
poweroff -f 强制关机
关机同时关闭电源,会发送一个ACPI信号通知系统关机,在多用户方式下(run level3)下不建议使用。
-
init
所有进程的祖先,进程号永远为1,linux系统操作中不可缺少的程序之一,所有发送TERM信号给init会终止所有用户进程、守护进程等。init定义了8个运行级别,这里相关的主要是0关机,6重启。
sync
把内存的数据同步到磁盘上,相当于保存。
注意:不管是哪种关机/重启,最好都要运行一下sync指令,来同步内存和硬盘的数据。
用户登录和注销
- 登录时尽量不用root,因为是系统管理员,最大的权限,为了避免误操作,最好使用普通用户登录,登录之后再用“su -用户名”命令来切换到系统管理员身份。
- 在命令行下输入logout即可注销用户
注意:
- logout注销指令在图形运行级别无效,在运行级别3下有效。
- 运行级别概念会在后面学
用户管理
基本概念
- Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
- Linux 的用户需要至少要属于一个组。
添加用户
useradd 用户名
- 当创建用户成功后,会自动的创建和用户同名的家目录,使用-d字符指定。
- 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
- useradd -g可以指定用户组名
修改/指定密码
passwd 用户名
- 实际使用中密码尽可能地复杂
- 在修改密码的时候是看不到密码明文的。
删除用户
userdel 用户名
- 只使用userdel时,会删除用户 xm,但是要保留家目录
- 删除时带上-r参数,可以将用户主目录也给删除。
- 一般来讲不要删除家目录,比如员工离职还可能再回来,还能继续用。
查询用户信息
id 用户名
- 当不存在此用户时,控制台返回“无此用户”
切换用户
su - 切换的用户名
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回到原来用户时,使用 exit 指令
用户组
用户组类似于“角色”,系统可以对有共性的多个用户进行统一的管理。
新增组
groupadd 组名
删除组
groupdel 组名
似乎没有help选项
创建用户时直接加上用户组
useradd 用户名 -g 组名
修改用户的组
usermod -g 组名 用户名
用户和组的相关文件
- /etc/password
用户的配置文件,记录用户的各种信息
每行的意义,用户:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
- /etc/shadow
口令配置文件(密码和登录信息),是加密文件,看不懂。
- /etc/group
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
实用指令
运行级别
- 关机
- 单用户:可以找回丢失密码
- 多用户无网络服务
- 多用户有网络服务
- 系统未使用,暂无这个级别,保留给用户
- 图形界面
- 系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件
/etc/inittab 的 id:5:initdefault:这一行中的数字
切换运行级别
init [0123456]
找回丢失的root密码
进入到单用户模式然后修改root密码。(一定是在硬件在旁边才能修改,除非电脑被人家偷了)
- 在开机引导时alt + enter进入单用户状态
- 输入e(一定是小写)。
- 高亮到kernal那行,然后再按e
- 输入1,进入单用户状态
- 输入b,以root身份登录单用户模式
- 已经到了root级,以上步骤完全没有使用过密码。然后输入passwd root
- 修改密码,如果系统认为密码太简单,只需要重新输入一下即可。
帮助指令
当我们对某个指令不熟悉时,可以使用帮助指令。(看不懂的直接去百度得了)
man
man 命令或配置文件
可以获取帮助信息
help指令
文件目录类指令
pwd
print working directory
pwd 显示当前工作目录的绝对路径
ls
ls [选项] [目录或文件]
-a 显示当目录的所有文件和目录包括隐藏的
-l 以列表方式显示
如果-a 和 -l都需要 就直接-al
cd
change directory
cd 参数(可以是绝对路径也可以是相对路径)
相对路径:
cd ~ 或者 cd,回到自己的家目录
cd … 回到上一级目录
mkdir
make directory
mkdir [选项] 要创建的目录
-p 创建多级目录
rmdir
remove directory
rmdir [选项] 要删除的目录
删除非空目录?
rm -rf
touch(老师教的似乎和官方有些出入)
touch 文件名称
创建一个空文件(Vim只能编辑文件,不能创建文件),可以连续跟好几个文件名称,一次性创建多个文件。
cp
cp [选项] soure dest
将指定文件复制到某个目录
-r 递归复制整个文件夹(recursive)
\cp 强制覆盖(和-r配合使用)
rm
rm [选项] 要删除的文件或陌路
-r 递归地删除整个文件夹
-f 强制删除并不提示
mv
移动(剪切)文件与目录或者改名
mv oldNameFile newNameFile 重命名
mv dirName dirName 移动
cat
cat 文件名
查看文件内容,如果为了查看方便些,可以加一个管道符 | 再加一个more。
cat只能查看,不能修改。
more
more 指令是一个基于VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明。
下面主要是空格键(下一页)和enter(下一行)
less
less 指令用来分屏查看文件内容,它的功能与more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
head和tail
输出文件的前/后10行。
head 文件名
默认返回指定文件前10行内容
head -n 5 查看文件前5行内容
tail 文件名
tail 文件名
默认返回指定文件后10行内容
tail -n 5 查看文件后5行内容
tail -f 实时追踪该文档的所有更新
“>“和”>>”
">“输出重定向和”>>"追加
ls -l > 文件名 将ls的结果覆写到指定文件中
ls -al >> 文件名 将ls的结果追加写到指定文件中
cat 文件1 > 文件2 将文件1覆写到文件2
echo “内容” 文件名 将引号里的内容追加到指定文件中
感觉这个更像是将标准输入输出内容写到文件里的一个语法糖。
若文件不存在,可以自动创建一个文件。
echo
输出内容到控制台
输出Linux的环境变量
ln
软链接,也叫符号链接,类似Windows里的快捷方式,主要存放了链接和其他文件的路径。
ln -s [原文件或者目录] [软链接名] 给指定文件创建一个软链接。
- 如果创建了一个到root的软链接,当我们进入这个软链接时,等价于我们进入了root文件夹。对于文件,如果对一个文件的软链接进行操作,等价于对这个文件进行操作。
- 使用pwd查看软链接目录时,依然是软链接所在目录,而非链接至的目录。
- 删除一个软链接:rm -rf 软链接名
- 如果直接rm会删不掉
- 一定不要在后面带上斜杠,如果软链接恰好指向根目录,直接系统就报废了
history
查看已经执行过的历史指令,也可以执行历史指令。
history
默认返回所有已经执行过的指令。
history 10 返回最近执行的10条指令
history !78 执行第78个指令
日期
date指令
date 显示当前时间
date +%Y 显示当前年份
date +%m 显示当前月份
date +%d 显示当前日期
date “+%Y-%m-%d %H:%M:%S”
date -s 字符串时间 可以直接设置时间
cal
cal
返回当前日历
cal 2022 展示2022年日历。
搜索查找类指令
find
find [搜索范围] [选项]
从指定目录向下递归地遍历其各个子目录,将满足条件地文件或者目录显示在终端。
find /home -name hello.txt 在home文件夹下按名称寻找hello.txt文件
find /opt -user nobody 在opt文件夹下按拥有者寻找nobody名下的文件
find / -size +20M 在根目录下寻找文件大小大于20mb的文件
find / -size 20M 在根目录下寻找文件大小等于20mb的文件
find / -size -20M 在根目录下寻找文件大小小于20mb的文件
find / -name *.txt 查询根目录下所有格式为txt的文件
locate
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
- 必须先使用updatedb指令创建locate数据库
grep
grep过滤查找,管道符:“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件
-n 显示匹配行及行号
-i 忽略字母大小写
cat calendar.txt | grep -ni yes 在calendar文件中查找yes字符串并显示行号。
压缩/解压缩类指令
gzip/gunzip
- gzip
gzip用于压缩,gzip 文件,可以压缩文件(只能压缩为*.gz类型的文件)
- gunzip
gunzip用于解压缩,之恶能解压缩*.gz文件。
zip/unzip
-
zip
zip用于压缩文件,生成*.zip文件
-r 递归压缩,即压缩目录
要指定压缩后的路径
zip myfile.txt /home
-
unzip
unzip用于解压缩*.zip文件
同样需要指定解压位置。
tar
tar是打包指令,最后打包的文件时。最后生成的文件是*.tar.gz。
tar [选项] xxx.tar.gz
常用参数
-c 产生 *.tar打包文件
-v 显示详细信息
-f 指定压缩后文件名
-z 打包时同时压缩
-x 解包*.tar文件
除此之外还有特别多的参数。直接tar --help去看