Linux系统常用命令
一、Linux常用命令有哪些?
- ls - 列出目录内容。
- cd - 更改当前目录。
- pwd - 打印当前工作目录。
- mkdir - 创建新目录。
- rmdir - 删除空目录。
- touch - 创建新文件或更新现有文件的时间戳。
- cp - 复制文件或目录。
- mv - 移动或重命名文件或目录。
- rm - 删除文件或目录。
- echo - 打印参数到终端或文件。
- cat - 连接文件并打印到标准输出。
- more - 查看文件内容。
- less - 与 more 类似,但提供向前和向后滚动功能。
- head - 查看文件的开始部分。
- tail - 查看文件的结尾部分,常用 -f 选项来跟踪文件新增内容。
- grep - 搜索文本并打印匹配行。
- find - 在目录树中查找文件。
- which - 显示执行特定命令的二进制文件的路径。
- whereis - 定位二进制、源和手册页。
- top - 显示系统进程和资源使用情况。
- htop - 一个增强版的 top 命令,提供更丰富的用户界面和功能。
- ps - 显示当前进程的状态。
- kill - 向进程发送信号。
- chmod - 更改文件或目录的权限。
- chown - 更改文件或目录的所有者。
- chgrp - 更改文件或目录的组。
- df - 报告文件系统的磁盘空间使用情况。
- du - 估计文件或目录的磁盘使用量。
- ifconfig - 配置或显示系统网络接口的网络配置。
- ping - 发送ICMP ECHO请求以测试网络连接。
- netstat - 打印网络连接、路由表等网络信息。
- ssh - 安全的远程登录到另一台计算机。
- scp - 安全地复制文件到/从远程计算机。
- wget - 从网络上下载文件。
- curl - 客户端工具,用于传输数据。
- tar - 打包或解包文件。
- gzip - 压缩或解压文件。
- gunzip - 解压gzip压缩的文件。
- zip - 创建ZIP压缩文件。
- unzip - 解压ZIP文件。
这些命令覆盖了文件操作、系统监控、网络管理、磁盘使用、压缩和解压缩等常见任务。掌握这些命令对于Linux用户来说非常重要,因为它们是日常使用Linux的基础。
二、Linux中查看进程运行状态的指令、tar解压文件的参数。⭐⭐⭐
在Linux中,可以使用以下指令查看进程的运行状态:
top:
用于实时监视系统的进程活动和系统资源使用情况。在终端中运行top命令,可以查看进程的CPU占用、内存占用、运行时间等信息。
ps:
用于显示当前正在运行的进程。常用的参数包括:
ps -aux:显示所有正在运行的进程的详细信息。 ps -ef:显示所有正在运行的进程的完整信息。
对于tar解压文件,可以使用以下参数:
- x:表示解压文件。
- v:可选参数,表示显示详细的解压过程。
- f:后面接需要解压的文件名。
- z:可选参数,用于解压gzip格式的文件。
- j:可选参数,用于解压bzip2格式的文件。
- C:指定解压目录,后面接目标目录。
例如,使用以下命令解压一个tar文件:
tar -xvf file.tar
如果需要解压一个gzip格式的tar文件,可以使用以下命令:
tar -xzvf file.tar.gz
三、如何创建一个新的目录?⭐⭐
在Linux中,创建一个新的目录可以使用 mkdir 命令。以下是一些常用的选项和示例:
- 基本创建:
- 创建多个目录:
- 创建嵌套目录:
- 使用 -p 选项可以创建嵌套目录,即使父目录不存在也不会报错。 这将创建 dir1、dir1/dir2 和 dir1/dir2/dir3 这三个层级的目录。
- 设置目录权限:
- 使用 -m 或 --mode 选项可以在创建目录时设置权限。 这将创建 new_directory 目录,并设置其权限为 755(读、写、执行权限给所有者,读、执行权限给组和其他用户)。
- 使用绝对路径:
- 通过指定完整路径来创建目录。 这将在指定的路径下创建新目录。
- 使用相对路径:
- 相对路径创建目录,相对于当前工作目录。
- 创建具有特定所有权的目录:
- 使用 sudo 和 --user 或 --group 选项可以创建具有特定用户或组所有权的目录。 首先以root权限创建目录,然后更改所有权。
使用 mkdir
命令时,可以结合多个选项来满足不同的需求。创建目录后,可以使用 ls
或 dir
命令来验证目录是否成功创建。
四、说说如何以root权限运行某个程序。⭐
- 要以root权限运行某个程序,您可以使用sudo命令。sudo命令允许普通用户以超级用户(即root用户)的权限来执行命令。下面是使用sudo命令来以root权限运行程序的步骤:
sudo ./app
- 使用sudo su 进入root用户下运行程序
sudo su 先进入root用户 ./app 再运行程序
使用这些方法时,需要谨慎,因为以root权限运行程序具有改变系统设置和潜在破坏系统的能力。始终确保你了解程序的功能,并且信任其来源。此外,建议仅在必要时使用root权限,并尽可能使用 sudo
这样的安全机制,它提供了更好的审计和日志记录功能。
五、linux里如何查看一个想知道的进程?⭐
在 Linux 中,您可以使用 ps 命令来查看正在运行的进程。ps 命令用于报告当前活动进程的快照。以下是使用 ps 命令来查看进程的常见用法:
查看所有进程:
ps aux
查看特定用户的进程:
在上述命令中,将 "用户名" 替换为要查看其进程的实际用户名。
ps -u 用户名
查找特定进程:
将 "进程名" 替换为要查找的实际进程名。
ps -ef | grep 进程名
这些命令将显示有关正在运行的进程的信息,例如进程 ID (PID)、父进程 ID (PPID)、CPU 使用情况、内存使用情况等。
六、Linux里如何查看带有关键字的日志文件?⭐
在 Linux 中,您可以使用 grep 命令来查找带有关键字的日志文件。grep 命令用于在文件中搜索指定的模式或关键字,并将匹配的行打印出来。以下是使用 grep 命令查看带有关键字的日志文件的常见用法:
grep '关键字' /path/to/logfile.log
示例:
假设你想要搜索 /var/log/syslog 中包含 "error" 的所有行:
grep 'error' /var/log/syslog
请注意,在使用 grep 命令时,关键字的匹配是区分大小写的。如果您想要执行大小写不敏感的搜索,您可以使用 -i 选项,如下所示:
grep -i "关键字" 文件路径
七、说说你对grep命令的了解?⭐
grep 是一个强大的 Linux 命令,
用于在文件中搜索指定的模式或关键字,并将匹配的行打印出来。其名称来自于 "Global Regular Expression Print"(全局正则表达式打印)。
基本用法:
- grep 'pattern' file:在指定的文件 file 中搜索包含文本模式 pattern 的行,并将这些行打印到标准输出。
重要选项:
- -i:忽略大小写,使搜索模式不区分大小写。
- -v:显示不包含匹配文本的行,即显示排除匹配结果的行。
- -o:仅显示匹配的部分文本,而非整个行。
- -w:只匹配整个单词,而非部分字符串。
- -r 或 --recursive:递归地在所有子目录中搜索文件。
- -l:仅显示包含匹配文本的文件名。
- -n:显示匹配行的行号。
- -c:仅显示匹配的行数,而非匹配的行本身。
- -e:使用多个搜索模式,可以同时搜索多个模式。
- -f:从文件中读取搜索模式。
- --color:将匹配的文本以彩色高亮显示。
正则表达式:
- grep 使用正则表达式作为搜索模式,允许复杂的文本匹配。
示例:
- 搜索包含 "error" 的行:
- 忽略大小写搜索 "error":
- 仅显示不包含 "error" 的行:
- 递归搜索目录中所有包含 "error" 的文件:
- 显示匹配的行号:
- 仅显示匹配的文件名:
grep
命令是 Linux 系统中进行日志分析、文本处理和数据提取的强大工具。掌握 grep
的使用对于 Linux 系统管理员和开发者来说非常重要。
八、Linux修改主机名的命令是什么?⭐
在Linux中,修改主机名可以通过多种方式完成,以下是一些常用的命令和方法:
- hostnamectl** 命令**:
- hostnamectl 是直接与 systemd 守护进程交互的命令,用于设置和显示系统主机名。使用 set-hostname 选项来设置新的主机名。
- hostname** 命令**:
- hostname 命令用于设置或显示当前的主机名。使用 -b 选项来防止设置新的主机名。 请注意,使用 hostname 设置的主机名只在当前会话中有效,重启后会恢复。
- 修改 /etc/hostname** 文件**:
- 直接编辑 /etc/hostname 文件,将新的主机名写入该文件。
- 修改 /etc/hosts** 文件**:
- 除了修改 /etc/hostname 文件外,还需要更新 /etc/hosts 文件,确保新的主机名与IP地址映射正确。 在文件中找到对应的主机名,将其替换为新的主机名。
- 使用 systemd** 配置文件**:
- 如果你的系统使用 systemd 作为初始化系统,你可以在 /etc/systemd/system 或 /etc/systemd/user 目录下创建或修改一个名为 hostname.service 的文件,设置 ExecStart 指令来设置主机名。
- 重启系统:
- 修改主机名后,通常需要重启系统来使更改生效。
请注意,选择哪种方法取决于你的具体需求和系统配置。在某些系统中,可能需要结合使用多种方法来确保主机名的更改是永久性的。此外,确保你选择的主机名符合你的网络和系统的命名约定。
九、ping命令
ping 是一个常用的网络诊断命令,用于测试主机之间的网络连接是否可达。它通过发送 ICMP(Internet Control Message Protocol)回显请求消息到目标主机,并监听回显响应来工作。以下是 ping
命令的一些关键特性和用法:
基本用法:
ping 目标主机名或IP地址
例如:
ping www.example.com ping 192.168.1.1
重要选项:
- -4 或 -6:强制使用 IPv4 或 IPv6 协议发送回显请求。
- -c <数量>:发送指定数量的回显请求后停止。
- -i <间隔>:指定发送回显请求之间的时间间隔(秒)。
- -W <等待时间>:指定等待回显响应的超时时间(秒)。
- -s <大小>:指定发送回显请求数据包的大小。
- -n:在某些系统中,-n 选项告诉 ping 不要尝试将回显响应解析为主机名,而是显示IP地址。
示例:
- 向 www.example.com 发送5个回显请求:
- 每2秒向 192.168.1.1 发送一个回显请求,并且不解析主机名:
- 使用IPv6协议向 localhost 发送回显请求:
输出解释:
- Bytes from ...:表示收到了来自目标主机的回显响应,以及数据包的大小、发送和接收的时间。
- time<time>ms:表示往返时间(RTT),即从发送回显请求到接收到回显响应的时间。
- TTL(Time to Live):表示数据包在网络上可以经过的最大路由器数量。
- Request timeout:表示回显请求超时,没有收到响应。
ping
命令是网络故障排除的重要工具,可以帮助确定网络连接问题、网络延迟、数据包丢失率等。使用 ping
命令时,应确保遵守网络安全政策,避免滥用该命令进行网络攻击或探测。
十、简述GDB常见的调试命令,什么是条件断点,多进程下如何调试。⭐⭐⭐
GDB(GNU Debugger)是一个强大的命令行调试工具,用于对程序进行调试和分析。下面是 GDB 的常见调试命令以及关于条件断点和多进程调试的简要说明:
常见调试命令:
- break(或 b):设置断点,断点可以在指定的源代码行位置暂停程序的执行。
- run(或 r):启动程序的执行,如果有断点,则执行到第一个断点处暂停。
- continue(或 c):继续执行程序,直到遇到下一个断点或程序结束。
- next(或 n):执行下一条语句,但是不会进入函数。
- step(或 s):执行下一条语句,并进入函数。
- print(或 p):打印变量的值。backtrace(或 bt):打印函数调用堆栈。
- quit(或 q):退出 GDB。
条件断点:
条件断点是根据给定的条件在程序执行过程中暂停的断点。可以使用 break 命令并在源代码行位置后添加条件表达式来设置条件断点。例如:其中 line_number 是要设置断点的源代码行号,condition 是表示条件的表达式。只有当条件表达式为真时,断点才会触发。
多进程调试:
在 GDB 中,可以调试多进程程序。使用 attach 命令可以连接到正在运行的进程,让 GDB 托管该进程进行调试。例如:其中 pid 是要调试的进程的进程 ID。连接成功后,就可以使用调试命令对该进程进行调试。还可以使用 info inferiors 命令查看当前连接的进程列表。另外,GDB 还提供了一些特殊的命令用于处理多进程调试,如 inferior 命令用于切换当前活动进程,detach 命令用于从进程中分离 GDB。
#Linux##自动驾驶##机器人##C++##八股#在自动驾驶和机器人领域,C++因其高性能、内存管理高效和跨平台兼容性等特性,被广泛应用。本专栏整理了C++面试中常遇到的八股问题,可私信作者要飞书文档,不论是嵌入式软开、算法、软件开发都可以阅读,包括了C++的虚函数、C++11新特性、C++的STL库、Linux常见命令......