2023/7/24 -- C高级

一、复习

【1】命令行提示符

ubuntu:用户名

@:分隔符

ubuntu:计算机名

linuxc:路径

$:普通用户权限,#:超级用户权限

【2】切换用户

su 用户名 ------>默认切换到root用户

sudo:以管理员的身份运行后面的指令

【3】passwd

修改用户的密码:sudo passwd 用户名

【4】ls

ls 查看当前路径下的文件

ls 指定路径 查看指定路径下的文件

ls -l 查看文件的详细信息

ls -a 查看所有文件包括隐藏文件

ls -h 给文件的大小带单位的显示

ls -i 显示文件的inode号,inode号是一个存储文件详细信息的索引

【5】cd

切换工作路径,默认切换到用户的家目录

【6】rm/touch

rm:删除文件,-r参数可以删除目录

touch:创建文件,文件不存在是创建,文件存在是更新文件的时间戳

【7】mkdir/rmdir

创建目录mkdir,mkdir -p创建具有层级关系的目录

rmdir:删除目录

【8】cp/mv

mv可以用作文件的重命名

【9】cat/echo

cat 文件名 ----->回显文件的内容到终端

echo 字符串 ------>打印字符串

【10】重定向符/追加

>重定向,目标都是文件

>>追加 ,目标是文件

cat 1.c > 2.c

echo 111 >> 2.c

二、网络配置

一般配置的是桥接网络

【1】ping

ping 网址,验证网络是否联通

【2】虚拟机设置为桥接模式

虚拟机---->设置----->网络适配器---->桥接/VMnet0

【3】添加桥接网络

虚拟网络编辑器----->更改设置----->添加桥接网络

连接主机的网卡,可以选自动,或者去主机下找是哪一张网卡

主机----->网络----->属性------>描述

【4】给虚拟机配置桥接网络

右上角的网络图标----->有线设置----->配置

三、在线安装软件

【1】更新软件源

把Ubuntu在线下载时默认的软件源更新成国内的软件源

阿里源、清华源、网易163源、中科大源······

修改:sudo vim /etc/apt/sources.list文件,建议先把该文件备份一份,备份结束后,把搜到的软件源粘贴进来。

sudo apt-get update ----->把刚更新的软件源的软件列表拉取到本地

【2】在线安装软件相关的指令

sudo apt-get install 软件名 ----->安装软件

sudo apt-get remove 软件名 ------>卸载软件,不是完全卸载,不删除配置文件

sudo apt-get remove --purge 软件名 ----->完全卸载,删除配置文件

sudo apt-get download 软件名 ------>下载软件的安装包,默认被下载在执行指令的位置

sudo apt-get source 软件名 ----->下载软件的源码,如果/etc/apt/sources.list文件中deb-src开头的代码被注释掉,没有办法下载源码,要取消注释

sudo apt-get clean ------>删除默认位置的软件安装包

软件安装包的默认位置/var/cache/apt/archives/,clean只清除该位置的软件安装包

安装成功后怎么运行软件:直接在终端输入软件名

oneko & 后台运行软件 ----->终端会弹出一个进程号

kill -9 进程号,杀死这个进程

四、离线安装软件

离线安装软件,不会检查软件以来也不会安装软件依赖

在线安装会检查也会安装

【1】软件安装包的命名规则

oneko         _1.2.sakura.6         -13_         amd64.                         deb

     |                         |                     |                 |                                 |

软件名         主版本号         修订版本号     支持64位架构         支持debain软件包标准

                                                      支持32位架构的---->i386    还有一种rpm软件包标准 (redhat)

【2】离线安装软件的指令

dpkg ----->debain package

sudo dpkg -i 软件包名 ------>要保证执行指令的路径下,一定存在该软件安装包

sudo dpkg -r 软件名 卸载软件

sudo dpkg -P 软件名 完全卸载软件

sudo apkg -l 软件名 显示软件的安装列表

五、文件相关的操作

【1】|  管道符

管道符:把前一条指令的输出,当作后一条指令的输入。

终端指令1|终端指令2|终端指令3|·····

【2】head、tail

cat 文件名   ----->查看文件内容,并回显到终端

head  文件名   ----->回显文件的前10行
tail  文件名   ----->回显文件的后10行
head -n 文件名   ------>显示文件的前n行
tail -n 文件名   ------>显示文件的后n行

显示/etc/passwd文件的第13行:head -13 /etc/passwd | tail -1

/etc/passwd存放的信息:

  • ubuntu:用户名
  • x:密码是否加密
  • 1000:uid,用户id
  • 1000:gid,组id
  • guoq:用户的描述信息 ------>图形化界面上可以看到,登陆界面
  • /home/ubuntu:用户家目录
  • /bin/bash:用户使用的shell解析器

【3】find

