linux常用命令及用法

一.linux系统下可以在帮助中查看每一个命令的用法

方法:cmd --help   

例如: ls --help

.常用命令

1.find 命令

find /  -name  aa     //根目录下搜索aa的文件或者目录

find -name  aa  //相当于  find ./ -name aa      直接在当前目录内搜索aa的文件或者目录

2.grep 命令:  

 ps -elf | grep aa

 grep -nr abc ./

     

3.cp      

   cp --help

-f--强制

-d--等于--no-dereference --preserve=links  

-a :将文件的特性一起复制

-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份

-i :若目标文件已经存在时,在覆盖时会先询问操作的进行

-r :递归持续复制,用于目录的复制行为

-u :目标文件与源文件有差异时才会复制

4.网络命令

  a.ifconfig  //查看设置本机网络

    up:启动网络接口。

down:关闭网络接口。

mtu [大小]:设置网络接口的MTU大小。

示例:ifconfig eth0 up

    设置IP和掩码:ifconfig eth0 172.16.1.66 netmask 255.255.0.0

    设置网关:  route add default gw 192.168.5.1

    不过重启了或重启网卡服务就会没了,可以把语句加入到/etc/rc.local中就开机有效了

  b.netstat -apntlu  ---查看网络连接

    -a:显示所有连接和监听端口。

    -t:显示TCP连接。

-u:显示UDP连接。

-l:仅显示监听状态的端口。

-n:显示数字形式的地址和端口号,而不是尝试解析成域名和端口名称。

-p:显示哪个进程在监听端口。

-r:显示路由表。

-i:显示接口信息。

-s:显示网络统计信息。

5.ls 查看目录

6.mv命令

-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件已经存在,就会询问是否覆盖

-u :若目标文件已经存在,且比目标文件新,才会更新

7.rm命令

-f :就是force的意思,忽略不存在的文件,不会出现警告消息

-i :互动模式,在删除前会询问用户是否操作

-r :递归删除,最常用于目录删除,它是一个非常危险的参数

8.ps命令

该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:

-A :所有的进程均显示出来

-a :不与terminal有关的所有进程

-u :有效用户的相关进程

-x :一般与a参数一起使用,可列出较完整的信息

-l :较长,较详细地将PID的信息列出

其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:

ps aux # 查看系统所有的进程数据

ps ax # 查看不与terminal有关的所有进程

ps -lA # 查看系统所有的进程数据

ps axjf # 查看连同一部分进程树状态

9.tar命令

-c :新建打包文件

-t :查看打包文件的内容含有哪些文件名

-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中

-j :通过bzip2的支持进行压缩/解压缩

-z :通过gzip的支持进行压缩/解压缩

-v :在压缩/解压缩过程中,将正在处理的文件名显示出来

-f filename :filename为要处理的文件

-C dir :指定压缩/解压缩的目录dir

示例:

压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称

查询:tar -jtv -f filename.tar.bz2

解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

10.cat命令

cat a.txt // 查看a.txt文件中的内容

11.pwd

pwd是Linux中用于显示当前工作目录路径的命令。该命令的全称是"print work directory",其功能是显示用户当前所在的目录的绝对路径。

12.chgrp命令

该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:

chgrp [-R] dirname/filename

-R :进行递归的持续对所有文件和子目录更改

# 例如:

chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users

13.chown命令

该命令用于改变文件的所有者,与chgrp命令的使用方法相同;

示例:

chown john example.txt

这将更改example.txt文件的所有者为john。

chown john:admin example.txt

这将更改example.txt文件的所有者为john,并将所属组更改为admin。

请注意,只有超级用户(root)或文件的所有者才能更改文件的所有权。

14.chmod命令

该命令用于改变文件的权限,一般的用法如下:

-R:进行递归的持续更改,即连同子目录下的所有文件都会更改

-v:详细模式,显示更改权限的详细信息。

示例:

chmod 755 example.txt

这将设置example.txt文件的所有者权限为读写执行(7),所属组权限为读执行(5),其他用户权限为读执行(5)。

