Linux基础命令

本文总结了Linux环境下常用的命令,包括去除文件重复行、文件压缩与解压、文本内容筛选、文件查找、文件权限修改等核心操作。通过具体的例子介绍了tar、grep、find、chgrp、chown、chmod和join等命令的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.tar:

#去掉文件中重复的行: 
cat a.txt | sort | uniq > a.out
#解压:
tar zxvf FileName.tar.gz

#压缩:
tar zcvf FileName.tar.gz DirName

2.grep:

说明:分析一行的信息,通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等:

1.语法格式
grep [-acinv] [--color=auto] '查找字符串' filename 
-a :将binary文件以text文件的方式查找数据  
-c :计算找到‘查找字符串’的次数  
-i :忽略大小写的区别,即把大小写视为相同  
-v :反向选择,即显示出没有‘查找字符串’内容的那一行  
2.举例

# 取出文件config中包含MANPATH的行,并把找到的关键字加上颜色  
grep --color=auto 'MANPATH' config  

# 把ls -l的输出中包含字母file(不区分大小写)的内容输出  
ls -l | grep -i file  

3.find:

说明:查找指令,使用也相对较为复杂,参数也比较多

1.语法格式
find path [option] [action] filename 

# 与时间有关的参数:  
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;  
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;  
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;  
-newer file : 列出比file还要新的文件名  
# 例如:  
find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件  

# 与用户或用户组名有关的参数:  
-user name : 列出文件所有者为name的文件  
-group name : 列出文件所属用户组为name的文件  
-uid n : 列出文件所有者为用户ID为n的文件  
-gid n : 列出文件所属用户组为用户组ID为n的文件  
# 例如:  
find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件  

# 与文件权限及名称有关的参数:  
-name filename :找出文件名为filename的文件  
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件  
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、  
             目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);  
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示  
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示  
# 例如:  
find / -name passwd # 查找文件名为passwd的文件  
find . -perm 0755 # 查找当前目录中文件权限的0755的文件  
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte  

4.ch系列:

chgrp:改变文件所属用户组,要被改变的组名必须在/etc/group文件内存中
chown: 改变文件的所有者和群组,必须是管理员

chmod:改变文件的权限。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。

以log2012.log为例:-rw-r–r– 1 root root 296K 11-13 06:03 log2012.log

第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。

第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。

1.语法格式
chgrp [-RV] 组名 文件名  
-R 进行递归的持续对所有文件和子目录更改  
-v 运行时显示详细的处理信息
--reference=filename 根据所选文件名修改
2.举例
# 递归地把dir目录下中的所有文件和子目录下文件的用户组修改users   
chgrp users -R ./dir 

#改变文件log2013.log的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同 
chgrp --reference=log2012.log log2013.log 

1.语法格式
chown [选项][所有者][:[组]] 文件
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
2.举例
chown mail:mail log2012.log   改拥有者和群组
chown mail: log2012.log       改拥有者
chown :mail log2012.log       只改群组

1.语法格式
chmod [-cfvR] [--help] [--version] mode file   
-R  处理指定目录以及其子目录下的所有文件
-v  运行时显示详细处理信息
选择参数:
--reference=<目录或者文件>  设置成具有指定目录或者文件具有相同的权限

<权限范围>+<权限设置>  使权限范围内的目录或者文件具有指定的权限
<权限范围>-<权限设置>  删除权限范围的目录或者文件的指定权限
<权限范围>=<权限设置>  设置权限范围内的目录或者文件的权限为指定的值

权限范围:

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

权限代号:

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限 

该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
1)文字设定法:
    chmod [who] [+ | - | =] [mode] 文件名
2)数字设定法
  chmod [mode] 文件名

我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从07的八进制数,其顺序是(u)(g)(o)。
数字与字符对应关系如下:r=4,w=2x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=72. 举例

#增加文件所有用户组可执行权限
命令:chmod a+x log2012.log