find 要查找的路径 -name 要查找的文件  ----->显示查找到的文件的绝对路径
find -name 要查找的文件  ----->默认在当前目录下查找
find ~ -name day*   ------>找到所有家目录下,day开头的文件可以实现模糊查找

【4】file

file a.out
a.out: 文件名
*****ELF :文件类型
64-bit:支持64位操作系统 
*****LSB shared object,:小端存储
x86-64,:架构
version 1 (SYSV), 
***dynamically linked, interpreter /lib64/l : 链接到的库
*****for GNU/Linux 3.2.0: gcc编译器的版本
BuildID[sha1]=60b94b36154878cc979cc2aae1af6e92a45f044f,:动态id
not stripped:文件没有被压缩过

file 1.c
1.c:文件名
C source:C语言源文件
ASCII test:ASCII的文本文件

【5】grep

grep:查找字符串
grep 要查找的字符串 文件名   ------>从文件中查找字符串
-R: 只用于后面跟路径的时候,表示递归查找
-i:不区分大小写
-n:显示行号
-w:按单词查找

【6】cut

cut -d "分隔符" -f "截取的域" 文件名
"域的表示方式": 2,3    2-4    1

【7】压缩/解压缩文件

压缩和解压缩,源文件都不存

gzip  要压缩的文件  ---->生成.gz后缀的文件
xz    要压缩的文件  ---->生成.xz后缀的文件
bzip2 要压缩的文件  ---->生成.bz2后缀的文件

解压缩
unxz    要解压缩的文件.xz
gunzip  要解压缩的文件.gz
bunzip2 要解压缩的文件.bz2

压缩效率:xz>bz2>gz

压缩时间:xz>bz2>gz ----->用压缩时间看现象,压缩时间长说明压缩效率更高

xz一般适用于归档文件,gz用于临时的文件存储

【8】tar

i)打包并压缩

打包后,源文件和目标文件都存在

tar -cf  生成的文件.tar  要打包的文件 ----->建议加上.tar后缀
-f:files的缩写,要求-f参数后面一定要跟文件名

tar使用的压缩参数
-j:bz2工具
-J:xz工具
-z:gz工具
tar -cjf 要生成的文件.tar.bz2  要打包的文件
tar -cJf 要生成的文件.tar.xz  要打包的文件
tar -czf 要生成的文件.tar.gz  要打包的文件

ii)拆包并解压缩

tar -xvf 要拆包的文件
-v:显示指令执行的过程

如果想要使用压缩工具对应的参数实现解压缩,只需要写-xjf、-xJf、-xzf
也可以直接使用 tar -xvf  万能的拆包并解压缩指令

注意:有万能的解压缩指令,但是没有万能的压缩指令

压缩时,使用的参数必须和后缀名一致(如果写错了执行打包并压缩指令时不会报错,但是后续操作无法执行)

【9】wc(word count)

wc 文件名    ----->回显文件的文件名以及行数、单词数和字符个数
wc -l  文件名  ----->显示行数
wc -c  文件名  ----->显示字符数
wc -w  文件名  ----->显示单词个数

【10】创建链接文件

i)ln 创建硬链接文件

ln  源文件名  硬链接文件名   
ln  3  33   ----->给普通文件3创建了一个硬链接文件33

硬链接文件的注意事项:
1、硬链接文件和源文件有相同的inode号
2、硬链接文件可以理解为拷贝的过程
3、硬链接文件的修改会影响到源文件,源文件的修改也会影响到硬链接文件
4、删除源文件,链接文件不会受影响;删除链接文件,源文件也不会受影响
5、硬链接文件会增加ls -l中显示的链接文件的个数,当链接文件个数位0时,文件被删除

ii)创建软链接文件

ln -s 源文件的绝对路径 目标文件的绝对路径
ln -s /home/ubuntu/23062/linuxc/day1/1.c /home/ubuntu/23062/linuxc/day1/2.c
给该目录下的1.c文件,创建了一个名为2.c的软链接文件

如果软链接文件的源文件被删除,链接会失效,如果重新再创建一个同名的源文件,链接会重新生效

软链接文件的注意事项:
1、创建软链接文件时,尽量写绝对路径
2、软连接文件的修改和源文件的修改是同步的
3、当源文件被删除,软链接文件失效,可以再创建一个同名文件让链接生效
4、软链接文件的文件类型是l
5、wins下是不支持软链接的,所以Linux下的压缩包不要放到wins下解压
6、软连接文件可以理解为快捷方式
7、源文件被删除时,软链接文件不能打开并且没有内容

六、文件的权限

七种文件类型:

  • b:块设备文件                       
  • c:字符设备文件                    
  • d:目录文件                           
  • -:普通文件   
  • l:软连接文件      
  • s:套接字文件
  • p:管道文件

【1】文件权限

r:可读 4 w:可写 2 x:可执行 1