chmod u+w,g-w,o=r example.txt

这将给所有者增加写权限(u+w),给所属组删除写权限(g-w),给其他用户设置为只读权限(o=r)。

请注意,只有超级用户(root)或文件的所有者才能更改文件的权限。

15.touch

touch 命令可以用来创建新的空文件,或者更新现有文件的时间戳。

touch 命令是一个用于修改文件的时间戳(访问时间和修改时间)的工具。

-a:仅修改文件的访问时间。

-m:仅修改文件的修改时间。

-t [时间]:设置文件的时间戳为指定的日期和时间。

-d [日期]:设置文件的时间戳为指定的日期和时间(与-t选项类似,但日期和时间的格式更加灵活)。

示例:

touch example.txt

这将创建一个空的example.txt文件,如果文件已经存在,则更新其访问时间和修改时间。

touch -t 20230425123000 example.txt

这将设置example.txt文件的时间戳为2023年4月25日12时30分00秒。

.其他重要命令

1.df -h  ---查看文件系统目录

  df -T  ---查看每个目录使用情况

  

3.查看硬盘容量

  du  每个文件  

  du -md  n     ---n读取目录深度(为数字,如1),显示大小单位为M

  du -m -d 1  ---查看文件夹得大小,一级目录,M单位

  du -a -m -d 1  ----目录内全部文件

4.lsblk

  命令可列出所有可用的块设备的信息

5.查看分区

   cat /proc/partitions

6.ldd  a.out  //可以看出来库的调用关系   

  win10和ubuntu都可以

  但是嵌入式好像没有ldd这个命令  

7.file

-L  直接显示符号连接所指向的文件的类别。

-v  显示版本信息。

file example.txt

这将输出 example.txt 文件的类型信息。

file  a.exe    (ubuntu上)

可以看到这个程序是链接的是pc的库还是arm的库,也就是能确认这个程序是不是arm上运行的,不用放到板子上就可以看出来

8.time命令

该命令用于测算一个命令(即程序)的执行时间。

time example

这将执行example程序,并在程序执行完成后显示运行时间。

10.linux程序后台启动方法

方法1在终端输入命令:

 # ./pso > pso.file 2>&1 &

方法2在终端输入命令:

# nohup  ./pso > pso.file 2>&1 &

解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前

四.添加用户及设置用户组设置

1.groupadd   //创建用户组

可以创建新的用户组,并设置用户组的基本信息,如用户组名、用户组ID等。

groupadd [选项] 用户组名

-g:指定用户组的GID。

-f:如果用户组已存在,则不显示错误信息。

例如:

要创建一个名为developers的新用户组,你可以运行:

sudo groupadd developers

这将创建一个新的用户组developers。

如果要指定用户组的GID,你可以使用-g选项:   //GID(Group Identifier)是用户组的唯一标识符,用于区分不同的用户组。

sudo groupadd -g 1000 developers

这将创建一个新的用户组developers,并设置其GID为1000。

请注意,groupadd命令通常需要超级用户权限来执行,因此你可能需要使用sudo来运行它。

2.usermod   //给用户设置用户组

给用户设置用户组,也可以修改现有用户账户的属性,包括用户的登录组(主组)和附加组。

usermod [选项] 用户名

-g:设置用户的登录组(主组)。

-G:设置用户的附加组。

例如:

要给用户john设置登录组为admin,你可以运行:

sudo usermod -g admin john

这将修改用户john的登录组为admin。

如果要给用户john添加附加组developers,你可以运行:

sudo usermod -a -G developers john

这里,-a选项表示追加,即在用户的附加组列表中添加developers组,而不是替换现有的附加组。

请注意,usermod命令通常需要超级用户权限来执行,因此你可能需要使用sudo来运行它。

在修改用户的用户组后,用户可能需要重新登录,以便新的组设置生效。

3.useradd  //添加一个新用户

此命令来添加一个新用户。

示例:

sudo useradd -m 用户名

这里-m选项会为新用户创建一个家目录。

设置用户密码,可以使用passwd命令:

