linux命令2
1.grep
zgrep QYJF03 *.zip | more 项目中使用了这个命令来查看日志中发过的含有交易码为QYJF03的报文。本来要一个一个去解压ZIP日志,然后搜索QYJF03找到对应的发送、响应报文,使用这个命令大大简化了操作,速度效率提升好多。望而生畏的
grep是linux用户用来搜索文本字符串的命令行工具。
zgrep: 用于搜索压缩文件中的字符串或模式的命令,可以用来搜索特定字符串或模式,并将结果输出到屏幕。
例子:
grep -c 'hello' example.txt 查找文件中包含“hello”的行数
grep -v 'hello' example.txt 查找文件中不包含“hello”的行
grep 'string' *.txt 搜索文件夹中所有的txt文件
grep -i 'hello' example.txt 如果要搜索时忽略大小写,可以使用-i选项
还可以在查询出来的结果中再次过滤,比如搜索参加活动的交易,且客户号为110002345的:
zgrep mktActivityJoin maketing-2024-02-03.*.log.zip | grep 110002345 | more
ps: zless 查看zip包的文件内容
ll | grep -i dms 用于列出当前目录下的文件,并通过 grep
过滤出包含字符串 dms
的条目,且忽略大小写。
2. | 管道命令
将‘|’前面命令的输出作为'|'后面的输入。例如:
ls -s|sort -nr -s 是file size,-n是numeric-sort,-r是reverse,反转,该命令列出当前目录中的文档(含size),并把输出送给sort命令作为输入,sort命令按数字递减的顺序把ls的输出排序。
ls -l | more 该命令列出当前目录中的任何文档,并把输出送给more命令作为输入,more命令分页显示文件列表。
ls -la | less 将 ls 命令的结果 重定向到 less 来显示,而不是默认的终端
grep 20231023XXX22 bank.2023-10-25.*.log | grep -i application 在bank.2023-10-25.*.log中搜索20231023XXX22流水号,并且过滤出含有application字符串的,忽略大小写
3.输出命令
head -n 10 fileName >> a.txt 将fileName文件的前10行输出到a.txt
4.查看文件大小
du -h a.txt 查看a.txt文件大小
5.touch
touch 命令主要用于创建普通文件,用法为 touch test.txt,如果文件存在,则表示修改当前文件时间,常用参数详解如下:
用法:touch [选项] 文件 将每个文件的访问时间和修改时间改为当前时间;
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项;
如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间;
长选项必须使用的参数对于短选项时也是必需使用的;
-a 只更改访问时间;
-c, --no-create 不创建任何文件;
-d, --date=字符串 使用指定字符串表示时间而非当前时间;
-f (忽略);
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地;
(当系统支持更改符号链接的所有者时,此选项才有用);
-m 只更改修改时间;
-r, --reference=文件 使用指定文件的时间属性而非当前时间;
-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间;
--time=WORD 使用 WORD 指定的时间:access、atime、use 都等于-a;
选项的效果,而 modify、mtime 等于-m 选项的效果;
--help 显示此帮助信息并退出;
--version 显示版本信息并退出。
请注意,-d 和-t 选项可接受不同的时间/日期格式
touch touch.txt 创建touch.txt
touch -a linux.txt 修改文件的访问时间 (-a表示access)
touch -m linux.txt 修改文件的更改时间 (-m 表示modify)
6.stat命令
[root@nie linux]# stat aa/linux.txt
文件:aa/linux.txt
大小:22 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:3400403 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 777/ UNKNOWN) Gid:( 0/ root)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2023-06-01 13:35:02.304561000 +0800
最近更改:2023-06-01 13:00:25.626698812 +0800
最近改动:2023-06-01 13:03:32.400686418 +0800
创建时间:-
stat命令用于显示文件的状态信息。
stat命令可以查看的信息包括:
文件(File):显示文件名
大小(Size):显示文件大小
块(Blocks):文件使用的数据块总数
IO块(IO Block):IO块大小
文件类型(regular file):文件类型(普通文件)
设备(Device):设备编号
Inode:Inode号
硬链接(Links):链接数
权限(Access):文件的权限
Gid、Uid:文件所有权的Gid和Uid
访问时间(access time):表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
更改时间(modify time):表示我们最后一次修改文件的时间
改动时间(change time):表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等
创建时间(Birth time) : 文件创建时间,crtime,不过据查此属性linux已废弃,目前状态显示结果均为-
7.echo命令
echo > filename
filename
为待创建的文件名。接着,按下Enter键即可创建一个空文件。如果想要创建一个具有内容的文件,可以使用echo
命令结合重定向符>>
,例如echo "content" >> filename
。这会在文件中添加一行文本。
8.cat命令
cat > filename
filename
为待创建的文件名,接着,按下Enter键,进入编辑模式。在编辑模式下,输入文件的内容。完成后,按下Ctrl + D
保存文件并退出编辑模式,即可创建一个具有内容的文件。如果只想创建一个空文件,可以直接按下Ctrl + D
cat filename.txt 查看文件内容
cat -n filename.txt 查看文件内容,并显示行号
9.显示行号,打开文件,按下ESC输入以下命令:
:set nu 显示行号
:set nonu 不显示行号
:set nu! 不显示行号
10.curl
转自:https://www.cnblogs.com/duhuo/p/5695256.html
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。
语法:# curl [option] [url]
-A/--user-agent <string> 设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-D/--dump-header <file> 把header信息写入到该文件中
-e/--referer 来源网址
-f/--fail 连接失败时不显示http错误
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent 静音模式。不输出任何东西
-T/--upload-file <file> 上传文件
-u/--user <user[:password]> 设置服务器的用户和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/--progress-bar 进度条显示当前的传送状态
示例用法:
curl http://www.linux.com 执行后,www.linux.com 的html就会显示在屏幕上了,由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站
curl http://www.linux.com >> linux.html 保存访问的网页,使用linux的重定向功能保存
curl -o linux.html http://www.linux.com 可以使用curl的内置option:-o(小写)保存网页
curl -o dodo1.jpg http:www.linux.com/dodo1.JPG 利用curl下载文件。使用内置option:-o(小写)
curl -O http://www.linux.com/dodo1.JPG 使用内置option:-O(大写)。这样就会以服务器上的名称保存文件到本地
分块下载:
有时候下载的东西会比较大,这个时候我们可以分段下载。使用内置option:-r
# curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
# curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
# curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
# cat dodo1_part* > dodo1.JPG
这样就可以查看dodo1.JPG的内容了
curl -# -O http://www.linux.com/dodo1.JPG 显示下载进度条
curl -s -O http://www.linux.com/dodo1.JPG 不会显示下载进度信息
curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/ curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现。这样就向ftp服务器上传了文件dodo1.JPG
测试一个网址通不通可以这样: curl http://127.0.0.1:8043
测试一个接口通不通: curl -X POST http://vcardtest.tenkent.com/virtualcard-rest/outApi/ahnj/dataSync
要查看百度首页的源代码: 在命令行中输入curl https://www.baidu.com
,它就会返回百度首页的 HTML 代码
curl
可以模拟各种 HTTP 请求方法,如 GET、POST 等:
对于 GET 请求,上面查看网页内容的例子就是一个典型的 GET 请求,它用于获取服务器上的资源。
对于 POST 请求,假设要向一个服务器端的脚本发送数据,可以使用curl -X POST -d "param1=value1¶m2 = value2" [URL]。
其中-X POST指定请求方法为 POST,-d选项用于指定要发送的数据,数据格式一般是键值对的形式,用&连接不同的键值对。
例如,向一个本地运行的测试服务器http://localhost:3000/api/submit发送用户注册信息username=testuser&password=testpass,可以使用
curl -X POST -d "username=testuser&password=testpass" http://localhost:3000/api/submit。
11.uptime
参考博客:https://blog.csdn.net/z19861216/article/details/130881624
linux命令uptime是用来为用户提供系统从开启到当前运行uptime命令时系统已运行的时长信息,除此之外,还提了系统启动时间,当前登录用户,系统平均负载信息。
参数 | 说明 |
-h | 显示帮助信息 |
-V | 显示uptime版本信息 |
-p | 以人类可识别的方式输出系统从开机到到当前的运行时长 |
-s | 以yyyy-mm-dd HH:MM:SS格式输出系统的启动时间 |
uptime -p
uptime输出详解
10:56:51 | up 1:25 | 3 users | load average: 0.00, 0.01, 0.03 |
当前系统时间 |
系统已开机运行了多长时间 即:已运行1小时25分钟 |
当前登录用户数 即:活动用户 |
过去 1分钟、5分钟、 15 分钟内可用的系统负载的平均值 |
12.查询CPU的核心数
grep "model name" /proc/cpuinfo
grep "model name" /proc/cpuinfo | wc -l
13.less
less a.txt 显示文件内容
less -N a.txt 显示文件内容,带行号
less 命令默认不显示行号,可以使用 -N
选项显示行号
14.netstat
netstat 命令用于显示网络状态。
netstat -an | grep 9443 查看9443端口的启动情况
15.sftp
以登录sftp服务器,并且下载文件为例:
[csii@localhost staffInfo]$ sftp aduser@10.0.0.5
sftp> cd /ODSFILE/HRP/PUB
sftp> ls
sftp> get ODS.FILE_1208_0X03_TXT_20240920.ok
sftp> get ODS.FILE_1208_0X03_TXT.txt
sftp> quit
如果是下载文件夹:
get -r folderName
16.date
查看服务器时间:date
修改服务器时间:date -s '2024-10-31 14:48:00' 如果权限不允许的话,前面加sudo
17.lscpu
lscpu用于显示有关cpu架构信息,它从sysfs和/proc/cpuinfo中收集并显示CPU的重要信息,包括其数量、核心、CPU家族、模型、缓存大小等。这个命令对于理解你的系统的CPU特性非常有用,特别是在需要优化应用程序以利用CPU架构特性时。
18.top
参考博客:https://www.jianshu.com/p/bdd6f08ee1a5
Linux top命令用于实时显示进程的动态,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
top 可选参数
第一行为任务队列信息
top - 19:26:14 当前时间
up 462 days, 1:49, 系统已运行时间
1 user, 当前登录用户数
load average: 0.09, 0.05, 0.05 系统负载,三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二行为进程信息
Tasks: 641 total, 进程总数
1 running, 正在运行的进程数
640 sleeping, 休眠的进程数
0 stopped, 停止的进程数
0 zombie 僵尸进程数
第三~六行为cpu信息,使用1打开查看所有cpu,当前服务器为6核
%Cpu0 : 1.7 us, 0.3 sy, 0.0 ni, 97.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st
%Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu0 :
1.7 us, 用户空间占用CPU百分比
0.3 sy, 内核空间占用CPU百分比
0.0 ni, 用户进程空间内改变过优先级的进程占用CPU百分比
97.6 id, 空闲CPU百分比
0.0 wa, 等待输入输出的CPU时间百分比
0.0 hi, 硬件CPU中断占用百分比
0.0 si, 软中断占用百分比
0.3 st 虚拟机占用百分比
第七行为物理内存
KiB Mem : 单位kb
14871080 total, 物理内存总数
1030044 free, 空闲内存空间大小
2584280 used, 已使用物理内存大小
11256756 buff/cache 用作内核缓存的内存量
第八行为置换内存
KiB Swap: 单位kb
4194300 total, 交换区总量
3406820 free, 空闲交换区总量
787480 used. 已使用交换区大小
11790572 avail Mem 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
第九行
进程信息区统计信息区域的下方显示了各个进程的详细信息,默认显示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND(各参数含义见下交互f指令)
19.linux修改挂载路径
例子:
将/dev/datavg/data_lv设备下的挂载点/home/yyglb/pisces/ 修改为新的挂载点/share_files
操作步骤:
1.备份/etc/fstab文件,cp /etc/fstab /etc/fstab.bak
2.编辑/fstab文件,将设备下原来的挂载点/home/yyglb/pisces/修改为/share_files
/dev/datavg/data_lv /share_files xfs defaults 0 0
3.卸载当前挂载点/home/yyglb/pisces/:
sudo umount /home/yyglb/pisces
4.重新挂载:
sudo mount /dev/datavg/data_lv /share_files/ 或者:sudo mount /share_files/
5.验证:df -h
注意:
-
确保新的挂载点目录为空,否则挂载后原有内容会被隐藏。
-
修改
/etc/fstab
时要小心,错误的配置可能导致系统无法启动
fstab文件解读:
/etc/fstab
是 Linux 系统中用于定义文件系统挂载信息的配置文件。系统启动时会根据该文件自动挂载指定的文件系统。以下是 /etc/fstab
文件的详细解读:
<设备或UUID> <挂载点> <文件系统类型> <挂载选项> <dump备份标志> <fsck检查顺序>
1. 设备或UUID
指定要挂载的设备或分区的标识。
可以是设备路径(如 /dev/sda1)或 UUID(如 UUID=1234-5678)。
使用 UUID 更可靠,因为设备路径可能会变化。
2. 挂载点
指定文件系统的挂载路径(挂载点)。
必须是一个已存在的目录。
3. 文件系统类型
指定文件系统的类型。
常见的文件系统类型包括:
ext4:Linux 常用的文件系统。
xfs:高性能文件系统。
vfat:FAT32 文件系统。
ntfs:Windows NTFS 文件系统。
swap:交换分区。
nfs:网络文件系统。
auto:自动检测文件系统类型。
4. 挂载选项
指定挂载时的选项,多个选项用逗号分隔。
常见的选项包括:
defaults:默认选项(包括 rw, suid, dev, exec, auto, nouser, async)。
rw:以读写模式挂载。
ro:以只读模式挂载。
noexec:禁止执行文件。
nosuid:禁止 SUID 和 SGID 权限。
nofail:挂载失败时不报错(适用于非关键文件系统)。
user:允许普通用户挂载。
auto:系统启动时自动挂载。
noauto:系统启动时不自动挂载
总结
/etc/fstab 用于定义文件系统的挂载信息。
每行包含 6 个字段:设备/UUID、挂载点、文件系统类型、挂载选项、dump 标志、fsck 顺序。
----
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2021-10-10 @Autowired用法详解