不同应用领域的主流操作系统:
- 桌面(客户端)操作系统
- window系列(用户群体大)
- masOS(适合于开发人员)
- Linux(应用软件少)
- 服务器类操作系统
- Linux(安全稳定免费,占有率高)
- Window Server(付费,占有率低)
- 嵌入式操作系统
- Linux
- 移动设备操作系统
- IOS
- Android(基于Linux)
Linux内核版及发行版:
内核版:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序(负责跟硬件打交道)
Linux发行版:通常包含了包括桌面,办公套件,媒体播放器,数据库等应用软件(在内核的基础上进一步封装,所以发行版里已经包含了内核)
常见的发行版本有:Ubuntu, CentOS,Red Hat ,Debian等
window和Linux的文件目录结构对比:
- window
window操作系统是划分了一个个的盘符,而且window的操作系统属于单用户操作系统,把数据存放在哪个盘符是我们自己说了算
- Linux
Linux操作系统没有盘符的概念,只有一个根目录,根目录下有个home目录,home目录下便是用户目录。因为Linux是多用户操作系统,数据的存放不是一个人说了算,所以Linux提供了用户目录,每个用户只能在自己的用户目录下进行操作
常用命令:
- 查看文件和目录
- ls:查看当前文件夹的内容
- la :查看当前文件夹的所有子目录和文件(包括隐藏文件)
- ll:查看当前文件夹的所有子目录和文件的详细信息
- find [路径] -name "*.py" :查找指定路径下扩展名是.py的文件名,包括子目录
- pwd:查看当前路径
- 切换目录
- cd [目录名]:切换目录
- cd / cd ~ :回到家目录(/home/用户目录)
- cd. :进入当前文件夹
- 创建和删除
- touch [文件名]:创建文件
- touch .[文件名]:创建隐藏文件
- mkdir [目录名]:创建目录
- mkdir -p a/b/c/d :递归创建目录
- rm [文件名]:删除指定的文件名
- rm -r [目录名] :删除指定的文件夹
- 拷贝与移动文件
- cp [源文件名] [目标文件名]
- cp -r [源文件夹] [目标文件夹]
- mv [源文件名] [目标文件名]
- mv [源文件夹] [目标文件夹] (如果源文件跟目标文件在同个文件夹那就相当于重命名了)
- 查看文件内容
- cat 文件名(全部显示)
- more 文件名 (分屏显示)
- grep "查找内容" 文件名(显示所有在行,查找内容高亮)
- grep -o "查找内容" 文件名(只显示查找内容)
- grep -v "查找内容" 文件名 (显示不包含查找内容的行)
- grep "[0-9a-z]*" 文件名 (要使用*必须搭配中括号一起使用)
- ls -alh | grep "文本内容" :一个命令的输出可以通过管道“|”作为另外一个命令的输入,也就是在ls -alh的结果中 grep "问本内容"
- 文件内容统计(对于报表型的文件内容)
- awk '{print $1,$4}' 文件名 :打印第一列和第四列
- awk '$1==1.1 && $2==1.2 {print $0}' 文件名:打印第一列等于1.1且第二列等于1.2的行($0表示所有列也就是整行)
- 文本内容替换
- sed -i 's/替换的内容/要替换的内容/g' 文件名 :g表示全局替换,不加g只替换第一次
- sed -i 's/\./\;/g' 文件名 :替换特殊字符需要使用转义符\
- 打包压缩
- tar -zvcf 打包压缩文件.tar.gz 被压缩的文件(打包)
- tar -zxvf 打包压缩文件.tar.gz (解压)
- apt安装/卸载软件
- sudo apt install 软件包 :安装软件
- sudo apt remove 软件名 :卸载软件
- sudo apt upgrade :更新已安装的包
- 系统信息
- date:查看系统时间
- cal:查看日历,-y可以查看一年的日历
- df -h :显示磁盘剩余空间(重点关注根目录)
- du -h[目录名] :显示目录下的文件大小
- 进程信息
- ps -ef : 查看进程的详细信息
- top : 动态显示运行中的进程并且排序,要退出top可以输出q
- kill [-9] 进程代号:终止指定代号的进程 ,-9表示强行终止
- 设置防火墙与端口
- systemctl status firewalld.service #查看firewall状态
- systemctl stop firewalld #关闭
- systemctl start firewalld #开启
- systemctl disable firewalld #开机自动关闭
- systemctl is-enabled firewalld.service #查看开机是否启动
- systemctl enabled firewalld #开机自动启动
- sudo netstat -tlpn #查看所有开放的端口及对应进程
- sudo lsof -i :port #查看指定端口对应进程(一个端口可能有多个进程)
- 其他
- echo "文本内容" > 文件名 :将原本显示在终端上的内容输出(覆盖)到指定文件(相当于 touch 文件名 + cat 文件名 +输入“问本内容” )
- echo "文本内容" >> 文件名 : 将原本显示在终端的内容追加到指定文件
- tree:显示当前目录的树状结构
- clear:清屏
- "ctrl" + "+":放大终端字体
- "ctrl" + "-":缩小终端字体
查看和配置网卡信息:
网卡:是一个专门负责网络通讯的硬件设备
IP地址:是设置在网卡上的地址信息
我们可以把电脑比作电话,网卡比作SIM卡,IP地址就是电话号码
ifconfig :查看网卡配置信息
ifconfig | grep inet : 查看网卡对应的IP地址
ping IP地址 :检测到目标主机是否正常连接
ping 127.0.0.1 : 检测本地网卡是否正常工作
远程登录和复制文件:
- 域名与端口号
域名:由一串用点分隔的名字组成(例如:www.baidu.com),是ip地址的别名,方便用户记忆
端口号:通过ip地址找到网络上的计算机,通过端口号可以找到计算机上运行的应用程序
SSH服务器默认端口号是22
Web服务器默认端口号是80
- SSH
Linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上
SSH客户端与SSH服务器:端数据传输是加密的,可以防止信息泄漏。数据传输是压缩的,可以提高传输速度
首先在虚拟机中安装SSH服务:
sudo apt-get install openssh-server
然后启动服务:
sudo /etc/init.d/ssh start
设置开机自启动:
进入/etc/rc.local文件(开机便会自动加载的文件),加入/etc/init.d/ssh start
下载安装SSH客户端(window下建议安装的客户端是filezilla和Xshell)
进入Xshell新建连接(选择SSH协议,主机为虚拟机ip,端口默认为22):
进入filezilla新建站点(选择SSH协议,主机为虚拟机ip,端口默认为22):
如果要使用root身份连接服务器会出现“认证失败,无法连接服务器”的错误!
解决方法:配置文件vim /etc/ssh/sshd_config发现有permitrootlogin:withpassword这个东西,把它改成permitrootlogin:yes,保存退出,service ssh restart一下,就会可以连接上了