sudo passwd 用户名

4.设置用户及用户组访问目录权限

用户访问权限设置:

使用chmod命令设置家目录的权限,以及使用chown命令确保家目录属于该用户和用户组。

sudo chown restricteduser:restrictedgroup /home/restricteduser

sudo chmod 700 /home/restricteduser

这里,chown命令将家目录的所有权设置为restricteduser用户和restrictedgroup组,chmod命令设置家目录的权限为700,这意味着只有目录的所有者(即restricteduser用户)可以访问目录。

用户组访问权限设置:

设置用户组“AA”具有目录/home1的访问权限,其他用户和组无权限访问

首先,确保用户组“AA”已经存在。如果不存在,你可以使用groupadd命令创建它:

sudo groupadd AA

然后,使用chown命令将目录/home1的所有权设置为用户组“AA”:

sudo chown -R :AA /home1

这里,-R选项表示递归地更改所有权,即包括目录/home1及其所有子目录和文件。

接下来,使用chmod命令设置目录/home1及其所有子目录和文件的权限。为了确保只有用户组“AA”有访问权限,而其他用户和组无权限,

你可以设置权限为700(即只有所有者有读写执行权限),然后将所有者设置为用户组“AA”:

sudo chmod -R 700 /home1

这里,-R选项表示递归地更改权限。

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

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

相关文章

破解App推广难题,Xinstall地推助手APP助你轻松触达海量用户

在日新月异的互联网环境中,App推广和运营面临着前所未有的挑战。流量红利逐渐衰退,用户获取成本不断攀升,如何迅速搭建起能满足用户需求的运营体系,成为众多企业亟待解决的问题。今天,我们将为大家介绍一款能够轻松解决…

易语言被嘲讽24年,但这个新式中文编程却大受好评?

被嘲讽了20年的易语言 在众多广为人知的编程语言中,如Java、C语言和Python,它们都是开发者们耳熟能详的工具,然而,有一门名为“易语言”的编程语言,可能并不被大多数人所熟知。 易语言,诞生于本世纪初&…

ubuntu开机黑屏

BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.1) built-in shell (ash) Enter help for a list of built-in commands. 解决: help 看看哪个盘出问题了 fsck -y /dev/sda1 (出问题的磁盘/分区) reboot 就可以进入系统了 fsck命令&#xf…

Vulnhub-DC-3

joomla3.7.0的提权 靶机IP:192.168.20.136 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 首先nmap扫端口和版本,dirsearch跑下目录,wappalyzer也可以用下 发现服务器用的ubuntu,JoomlaCMS等…

探索数据结构:堆,计数,桶,基数排序的分析与模拟实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 堆排序 1.1. 算法思想 堆排序(Heap Sort)是一种基于堆数据结构的排…

PPINtonus (深度学习音调分析)帕金森病早期检测系统

帕金森病(Parkinson’s Disease,简称PD)是一种主要影响运动功能的进行性神经退行性疾病。这种疾病主要是由于大脑中一个名为黑质(substantia nigra)的区域失去产生多巴胺的神经元而引起的。PD的主要运动症状包括震颤、…

FreeRTOS学习笔记-基于stm32(9)信号量总结(二值信号量、计数型信号量、互斥信号量、优先级翻转、优先级继承)

一、什么是信号量 信号量是一种队列,用于任务间同步和资源管理的机制,主要用来传递状态。就像是一种特殊的“旗子”或“钥匙”,用来在不同的任务之间进行沟通和协调,确保它们能够正确地配合工作,不会互相干扰。 二、二…

人形机器人:工业领域的得力助手

人行机器人近2年显示出强劲的增长势头,根据最新数据预测,到2026年,中国人形机器人产业规模将突破200亿元,这一数字预示着人形机器人在未来社会中将扮演更加重要的角色。 在工业领域,由于工业环境复杂多变,对…

Spring类加载机制揭秘:深度解析“卸载”阶段

1. 引言 在Spring框架中,类的加载和卸载是一个复杂但至关重要的过程。加载主要涉及将类的字节码加载到JVM中,创建对应的Class对象,并准备使其可用的过程。而卸载,则是指当一个类不再被需要时,将其从JVM中清除&#xf…