#同时修改不同用户权限
命令:chmod ug+w,o-x log2012.log

#使用“=”设置权限,撤销原来所有的权限,然后使拥有者具有可读权限 

命令:chmod u=x log2012.log

#给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

命令:chmod 751 file 
命令:chmod u=rwx,g=rx,o=x file 

#为所有用户分配读权限 
命令:chmod 444 file 

5.join:

根据共有的关键字合并数据文件

1.语法格式
join [options...] 文件1 文件2
默认情况下,这两个文件的第一列就是公共字段,连接后的字段之间以空白分隔。

参数说明:
-a<12> 除了显示原来文件中匹配的行之外,还显示左边或右边文件中没不匹配的行。
-v<12> 跟-a相同,但是只显示左边或右边文件中不相同栏位的行。
-t<字符> 使用列间的分隔字符。比如':',$'\t'(制表符比较特殊的表达)
-i忽略大小写
-1 <field1>以file1 field 1做匹配字段
-2 <field2>以file2 field 2做匹配字段
-j <field>以file1 field 和file2 field做匹配字段
-e<字符串> 若file1和file2中找不到指定的列,则在输出中填入选项中的字符串。
-o<格式> 只输出file1,file2中对应的列

注意:
为了让 join 运行得到正确结果,输入文件必须先完成排序(sort指令)。file1和file2必须使用相同分隔符,比如都是空格或者制表符。

2.举例

1.join -j 1 file1.txt file2.txt
2.join -1 2 -2 3 file1.txt file2.txt
3.join -o 1.1 -o 1.2 -o 2.2 -o 2.3 -e 'empty' -a 1 file1.txt file2.txt
4.连接多个文件:join file1 file2 | join - file3 | join - file4
5.join file1 file2 内连接 (关键字不匹配的行不会输出)
6.join -a1 file1 file2 左连接 (显示左边文件所有记录,右边文件不匹配的显示空白)
7.join -a2 file1 file2 右连接 (显示右边文件所有记录,左边文件不匹配的显示空白)
8.join -a1 -a2 file1 file2 全连接 (显示两边文件所有记录,对应文件不匹配的显示空白)

6.在目录统计和搜索文件

#统计某文件夹下文件的个数
ls -l ./ |grep "^-"|wc -l
#统计某文件夹下目录的个数
ls -l ./ |grep "^d"|wc -l
#统计文件夹下文件的个数,包括子文件夹里的
ls -lR ./ |grep "^-"|wc -l
#统计文件夹下目录的个数,包括子文件夹里的
ls -lR ./ |grep "^d"|wc -l
#统计文件夹下json文件的个数
ls -l ./ | grep 'json' |wc -l

7.常用命令

#去掉文件中重复的行: 
cat a.txt | sort | uniq > a.out
内容概要:该论文探讨了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能同时反射和传输信号,与传统仅能反射的RIS不同。结合NOMA技术,STAR-RIS可以提升覆盖范围、用户容量和频谱效率。针对STAR-RIS元素众多导致获取完整信道状态信息(CSI)开销大的问题,作者提出一种在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量的方法,以最大化总可实现速率并确保每个用户的最低速率要求。仿真结果显示,该方案优于STAR-RIS辅助的OMA系统。 适合人群:具备一定无线通信理论基础、对智能反射面技术和非正交多址接入技术感兴趣的科研人员和工程师。 使用场景及目标:①适用于希望深入了解STAR-RIS与NOMA结合的研究者;②为解决无线通信中频谱资源紧张、提高系统性能提供新的思路和技术手段;③帮助理解PSO算法在无线通信优化问题中的应用。 其他说明:文中提供了详细的Python代码实现,涵盖系统参数设置、信道建模、速率计算、目标函数定义、约束条件设定、主优化函数设计及结果可视化等环节,便于读者理解和复现实验结果。此外,文章还对比了PSO与其他优化算法(如DDPG)的区别,强调了PSO在不需要显式CSI估计方面的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值