当前位置: 首页 > news >正文

Linux相关命令

Linux相关知识

    • 1.名词介绍
    • 2.Linux 文件基本属性
      • 1.Linux文件属主和属组
      • 2.更改文件属性
        • 1.chgrp:更改文件属组
        • 2.chown:更改文件所有者(owner),也可以同时更改文件所属组。
        • 3.chmod:更改文件9个属性
    • 3. Linux 文件与目录管理
      • 1.处理文件常用的命令
        • 1. ls(英文全拼:list files): 列出目录及文件名
        • 2. cd(英文全拼:change directory):切换目录
        • 3. pwd(英文全拼:print work directory):显示目前的目录
        • 4. mkdir(英文全拼:make directory):创建一个新的目录
        • 5. rmdir(英文全拼:remove directory):删除一个空的目录
        • 6. cp(英文全拼:copy file): 复制文件或目录
        • 7. rm(英文全拼:remove): 删除文件或目录
        • 8. mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
        • 9. tar
        • 10. find
        • 11.查看文件行数
        • 12. 打开文件数
        • 13. 文件重定向
        • 14. 查看编码集
        • 15.文件分隔符替换
        • 14. diff
      • 2.Linux 文件内容查看
        • 1. cat 由第一行开始显示文件内容
        • 2. tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
        • 3. nl 显示的时候,顺道输出行号!
        • 4. more 一页一页的显示文件内容
        • 5. less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
        • 6. head 只看头几行
        • 7. tail 只看尾巴几行
    • 4.Linux 用户和用户组管理
        • 1.查看用户所属组
        • 2.修改用户所属组
        • 3.添加用户到新组:
        • 4.更改用户的主要组:
    • 5.进程查看命令
      • 1. 已知进程名或者进程号查看安装目录
      • 2. 已知进程号显示进程详细信息
      • 3. 已知进程号查看其对应网络连接信息
      • 4.根据进程ID 查询进程二进制名称
      • 5. 已知进程号查询端口号
      • 4.查看进程总数
    • 5.暂未分类

用来记录在生产当中经常用到的一些命令

1.名词介绍

用户所属组:在创建用户时没有特别指定一个主要组,系统通常会自动创建一个与用户名相同的组作为该用户的主要组。

2.Linux 文件基本属性

1.Linux文件属主和属组

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql

2.更改文件属性

1.chgrp:更改文件属组

语法:

chgrp [-R] 属组名 文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
2.chown:更改文件所有者(owner),也可以同时更改文件所属组。

语法:

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
3.chmod:更改文件9个属性

语法:

 chmod [-R] xyz 文件或目录#举例 r读:4 w写:2 x执行:1chomod -R 770 a

选项与参数

  • xyz : x代表拥有者的权限y代表所属组的权限,z代表其他用户的权限
  • -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

3. Linux 文件与目录管理

1.处理文件常用的命令

