Linux之快速入门
一、Linux目录结构
从Windows转到Linux最不习惯的是什么:
目录结构
Windows会分盘,想怎么放东西就怎么放东西,好处自由,缺点容易乱
Linux有自己的目录结构,不能随随便便放东西

- /:根目录
- /bin:二进制文件,放常用的命令
- /boot:启动时使用的核心文件(连接、镜像文件,跟系统环境有关,不会动它)
- /dev:Device设备缩写,放网卡和硬件设备(存外部设备)
注:Windows有盘,显示图标,Linux所有设备都是文件(一切接是文件)
- /etc:放配置文件(环境变量)
- /home:放自己的资料
注:(常用)创建用户,这个用户会默认在Windows下面创建一个更你的用户名同名的目录,这个目录就是我放资料的地方,不能放在别人目录下,因为Linux是多用户多任务操作系统,同时存有很多到服务器上去,找就是你创建的用户名,可以改,但是不建议
- /lib:是动态连接共享库(架包\使用的基础库)
- /lost+found丢失并且找到了:一般是空的,非法关机,就会存放文件,便与系统修复
- /media:自动设备(u盘..)识别并挂载到上面去
注:Windows插u盘自动识别(自动挂载),双击打开(自动挡),Linux需要手动挂载(手动挡)
- /mnt:临时挂载文件系统(与/media有点一样)
- /opt:放第三方服务(本来没有提供的)
- /proc:进程运行,临时产生资源放这里面,是伪文件系统(不会保存到磁盘里,但是在目录里可以看见他)看这个目录,可以窥探这个软件是怎么运行
- /root:管理员的家
注:一般进不到这里,没有哪个权限,知道密码,会隔一段时间就换的,学进来是方便看
- /sbin:超级管理员的二进制文件
- /selinux:存放相关文件(安全机制,机制很复杂,相当于防火墙)
- /srv:存放服务启动后需要提取的数据(系统自己在用)
- /sys:系统文件(2.6内核新变化)
- /tmp:存放临时文件
注:自己放的文件可以删和改,别人的不行
- /use:(经常用)本地安装存放的地方
- /usr/bin:就是bin目录
- /usr/sbin:就是sbin目录
- /usr/src:存放内核源码,我们看不见
- (/usr/local:软件保存的位置)
- /var:存放可变文件,如:日志每天都在加
- /run:临时文件系统,重启会被清除(有些明明前几天还有用,过几天再开机就不能用了)
注:服务器为了性能好,系统会一周自动重启(重启在晚上)一遍,写一个脚本
二、常见命令
1、#与$提示符的区别:
#:root用户 $普通用户
运行的是不一样的
从root用户切换到普通用户,不需要密码,从普通用户切换到root要(高权限到低权限,低权限到高权限)
2、su :切换用户
3、查看ip地址
ifconfig /ip a :
注:不是默认有的,下载软件包,要运行yum install net-tools
- eno1: 代表由主板bios内置的网卡
- ens1:代表主板bios内置的PCI_E网卡
- enp2s0: PCI-E独立网卡
- eth0: 如果以上都不用,则返回默认的网卡名
ens33则属于第二种类型,即说明你的网卡是内置的PCI-E网卡,
这是由网卡特性命名的可以在 /etc/sysconfig/network-scripts/ifcfg-ens33修改名字

4、 cd
cd 目录名 进入目录
cd .. 返回上级目录
cd ~ 进入当前用户的home目录
5、目录查看
ls 显示当前目录下的所有文件及子目录(看文件名)
ls -all :查看所有文件(隐藏文件一起显示出来)
ll 以详细信息的方式展示当前目录下的文件及子目录(详细)
dir 显示当前目录下的所有文件
pwd 显示当前路径
clear 清空屏幕显示表示类型:
l:链接文件
d:目录
-:文件
rwx 所有者 rwx 所属组 rwx 其他人 777(二的二次方 4 二的一次方2 二的零次方1 )
r 读 w 写 x 执行(二进制文件和脚本)
注:目录有x代表可以进入,txt给执行权限也没用
隐藏文件
Windows
显示隐藏文件

隐藏文件

