02_linux系统命令

news2025/2/27 13:14:03

一、绝对路径与相对路径

1.以 ./ 开始的路径名是相对路径 

2.以 / 开始的路径是绝对路径.

相对路径:会随着用户当前所在的目录发生改变.

绝对路径:不会根据用户所在的路径而改变.

3.gcc 编译器

编译器把高级语言(C语言/JAVA语言/C++语言)生成二进制代码的一种工具.gcc 是专用于编译C语言的工具.

C语言程序生成可执行文件的过程

a、预处理 -E

预处理:进行宏展开,把所有的宏定义进行替换,把以 # 开头的语句进行替换.  
#define   MAX   100   宏定义 
#include <stdio.h>    头文件 

file main.c  #查看当前文件的属性 
main.c: C source, ASCII text  #C语言源文件,ascii文本文件 

预处理命令:
gcc main.c -o  main.i  -E

b、编译 -S

编译:把高级C语言 编译成 编程汇编语言 

file  main.s    
main.s: assembler source, ASCII text  #汇编语言 

编译命令:
gcc  main.i  -o  main.s   -S  

c、汇编 -c

汇编:把 ascii 文本编程 二进制文本


file  main.o  
main.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped   #64位二进制文件 

汇编命令:
gcc  main.s   -o  main.o  -c  

d、链接

链接:把标准库添加到二进制代码中

file  main   
main: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter </lib64/ld-linux-x86-64.so.2>,
BuildID[sha1]=263e66632eda4c8f62795dcabd2e87a2ba088bc9, for GNU/Linux 3.2.0, not stripped   可执行二进制文件 

gcc hello.o -o hello -lc -lgcc
gcc main.o -o main 

#链接标准库,但是c 与 gcc 是默认的标准库可写可不写 
-lc -lgcc 

补充命令:

// 查看编译器的版本:
gec@ubuntu:~$ gcc -v

// 将源码 a.c 编译生成程序 a
gec@ubuntu:~$ gcc a.c -o a

// 编译源码的时候打开所有的警告
gec@ubuntu:~$ gcc a.c -o a -Wall

// 编译源码的时候指定自定义头文件
// xxx/xxx为自定义头文件所在路径
gec@ubuntu:~$ gcc a.c -o a -I xxx/xxx

// 编译源码的时候指定自定义库文件
// yyy/yyy为自定义库文件所在路径,name为库名称
gec@ubuntu:~$ gcc a.c -o a -L yyy/yyy -lname

// 编译源码的时候指定运行时自定义库文件所在路径
// zzz/zzz为自定义库文件在运行时的所在路径
gec@ubuntu:~$ gcc a.c -o a -Wl,-rpath=zzz/zzz

二、ssh 文件互传协议

在linux系统下文件互传的方式有很多,例如:共享文件夹,samba,tftp,ftp,nfs .... 但是这些方式只能传输文件无法远程控制,所以

最新方式是利用 ssh 进行远程控制与传输文件.

SSH(Secure Shell,安全外壳协议)是一种用于安全远程登录和其他网络服务的加密协议。

SSH 通过加密通信来保护数据在传输过程中的安全性,广泛应用于系统管理、文件传输和远程命令执行等场景。

1.关闭Windows防火墙

测试能否与目标主机ping通

ping  192.168.59.88   #测试与88 主机的同学是否接通

gec@PC-20240429TQJF:~$ ping 192.168.59.88
PING 192.168.59.88 (192.168.59.88) 56(84) bytes of data.
64 bytes from 192.168.59.88: icmp_seq=1 ttl=128 time=3.13 ms  显示速率则证明已经接通 
64 bytes from 192.168.59.88: icmp_seq=2 ttl=128 time=0.887 ms

2.安装ssh 服务器与客户端

 sudo apt-get   update  #更新软件列表
 sudo apt-get   install   openssh-server #安装服务器端 
 sudo apt-get   install   openssh-client #安装客户端 
 
 
 重启ssh 服务器 
  sudo  /etc/init.d/ssh   start   #开启ssh服务器 
  sudo  /etc/init.d/ssh   restart #重启ssh服务器

提示:ubuntu 20.04 服务器有bug 无法提供对方登录.

所以要安装22版本以上的ubantu才行

3.利用ssh 进行远程登录

成功登录后就会显示对方的主机信息

4.scp 传输文件

