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选项表示递归地更改权限。

相关推荐
猪脚踏浪1 小时前
linux 拷贝文件或目录到指定的位置
linux
大树8817 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠17 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质17 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush417 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52018 小时前
Linux 11 动态监控指令top
linux
Inhand陈工18 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智19 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩19 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_19 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化