1. ls(英文全拼:list files): 列出目录及文件名
ls -srlht  用于列出目录中的文件和子目录并给出文件的大小
split -b 行数 输入文件 输出文件名臣前缀    把文件按照行数切割
2. cd(英文全拼:change directory):切换目录
3. pwd(英文全拼:print work directory):显示目前的目录
4. mkdir(英文全拼:make directory):创建一个新的目录
5. rmdir(英文全拼:remove directory):删除一个空的目录
6. cp(英文全拼:copy file): 复制文件或目录
cp -a /tmp/dir . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
cp dir/* . 复制一个目录到当前工作目录
scp -r $pdir/$fname $user@$host:$pdir/$fname  把文件从一个服务器拷贝到另外一个服务器(全部拷贝)
rsync -av $pdir/$fname $user@$host:$pdir/$fname  把文件从一个服务器拷贝到另外一个服务器(增量拷贝)
7. rm(英文全拼:remove): 删除文件或目录
8. mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
-f:如果目标文件已经存在,不会询问而直接覆盖
mv file1 file2 把文件file1重命名为file2
mv file1 file2 dir 把文件file1、file2移动到目录dir中\
9. tar
tar -zxvf 文件 -C 解压路径
tar -zcvf 压缩后的文件名 需要压缩的目录
10. find
find / -name file1 从根目录开始搜索文件和目录
find / -user user1 搜索属于用户user1的文件和目录了
find /home/user1 -name \*.bin 在目录/home/user1中搜索带有.bin结尾的文件
11.查看文件行数
wc -l 文件名
12. 打开文件数
1.lsof | wc -l  当前系统中打开的文件总数
#输出
COMMAND    PID     USER    FD     TYPE   DEVICE   SIZE/OFF     NODE          NAME
sshd      48766    ssjs    mem     REG   253,0      309248     134502975    /usr/lib64/security/pam_systemd.so
2.lsof -p xx 显示哪些文件被pid为xx的进程打开
3.lsof -i 显示所有打开的端口 -i:80 显示所有打开80端口的进程
4.lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | head 10  #输出排名前十的[进程号]以及对应[打开的文件数]
  • COMMAND:进程的名称
  • PID:进程标识符
  • USER:进程所有者
  • FD:文件描述符,应用程序通过文件描述符识别该文件.如cwd txt 等
  • TYPE:打开文件类型 REG文件 DIR目录 CHR字符 BLK块设备 UNIX套接字 FIFO 先进先出队列IPv4网际协议IP套接字
  • DEVICE:指定磁盘的名称
  • SIZE:文件的大小
  • NAME:打开文件的确切名称
13. 文件重定向
`>`。这会把命令的输出内容保存到指定的文件里,而不是打印在屏幕上。以下是具体的命令格式:
lsof > output_file.txt 这条命令会执行`lsof`,并将其输出的所有内容保存到名为`output_file.txt`的文件中。
如果文件已存在,这将会覆盖原有文件内容;如果文件不存在,则会新建该文件。
14. 查看编码集
file -bi example.txt | grep charset
15.文件分隔符替换
Doris不支持ETX分隔符导入
解决方法:在202上/home/ssjs/shuju/cuishou/1.txt  修改文件名 然后sh 1.txt,将ETX分隔符换位制表符,在源文件替换
14. diff

diff两个文件如果都相同就没有出现的行,如果不同会列出

[ssjs@server1 test]$ vi 1
[ssjs@server1 test]$ vi 2
[ssjs@server1 test]$ diff 1 2

2.Linux 文件内容查看

Linux系统中使用以下命令来查看文件的内容:

1. cat 由第一行开始显示文件内容
2. tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
3. nl 显示的时候,顺道输出行号!
4. more 一页一页的显示文件内容
5. less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
6. head 只看头几行
7. tail 只看尾巴几行
 tail -f /var/log/messages 实时查看被添加到一个文件中的内容

4.Linux 用户和用户组管理

1.查看用户所属组
groups username
2.修改用户所属组
groups username
3.添加用户到新组:

使用 usermod 命令可以将用户添加到额外的组中。例如,要将用户 username 添加到 newgroup 组中,可以使用以下命令:

sudo usermod -aG newgroup username
这里的 -aG 选项表示追加用户到指定的附加组而不影响其他组成员关系。
4.更改用户的主要组:

如果需要更改用户的主要组,可以使用 usermod 命令,但不需要 -a 选项。例如,要将用户 username 的主要组更改为 newprimarygroup,可以使用:

sudo usermod -g newprimarygroup username
这里的 -g 选项用于指定新的主要组。

请注意,在执行这些操作时,可能需要管理员权限(即使用 sudo)。完成这些更改后,用户可能需要
重新登录才能使组成员资格的变化生效。

5.进程查看命令

1. 已知进程名或者进程号查看安装目录

ps -ef | grep 进程名称/进程号	#例如
ps -ef |grep doris

2. 已知进程号显示进程详细信息

ps aux | grep 进程号  显示进程的详细信息#a 显示所有用户的所有进程 u 选择有效的用户id或者用户名  x显示没有控制终端的进程,同时显示各个命令的具体路径
#ssjs 38190  0.    0  0.0 112808   968 pts/1    S+   10:54   0:00 grep --color=auto 1196485
#ssjs:运行该进程的用户名
#38190:grep命令的pid(这个pid是随机的,每次运行都会不同)  该进程的id号,在当前系统是唯一的
#0.0:cpu使用率
#0.0:内存使用率
#112808:进程占用swap内存大小(kb)
#968:进程使用物理内存大小(kb)
#pts/1:进程在哪个终端上运行.?表示位置或不需要终端
#S+:显示进程当前的状态 D不可中断 R运行 S休眠 T停止 Z僵死 N低优先级 s父进程 +前台进程
#10:54:启动该进程的时间
#0:00:该进程占用cpu时间
#grep --color=auto:启动该进程的命令名称                          

3. 已知进程号查看其对应网络连接信息

netstat -netup | grep 50052	#这条命令会列出所有与进程号50052相关的网络连接,包括TCP和UDP连接,以及与这些连接关联的进程信息    
tcp6       0      0 139.3.6.202:36772(远程机器)       139.3.6.202:3306 (本地机器)       ESTABLISHED 20199/java         
tcp6       0      0 139.3.6.202:3306 (远程机器)       139.3.6.202:36772(本地机器)       ESTABLISHED -    
#这两个是一个连接,只是因为调度和mysql是在一台机器上,一个是从调度的角度看,一个是从mysql的角度看             

4.根据进程ID 查询进程二进制名称

 /home/ssjs/module/apache-doris-2.0.2-bin-x64/java8/bin/java 最后一个为进程ID对应的程序二进制进程名称      

5. 已知进程号查询端口号

ss -nltp | grep 2468#输出
LISTEN   0         128                0.0.0.0:8080            0.0.0.0:*    users:(("java",pid=2468,fd=21))#LISTEN 表示该socket正在监听连接请求。
#0 128 是接收和发送缓冲区的大小限制。
#0.0.0.0:8080 表示该服务正在所有网络接口的8080端口上监听。
#0.0.0.0:* 意味着它会接受来自任何远程地址和端口的连接。
#users:(("java",pid=2468,fd=21)) 提供了关于哪个用户程序与这个socket关联的信息,这里是名为 "java" 的进程,
#其PID为2468,文件描述符为21。这表明PID为2468的Java进程正在监听所有网络接口上的8080端口,等待传入的TCP连接。
#通过这种方式,你可以轻松地找到特定进程正在使用的网络端口。
  • [::] 是IPv6中的未指定地址(unspecified address),等同于IPv4中的 0.0.0.0
  • *和0.0.0.0同一个意思表示任意地址

4.查看进程总数

ps -ef | wc -l           

5.暂未分类


1.防火墙设置sudo systemctl status firewalld  查看防火墙状态sudo systemctl start firewalld  打开防火墙sudo systemctl stop firewalld  关闭防火墙
2.时钟同步sudo systemctl start ntpd    开启ntpd时钟同步sudo systemctl enable ntpd   设置系统启动时自启ntpd3.Perl脚本使用场景:文本处理数据清洗:Perl 非常适合用于清洗和格式化文本数据,例如去除不必要的字符、调整格式、合并或拆分字段等。日志分析:Perl 可以用来解析和分析日志文件,提取有用的信息,并生成报告或图表。字符串操作:Perl 提供了丰富的字符串处理函数和正则表达式支持,使得处理复杂字符串变得相对简单
4.perl -0777 -pe 's/(?<!\\)"(?:\\.|[^"])*"(*SKIP)(*FAIL)|,/\t/g; # 替换未被双引号包围的逗号为制表符s/"//g;  # 移除所有双引号' inputfile > outputfile功能介绍:替换文件中未被双引号包围的逗号为制表符(\t),而保留双引号内的逗号不变,最后移除所有双引号\使用场景:从gbse上使用导出功能导出excel数据,上传到doris服务器中,使用local data导入数据时做预处理LOAD DATA LOCALINFILE '文件路径/文件名.csv'INTO TABLE 库名.表名          	COLUMNS TERMINATED BY '\t'   -- 列分隔符LINES TERMINATED BY '\n'     -- 行分隔符IGNORE 1LINES;               -- 跳过第一行 

http://www.mrgr.cn/news/92057.html

相关文章:

  • 【堆】堆的基本概念及操作,堆与优先队列
  • 机器学习数学通关指南——泰勒公式
  • 【HarmonyOS Next】地图使用详解(一)
  • 【大模型】蓝耘智算云平台快速部署DeepSeek R1/R3大模型详解
  • AI2-THOR环境下实现机器人导航、物体定位与抓取
  • linux指令2
  • 以ChatGPT为例解析大模型背后的技术
  • 从零开始制作一个漂亮的悬浮按钮
  • SkyWalking集成Kafka实现日志异步采集经验总结
  • 详解Flask Flash Message(消息闪现)
  • comfy UI节点缺失dlib库处理
  • 基于 go-wrk 在 Windows 环境下对 Go Web 应用进行 HTTP 压力测试
  • Django-Vue 学习-VUE
  • Selenium控制已经打开的浏览器(Chrome,Edge)
  • IDEA使用Maven方式构建SpringBoot项目
  • 模型思维 - 领域模型的应用与解析
  • 【框架】参考 Spring Security 安全框架设计出,轻量化高可扩展的身份认证与授权架构
  • 綫性與非綫性泛函分析與應用_3.例題-母本
  • 【SpringMVC】十分钟跑起来一个SpringMVC项目
  • 轻松将 Python 应用移植到 Android,p4a 帮你实现