上传文件: 
scp   文件名     用户名@目标ip地址:绝对路径     

例子:上传一个  main.c 文件到gec用户 ip为192.168.59.1 的主机,并放入 /home/gec 目录 
scp   main.c   gec@192.168.59.1:/home/gec


下载文件: 
scp   用户名@目标ip地址:文件的绝对路径    ./   

例子:下载用户为 gec 服务器地址为 192.168.59.1 的主机下的 /home/gec/main.c 文件到当前目录  
scp   gec@192.168.59.1:/home/gec/main.c    ./       

三、linux命令文档安装方法

1.下载u-tools 工具

uTools官网 - 新一代效率工具平台

2.进入插件市场安装linux命令文档

3.快速查找命令使用方法

alt + 空格

linux基础命令

ls 查看当前目录下的文件

1. ls        ==> 列出当前目录的文件名
2. ls -l     ==> 列出文件详情
3. ls -a     ==> 列出文件名(含隐藏文件)
4. ls -la    ==> 列出文件详情(含隐藏文件)
5. ls /etc   ==> 列出指定目录 /etc 的文件名
6. ls -lh    ==> 列出文件详情文件大小用 单位表示

linux目录文件的特点:
蓝色:目录
绿色:可执行文件
白色:一般性文件,如文本文件,配置文件等
红色:压缩文件或归档文件
浅蓝色:链接文件
红色闪烁:链接文件存在问题
黄色:设备文件
青黄色:管道文件

alias 取别名

作用:简化较长的命令。
alias c='clear'  #给clear 命令取一个别名为 c  


永久生效的配置流程: 
vi  ~/.bashrc      #1.打开配置文件 

alias c='clear'    #2.添加到文件末尾 ,并保存退出 :wq 

source  ~/.bashrc  #3.重新加载文件

cd 切换目录

cd /etc  ==> 切换到 /etc
cd       ==> 切换到家目录
cd -     ==> 切换到刚刚去过的地方
cd ..    ==> 切换到上一级目录
cd ../.. ==> 切换到上上级目录

date 查看当前日期

date  #查看当前的时间  
date +"%Y-%m-%d"   #查看时间格式为        2025-02-25
date +"%Y-%m-%d %H:%M:%S" #查看时间格式为 2025-02-25 15:13:29

 date -s  2025-02-27  #设置日期  
 date -s  16:50:00    #设置时间
 date -s "2025-02-27 16:50:00"  #设置日期时间 

dpkg命令

是Debian Linux系统用来安装、创建和管理 .deb 软件包的实用工具。

dpkg -i package.deb     # 安装包
dpkg -r package         # 删除包

echo 输出文本

echo  "hello world"  #输出字符串"hello world"

echo $PATH           #输出PATH 环境变量值 ✔️

四、⭐man 帮助手册

man man 查看帮助手册说明

man   1  ls      #查看shell命令的使用 
man   2  open    #查看系统调用open函数使用 
man   3  strlen  #查看库调用strlen函数使用 

man 3 srand 查看随机数产生的方法

man 2 time 查看时间函数

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(int argc, char *argv[])
{
    // 获取秒数数作为随机因子
    unsigned int seed = time(NULL);

    srand(seed); // 设置一个随机因子,如果一个随机因子是相同的,那么产生的随机数也是一样的!

    unsigned int r = rand(); // 产生随机数

    printf("%d\n", r%91 + 10 ); // 打印随机数
}

修改上述代码,产生 10 -  100 以内的随机数! 

1、其他命令

pwd  输出当前所在目录

sort 对文本内容排序输出 
root@[mail text]# cat sort.txt #直接读取文本
aaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5
eee:50:5.5

[root@mail text]# sort sort.txt #排序输出文本
aaa:10:1.1
bbb:20:2.2
ccc:30:3.3
ddd:40:4.4
eee:50:5.5
eee:50:5.5

uniq 去掉重复行 
gec@ubuntu:~$ uniq file.txt
gec@PC-20240429TQJF:code$ cat  my.txt
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
gec@PC-20240429TQJF:code$ uniq  my.txt
aaaaa
bbbbb
ccccc

which  查看命令所在路径 
gec@PC-20240429TQJF:code$ which ls
/usr/bin/ls


| 管道符号 
将前面命令的输出,成为后面命令的输入:cmd1 | cmd2

