目录
- Linux简介
- Linux目录结构
- Linux文件命令
- 文件处理命令
- 文件查看命令
- 常用文件查看命令
- Linux的用户和组介绍
- Linux权限管理
Linux简介
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。----来自百度
Linux目录结构
linux没有像windows一样的盘符该鸟,所有文件都在根目录下存储。
-
绝对路径:以根目录为起点,完整地表示到目标文件或目录的路径。
- 比如就是/home/kali/1,表示的就是根目录下home目录下kali目录下的1文件
-
相对路径:以当前目录为起点,完整地表示到目标文件或目录的路径。比如./kali/1
/ bin :基本程序,存放着最经常使用的命令
/boot:存放linux启动时的引导文件
/ dev :设备信息
/etc:存放系统管理所需的配置文件
/home:普通用户家目录
/lib:存放最基本的动态链接共享库,类似windows里的dll文件。
/media:系统识别的一些U盘、光驱等设备挂载到这个目录下
/mnt:默认临时挂载目录
/opt:这是给主机额外安装软件所摆放的目录
/proc:进程信息
/root:root用户家目录
/run:是一个临时文件系统,存储系统启动以来的信息
/sbin:存放的是系统管理员使用的系统管理命令
/srv:存放一些服务启动之后需要提取的数据
/sys:内核文件系统
/tmp:存放临时文件,重启后清空
/usr:用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
/var:存放日志等不断扩充的文件目录
Linux文件命令
- linux命令遵循一定的基本格式:
Command [options] [argument] 也就是命令 [选项] [参数]
文件处理命令
-
ls:命令显示指定工作目录下的内容,如果不提
供参数,ls将在当前目录上运行。-
选项与参数:
-a:列出指定目录下的所有文件和子目录(包括以“.”开头的隐藏文件)。
-l:使用长格式显示文件或目录的详细属性信息。 -
ls -al:使用格式化列出隐藏文件
-
-
touch:更新已存在的文件的事件标签,若文件不存在则创建一个新的文本文件
-
mkdir:创建目录
- 参数:
-p:若路径中目录不存在,则创建新目录
mkdir -p dir/1/2/3/4创建多层目录
-v:查看文件创建过程
- 参数:
-
cp:将一个或多个源文件复制到指定目录
- 参数:
-r :递归处理,将指定目录下的文件及子目录一并处理
-p:拷贝的同时不修改文件属性,包括所有者,所属组,权限和时间
- 参数:
-
mv:命令用于移动或重命名目录或文件
- 参数:
-b: 若需覆盖文件,则覆盖先前备份
-f:强制的意思,如果文件已经存在,不会询问直接覆盖
- 参数:
-
rm:用于删除一个文件或目录
- 参数:
-f:强制删除文件或目录
-rf:选项-r与-f结合,删除目录中所有文件和子目录,且不一一确定
-i:在删除文件或目录对要删除的内容逐一进行确认
- 参数:
-
rmdir:删除目录
- 比如 rmdir dir
-
pwd:显示当前目录绝对路径
cd命令:改变当前工作目录
cd ~ //进入home目录,~表示home目录,每个用户的home目录不同,root用户的home目录为/root,其他用户的home目录默认为/home/用户名
cd / 回到根目录
cd … 回到上一级目录
文件查看命令
常用文件查看命令
-
cat
- 原意:concatenate and display files
- 文件功能:打印文件内容到输出设备
- 格式:cat 文件名
- 实例: cat 123.txt
- 选项和参数
-b:列出行号,仅针对非空白行号显示,空白行不标行号;
-n:打印出行号,连同空白行也会有行号,与-b的选项不同
-
more
- 查看file的内容(一页一页的显示档案内容)
- 空格键(space):代表向下翻一页
回车键(Enter):代表向下翻一行
b 键:往前查看一页;
q 键:退出。
-
head:
- 查看file的前10行
- head -n 20 fliename 查看前20行
-
tail:
- tail -n 文件名查看文件的后n行
- tail -2 filename 查看一个文件的最后两行
tail -n +100 只列出100行及以后的数据
-
grep命令可以在指定文本文件中匹配字符串,输出匹配字符串所在行的全部内容。
- 命令格式: grep [选项] 关键字 查找范围
- 常用选项
-e:指定字符串做为查找文件内容
-n: 在显示符合样式的那一行之前,标示出该行的行号
-r:以递归的方式查找符合条件的文件,并打印出该字符串所在行的内容
编辑文件
- vi编辑器
vi/vim 的介绍
是linux中最通用的文本编辑器,vim编辑器是从vi发展出来的一个性能能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计,vim与vi编辑器完全兼备
vi/vim 三种模式:命令模式/一般模式(command mode)、插入模式(input mode)、末行模式/指令命令模式(last line mode)。
插入模式:
在一般模式下按下键盘【i, I, o, O, a, A】进入插入模式,屏幕的左下方会出现【–INSERT–】的字样,表示当前模式下,用户可以编辑修改文本的内容。按下【Esc】则退出编辑模式。
末行模式/指令命令模式:
在一般模式下按下键盘【: / ?】任意一个,光标移动到最下面一行,进入末行模式。可以查找数据、替换、可保存文件、退出 vi、显示行号等操作。
- 复制粘贴:
yy 复制光标所在行
p 粘贴
dd 删除光标所在行(实际是剪切)
x 删除当前光标所在的字符
X(大写) 删除当前光标前一个字符
光标移动:
h 左移 j 下移 k 上移 l 右(四个箭头也可以上下左右移动)
H 当前屏幕第一行
M 当前屏幕中间
L 当前屏幕最后一行
命令模式
:或者/
w 保存
q 退出
wq 或 x 保存退出
q!不保存强制退出
wq!强制保存并退出,管理员才有权限
Linux的用户和组介绍
用户
- Linux用户类型分为三类:超级用户、系统用户和普通用户
- 超级用户:用户名为root或USER ID(UID)为0的账号,具有一切权限,可以操作系统中的所有资源。Root用户可以进行基础的文件操作及特殊的系统管理,可以修改系统中的任何文件。
- 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏围。
- 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户,能够使用Linux的大部分资源,一些特定的权限受到控制。用户只对自己的目录有写权限,读写权限受一定的限制,有效保证了系统安全性。
- 需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000开始的(即使前面有闲置的号码)。
用户组
- 有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,此时最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。
- 用户和用户组的对应关系有以下 4 种:
- 一对一:一个用户可以存在一个组中,是组中的唯一成员;
- 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
- 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
- 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。
相关命令
id 查看当前用户身份信息
id user 查看user用户身份信息
whoami 查看当前登录用户名
sudo 以管理员身份执行命令,普通用户默认无法使用sudo命令,需要将用户添加到wheel组当中
su - username是用来改变当前用户的,如:su - root,就是将当前用户切换为root连同环境变量一同切换到root用户,用了su - root之后,下面所有的命令就可以不用打sudo了,因为当前用户已经是管理员root了。同时当从 root用户切换到普通用户时不需要输入密码,而从普通用户切换成 root用户需要进行验证;
- useradd 创建新的用户
- 格式:user [选项] 用户名
- 选项:-d制定用户的家目录 ; -u指定用户逇默认UID; -g制定一个初始的用户基本组
- passwd 修改用户密码、过期时间、认证信息等
- 格式:
passwd [选项] [用户名]
- 参数
- -l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
- -l 锁定用户,禁止其登录
- userdel 命令用于删除用户
- 格式为“userdel [选项] 用户名”。
- -r //同时删除用户及用户家目录
- usermod用于修改用户的属性
- 格式为“usermod [选项] 用户名”。
- 参数
- -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
-u 修改用户的 UID
-g 变更所属用户组
-G 变更附加用户组
-l 修改用户名称
- -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
Linux权限管理
之前写过,点这里看
每个文件的权限针对三类对象进行定义:
- 它的所有者(由u表示)
- 它的所有组(由g代表),代表该组的所有成员
- 其他(由o表示,除所有者和所有组的用户)
- 以下三个命令控制与文件关联的权限:
- chmod 更改文件的权限
- chown 更改文件的所有者
- chgrp 更改所有者组
chmod 修改文件权限
选项
-R : 对目标目录下的所有文件与子目录进行相同的权限变更(以递归的方式逐个变更)
示例:
chmod o=w file 表示给其他人授予写入file这个文件的权限
chmod go-rw file 表示删除file中组群和其他人的读和写的权限
chgrp 更改文件的属组
语法格式
chgrp 选项 username filename
选项
-R:进行递归的持续变更,亦即连同次目录下的所有档案都变更