Linux 是一款操作系统,免费、开源、安全、高效、稳定、处理高并发非常强悍
不同的厂商对 Linux 内核 进行第二次开发,形成了不同的 Linux 发行版本:Redhat、CentOS、Ubuntu、Suse、红旗Linux
目前主要的操作系统: win7、IOS、Android、Mac
Linux 和 Windows 的区别
\ | Windows | Linux |
---|---|---|
\ | 收费且很贵 | 免费或少许费用 |
\ | 安全性不太好 | 较安全 |
\ | 封闭,系统可指定性很差 | 开源,可制定性非常强 |
Linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层根目录为“ / ”
在Linux 世界里,一切皆文件
、 | 、 |
---|---|
/bin | 存放最经常使用的命令 |
/sbin | 存放系统管理员使用的系统管理程序 |
/home | 存放普通用户的主目录 |
/root | 超级管理员的用户主目录 |
/lib | 系统开机所需要最基本的动态连接共享库 |
/etc | 所有的系统管理所需要的配置文件和子目录 |
/usr | 用户很多的应用程序和文件 |
/boot | 存放启动Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件 |
/proc | 虚拟的目录,是系统内存的映射,访问这个目录来获取系统信息 |
/srv | 存放一些服务启动之后需要提取的数据 |
/sys | |
/tmp | 用来存放一些临时文件 |
/dev | 所有的硬件用文件的形式储存 |
/media | Linux 系统会自动识别一些设备,识别后挂到这个目录下 |
/mnt | 临时挂载别的文件系统,如将外部的文件挂到该目录下 |
Xshell5 是目前最好的远程登陆到Linux 操作的软件,速度流畅并且解决了中文乱码的问题。是一个强大的安全终端模拟软件,可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的
XFtp5 上传和下载文件
使用这两个软件的时候,需要在Linux 开启一个sshd服务,该服务器会监听22号端口
Linux 系统都会内建 vi 文本编辑器,vim 是 vi 的增强版,具有程序编辑的能力
三种常见模式:
- 正常模式
正常模式下,我们可以使用快捷键。
以vim打开一个文档就直接进入一般模式了,可以使用上下左右键来移动光标,也可以使用删除字符或删除整行来处理档案内容,也可以使用复制粘贴来处理文件数据 - 插入模式 / 编辑模式
此模式下,程序员可以输入内容
输入i、I、o、O、a、A、r、R等任何一个字母之后才会进入此模式 - 命令行模式
可以提供相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
、 | 、 | 、 |
---|---|---|
添加用户 | useradd 用户名 (形成与用户名相同的文件夹,默认存在home文件夹里) | 也可以指定目录: useradd -d 指定目录 用户名 |
指定或修改密码 | passwd 用户名 | |
删除用户 | 保留目录:userdel 用户名 | 不保留目录:userdel -r 用户名(一般不删除目录) |
查询用户 | id 用户名 | |
切换用户 | su 用户名 | |
查看当前登录的用户 | whoami |
exit返回到原先的用户
用户组 | 、 |
---|---|
添加组 | groupadd 组名 |
删除组 | groupdel 组名(如果组内存在用户,要先删除用户) |
添加用户时直接加上组 | useradd -g 用户组 用户名(用户组已存在) |
修改用户的组 | usermod -g 用户组 用户名(用户组已存在) |
/etc/passwd 文件
用户的配置文件,记录用户的各种信息
(用户名:口令:用户id:组id:注释性描述:主目录:登录:Shell)
/etc/shadow 文件
口令的配置文件
(登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志)
/etc/group 文件
组的配置文件,记录Linux 包含的组的信息
(组名:口令:组id:组内用户列表
运行级别 | /etc/inittab |
---|---|
0 | 关机 |
1 | 单用户(找回丢失密码) |
2 | 多用户无网络服务 |
3 | 多用户有网络服务 |
4 | 保留 |
5 | 图形界面 |
6 | 重启 |
切换到指定运行级别:
init [012356]
… | … |
---|---|
pwd | 显示当前工作目录的绝对路径 |
ls | -a 显示当前目录所有的文件和目录,包括隐藏的 / -l 以列表的方式显示信息 |
cd | cd ~ 或 cd 回到自己的家目录 / cd… 回到当前目录的上一级目录 |
创建目录:mkdir
- mkdir /home/name
- mkdir -p /home/name1/n1 (多级目录)
删除目录:rmdir
- rmdir /home/name 删除空目录
- rm -rf /home/name 删除非空目录
创建空文件:touch
- touch name
- touch name1 name2 (一次性创建多个文件)
删除文件:rm
- rm tname
拷贝:cp
- cp 资源 目标
- cp -r 资源 目标 (拷贝整个目录,递归拷贝)
- \cp -r 资源 目标 (若目录已存在,强制覆盖)
移动 / 重命名:mv
- mv oldname newname (重命名)
- mv textname dirname (移动)
> 指令和 >> 指令:
- > 指令 为输出重定向,当使用它写文件时,会覆盖掉原先的文件内容
- >> 指令 为追加,使用它写文件时,在文件内容末尾追加
echo 指令
输出内容到控制台(环境变量、文本等)
head 指令
用于显示文件的开头部分内容,默认情况下显示前10行
- head -n 5 (前五行)
tail 指令
用于显示文件的尾部内容,默认后10行
- tail -f text.txt (实时监控 text文件的变化,Ctrl+C 退出)
history 指令
显示所有执行过的指令
- history 10 (显示最近执行的10条指令)
- !5 (直接执行历史编号为5的指令)
date 指令
显示日期时间
- date “+%Y-%m-%d” (+不能少,- 可以换成别的)
- date “+%Y年%m月%d日 %H时%M分%S秒”
- date -s “2020-01-04 14:25:25” (设置时间)
cal 指令
显示日历
cal 2020 (显示2020年所有日历)
find 指令
- find /home -name test.txt (home目录或着home目录下的子目录下是否存在 test)
- find /opt -user root (opt文件下用户名称为 root的文件)
- find /usr -size +20M (usr下大于20M的文件,+n大于,-n小于,n等于)
【】(ls -lh /usr/test.txt 可以查看文件的大小) - find / -name *.txt (所有txt文件)
locate 指令
快速定位文件路径
查找速度比 find快,find是去硬盘里查找;locate是在/var/lib/slocate资料库中找,以数据库的更新为准,并不是实时查找
管道符 “ | ”:将前一个命令的处理结果传递给后面的指令处理
grep 指令
- grep -n yes hello.txt
- cat hello.txt | grep -n yes (显示yes和其所在行,区分大小写)
- grep -ni yes hello.txt
- cat hello.txt | grep -ni yes (显示yes和其所在行,不区分大小写)
gzip 指令
- gzip 文件名 (压缩文件,不会保留原来的文件)
gunzip 指令
- gunzip 文件名 (解压)
zip 指令
- zip -r zidingyi.zip /home/ (压缩home下的所有文件为zidingyi)
unzip 指令
- unzip zidingyi.zip (解压文件)
- unzip -d /dir/dir zidingyi.zip (解压到指定目录)
tar 指令
- tar -zcvf a.tar.gz hello.txt test.txt (将两个文件压缩到a)
- tar -zxvf a.tar.gz (解压到当前目录)
- tar -zxvf a.tar.gz -C /opt/ (解压到指定目录)