识别图片二维码

文档地址: uni-app : wx.previewImage(Object object) | 微信开放文档 微信小程序:wx.previewImage(Object object) | 微信开放文档 longpress"seeQRcode(url)”) show-menu-by-longpress"true" //识别 这个地方不触发 …

Flutter StatefulWidget 和 StatelessWidget 的区别

在 Flutter 中,StatefulWidget 和 StatelessWidget 是两种不同类型的 Widget,它们的主要区别在于它们是否能够携带和管理状态。 StatelessWidget StatelessWidget 是不可变的,这意味着一旦它们被创建,它们的属性就不能改变。它们…

网络协议二

一、套接字Socket 基于 TCP UDP 协议的 Socket 编程,在讲 TCP 和 UDP 协议的时候,我们分客户端和服务端,在写程序的时候,我们也同样这样分。 在网络层,Socket 函数需要指定到底是 IPv4 还是 IPv6,分别对应设…

基于RNN和Transformer的词级语言建模 代码分析 log_softmax

基于RNN和Transformer的词级语言建模 代码分析 log_softmax flyfish Word-level Language Modeling using RNN and Transformer word_language_model PyTorch 提供的 word_language_model 示例展示了如何使用循环神经网络RNN(GRU或LSTM)和 Transformer 模型进行词级语言建模…

三丰云免费虚拟主机及免费云服务器评测

三丰云是一家专业的云服务提供商,其免费虚拟主机和免费云服务器备受好评。三丰云提供稳定可靠的服务,完全免费的虚拟主机和云服务器让用户可以轻松搭建自己的网站或应用。自从开始使用三丰云的免费虚拟主机和免费云服务器后,我的网站访问速度…

thinkphp3.1中怎么使model查询以其中一个字段为key,另一个字段为值的数组?

在ThinkPHP 3.1中,如果你想要以一个字段作为键(key),另一个字段作为值(value)来获取数组,可以通过查询结果集然后手动构建数组来实现。这里有一个简单的示例: // 假设我们有一个名为…

bash、zsh、fish三种流行Unix shell的区别

bash、zsh、fish三种流行Unix shell的区别 一、功能上的区别二、使用体验上的区别三、以下是每种 Shell 的常用命令行示例:BashZshFish 一、功能上的区别 bash:bash 是 Bourne Again SHell 的缩写,是 Linux 系统中默认的 Shell。bash 的特点是…

SQL性能优化 ——OceanBase SQL 性能调优实践分享(3)

相比较之前的两篇《连接调优》和《索引调优》,本篇文章主要是对先前两篇内容的整理与应用,这里不仅归纳了性能优化的策略,也通过具体的案例,详细展示了如何分析并定位性能瓶颈的步骤。 SQL 调优 先给出性能优化方法和分析性能瓶…

为什么基于 Django 和 Scrapy 的项目需要 @sync_to_async 装饰器

在现代 web 开发中,异步编程正变得越来越重要,特别是对于需要处理大量 I/O 操作的应用程序。Scrapy 是一个用于 web 抓取的异步框架,而 Django 是一个流行的 web 框架,主要采用同步编程模型。将这两个框架结合在一个项目中时&…

YT-DLP 超好用的开源视频下载工具

YT-DLP 是一个功能丰富的命令行音频/视频下载器,是 youtube-dl 的一个分支。由于 youtube-dl 已经停止更新,YT-DLP 不仅继承了其功能,还进行了多项改进和扩展。YT-DLP 不仅可以下载 YouTube 视频,还支持众多站点,包括国…

# RocketMQ 实战:模拟电商网站场景综合案例(二)

RocketMQ 实战:模拟电商网站场景综合案例(二) 一、SpringBoot 整合 Dubbo :dubbo 概述 1、dubbo 概述 Dubbo :是阿里巴巴公司开源的一款高性能、轻量级的 Java RPC 框架,它提供了三大核心能力&#xff1a…