C_01_环境及Linux基础命令

3 篇文章 0 订阅

Start

写在最初:
开始学习C/C++ 慢慢记录,常回顾。

目的:

创建虚拟机模拟操作的硬件设备

方式:

  1. 在当前电脑中按装虚拟机

  2. 云服务器(成本高)

  3. 手搓服务器(真实硬件)

VMware安装

  1. 下载 Vmware

  2. 安装 一直下一步

  3. 创建虚拟机

  4. 给虚拟机中配置系统

    ​ 选中该虚拟机 进入其设置界面 选中CD/DVD 选择 iso 镜像文件 浏览到 下载的 ubuntu 镜像文件(优势 小)优先选择 断网连接【或者拔网线】 启动虚拟机

  5. 配置虚拟机

    ​ 注意语言的选择

插件Tool

VMTools

主机给虚拟机共享

作用:

  1. 原始的VMware 界面不能自适应改变 优化其操作,便于操作

  2. 使 主机系统与虚拟机system可以相互赋值黏贴,包含文件、文件夹、字符串

  3. 使主机共享内容给虚拟机

    查看位置虚拟根目录下 mnt hgfs 共享的文件

安装:

方式  镜像文件安装

1. 进入虚拟机

2. 选择 CD/DVD

3. 选择ISO镜像

4. 浏览到下载的  VMTools镜像文件

5. 选中启动时连接与已连接

6. 确认

7. 弹出DVD窗口

8. 赋值其中的压缩包到HOME目录下

9. 在home目录下解压该压缩包

10. 进入解压的文件夹中

11. 在空白区域点击鼠标右键 选中在终端打开

12. 在终端中输入

    ​		sudo  ./vm ... pl

    ​         yes   

     		一路回车

软件安装、卸载、更新命令

sudo apt-get install 要安装的软件全名 -y      #安装
sudo apt-get remove 要卸载的软件全名 -y       #卸载
sudo apt-get update                         #更新

Samba

虚拟机给主机分享

作用:

使主机查看虚拟机共享的文件

安装命令

sudo apt-get install samba -y

配置

1 添加用户

  sudo smbpasswd -a 用户名

   输入密码   确认密码

2. 修改配置文件

   sudo  gedit /etc/samba/samba.conf

   尾部追加

   [share]

   path=共享文件夹地址

   writable=yes

   valid users=用户名

3. 重启samba服务

      sudo  /etc/init.d/samba restart

使用

主机中使用
1. win+R
2. 输入 \\虚拟机ip     [ip a  查询ip]
3. 双击share文件
4. 输入账号和密码
5. 连接

openssh-server

【用这个就行】

这个是基于samba的优化 所以 后期 有这个 就可以不用 samba 但是这个是基于 命令控制的

作用:

使用主机控制台连接虚拟机控制台

安装命令

sudo apt-get install openssh-server -y

使用

一:打开主机控制台
    1   方式1  win+R 输入 cmd
    2   方式2  在搜索框搜索命令提示符 
    3   方式3  菜单栏中寻找命令提示符
    4   方式4  文件管理器地址栏  输入  cmd 

二:在主机终端输入
    ssh  连接的虚拟器名称 @IP地址
    例如:
        ssh xxz@127.0.0.1
三: 输入 yes   注意第一次连接该ip地址的时候需要        

路径问题

分类:
       相对路径    相对于当前文件或文件夹的路径
       绝对路径    相对于盘符根目录开始书写 例如:F:\360浏览器 注意 Linux系统没有盘符,只有一个根目录使用/表示
#特殊路径  
       
    /    根目录   
         路径分割符  
   #       /home/xxz ==》  第一个/ 表示根目录 第二个表示 路径分隔符
    ~    home 目录 ==》 /home/用户名
    .    当前目录  
    ..   上一级目录 

1.Liunx常用命令

命令的本质就是一个程序,程序的本质就是一个文件

命令的格式:

#  命令 选项 参数
命令: 就是那个文件名
选项:  可有可无  【多个选项之间使用空格隔开】
参数:  可有可无  【多个参数之间使用空格隔开】

  例如  ls -a -l -h /
    标准写法  删除 a.txt b.txt强制删除   并且 路径是相对的  因为不是从根目录来的  参数之间空格隔开 选项也是
    rm -r -f a.txt b.txt
    非标准写法:
    rm -rf a.txt b.txt 