Linux:
显示隐藏文件:ls -all
隐藏文件:文件以点开头
6、 查看文件内容
cat 只看不改
vi或vim 可看可编辑
7、创建目录及文件
①mkdir 创建目录,
语法: mkdir -选项 -参数 / mkdir+(名字)
选项:
- -m 创建目录同时设置权限
mkdir -m 777 test- -p 如果上级目录没有创建,即创建输入路径上的所有目录(一次性创建多级目录)
mkdir -p /a/b/c②vi +没有创建过的名字
注:也是打开文件,+创建过的文件,容易犯错地方
③touch 创建文件
④echo 重定向创建文件(不仅把文件创建了,还写了内容)
echo 'abc'> bb.txt追加:上面会覆盖
echo 'abc'>> bb.txt
8、复制
cp 复制
示例:
将文件cangls复制奥tmp目录下
cp cangls /tmp/复制目录:将目录/root/movie下的所有内容, 复制到 tmp目录下(注意:-r 参数有递归复制的意思)
cp -r /root/movie/ /tmp/
9、 移动或重命名
mv 文件名 文件名---->重命名
mv 文件名 目录---> 移动
语法:mv [options] source dest
参数说明:
-i 若指定目录已有同名文件, 则先询问是否覆盖旧文件,(i有交互式,询问是否覆盖,默认不用加)
-f 在mv操作要覆盖某已有的目标文件时不给任何提示,直接覆盖(强制性)。
10、其他
reboot 重启系统
shutdown -r now 重启
shutdown -h row 关机
cat /etc/issue 查看当前正在运行的ubuntu的版本号
11、 tar
命令格式: tar [参数] 文件
常用参数:对于顺序没有要求
x: 从压缩的文件中提取文件 (解压)
c: 建立新的压缩文件(加压)
t:显示压缩的文件(不解压只看)
v: 显示操作过程
z: 通过gzip指令来处理备份文件示例:
tar -czvf test.tar.gz a.c 作用: 压缩 a.c文件为test.tar.gztar -tzvf test.tar.gz 作用: 列出test.tar.gz中包含的文件。
tar -xzvf test.tar.gz 作用: 解压文件
tar --exclude=abc/1.txt -zcvf abc.tgz abc 作用: 将文件 abc 进行压缩时,排除1.txt,压缩后的文件名为 abc.tgz(选择性压缩,不压全部)
12、which
查找可执行文件的位置
示例: which ifconfig
13、 whereis
查找文件的位置
14、 find
注:find很强大,但是一般不会在白天用,扫磁盘的找,然而服务器磁盘特别大,占资源,用户在频繁访问系统,会导致慢和卡
查找文件或目录
格式: find [位置] [选项] 文件名 -print
示例:
查找etc目录中,所有文件名以host开头的文件。
find /etc -name 'host*'查找当前用户的home目录中所有的log文件
find ~ -name "*.log" -print查找当前目录及子目录中文件名以一个大写字母开头的文件
find . -name "[A-Z]*" -print从根目录查找文件名为test开头的所有文件
find / -name "test*" -print当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件
find . -perm 755 -print在$HOME目录中查找文件属主为test的文件
find ~ -user test -print查找属主帐户已经被删除的文件,可以使用-nouser选项。在/home目录下查找所有的这类文件
find /home -nouser -print在/apps目录下查找属于gem用户组的文件
find /apps -group gem -print查找没有有效所属用户组的所有文件
find / -nogroup -print应用:今天对文件进行修改,但是忘记了,按时间查
从根目录开始查找5天内被更改的文件
find / -mtime -5 -print在目录/etc中查找3日之前更改的文件
find /etc -mtime +3 -print
在/etc目录下查找所有的目录
find /etc -type d -print在/etc目录下查找所有的符号链接文件
find /etc -type l -print
16、chmod
改变文件的存取权限
命令格式:
chmod [options] mode filesmode:
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
- 表示增加权限、- 表示取消权限、= 表示唯一设定权限
- r 表示可读取,w 表示可写入,x 表示可执行
options:
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f: 文件权限无法修改,不显示错误信息
- -r: 对当前目录下的所有文件和子目录进行递归修改
示例:
给file文件的所有者增加可执行权限
chmod u+x file(加权限)给file的所有者分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
第一种方式: chmod 751 file
第二种方式: chmod u=rwx, g=rx, o=x file为所有用户分配读权限
chmod =r file
chmod a-wx, a+r file
这两种命令作用相同递归地给directory目录下所有文件和子目录的所有者分配读的权限
chmod -r u+r directory
三、vim的基本使用
i 进入编辑模式,vim打开文件后,默认在命令模式,点击i键方可进入编辑模式
esc 点击esc键退出编辑模式,这是可以输入':'输入命令。
| 符号 | 意义 |
|---|---|
| i | 进入编辑模式,vim打开文件后,默认在命令模式,点击i键方可进入编辑模式 |
| esc | 退出编辑模式,进入命令模式 |
| :w | 写入 |
| :q | 退出,如果修改了内容则这种不能退出,如果需要强制退出则使用q! |
| :wq | 写入并退出 |
| :q! | 强制退出,不写入 |
| dd | 删除当前行(编辑模式下) |
| ndd | 删除n行(编辑模式下) |
| /string | 查找(搜索字符串(编辑模式下), 按n查找下一个,N上一个,/str$表示匹配行尾的str, 在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找,例如:/foo\c将会查找所有的"foo","FOO","Foo"等字符串) |
| :s | (substitute)命令用来查找和替换字符串,语法::{作用范围}s/{目标}/{替换}/{替换标志}; 例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g),:s/foo/bar/g 替换当前行, :%s /foo/bar /g 全局替换 |
| :%d | %是匹配所有行,d是删除的意思, 该命令将清空打开的文件的内容 |
| :$ | 跳到文件尾部 |
| :n | 跳到n行 看到行号 :set number![]() |
| u | 撤销上一步的操作 |
| Ctrl+r | 恢复上一步被撤销的操作(返回) |
四、客户端连接服务器方式
4.1、SSH
SSH是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全
2)SSH服务端和客户端
SSH服务端是一个守护进程,一遍为sshd进程,在后端运行并响应来自客户端的请求。
SSH客户端常用的有BvSsh,SecureCRT,putty等。
3)基本工作机制
- 客户端发送一个请求到服务端
- 服务端做数据验证,如包及ip地址等,在发送一个秘钥给ssh客户端
- 客户端再将密钥发回服务端,自此建立连接
4.2、登录方式两个:
①密码和用户名登录
②密钥登录
ssh-keygen -t rsa
1) 首先在服务器中创建密钥对
[root@localhost .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+LTzDddLCyrFVb9bHRMnOssHgOGJbffji/NV5/hPAEA root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| .+E |
| +.... o..|
| . = ...o oo|
| o . .=. o.|
| . S. oo+. B|
| o .o.oo.*+|
| +.. +.= =|
| .o.* = * |
| .+o+ o +|
+----[SHA256]-----+
在创建的过程中会提示输入密码,在次不用输入,直接回车即可,创建的密钥对默认放当前登录用户的家目录下的.ssh目录中。
2)在服务器中安装公钥
[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub
注:此处特别要注意文件名称不能错误(包括大小写), 存放公钥的文件名为: authorized_keys。多个用户多需要登录linux,每个用户都需要密钥,则可以只用上面的追加命令直接将多个用户的公钥直接追加进去即可。
3) 设置文件权限----把私钥给了
[root@localhost .ssh]# chmod 600 authorized_keys
[root@localhost .ssh]# chmod 700 ~/.ssh
- 设置ssh的配置文件
[root@localhost .ssh]# vim /etc/ssh/sshd_config
修改如下的配置:
# 加密算法
RSAAuthentication yes# 使用密钥进行认证
PubkeyAuthentication yes
5)重启ssh服务
[root@localhost .ssh]# systemctl restart sshd
- 拷贝私钥到PC端(注意:是私钥 id_rsa),使用软件导入秘钥,然后测试登录
xshell配置如下:

xshell配置如下:

bitvise配置:

点击出现如下图:

相关文章:
Linux之快速入门
一、Linux目录结构 从Windows转到Linux最不习惯的是什么: 目录结构 Windows会分盘,想怎么放东西就怎么放东西,好处自由,缺点容易乱 Linux有自己的目录结构,不能随随便便放东西 /:根目录/bin:二进制文件&…...
C语言——操作符详解1
目录 1. 操作符的分类2. 二进制和进制转换2.1 二进制的概念2.2 二进制转十进制2.3 十进制转二进制2.4 二进制转八进制和十六进制2.4.1 二进制转八进制二进制转十六进制 3. 原码、反码和补码4. 移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符5.1 &5.2 |5.3 ^5.4 ~ 1. …...
C++学习| QT快速入门
QT简单入门 QT Creater创建QT项目选择项目类型——不同项目类型的区别输入项目名字和路径选择合适的构建系统——不同构建系统的却别选择合适的类——QT基本类之间的关系Translation File选择构建套件——MinGW和MSVC的区别 简单案例:加法器设计界面——构建加法器界…...
Android App开发-简单控件(1)——文本显示
本章介绍了App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图、容纳视图的常用布局、响应点击的按钮控件、显示图片的图像视图等。然后结合本章所涉及的知识,完成一个实战项目“简单计算器”的设计与实现。 1.1 文本显示 本节介绍…...
[GYCTF2020]Ezsqli1
打开环境,下面有个提交表单 提交1,2有正确的查询结果,3以后都显示Error Occured When Fetch Result. 题目是sql,应该考察的是sql注入 简单fuzz一下 发现information_schema被过滤了,猜测是盲注了。 测试发现只要有东…...
【npm包】如何发布自己的npm包
随着Node.js的普及,npm(Node Package Manager)已成为JavaScript开发者中不可或缺的一部分。发布自己的npm包,不仅可以将自己的项目分享给更多人,还可以为社区做出贡献。本文将详细介绍如何从零开始发布自己的npm包。 …...
《WebKit技术内幕》学习之十五(2):Web前端的未来
2 嵌入式应用模式 2.1 嵌入式模式 读者可能会奇怪本章重点表达的是Web应用和Web运行平台,为什么会介绍嵌入式模式(Embedded Mode)呢?这是因为很多Web运行平台是基于嵌入式模式的接口开发出来的,所以这里先解释一下什…...
【教学类-综合练习-11】20240116 大4班 最后一次
只有图片 加了两条链接 背景需求 年终了,清理库存,各种打印的题型纸都拿出来,当个别化学习材料 教学过程: 时间:2024年1月5日下午 班级:大4班(额外带班 真正的最后一次大班) 人…...
【阻塞队列】阻塞队列的模拟实现及在生产者和消费者模型上的应用
文章目录 📄前言一. 阻塞队列初了解🍆1. 什么是阻塞队列?🍅2. 为什么使用阻塞队列?🥦3. Java标准库中阻塞队列的实现 二. 阻塞队列的模拟实现🍚1. 实现普通队列🍥2. 实现队列的阻塞功…...
Cocos Creator使用VS Code调试代码配置
创建项目 首先我们先打开cocos创建一个项目 随便添加一个Cube和脚本,然后保存场景: 添加Chrome Debug配置 在Cocos 中选择添加Chrome Debug配置 然后再VS Code中就可以看到有一个cocos launch Chrome: 然后,就可以按快捷键F…...
【投稿优惠|EI优质会议】2024年材料化学与清洁能源国际学术会议(IACMCCE 2024)
【投稿优惠|优质会议】2024年材料化学与清洁能源国际学术会议(IACMCCE 2024) 2024 International Conference Environmental Engineering and Mechatronics Integration(ICEEMI 2024) 一、【会议简介】 随着全球能源需求的不断增长,清洁能源的研究与应用成为了国际…...
ubuntu设置右键打开terminator、code
前言: 这里介绍一种直接右键打开本地目录下的terminator和vscode的方法。 一:右键打开terminator 1.安装terminator sudo apt install terminator 2.安装nautilus-actions filemanager-actions sudo apt-get install nautilus-actions filemanager…...
PHP AES加解密:用代码为数据加上保护的盾牌
在网络世界里,数据的传输和存储是一个敏感而重要的问题。为了保护数据的安全性,加密算法是一项不可或缺的技术。而在PHP中,AES(Advanced Encryption Standard)加解密算法是一种常用的选择。本篇博客将深入解析PHP中的A…...
Socket实现服务器和客户端
Socket 编程是一种用于在网络上进行通信的编程方法,以下代码可以实现在不同主机之间传输数据。 Socket 编程中服务器端和客户端的基本步骤:服务器端步骤: 1.创建 Socket: int serverSocket socket(AF_INET, SOCK_STREAM, 0);…...
智能GPT图书管理系统(SpringBoot2+Vue2)、接入GPT接口,支持AI智能图书馆
☀️技术栈介绍 ☃️前端主要技术栈 技术作用版本Vue提供前端交互2.6.14Vue-Router路由式编程导航3.5.1Element-UI模块组件库,绘制界面2.4.5Axios发送ajax请求给后端请求数据1.2.1core-js兼容性更强,浏览器适配3.8.3swiper轮播图插件(快速实…...
面试经典 150 题 ---- 合并两个有序数组
面试经典 150 题 ---- 合并两个有序数组 合并两个有序数组方法一:直接合并后排序方法二:双指针方法三:逆向双指针 合并两个有序数组 方法一:直接合并后排序 这种方法最简单,直接将 nums2 的数组放到 nums1 数组的尾部…...
防火墙在企业园区出口安全方案中的应用(ENSP实现)
拓扑图 需求: 1、企业出口网关设备必须具备较高的可靠性,为了避免单点故障,要求两台设备形成双机热备状态。当一台设备发生故障时,另一台设备会接替其工作,不会影响业务正常运行。 2、企业从两个ISP租用了两条链路&…...
单片机学习笔记---矩阵键盘密码锁
目录 一,设置密码按键 1.设置密码区域 2.设置输入的数字左移 3.设置记录按键的次数 二,设置确认键 1.密码正确时显示OK 2.密码错误时显示ERR 3.密码错误恢复初始状态重输 三,设置取消键 学了这么久,迫不及待想要做一个密…...
8-小程序数据promise化、共享、分包
小程序API Promise化 wx.requet 官网入口 默认情况下,小程序官方异步API都是基于回调函数实现的 wx.request({method: , url: , data: {},header: {content-type: application/json // 默认值},success (res) {console.log(res.data)},fail () {},complete () { }…...
[HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页
希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...