gec@PC-20240429TQJF:code$ ls
a.out  main  main.c  main.i  main.o  main.s  my.txt  随机数.c
gec@PC-20240429TQJF:code$ ls   |  sort  -r    👉将当前目录下的文件,按反序列出
随机数.c
my.txt
main.s
main.o
main.i
main.c
main
a.out

2、 文件管理命令

⭐mv 移动或重命名文件  
gec@PC-20240429TQJF:~$ mv  main.c  new.c   #重命名 
gec@PC-20240429TQJF:~$ mv  new.c   dir/    #把文件移动到dir目录中

⭐cp 拷贝文件或者目录 
gec@ubuntu:~$ cp file1 file2    ==> 将文件file1复制为file2
gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/

⭐touch 创建普通文件  
gec@PC-20240429TQJF:~$ touch main.c

⭐mkdir/rmdir 创建/删除目录 
gec@PC-20240429TQJF:~$ mkdir  dir       #创建一个目录  
gec@PC-20240429TQJF:~$ mkdir  mycode/mytest/mylib  -p  #创建多级目录 

gec@PC-20240429TQJF:~$ rmdir  mycode/   #删除一个空目录 
gec@PC-20240429TQJF:~$ rm  mycode/   -r #删除一个非空目录


⭐rm 删除普通或目录文件 
gec@ubuntu:~$ rm file
gec@ubuntu:~$ rm -r dir/

⭐find  查找linux系统中的文件 

find /home -name "*.txt"               👉1.查找/home目录下 以 .txt 结尾的文件 

find ./ -name "*.txt" -o -name "*.pdf"   👉2.查找./当前目录下 以 .txt 或 .pdf 结尾的文件   


find . -type 类型参数    👉根据文件类型查找

f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo

find  /lib  -type l   👉3.查找/lib 目录下的链接文件  


find  /lib  -type f -size  +10k   👉4.查找/lib 目录中大于 10K 的普通文件
文件大小单元:
b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节


-----------------下述命令了解即可------------------------------------


gec@ubuntu:~$ cat file.txt ==> 显示文本文件内容     

head/tail   释义:查看指定文件的头部/尾部内容
gec@ubuntu:~$ head -n 6 file.txt   #显示前面6行  
gec@ubuntu:~$ tail -n 6 file.txt   #显示后面6行

less  分屏上下翻页浏览文件内容
more  显示文件内容,每次显示一屏  

od     查看二进制文件 
od -t d1 文件名   #以ascii的形式输出 
 
 grep 搜索一个文本中的内容
 grep    "stdio.h"   main.c  #查找main.c3 文件中是否包含字符串stdio.h
 grep    'apple' /usr -rn    #在/usr中查找包含apple的文件 
 
diff 比较两个文件的差异
diff file1 file2      ==> 检测文件file1和file2的差异信息
diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息


gec@ubuntu:~$ wc          ==> 计算从键盘输入的数据,以ctrl+d结束
gec@ubuntu:~$ wc file.txt ==> 计算文件file.txt的数据

3、 ⭐tar 压缩与解压命令

Linux下最常用的压缩包格式是:
.tar.bz2
.tar.bz
.tar.gz
.tar.xz
.zip

tar  命令的可选参数:  
x   👉 解压
c   👉 压缩
z   👉 对应bz格式文件
j   👉 对应bz2格式文件
v   👉 压缩信息是否可视  
f   👉 file  文件 

解压命令: 
tar  -xvf  ????.tar.xz
tar  -xvf  ????.tar.gz
tar  -xjvf  ????.tar.bz2
tar  -xzvf  ????.tar.bz

压缩命令:
tar -cvf ????.tar.gz  压缩文件名    
tar -cvf ????.tar.xz  压缩文件名    
tar -czvf ????.tar.bz  压缩文件名
tar -cjvf ????.tar.bz2  压缩文件名
  
打包并压缩: tar -jcvf [目标文件名].tar.bz2  [原文件名/目录名]
解压并解包: tar -jxvf [原文件名].tar.bz2
注:小写j代表用bzip2算法来压缩/解压。

指定解压目录 
tar  -xvf   解压的压缩包   -C  指定的目录

4、zip 格式压缩包

sudo  apt-get  install  zip   #安装zip  解压工具  

gec@ubuntu:~$ zip a.zip file dir/  ==> 将指定的文件和目录压缩成a.zip
gec@ubuntu:~$ unzip a.zip          ==> 解压a.zip

