文章目录
视频教程链接:https://www.bilibili.com/video/BV1Sv411r7vd?spm_id_from=333.337.search-card.all.click
1. Linux目录结构
Linux:一切皆文件
- /root:存放最经常使用的命令
- /home:普通用户的主目录
- /root:系统管理员用的目录
- /lib:动态连接共享库
- /etc:所有的系统管理所需要的配置文件和子目录
- /usr:用户的应用程序和文件
- /boot:linux启动的相关文件
- /dev:硬件以文件形式存储
- /media:自动识别一些设备:如U盘、光驱等
- /mnt: 让用户临时挂载别的文件系统。
- /usr/local:另一个给主机额外安装软件所安装的目录。一般是通过编译源码的方式安装的程序
- /var:这个目录中存放着不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
- /proc:不能动,是虚拟目录
2. vi/vim 基本操作命令
vim hello.java # 修改文件
====进入文件后:====
i 或 a # 进入编辑模式
esc # 正常模式
: # 命令模式
:wq # 保存并退出
:q # 退出
:q! # 强制退出,不保存
====拷贝&删除====
一般模式下:
yy # 拷贝当前行(copy)
5yy # 拷贝及往下五行
p # 粘贴(paste)
dd # 删除当前行(delete)
5dd # 删除当前及往下五行
====查找====
命令行下:
/关键词 # 查找该关键词
n # 查找下一个(next)
====设置文件的行号====
:set nu # 设置行号 number
:set nonu # 取消行号
====转到首行和尾行====
一般模式下:
g # 到最后一行
gg # 到第一行
====撤销====
一般模式下:
u # 撤销 undo
====转到行号====
一般模式下:
20 再输入shift+g # 转到第20行
3. 关机/重启操作命令
shutdown -h now # 立刻关机,h:halt
shutdown -h 1 # 一分钟后关机
shutdown -r now # 现在重启计算机
halt # 关机
reboot # 重启
sync # 将内存的数据同步到磁盘
- 不管是重启系统还是关闭系统,首先要运行sync命令,将内存中的数据写到磁盘中
- 目前的shutdown/reboot/halt等命令已经在关机前执行了sync,但是最好还是自己同步一下
4. 用户管理操作命令
登陆和注销
- 登陆时尽量少用root账号登陆,因为他是系统管理员有很大权限,避免操作失误。可以用普通用户登陆,登陆后再使用
su - 用户名
命令来切换系统管理员身份。 logout
:注销用户。这个指令再徒刑运行级别无效,在运行级别3下有效。
权限管理
useradd cherry # 添加用户名为cherry的用户。会自动创建和用户同名的home目录
useradd -d /home/test king # 指定在某个目录下新建用户工作区间
passwd cherry # 给cherry这个用户改密码
userdel cherry # 删掉cherry用户,但保留cherry目录
userdel -r cherry # 删掉cherry用户,并删除cherry目录【注意!注意!注意!这一步一定要慎重】
id cherry # 查看用户的id,如果不存在,返回无此用户
su - 用户名 # 切换到用户或者root,如果权限不够就切换到高权限用户
exit 或 logout # 从权限高的用户切换到权限低的用户,不需要输入密码
whoami 或 who am i # 查看当前登陆的用户
用户组
groupadd 组名 # 新增组。类似于角色,系统可以对有共性权限的多个用户进行统一的管理。
groupdel 组名 # 删除组
useradd -g 用户组 用户名 # 将用户加入到某用户组里。没有指定组,则创建一个以用户名为组名的组。
usermod -g 用户组 用户名 # 将用户放到另一个用户组里去。
-
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell -
/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口今:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 -
/etc/group 文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组內用户列表
5. 运行级别
0:关机
1: 单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,也可以指定默认运行级别
init 3 # 切到级别3,init [0123456] ,通过init 来切换不同的运行级别,比如动 5-3,然后关机。
在 centos7 以前,/etc/inittab 文件中
进行了简化,如下:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
systemctl get-default # 查看当前的运行级别
systemctl set-default TARGET.target # 设置运行级别
6. 帮助指令
man 命令 # man ls :查看ls这个命令的帮助文档
help 命令 # help ls : 查看ls这个命令的帮助文档
7. 文件目录类
文件目录增删改查
pwd 指令 # 显示当前工作目录的绝对路径.pwd: Print name of current/Working Directory
ls -a # 显示当前目录所有的文件和目录,包括隐藏的目录
ls -l # 以列表方式显示信息
cd 目录 # 切换到某个目录
cd ~ # 回到home目录
cd : # 回到home目录
cd .. # 回到当前目录的上一级目录
====增====
mkdir 目录 # 创建一个目录
mkdir -p /home/animal/tiger # 创建多级目录
touch 文件名称 # 创建空文件
cp 原文件路径 目的路径 # cp /home/hello.txt /home/bbb 拷贝文件
\cp -r 原文件路径 目的路径 # 强制覆盖目的文件且不提示
====删====
rmdir 目录 # 删除一个【空】目录
rm -rf 目录 # 删除一个【非空】目录 【不要轻易使用这个命令,除非你知道自己在干什么!!】
rm -r 目录 # 递归删除整个文件夹
rm -f 目录 # 强制删除不提示
====改====
mv 原文件名 新文件名 # 重命名文件
mv 源文件目录 目标文件目录 # 移动文件
====查====
cat 文件 # 查看文件。cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令| more
cat -n 文件 # 显示行号
cat -n 文件 | more # 进行交互
echo 内容 # 输出内容到控制台,内容可以是环境变量,如$PATH, $HOSTNAME
head 文件 # 查看文件前十行内容
head -n 5 文件 # 查看文件前五行的内容
tail 文件 # 查看文件最后十行的内容
tail -n 5 文件 # 查看文件最后五行的内容
tail -f 文件 # 实时追踪该文档的所有更新
more / less
more指令是一个基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键:
more 文件 # 以more模式打开文件
空白键 # 往后翻一页
回车 # 往下翻一行
q # 离开文件,不再显示该文件内容
ctrl+F # 向下滚一屏
ctrl+B # 返回上一屏
= # 输出当前行的行号
:f # 输出文件名和当前行的行号
less指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
less 文件 # 以less模式打开文件
空白键 # 向下翻一页
[pageup] # 向上翻一页
[pagedown] # 向下翻一页
/字串 # 向下搜索字串,n向下查找 N向上查找
?字串 # 向上搜索字串,N向下查找 n向上查找
q # 离开less模式
>
输出重定向和>>
追加
> 输出重定向
>> 追加
ls -l >文件 # 列表的内容写入到文件中(覆盖写)
ls -al >>文件 # 列表的内容追加到文件的末尾
cat 文件1 > 文件2 # 将文件1的内容覆盖到文件2
echo "内容">> 文件 # 将内容追加到文件后
ln指令
ln -s 原文件或目录 软链接名 # 给原文件创建一个软链接,用于链接到该文件/目录
history指令
查看执行过的指令
history
时间日期类
date # 显示当前时间
date +%Y # 显示当前年份
date +%m # 显示当前月份
date +%d # 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" # 显示年月日时分秒
date -s "2022-01-03 20:20:11" #将当前系统时间设置为字符串中的时间
cal # 显示当前日历
cal 2022 # 显示2022年的日历
搜索查找类
find
find 搜索范围 目的文件或目录
find /home -name hello.txt # 按文件名,查找home目录下的hello.txt文件
find /home -user cherry # 按拥有者,查找home目录下的用户名称为cherry的文件
find / -size +200M # 查找大于200M的文件
find / -size -200k # 查找小于200k的文件
find / -size 200G # 查找等于200G的文件
locate
locate指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 1oeate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate数据库。
locate 文件 # 搜索文件路径
which 指令 # which cd :查看cd指令在哪个目录
grep
grep 过滤查找
管道符|
,表示將前一个命令的处理结果输出传递给后面的命令处理。
grep 查找内容 原文件 # 在原文件中查找内容
grep -n 查找内容 原文件 # 显示匹配行及行号
grep -i 查找内容 原文件 # 忽略字母大小写
cat /home/hello.txt | grep "yes" # 显示hello.txt中yes所在的行,并显示行号
grep -n "yes" /home/hello.txt # 同上
压缩和解压类
gzip 文件 # 将文件压缩为*.gz文件
gunzip 文件.gz # 将gz文件解压
zip 文件 # 将文件压缩为.zip文件
unzip 文件 # 将zip文件解压
zip -r myhome.zip /home/ # 将home目录及其包含的文件和子文件夹都压缩
unzip -d /opt/tmp /home/myhome.zip # 将/home/myhome.zip解压缩到/opt/tmp
tar xxx.tar.gz 文件或目录 # 打包内容为.tar.gz文件
tar -c xxx.tar.gz 文件或目录 # 产生.tar打包文件
tar -v xxx.tar.gz 文件或目录 # 显示详细信息
tar -f xxx.tar.gz 文件或目录 # 指定压缩后的文件名
tar -z xxx.tar.gz 文件或目录 # 打包同时压缩
tar -x xxx.tar.gz 文件或目录 # 解压.tar文件
8. 组管理和权限管理
- 文件/目录的所有者:文件的创建者
ls -ahl # 查看文件的所有者
chown 用户名 文件名 # 修改文件的所有者
groupadd 组名 # 创建一个组
useradd -g 组名 用户名 # 创建一个用户,将其放入组
chgrp 组名 文件名 # change group,修改文件/目录所在的组
usermod -g 新组名 用户名 # 改变用户所在的组
usermod -d 目录名 用户名 # 改变用户登陆的初始目录
rwx权限
0-9 位说明
- 第0位确定文件类型(d,-,1,c,b)
1是链接,相当于 windows 的快捷方式
d是目录,相当于 windows 的文件夹
c是字符设备文件,鼠标,键盘
b 是块设备,比如硬盘 - 第1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
- 第4-6 位确定所属组(同用户组的)拥有该文件的权限,–Group
- 第7-9位确定其他用户拥有该文件的权限 --Other
其他:
2: 文件硬链接数或目录子目录数
cherry:用户
cherry:组
4096:文件大小(字节),如果是文件夹,显示4096
May 2 21:49:最后修改日期
cherry:文件名
- rwx作用到文件
[r]代表可读(read):可以读取,查看
[w]代表可写(wite):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[x]代表可执行(execute):可以被执行- rwx作用到目录
[r]代表可读(read): 可以读取,1s查看目录内容
[w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
[x]代表可执行(execute):可以进入该目录
修改权限
chmod u=rwx, g=rx, o=rx abc.txt # 给abc文件的所有者user读写执行的权限,给所在组group读执行权限,给其他组others读执行权限
chmod u-x, g+w abc # 给abc文件的所有者除去执行的权限,增加组写的权限
chmod a+r abc # 给abc文件的所有用户all增加读权限
通过数字变更权限
r = 4 w = 2 x = 1
rwx = 4+2+1 = 7
chmod u=rwx, g=rx, o=x abc.txt 相当于==> chmod 751 abc.txt
chown 新所有者 文件/目录 # 改变所有者
chown 新所有者:新所有者所在组 文件/目录 # 改变所有者和所在组
chown -R 所有者 文件/目录 # 如果是个目录,则其下所有的子文件或目录都递归生效
chgrp 组名 文件/目录 # 修改文件/目录所在组
chgrp -R 组名 文件/目录 # 修改目录下所有文件和目录的所在组都改成对应组