1.1 --help

--help   
#作用:查询其他命令的帮助信息
语法:
      命令  --help   例如:   # ls --help 
注意:  不是所有的命令都能使用 

1.2 man

man是Linux提供的一个手册[说明书]#注意:这个手册有很多个章节

###############################
第一章 中放的是 命令 的帮助信息
第二章 中放的是系统调用(操作系统提供的函数 open)
第三章 中放的是库函数(c库提供的函数 printf)的帮助信息用法:
###########################################

man 章节【1 2 3】 要查找的命令或者函数名
man 1 ls    ===》  也就是 查询 第一章  命令 ls的信息
man 2 open  ==》  这个查询的是  第二章  系统调用 open的信息

1.3 cd

作用

进入

语法

cd 要进入的文件夹路径

如 cd /home/xxz/a

​ cd a

1.4 pwd

作用:

# 显示当前工作目录的绝对路径

语法:

pwd

1.5 ls

作用: 查看

查看当前目录下 或指定目录下的文件于文件夹

语法:

ls 选项 参数
选项
参数 
	要是指定查看的目录需要书写
	如果查看当前目录无需书写
	ls -a    # 表示显示所有文件和文件夹
	   -l    # 列表显示
	   -h    # 科学显示文件大小

以d开头的 是文件夹 以r 开头是 文件

1.6 tree

优势: 树状图看着清晰 但是复杂 并不如 ls

作用:查看文件于文件夹,可以查看多级

注意:系统没有提供,自己下载

sudo apt-get install tree

语法格式:

tree 选项 参数
选项: 
   	-L 层级
参数:
  	查看的层数
#  tree -L 层级

1.7 clear

作用: 清空

1.8 cat

查看指定文件中文本的内容,其他的会乱码

语法:

cat  要查看的文件路径/文件名

如:
cat   a/a.txt        # 相对路径
cat   /home/a/a.txt  # 绝对路径

1.9 rm

作用:删除

语法:

rm 选项 参数
选项: 
 	-r: 文件夹操作
 	-f: 强制
参数:
 	要删除的文件或者文件夹路径
如:  
   rm -rf a

1.10 cp

作用: 复制

语法:

cp 选项 源文件或文件夹路径或者名称 目的路径
选项:
    -r:文件夹操作
    -v: 显示进度
cp /home/xxz/a/a.txt /home/xxz/share  
#  将xxz目录下的a文件下的a.txt复制进 share文件中

1.11 mv

作用:剪切

语法:

mv  要剪切的文件或目录 目的路径
如:
  	mv /home/a/a.txt /home/share 

1.12 mkdir

作用:创建文件夹

语法:

mkdir  选项 要创建的文件夹路径
注意 :如果递归创建的话,需要加 -P
如:  mkdir -p xx/zz/kk  也就是按顺序创建文件夹
且所在目录必须可写,即允许创建文件夹

1.13 touch

作用: 创建文件

语法:

touch 文件名

1.14 find

作用:在指定路径下查找指定文件

语法:

find 路径 -name 文件名
find /home/xx -name a.txt
# 在 /home/xx 下及其子目录下找 a.txt

也可以这样写
#    *通配符号 
find *a*    查找包含 a 的文件
find *a     查找以 a 结尾的文件
find a*     查找以 a 开头的文件

1.15 grep

作用:查询文件中的指定内容 【记忆】

语法:

grep 查找信息 文件名 参数
参数:
	-n 显示行数
    -r  
	grep hello /home/teacher/test.txt -n
意思是在/home/teacher/test.txt文件中找hello字符串,
显示出来并带行号
例:在某个路径及其子目录下的所有文件中查找字符串

在这里插入图片描述

1.16 In

链接文件 使两文件内容保持一致

作用:

语法:

ln 源文件名字 连接文件(快捷方式)名称 选项

选项:
	-s  表示软连接  注意: 不加 就是默认硬链接
文件一连接  两份文件内容就保持一致了 但是 本质 还是两份文件
分为  软硬连接  也就是删除的时候有区别
   硬链接   两文件内容保持一致 优势  甲删除 乙还在       【缺点占用内存】
   软连接  两文件内容保持一致  但是  甲删除 乙也就清空了  【优点:节省内存】
   
   开发常用  软连接  也就是加 -s 

1.17 gzip