5、权限管理命令

chmod   修改文件的权限  

chown   修改文件所有者 
gec@PC-20240429TQJF:~$ sudo   chown   jack   main.c
gec@PC-20240429TQJF:~$ ls -l  main.c
-rw-rw-r-- 1 jack gec 0 Feb 26 10:15 main.c

chgrp   修改文件所属组  
gec@PC-20240429TQJF:~$ sudo   chgrp   jack   main.c
gec@PC-20240429TQJF:~$ ls -l  main.c
-rw-rw-r-- 1 jack jack 0 Feb 26 10:15 main.c


adduser 添加新的用户
gec@PC-20240429TQJF:home$ sudo  adduser  jack
Adding user `jack' ...

su  切换用户  
gec@PC-20240429TQJF:home$ su jack
Password:
  
addgroup 添加用户组 
delgroup 删除用户组 
gec@ubuntu:~$ sudo addgroup gec ==> 添加用户组gec
gec@ubuntu:~$ sudo delgroup gec ==> 删除用户组gec
检查是否成功请 cat   /etc/group 

deluser 删除用户
gec@PC-20240429TQJF:~$ sudo deluser   jack
[sudo] password for gec:
Removing user `jack' ...
Warning: group `jack' has no more members.
Done.

 

至此,希望看完这篇文章的你有所收获,我是Bardb,译音八分贝,道友,下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2306895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【leetcode hot 100 11】移动零

一、暴力解法&#xff1a;两个 for 循环&#xff0c;外层循环遍历所有可能的左边界&#xff0c;内层循环遍历所有可能的右边界 class Solution {public int maxArea(int[] height) {int max_area0;for(int i0; i<height.length; i){for(int ji1; j<height.length; j){in…

AI绘画软件Stable Diffusion详解教程(2):Windows系统本地化部署操作方法(专业版)

一、事前准备 1、一台配置不错的电脑&#xff0c;英伟达显卡&#xff0c;20系列起步&#xff0c;建议显存6G起步&#xff0c;安装win10或以上版本&#xff0c;我的显卡是40系列&#xff0c;16G显存&#xff0c;所以跑大部分的模型都比较快&#xff1b; 2、科学上网&#xff0…

轨迹控制--odrive的位置控制---负载设置

轨迹控制 此模式使您可以平滑地使电机旋转&#xff0c;从一个位置加速&#xff0c;匀速和减速到另一位置。 使用位置控制时&#xff0c;控制器只是试图尽可能快地到达设定点。 使用轨迹控制模式可以使您更灵活地调整反馈增益&#xff0c;以消除干扰&#xff0c;同时保持平稳的运…

【安卓逆向】逆向APP界面UI修改再安装

1.背景 有一客户找到我&#xff0c;说能不能把APP首页的底部多余界面去掉。 逆向实战 想要去除安卓应用软件中的内容&#xff0c;需要对APP逆向进行修改再打包。 通过工具 MIT管理器工具 提取APK包&#xff0c;点击apk文件&#xff0c;点击查看反编译apk。 搜索关键字。这里关键…

SAP Webide系列(7)- 优化FreeStyle新建项目预设模板

目录 一、背景 二、优化目标 三、定位调整点 四、调整步骤 五、效果展示 六、附言 一、背景 在每次通过Webide进行FreeStyle方式自开发SAP UI5应用的时候&#xff0c;新建项目&#xff0c;得到的模板文件都是只有很少的内容&#xff08;没有路由配置、没有设置默认全屏等…

python读取sqlite温度数据,并画出折线图

需求&#xff1a; 在Windows下请用python画出折线图&#xff0c;x轴是时间&#xff0c;y轴是温度temperature 和体感温度feels_like_temperature 。可以选择县市近1小时&#xff0c;近1天&#xff0c;近1个月的。sqlite文件weather_data.db当前目录下&#xff0c;建表结构如下…

【Linux网络编程】高效I/O--select/poll服务器

目录 多路转接之select select服务器实现 获取连接 handlerEvent select服务器代码链接 select的优缺点 多路转接之poll poll服务器实现(select服务器改写) poll的优缺点 多路转接之select select的作用 I/O的本质 等 拷贝 多路转接就是通过同时等待多个文件描述…

C语言实战项目(1)---------->猜数字游戏

在学习完循环和选择结构之后&#xff0c;我们可以做一个猜数字游戏。在此项目之前&#xff0c;如果还不会C语言的if语句、switch语句等组成选择结构的语句&#xff0c;while循环、for循环、do-while循环等组成循环结构的语句。可以参考我之前的博客&#xff1a; C语言&#xf…

Failed to start The PHP FastCGI Process Manager.

报错如下&#xff1a; Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details. 2月 25 21:49:00 nginx systemd[1]: Starting The PHP FastC…

【REST2SQL】15银河麒麟系统下达梦数据库部署REST2SQL

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…

晶体管输出光耦和逻辑输出光耦

晶体管输出光耦&#xff08;非线性&#xff09;和逻辑输出光耦&#xff08;线性&#xff09;的区别&#xff1a; 逻辑输出光耦的电流传输特性曲线是非线性的&#xff0c;适合于开关信号的传输&#xff0c;不适合于传输模拟量&#xff1b; 光电晶体管输出光耦的电流传输特性是线…

绕过过滤order by

一、常见绕过技术 1、注释符截断 利用注释符&#xff08;如 --、#&#xff09;截断后续查询&#xff0c;消除过滤逻辑的影响。 ORDER BY 1-- 若原查询为 SELECT * FROM table ORDER BY 用户输入&#xff0c;注入后可能忽略后续过滤逻辑。 2、大小写混淆/编码绕过 若过滤是大…

面试八股文--数据库基础知识总结(1)

1、数据库的定义 数据库&#xff08;DataBase&#xff0c;DB&#xff09;简单来说就是数据的集合数据库管理系统&#xff08;Database Management System&#xff0c;DBMS&#xff09;是一种操纵和管理数据库的大型软件&#xff0c;通常用于建立、使用和维护数据库。数据库系统…

机试刷题_1614. 括号的最大嵌套深度【python】

1614. 括号的最大嵌套深度 class Solution:def maxDepth(self, s: str) -> int:maxD 0if not s:return maxDstack []for char in s:if char(:stack.append(char)maxD max(maxD,len(stack))elif char) :stack.pop()return maxD

VM虚拟机安装与配置Ubuntu Linux操作系统详细教程~

一、下载VM虚拟机 VMware16.0.zip百度网盘下载链接:https://pan.baidu.com/s/1-l-CcAVNINqhRLSiQ26R7w?pwd=tznn 提取码: tznn 二、软件介绍 VMware(虚拟机)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,通过它可在一台电脑上同…

免费PDF工具

Smallpdf.com - A Free Solution to all your PDF Problems Smallpdf - the platform that makes it super easy to convert and edit all your PDF files. Solving all your PDF problems in one place - and yes, free. https://smallpdf.com/#rappSmallpdf.com-解决您所有PD…

组件注册方式、传递数据

组件注册 一个vue组件要先被注册&#xff0c;这样vue才能在渲染模版时找到其对应的实现。有两种注册方式&#xff1a;全局注册和局部注册。&#xff08;组件的引入方式&#xff09; 以下这种属于局部引用。 组件传递数据 注意&#xff1a;props传递数据&#xff0c;只能从父…

异步fifo学习

FIFO 本质是由 RAM 加上读写逻辑构成的先入先出的数据缓冲器。与 RAM 的区别是 FIFO 没有外部读写地址线&#xff0c;顺序写入顺序读出数据&#xff0c;其数据地址是由内部读写指针自增完成&#xff0c;因此 FIFO 在读写时不需要考虑读写冲突的问题。 根据 FIFO 工作的时钟域&a…

【有啥问啥】All-to-All 通信:原理、实现与应用

All-to-All 通信&#xff1a;原理、实现与应用 一、引言 在分布式计算和并行处理领域&#xff0c;进程之间的通信是至关重要的。All-to-All 通信作为一种高效的通信模式&#xff0c;广泛应用于各种高性能计算和分布式系统中。本文将详细介绍 All-to-All 通信的定义、工作原理…

Python学习第十七天之PyTorch保姆级安装

PyTorch安装与部署 一、准备工作二、pytorch介绍三、CPU版本pytorch安装1. 创建虚拟环境2. 删除虚拟环境1. 通过环境名称删除2. 通过环境路径删除 3. 配置镜像源4. 安装pytorch1. 首先激活环境变量2. 进入pytorch官网&#xff0c;找到安装指令 5. 验证pytorch是否安装成功 四、…