目录
一、Linux的发展
1.操作系统
操作系统(Operating System)简称OS,是软件的一部分,他是硬件基础上的第一层软件,是硬件和其他软件沟通的桥梁。 操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存,同时还提供一些基本的服务程序。
2.什么是Linux
Linux系统是目前仅次于Windows的开源系统,并且拥有比Windows更广泛的应用范围。
真正的Linux指的是系统内核,而我们常说的Linux指的是“发行版,完整的包含一些基础软件的操作系统,也即是由Linux内核与各种常用软件的集合产品。
3.Linux对比Windows
- 稳定且有效率。(开源,操作方便)
- 免费开源。(部分需要收费)
- 漏洞少且快速修复。
- 多任务多用户。(Linux支持多个用户同时登录并且同时执行多个任务)
- 更安全的用户与文件权限策略。(文件目录权限的分配很严格)
4.Linux系统种类
红帽企业版(Redhat)Linux:是全世界内使用最广泛的Linux操作系统。它具有极强的性能和稳定性,是众多生产环境使用的系统。(生产环境(真实业务工作环境)&测试环境(用于测试所搭建的服务))
CentOS:通过把红帽系统重新编译并发布给用户免费使用的Linux系统,具有广泛的使用人群。
Fedora:由红帽公司发布的桌面版系统套件,用户可以免费体验到最新的技术和工具,这些技术或工具在成熟后会被加入到红帽中。
Deepin:中国发行,对优秀的开源成品进行集成和配置。
Debian:稳定性、安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。
ubantu:是一款派生自Debian的操作系统,对新款硬件具有极强的兼容能力。Ubuntu与 Fedora都是极其出色的Linux桌面系统,而且Ubuntu也可用于服务器领域。
二、Linux基础知识
1.终端连接服务器
通过执行 ssh root@1.15.136.212 命令,然后输入服务器连接密码就可以很顺利的连接远程服务器,从现在开始我们就可以在本地电脑操作远程服务器。
黑色的面板就是终端也就是Shell(命令行环境)。
2.什么是Shell
Shell是一个程序(Linux中有多个Shell),提供一个用户对话的环境,整个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境。 Shell接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。
3.Linux常见的shell
- Bash(Bourne Again Shell):Bash是最常用的Shell之一,也是默认的命令行解释器。它是Bourne Shell(sh)的增强版本,提供了更多功能和改进。
- Zsh(Z Shell):Zsh是一个功能丰富的Shell,提供了许多有用的特性,如自动补全、主题定制和历史命令搜索等。它可以作为Bash的替代品, 并且在用户体验方面更加现代化。
- Fish(Friendly Interactive Shell):Fish是一个用户友好的交互式Shell,具有直观的语法和自动补全功能。它旨在提供更好的用户体验,并且默认情况下提供了彩色语法高亮显示。
- Dash:Dash是一个轻量级的Shell,旨在作为/bin/sh的替代品,以提供更快的启动速度和更小的内存占用。在某些Linux发行版中,Dash被用作默认的系统Shell。
- Ksh(KornShell):Ksh是一种强大的Shell,具有类似于Bash的语法和功能,但还提供了一些额外的特性和命令。
- Csh(C Shell):Csh是一种C语言风格的Shell,具有类似于C语言的语法结构。尽管不像Bash那样流行,但在某些环境中仍然被使用。
4.命令提示符
提示符往往是一串前缀,最后以一个美元符号 $ OR # 结尾,用户可以在这个符号后面输入各种命令。 [root@server-j ~ ]#
root:表示用户名
server -j:表示主机名
~:表示目前所在目录为家目录,其中root用户的家目录是/root 普通用户的家目录在/home下
#:指示你所在的权限(root用户为#,普通用户为$)
5.Linux用户
Linux超级管理员用户是root
命令 | 功能 |
su | 切换用户 |
sudo su条件需要有sudo权限 | 切换root |
6.Linux目录结构
-
tmp 所有用户对这个目录都有操作权限/存放临时文件
- var 存放日志的目录
- usr 默认软件的安装位置
- etc 软件配置文件存放位置
- home 普通用户的家目录
- root 管理员用户的家目录
- bin 存放常用系统命令的目录
- sbin 存放管理员能够执行的系统命令目录
- dev 存放U盘、光盘、硬盘、等设备的目录
三、Linux文件操作命令
pwd(查看当前路径)
ls(浏览文件和目录)
常用参数
- -a 显示所有文件和目录包括隐藏的
- -l 显示详细列表
- -t 按照文件最近一次修改时间顺序
切换目录
cd
常用参数
- cd / 切换到根目录
- cd ~ 切换到家目录
- cd .. 跳转到上级目录
- cd ./home 跳转到当前目录下的home目录
- cd 不加任何参数,回到家目录
- cd - 返回上一步
cat(一次性显示文件所有内容,适合查看比较小的文件)
常用参数
tac(从下往上查看文件内容)
- -n 显示行号
less(分页显示文件内容,更适合查看大文件)
快捷操作:
- 空格键:前进一页
- b键:后退一页
- d键:前进半页
- u键:后退半页
- /键:进入搜索模式
- q键:退出
head(显示文件的开头几行,默认是10行)
- -n 指定行数
tail(显示文件的结尾几行,默认10行)
- -n 指定行数
- -f 会每过1秒检查文件是否有更新内容
mkdir(创建一个目录)
- -p 递归的创建目录结构
touch(创建一个文件)
VIM常用模式
- 交互模式
- 插入模式(i)
- 命令模式(:)
交互模式操作
- 复制:yy
- 粘贴:p
- 剪切:dd
- 撤销:u
- 搜索:/string
命令模式操作
- w 保存
- q 退出
- wq 保存并退出
- ! 强制
cp(拷贝文件和目录)
- -r 递归拷贝,常用来拷贝整个目录
mv(移动、重命名文件或目录)
rm(删除文件和目录,由于Linux下没有回收站,一旦删除非常难恢复,需谨慎)
rmdir(删除目录下的空文件)
- -i 向用户确认是否删除
- -f 文件强制删除
- -r 递归删除文件夹
- rm -rf /* 删除系统所有文件 禁止使用
ln(硬链接和软连接)
命令:ln
语法:ln file1 file2 #创建 file2 为 file1 的硬链接
命令:ln
语法:ln -s file1 file2
find(查找文件)
它会去遍历你的实际硬盘进行查找,而且它允许我们对每个找到的文件进行后续操作,功能非常强大。
语法:find 搜索路径 [选项] 搜索内容
搜索路径:指定在哪个目录查找,此目录的所有子目录也会被查找。
选项:查找什么,可以根据文件的名字来查找,也可以根据其大小来查找,还可以根据其最近访问时间来查找。
- 根据文件名查找
find /linux -name "syslog" 整个硬盘下查找
find /home/kali -name "file.txt"
- 根据文件最近访问时间查找
find -name "*.txt" -atime -7 近7天内访问过的.txt结尾的文件
- 仅查找目录或文件
find . -name "damain.txt" -type f 只查找当前目录下的damain.txt文件
find . -name "damain" -type d 只查找当前目录下的damain目录
grep(查看文件,在文件中查找关键字,并显示关键字所在行)
- -i 忽略大小写 grep -i path /etc/profile
- -n 显示行号 grep -n path /etc/profile
- -v 只显示搜索文本不在的那些行 grep -v path /etc/profile
- -r 递归查找 grep -r hello /etc ,Linux中还有一个rgrep命令,作用相当于 grep -r
which(查找程序安装位置)
wget(文件下载)
-o 导出
curl
- 语法:wget 文件链接,下载地址
tar(压缩文件)
语法:tar [参数][文件]
- -c 建立压缩档案
- -x 解压
- -t 查看内容
- -r 向压缩归档文件末尾追加文件
- -u 更新原压缩包中的文件
- -f 使用档案名字,这个参数是最后一个参数,后面只能接档案名
压缩:tar -cvf 压缩包名称 压缩文件1 文件2 文件3 tar -czf jpg.tar.gz*.jpg
解压:tar -xvf .tar.gz 解压tar.gz
unzip(unzip[压缩包名])
四、Linux网络操作命令
1.常见网络操作命令
命令 | 功能 |
nslookup | 域名解析 |
hostname | 显示主机名 |
hostname -f | 显示完整的主机名和域名 |
hostname -i | 显示当前机器的ip地址 |
ping | 测试网络连通性 |
ifconfig | 查看用户网络配置、显示当前网络设置配置 |
traceroute | 查看数据包提交到对方服务器经过的路由器ip、 跳数、响应时间 |
telnet | telnet ip port 这通常用来测试主机是否在线或者网络是否正常 |
netstat | 可用于列出系统上所有的网络连接情况,端口开放使用情况 |
ifup | 用于重新启动指定网络设备 |
ifdown | 用于关闭指定安全设备 |
ip addr | 查看用户网络配置 |
reboot | 重启服务器 |
poweroff | 关机 |
service | 启动关闭重启服务 |
ss | 查看sockes网络连接 |
--help | 查看帮助信息 |
ping(测试网络连通性)
语法:ping [ip] -c 4
ifconfig(查看ip网络相关信息,如果命令不存在可以使用 ip addr)
语法:ifconfig [参数]
netstat(可用于列出系统上所有的网络连接情况,端口开放使用情况)
语法:netstat [参数]
-a 显示所有选项
-t 仅显示tcp相关选项
-u 仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化数字
-l 仅列出在Listen监听状态
-e 显示拓展信息
2.Linux进程与服务
ps(用于显示当前系统中的进程)
ps 命令显示的进程列表不会随时间而更新,是静态的,是运行 ps 命令那个时刻的状态或者说是一个进程快照。
- -ef 列出所有的进程
- -u 列出此用户运行的进程
- -aux 通过cpu和内存使用来过滤进程
top(获取进程的动态列表)
pgrep(以名称为依据从运行进程队列中查找进程,并显示查找到的进程id)
语法:pgrep 参数 模式
- -f 模式参数进匹配进程名
- -l 列出进程名及进程id
- -u 选择匹配指定有效用户ID的进程
kill(删除执行中的程序或进程)
语法:kill [参数] [进程号]
- -9 强制结束进程
nohup(将程序放置后台运行)
语法:nohup [执行命令] &
3.服务器命令
Service(服务管理命令)
- start 启动服务
- stop 停止服务
- status 查看服务状态
- restart 重启服务
- service sshd restart #重启ssh服务
- service network restart #重启网络服务
systemctl(查看应用运行状态)
systemctl status tomcat #查看应用运行状态
systemctl start tomcat #启动应用
systemctl stop tomcat #停止应用
systemctl restart tomcat #重启应用
4.其他命令
命令 | 功能 |
clear | 清屏 |
env | 查看环境变量 |
history | 查看历史命令记录 |
init 0 | 关机 |
init 6 | 重启 |
reboot | 重启 |
shutdown | 关机/重启 |
w | 查看当前在线用户 |
- 多命令
& ; 多条语句同时运行,当前面命令出错时后面继续运行
&& 多条语句同时运行,当前面命令出错时后面不运行
- 特殊符号
> 输出重定向:将文件或程序的输出结果重定向到另外一个文件中
>>追加重定义:将文件或程序的输出结果追加重定向到另外一个文件中
<输入重定义:将文件或程序的输出结果输入重定向到另外一个文件中或程序中
- 管道
| 前一个命令的输出作为后一个命令的输入
- 通配符
* 匹配任意多个字符
? 匹配任意单个字符
[ ]匹配区间范围
五、常见文件位置
记录域名与ip地址的对应关系:/etc/hosts
存放历史命令文件:.bash_history ls -a history
开机自动安装文件系统文件: /etc/fstab
定义了网络服务的端口文件:/etc/services
ssh日志文件: /var/log/secure (redhat¢os) /var/log/auto.log(debian&ubantu)
apache默认网站路径/var/www/html/