linux 基础命令使用
命令
su
用于切换到另一个用户身份,通常是超级用户(root)。su命令可以用来在命令行下切换用户,也可以在脚本中使用。
语法:
su [选项] [用户名]
选项:
- -c:执行完命令后,立即退出su命令;
- -f:使用当前用户的环境变量;
- -l:使用目标用户的环境变量;
- -m:使用目标用户的环境变量,并且保持当前目录不变;
- -s:指定要使用的shell。
示例:
要切换到root用户,可以使用以下命令:
su -
在输入密码后,就可以切换到root用户了。如果要切换到其他用户,可以使用以下命令:
su - username
其中,username是要切换到的用户名。
su username 和 su - username 的区别
`su username` 是切换到指定的用户账号,但是不会改变当前的工作目录和环境变量。
`su - username` 是切换到指定的用户账号,并且同时切换到该用户的家目录,同时也会加载该用户的环境变量。 因此,使用 `su - username` 可以保证在切换用户后,能够获得该用户的完整环境,包括 PATH 等环境变量,以及当前的工作目录。
pwd
用于显示当前工作目录的绝对路径。
语法:
pwd [OPTION]
常用选项:
- `-L`:显示符号链接所指向的目录路径
- `-P`:显示实际路径,而非符号链接所指向的路径
示例:
$ pwd
/home/user
在上面的示例中,`pwd`命令显示当前工作目录的绝对路径为`/home/user`。
ls
ls命令 用于列出当前目录下的文件和子目录
常用的ls命令选项包括:
- -l:以长格式显示文件或目录的详细信息,包括文件类型、权限、所有者、大小、创建时间等。
- -a:显示所有文件和目录,包括以“.”开头的隐藏文件。
- -h:以人类可读的方式显示文件大小,如“1K”、“2M”等。
- -t:按照修改时间排序,最新修改的文件或目录排在最前面。
- -r:反向排序,按照字母顺序逆序排列文件或目录。
示例:
- ls:列出当前目录下的所有文件和目录。
- ls -l:以长格式显示当前目录下的所有文件和目录。
- ls -a:显示当前目录下的所有文件和目录,包括隐藏文件。
- ls -lh:以人类可读的方式显示当前目录下的所有文件和目录的大小。
- ls -lt:按照修改时间排序,显示当前目录下的所有文件和目录。 - ls -r:按照字母顺序逆序排列当前目录下的所有文件和目录。
ll
`ll`命令是`ls -l`的一个别名,用于显示当前目录下所有文件和子目录的详细信息,包括文件的权限、所有者、大小、修改时间等。
语法:
ll [选项] [文件或目录]
常用选项:
- `-a`:显示所有文件,包括隐藏文件。
- `-h`:以人类可读的方式显示文件大小。
- `-r`:反向排序。
- `-t`:按照修改时间排序。
示例:
要查看当前目录下所有文件和子目录的详细信息,可以使用以下命令:
ll
要查看当前目录下名为`test`的子目录的详细信息,可以使用以下命令:
ll test
mv
用于移动或重命名文件或目录。
语法:
mv [选项] 源文件或目录 目标文件或目录
其中,选项可以是:
- -f:强制移动或重命名,如果目标文件或目录已存在则覆盖。
- -i:交互式移动或重命名,如果目标文件或目录已存在则询问是否覆盖。
- -u:更新目标文件或目录,如果源文件或目录比目标文件或目录新则执行移动或重命名。
示例:
1. 将文件file1.txt移动到目录dir1中:
mv file1.txt dir1/
2. 将文件file1.txt重命名为file2.txt:
mv file1.txt file2.txt
3. 将目录dir1重命名为dir2:
mv dir1/ dir2/
4. 将目录dir1及其所有子目录和文件移动到目录dir2中:
mv dir1/ dir2/
注意:如果目标文件或目录已存在,则默认情况下mv命令不会覆盖,需要使用选项-f或-i来强制覆盖或询问。
netstat
用于显示网络状态信息,可以查看网络连接、路由表、接口状态等。
常用的netstat命令选项:
1. netstat -a:显示所有连接和监听端口
2. netstat -t:显示TCP连接
3. netstat -u:显示UDP连接
4. netstat -n:以数字形式显示地址和端口号
5. netstat -p:显示与进程相关的信息
6. netstat -r:显示路由表
7. netstat -s:显示网络统计信息
8. netstat -l:仅显示本地连接,不显示远程连接
示例:
要查看所有TCP连接的详细信息,可以使用命令:netstat -atn。
要查看与进程相关的TCP连接信息,可以使用命令:netstat -tp。
查看网络连接和端口占用情况,可以使用命令: netstat -nlp 8081。
ps
用于查看当前系统中正在运行的进程信息。
下面是一些常用的ps命令选项:
1. ps -ef:列出所有进程信息,包括进程的详细信息和父进程ID。
2. ps -aux:列出所有进程信息,包括进程的详细信息和用户ID。
3. ps -e:列出所有正在运行的进程。
4. ps -f:以完整格式列出进程信息,包括进程的UID、PID、PPID、CPU使用率、内存使用率等。
5. ps -l:以长格式列出进程信息,包括进程的UID、PID、PPID、CPU使用率、内存使用率等。
6. ps -t:列出指定终端上运行的所有进程。
7. ps -p:列出指定进程ID的详细信息。
8. ps -H:列出进程树,显示进程之间的关系。
9. ps -C:列出指定命令的进程信息。
10. ps -N:列出不符合指定条件的进程信息。
11. ps -M:显示进程的内存映像信息。
12. ps -G:列出指定组ID的进程信息。
13. ps -U:列出指定用户ID的进程信息。
grep
是一种文本搜索工具,用于在文件中查找特定的字符串模式。
以下是一些常见的grep命令用法:
1. 在文件中查找一个字符串:
grep "string" filename
2. 查找多个文件中的字符串:
grep "string" file1 file2 file3
3. 查找一个目录中的所有文件中的字符串:
grep "string" directory/*
4. 查找并显示匹配行的行号:
grep -n "string" filename
5. 查找并显示不匹配的行:
grep -v "string" filename
6. 使用正则表达式进行高级搜索:
grep -E "regex" filename
7. 查找并显示匹配字符串前后的几行:
grep -A num "string" filename
# 显示匹配行及其后num行 grep -B num "string" filename
# 显示匹配行及其前num行 grep -C num "string" filename
# 显示匹配行及其前后各num行
以上是一些常见的grep命令用法,还有更多高级用法可以通过`man grep`命令查看。
find
用于在指定的目录下查找文件或目录。它可以根据多种条件来查找文件,如文件名、文件类型、文件大小、文件权限等等。
下面是一些常用的find命令示例:
1. 查找当前目录下所有的文件和目录:
find .
2. 查找指定目录下所有的文件和目录:
find /path/to/directory
3. 查找指定目录下以某个文件名开头的文件:
find /path/to/directory -name "filename*"
4. 查找指定目录下以某个文件名结尾的文件:
find /path/to/directory -name "*filename"
5. 查找指定目录下包含某个关键字的文件:
find /path/to/directory -name "*keyword*"
6. 查找指定目录下的所有目录:
find /path/to/directory -type d
7. 查找指定目录下的所有文件:
find /path/to/directory -type f
8. 查找指定目录下大于某个文件大小的文件:
find /path/to/directory -size +10M
9. 查找指定目录下小于某个文件大小的文件:
find /path/to/directory -size -10M
10. 查找指定目录下最近修改过的文件:
find /path/to/directory -mtime -7
以上是一些常用的find命令示例,更多用法可以查看find命令的帮助文档。
vim
Vim是Linux下最常用的文本编辑器之一。
以下是一些常用的Vim命令:
1. 打开文件:vim filename
2. 保存文件:按下Esc键,然后输入:wq
3. 不保存文件:按下Esc键,然后输入:q!
4. 光标移动:h(左)、j(下)、k(上)、l(右)
5. 搜索:按下Esc键,然后输入/要搜索的内容
6. 替换:按下Esc键,然后输入:%s/要替换的内容/替换后的内容/g
7. 撤销:按下Esc键,然后输入:u
8. 重做:按下Esc键,然后输入:Ctrl+r
9. 复制:按下Esc键,然后输入yy
10. 剪切:按下Esc键,然后输入dd
11. 粘贴:按下Esc键,然后输入p
以上是一些常用的Vim命令,还有很多其他的命令可以使用。
kill
用于向进程发送信号,以控制进程的行为。kill命令可以根据进程ID或进程名来指定要发送信号的进程。
下面是一些常用的kill命令选项:
- -s:指定要发送的信号类型,如-9表示强制终止进程。
- -l:列出所有可用的信号类型。
- -u:指定要发送信号的用户。
- -p:指定要发送信号的进程ID。
示例:
要终止进程ID为1234的进程,可以使用以下命令:
kill 1234
如果要强制终止该进程,可以使用以下命令:
kill -9 1234
如果要终止所有属于用户tom的进程,可以使用以下命令:
kill -u tom
tail
tail命令用于查看文件的末尾内容,默认情况下显示文件的最后10行。
以下是tail命令的一些常用选项:
- -f:实时跟踪文件的变化,显示新添加到文件末尾的内容。
- -n:指定要显示的行数,例如-n 20表示显示最后20行。
- -c:显示最后指定字节数的内容,例如-c 100表示显示最后100个字节。
- -q:禁止显示文件名。
- -s:指定输出行之间的时间间隔。
示例:
要查看文件test.log的最后20行内容,可以使用以下命令:
tail -n 20 test.log
要实时跟踪文件test.log的变化,可以使用以下命令:
tail -f test.log
nohup
一种使命令在后台运行的方法,并且即使用户退出终端,命令也能够继续运行的工具。
nohup命令的语法如下:
nohup command &
其中,command是要运行的命令,&符号表示将命令放到后台运行,并且不受当前终端的控制。 使用nohup命令可以避免在运行长时间命令时,由于网络中断或者用户退出终端等原因,导致命令被中断的情况。nohup命令会将命令输出重定向到一个名为nohup.out的文件中,可以通过查看该文件来了解命令的执行情况。
示例:
后台运行一个Java程序,并将程序输出重定向到一个名为root.log的文件中
nohup java -jar ../demo.jar >../root.log 2>&1 &
- nohup:表示不挂断地运行命令,即使终端关闭或用户注销也不会停止该命令的执行。
- java -jar ../demo.jar:表示运行一个名为demo.jar的Java程序。
- >../root.log:表示将程序输出重定向到一个名为root.log的文件中,>表示覆盖原有文件,如果要追加到原有文件末尾,可以使用>>。
- 2>&1:表示将标准错误输出重定向到标准输出,即将错误信息也写入root.log文件中。
- &:表示将该命令放到后台运行。
相关文章:
linux 基础命令使用
命令 su 用于切换到另一个用户身份,通常是超级用户(root)。su命令可以用来在命令行下切换用户,也可以在脚本中使用。 语法: su [选项] [用户名] 选项: - -c:执行完命令后,立即退出su命令;…...
eve 导入linux
mkdir /opt/unetlab/addons/qemu/linux-centos7 cd /opt/unetlab/addons/qemu/linux-centos7 上传hda.qcow2 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions Linux images - (eve-ng.net) Due to very high demand of this section and problems with how to crea…...
vivado新版本兼容老版本,vitis classic兼容sdk教程
new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本,选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核,点击升级 在项目工程文件夹…...
02.02.返回倒数第k个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 k 2 输出: 4 说明: 给定的 k 保证是有效的。 代码ÿ…...
MongoDB 从部署到掌握
一、docker部署MongoDB ## 通过docker安装MongoDB~~~shell #拉取镜像 docker pull mongo:4.0.3#创建容器 docker create --name mongodb-server -p 27017:27017 -v mongodb-data:/data/db mongo:4.0.3 --auth#启动容器 docker start mongodb-server#进入容器 docker exec -it …...
electron-vite工具打包后通过内置配置文件动态修改接口地址实现方法
系列文章目录 electronvitevue3 快速入门教程 文章目录 系列文章目录前言一、实现过程二、代码演示1.resources/env.json2.App.vue3.main/index.js4.request.js5.安装后修改 前言 使用electron-vite 工具开发项目打包完后每次要改接口地址都要重新打包,对于多环境…...
每日一练2024.5.9
题目: 给定一副牌,每张牌上都写着一个整数。 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌。组内所有的牌上都写着相同的整数。 仅当你可选的 X > 2 时返回 tru…...
P2622 关灯问题
小小注解: 1. vis:表示到达该状态的步数(min)1, 因为我们是从开始状态 穷举,所以每次到一个新状态(之前没有到过的状态)就是最小步数。 如何判断是否是一个新状态呢,…...
从头开始的建材类电商小程序开发指南
在当今数字化时代,小程序已经成为了许多企业推广和销售的重要渠道。对于建筑材料行业来说,开发一个属于自己的小程序商城不仅可以提升产品曝光度,还可以提供更好的用户购物体验。下面,我们将逐步教你如何开发建筑材料行业小程序。…...
数据结构中的栈(C语言版)
一.栈的概念 栈是一种常见的数据结构,它遵循后进先出的原则。栈可以看作是一种容器,其中的元素按照一种特定的顺序进行插入和删除操作。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做…...
(贪心05) 无重叠区间 划分字母区间 合并区间
一、无重叠区间 力扣第435题 第一种方法: 个人思路: 按照区间左边界排序,然后从左开始遍历,每遍历到一个区间就要保证该区间之前的集合为不重叠区间(贪心,局部最优解)。 难点在于如何把新遍历…...
简单网络管理协议(SNMP)入门
目录 概述 SMI(对象命名、数据类型、编码方法) 对象命名 数据类型 编码方法 MIB(版本、分组、对象定义、变量访问) 版本 分组 对象定义 变量访问 SNMP 实现机制与报文分析 协议操作 报文格式 实现机制 验证分析 SN…...
leetcode解题思路分析(一百五十七)1366 - 1372 题
通过投票对团队排名 现在有一个特殊的排名系统,依据参赛团队在投票人心中的次序进行排名,每个投票者都需要按从高到低的顺序对参与排名的所有团队进行排位。 排名规则如下: 参赛团队的排名次序依照其所获「排位第一」的票的多少决定。如果存在…...
药物代谢动力学学习笔记
一、基本概念 二、经典房室模型 三、非线性药物代谢动力学 四、非房室模型 五、药代动力学与药效动力学 六、生物等效性评价 七、生物样品分析方法 基本概念 生物样品:生物机体的全血、血浆、血清、粪便、尿液或其他组织的样品 特异性,specificity&…...
IDEA中git的常用操作(保姆级教学)
IDEA中git的常用操作(保姆级教学) 以下是git的工作原理,觉得繁琐的可以跳过不看 Workspace:工作区 (平时存放代码的地方) Index / Stage:暂存区(用于临时存放存放你的改动,事实上就是一个文件&…...
保研面试408复习 3——操作系统
文章目录 1、操作系统一、进程有哪几种状态,状态之间的转换、二、调度策略a.处理机调度分为三级:b.调度算法 标记文字记忆,加粗文字注意,普通文字理解。 为什么越写越少? 问就是在打瓦。(bushi) 1、操作系统 一、进程…...
【代码随想录37期】Day02 有序数组的平方、长度最小的子数组、螺旋矩阵Ⅱ(施工中)
有序数组的平方 977. 有序数组的平方 - 力扣(LeetCode) v1.0:直接暴力 4分半做出来,用sort api class Solution { public:vector<int> sortedSquares(vector<int>& nums) {vector<int> result;for(int i 0; i<…...
通俗的理解网关的概念的用途(三):你的数据包是如何到达下一层的
其实,这一章我写不好,因为这其中会涉及到一些计算和一些广播等概念,本人不善于此项。在此略述,可以参考。 每台设备的不同连接在获得有效的IP地址后,会根据IP地址的规则和掩码的规则,在操作系统和交换机&a…...
基于Springboot的校运会管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的校运会管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&a…...
USP技术提升大语言模型的零样本学习能力
大语言模型(LLMs)在零样本和少样本学习能力上取得了显著进展,这通常通过上下文学习(in-context learning, ICL)和提示(prompting)来实现。然而,零样本性能通常较弱,因为缺…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候,显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...