作用:压缩与解压缩命令

语法:

z: gzip格式
j: bz2格式
c: 压缩
x: 解压缩
v: 进度
f: 执行

tar 选项 参数
选项: 
	z: gzip格式
	j: bz2格式
	c: 压缩
	x: 解压缩
	v: 进度
	f: 执行
	
gzip:
     语法:
     //压缩
     tar zcvf  
     tar zcvf 压缩包包名要压缩的文件1要压缩的文件2
     tar zcvf 2024.bz2 a.txt b.txt 
     # 将  a.txt b.txt  压缩进 形式为 bz2格式的2024.bz2文件中 
bz2
  语法:
      tar  jcvf  压缩包包名  文件1 文件2
      tar  jxvf  压缩包的名称
解压
	解压方法
		1:解压到当前目录
		tar zxvf 压缩包的名称        

1.18 重定向

作用: 重新定义方向

符号:

>    覆盖
>>   追加

1.19 管道

作用: 将管道左边命令的输出作为管道右侧命令的输入

​ 再加工的意思

左边查询或者操作完 然后再去右边继续右侧的命令操作

# 符号==》         |   
grep a a.txt
a.txt


grep 是工具  a.txt 是输入 也就是提供者
下面查询的结果 就是输出结果  也就是成果

左边查询或者操作完 然后再去右边继续右侧的命令操作

解释: 左侧 ls 先查看当前目录下 或指定目录下的文件于文件夹 并将左侧查询的结果 输送到右侧去进行 右侧命令的操作 进行 查找 包含txt的文件

注意: 不是只有查找命令 是都可以

将 abcd 打印在控制台 后将结果进行查询 字符 b 的操作

1.20 echo

作用: 输出内容在控制台

牛逼作用: 可以写东西进文件

语法:

echo  输出的内容

如:  
echo  德玛西亚    就会在控制台看见了
xxz@xxz:~$ touch a.txt
xxz@xxz:~$ ls
a.txt
xxz@xxz:~$ echo 德玛西亚    # 控制台打印字符串
德玛西亚
xxz@xxz:~$ echo 德玛西亚 >> a.txt  #牛逼之处可以重定向 来写东西进文件
xxz@xxz:~$ ls
a.txt
xxz@xxz:~$ cat a.txt
德玛西亚

1.21 gedit

作用:以文本编辑器的方式打开

语法:

 sudo  gedit /etc/samba/samba.conf  # 以最高权限来将  samba.conf 文件以文本编辑器的方式打开  

技巧:

上下键翻开历史命令

tab 自动补全

2.Vim编辑器

安装:

sudo apt-get install vim 

安装 catgs 目的优化vim

sudo apt-get install catgs

操作:

1 创建或保存文件
2 编辑
		编辑模式
		  	按i 进入插入模式
		  	按shift+: 进入命令行模式
		插入模式
		    按esc 键回退到编辑模式 
		命令模式
		    w:保存
		    q:退出
		    !: 强制
		注意:
		   	当前文件被打开输入编辑模式	   

使用vim 编辑完文件后 只是一个文本文件,不能执行 但是想让其可执行 需要使用编译器

编译器:

c 语言编译器 ==》 gcc

c 文件的后缀名: .c

c++ 语言编译器 ==》 g++

c++ 文件后缀名: .cpp

使用vim 创建一个文本 a.cpp

#include <iostream>
using namespace std;
int main(){
    cout << "hello, world" << endl;
}

g++ a.cpp 将a.cpp文件编译为可执行文件

运行执行文件:

#   ./可执行文件    
./a.cpp

一步到位:【要求熟练掌握】

将代码的文本文件编译为可执行程序g++要编译的文本文件名-0生成的可执行文件名

		g++ a.cpp -o [自己起编译后的文件名]
		-o及以后部分可以省略不写,默认生成的可执行文件名为a.ou					
		
		
分步进行
		g++ -E hello.cpp -o hello.i 1、预处理  就干两件事  1 头文件展开 2 宏替换    面试最多问这步  是程序可操作的 其余步骤 都没办法
		g++ -S hello.i -o hello.s   2、编译  将代码转换为汇编语言
		g++ -c hello.s-o hello.o    3、汇编  将汇编语言转换为二进制文件
		g++ hello.o -o hello_elf    4、链接  将二进制文件转换为可执行文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值