chmod

  1. chmod 用户+/-/=权限 文件名 ------> u g o a
  2. chmod 权限的八进制数 文件名 ------>如果不足,先满足右侧的值

【2】chown 修改文件的所属用户

文件的所属用户,默认是创建文件的用户

chown root 1.c ---->把1.c的所属用户改为root
chown root: 1.c  ----->把1.c的所属用户和组用户都改为root
chown root:ubuntu 1.c  ----->把1.c的所属用户改为root,把所属组用户改为ubuntu
chown :ubuntu 1.c   ----->把1.c的所属组用户改为ubuntu

【2】chgrp 修改文件的所属组用户

sudo ---->在修改root用户相关的权限
sudo chgrp root 1.c  ---->把1.c的所属组用户改为root

七、开关机相关的指令

【1】关机

shutdown 10:04  ---->让计算机在10:04分关机
shutdown now    ----->立即关机
shutdown +10    ----->在10分钟之后关机

【2】重启

shutdown -r 10:04  ---->让计算机在10:04分重启
shutdown -r now    ----->立即重启
shutdown -r +10    ----->在10分钟之后重启
sudo reboot(常用)  重启

八、用户相关的操作

【1】查看当前用户

whoami

【2】查看用户的id信息

想要查看所有信息:id 用户名

查看uid:id -u 用户名 ---->如果不加用户名默认查看当前登录用户的id信息

查看gid:id -g 用户名

【3】新建用户

sudo adduser 用户名 ---->一定需要加sudo

2023/7/24 -- C高级_第1张图片

  1. /etc/skel:系统配置文件,理解为一个模板目录
  2. /etc/passwd:存放用户的详细信息
  3. /etc/group:存放组用户的信息
  4. /etc/shadow:存放用户的密码

【4】给新用户添加sudo权限

新用户默认不在sudoers文件中

需要打开sudoers文件,把新用户添加进去

sudo vim /etc/sudoers

只修改用户名,其他的和上面完全一致

2023/7/24 -- C高级_第2张图片

 【5】删除用户

sudo deluser 用户名   ----->不能删除家目录
没有删除的家目录,sudo rm -r /home/用户名
sudo userdele -r 用户名  ----->可以直接删除家目录

【6】usermod修改用户的信息

sudo usermod -c 描述信息 用户名  ------>修改用户的描述信息
描述信息可以在开机时的登陆界面看到,还可以在/etc/passwd中看到
sudo usermod -l 新的用户名 用户名  ----->更改用户的名字
可以在/etc/passwd中看现象

sudo usermod -m -d 新的家目录的位置 用户名 ----->把用户的家目录重新更改位置
-m -MOVE -d -DIR
sudo usermod -g 新的组 用户名 ---->给用户更改组用户
要保证,更改的组用户本身已经存在
查看组是否存在,sudo vim /etc/group 

九、磁盘相关的指令

【1】让虚拟机识别U盘

第一种、通过弹窗选择连接到虚拟机

2023/7/24 -- C高级_第3张图片

第二种、虚拟机----->可移动设备------>找到U盘名----->连接/断开

2023/7/24 -- C高级_第4张图片

【2】检验是否识别成功

ls /dev/sd* ----->如果查看到的内容有除了sda外的其他信息

sda表示的是Ubuntu

识别成功后,可以检查U盘的使用率

df -h ----->可以查看所有分区的使用率,还可以看到挂载点

只有U盘挂载在Ubuntu后才能通过df -h查看到U盘的内容

【3】磁盘分区

fdisk ---->磁盘分区的工具

sudo fdisk /dev/sdb  ----->一定是sdb不是sdb1
进入fdisk工具后:
m:显示帮助
p:打印已有分区
n:新建分区
d:删除分区
q:退出不保存
w:保存退出

【4】格式化分区

分区尽量小一点,不要太大10M左右

mkfs        ---->make file system
sudo mkfs.要格式化的文件类型  要格式化的分区(具体的分区)
mkfs可以格式化的类型:按两下tab键
sudo mkfs.ntfs /dev/sdb1   //尽量小一点
ext4---->ubuntu常用的
ntfs---->wins常用的

格式化成功的现象

2023/7/24 -- C高级_第5张图片

如果格式化不成功,并且显示已经挂载 is mounted,取消挂载再格式化

【5】挂载

sudo mount 分区名  挂载的目录名
sudo mount /dev/sdb1 ~/udisk   ----->udisk保证是已经创建过的

sudo umount 分区名/挂载点名   ---->如果已知分区名就添加分区名
---->如果已知挂载点,直接添加挂载点

如果分区被自动挂载在/media/ubuntu/xxx这个路径下,不能通过挂载点名取消挂载

挂载点添加成功之后,对于挂载点的操作,就等同于对U盘的操作

你可能感兴趣的:(c语言)