学点Linux命令没坏处(文件)

简介: 最近复习了下Linux的文件处理相关命令,做了一些记录在此分享一下。

最近复习了下Linux的文件处理相关命令,做了一些记录在此分享一下。

网络异常,图片无法展示
|

文件和目录增加、删除、查看(搜索)操作


  • 目录显示:文件有关显示操作的有各种查看文件、目录的方式主要命令有pwd ls ll cat tree,最常用的ls中包含了我们常用的一些场景。
//pwd: 其功能是显示当前工作目录的绝对路径 其相关的全局变量$PWD
[root@VM-12-5-centos workspace]# pwd
/home/workspace
[root@VM-12-5-centos workspace]# echo $PWD
/home/workspace
//dirname:用于显示文件或目录路径(命令用于获取给定路径的路径部分。)
[root@localhost demo]# pwd
/tmp/demo
[root@localhost demo]# dirname /tmp/demo/demo2.txt 
/tmp/demo
// ls: 查询当前目录下文件 -a查询所有包括隐藏的.***类文件  -l显示详细信息(相当于ll命令)  -R递归查看目录
[root@localhost demo]# ls
demo.txt  test  test2  test3
[root@localhost demo]# ls -a
.  ..  demo.txt  .ignore  test  test2  test3
[root@localhost demo]# ls -al
total 4
drwxr-xr-x.  5 root root   75 Jul  6 09:14 .
drwxrwxrwt. 11 root root 4096 Jul  6 09:13 ..
-rw-r--r--.  1 root root    0 Jul  6 09:14 .ignore
...
[root@localhost demo]# ls -R test
test:
demo2.txt  demo.txt  log
test/log:
//排序 -S文件大小 -t最后修改时间
[root@localhost demo]# ls -lhS --time-style=full-iso
total 8.0K
drwxr-xr-x. 3 root root 50 2022-07-06 09:20:19.842043397 +0800 test
-rw-r--r--. 1 root root 26 2022-07-07 08:43:52.746533057 +0800 demo.txt
drwxr-xr-x. 2 root root  6 2022-07-06 09:13:10.912578643 +0800 test2
...
[root@localhost demo]# ls -lht --time-style=full-iso
total 8.0K
-rw-r--r--. 1 root root  5 2022-07-07 08:44:19.544308928 +0800 demo2.txt
...
// tree: 以树形结构显示目录下的内容
[root@localhost demo]# tree
.
├── demo.txt
├── test
│   └── demo.txt
├── test2
└── test3
// 显示文件(或系统)状态stat -f(显示文件所在分区的文件系统状态而非文件)
[root@localhost demo]# stat demo2.txt  
  File: ‘demo2.txt’
  Size: 46              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 67160922    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2022-07-14 09:00:09.631828661 +0800
Modify: 2022-07-14 09:00:02.178613564 +0800
Change: 2022-07-14 09:00:02.178613564 +0800
 Birth: -
 [root@localhost demo]# stat -f demo2.txt 
  File: "demo2.txt"
    ID: fd0000000000 Namelen: 255     Type: xfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 13100800   Free: 11174980   Available: 11174980
Inodes: Total: 26214400   Free: 26073060
//file(determine file type)  
[root@localhost demo]# file demo2.txt 
demo2.txt: ASCII text
//basename(令用于显示去除路径和文件后缀部分的文件名或目录名) basename + options + file + [后缀/前缀]
[root@localhost demo]# basename demo2.txt ".txt" 
demo2

size:文件大小 Blocks:占用block数量 regular file:文件类型为普通文件 inode 索引节点 Device:设备编号(十六进制数)Links:文件的硬连接数

  • 文件查看合并cat,命令常用来显示单个文件内容,或者将几个文件内容连接起来一起显示,还可以从标准输入中读取内容并显示,生产环境中它常与重定向或追加符号配合使用。也是我们工作中常用的命令之一,五大常用功能:1.查看文件内容 2.多个文件合并成一个 3.创建编辑新文件 4.非交互的编辑或追加内容到文件尾部 5.清空文件内容
//查看文件
[root@localhost demo]# cat demo2.txt -n #<=== -n显示行号
     1  ieee
     2  oo
     3  oo
[root@localhost demo]# cat demo2.txt -E #<=== -E显示行尾的$符号
this is a test txt! hahaha$
see you Tommorrow!$
[root@localhost demo]# cat demo1.txt demo2.txt  #<=== 合并显示多个文件
this is a demo 1 file
this is a test txt! hahaha
see you Tommorrow!
//写入文件cat和“>”重定向将标准输出定向到文件的,需要注意:
#1.结束编辑可以用快捷键Ctrl+d或Ctrl+c退出,但是必须要先执行回车,将光标定位到新的未输入的行才行。
#2.使用此种方式输入时,会发现如果输入错了,只按退格键(Backspace)将会无法删除,需要按住“Ctrl+退格键”才能删除
#3.此操作为特殊编辑方法,作为扩展知识点提及,实际生产环境中使用得很少。
[root@localhost demo]# cat >demo3.txt 
this is a demo3 file@ iooo
eeee^C
[root@localhost demo]# cat demo3.txt 
this is a demo3 file@ iooo
[root@localhost demo]# cat >demo2.txt<<EOF #<=== 写入文件
> this is a test txt! hahaha
> see you Tommorrow!
> EOF
[root@localhost demo]# ls
@  demo2.txt  demo3.txt  employee.txt  empty.txt  log.log  test2  test3
[root@localhost demo]# cat demo2.txt 
this is a test txt! hahaha
see you Tommorrow!
  • 文件显示:日常查看文件是常用的有以下几个命令,head tail tailf more less,另外tail是服务器故障排查中经常可以用到的。下面详细了解下这几个命令的使用
//tail命令用于显示文件尾部内容,默认输出文件最后10行 -n(行数) -f(实时显示文件追加数据) --retry(不停尝试打开直到打开为止) -F(相当于-f --retry)-s(监控文件变化的间隔秒数)
[root@localhost demo]# tail log.log #<=== 默认显示尾部10行
nohup: ignoring input
2022-07-12 20:43:05,028 - linkkit - INFO - start connect
2022-07-12 20:43:05,032 - linkkit - INFO - start connect
2022-07-12 20:43:05,035 - device_connector.ali_connect - ERROR - sensor6-1[sensors] - 'NoneType' object has no attribute 'status'
...
[root@localhost demo]# tail log.log -n 15
2022-07-12 20:43:06,180 - linkkit - INFO - __on_internal_connect enter
2022-07-12 20:43:06,180 - device_connector.ali_connect - INFO - camera6-1[cameras] - camera6-1 on_connect:0,rc:0,userdata:
2022-07-12 20:43:06,203 - linkkit - INFO - __on_internal_connect
2022-07-12 20:43:06,204 - linkkit - INFO - __on_internal_connect enter
pi@swift-hub-006:/var/log$ head swift.log #<=== -n指定显示行数
nohup: ignoring input
2022-07-12 20:43:05,028 - linkkit - INFO - start connect
2022-07-12 20:43:05,032 - linkkit - INFO - start connect
....
[root@localhost demo]# tail -f log.log  #<=== 实时监控文件变化,可以加上-s表示监控间隔秒数
nohup: ignoring input
2022-07-12 20:43:05,028 - linkkit - INFO - start connect
2022-07-12 20:43:05,032 - linkkit - INFO - start connect
...
//head命令用于显示文件头部内容,默认输入文件开头10行
[root@localhost demo]# ls
@  demo1.txt  demo2.txt  demo3.txt  employee.txt  empty.txt  log.log  test2  test3
[root@localhost demo]# head log.log #<=== 默认显示前10行
eeeeeeeeeee:
eeeeeeeee
log.....
pi@swift-hub-006:/var/log$ head swift.log 
nohup: ignoring input
2022-07-12 20:43:05,028 - linkkit - INFO - start connect
...
[root@localhost demo]# head log.log -n 20 #<=== -n指定显示行数
eeeeeeeeeee:
eeeeeeeee
log.....
钉钉
nohup: ignoring input
2022-07-12 20:43:05,028 - linkkit - INFO - start connect
...
[root@localhost demo]# head log.log -n 20 -c 100  #<=== -c指定显示字节数
eeeeeeeeeee:
eeeeeeeee
log.....
pi@swift-hub-006:/var/log$ head swift.log 
nohup: ignoring input
[root@localhost demo]# head -v demo2.txt #<=== -v指定显示文件头
==> demo2.txt <==
this is a test txt! hahaha
see you Tommorrow!
  • 新增: linux的文件处理中新增文件,目录也是我们常用的命令之一mkdir touch
//touch touch命令有两个功能:一是创建新的空文件;二是改变已有文件的时间戳属性。
[root@localhost demo]# ls
demo3.txt  demo.txt  employee.txt  test  test2  test3
[root@localhost demo]# touch empty.txt
[root@localhost demo]# ls
 demo3.txt  demo.txt  employee.txt  empty.txt  test  test2  test3
//mkdir:创建文件夹
[root@localhost demo]# mkdir demodir1
[root@localhost demo]# ls
demo3.txt  demodir1  employee.txt  empty.txt  log.log  test2  test3
//可以同时创建多个文件夹
[root@localhost demo]# mkdir demodir2 demodir3
[root@localhost demo]# ll
total 24
-rw-r--r--. 1 root root  229 Jul  7 09:34 @
-rw-r--r--. 1 root root   22 Jul 14 09:08 demo1.txt
...
//-p 递归创建多级目录
[root@localhost demo]# mkdir demodir4/child1
mkdir: cannot create directory ‘demodir4/child1’: No such file or directory
[root@localhost demo]# mkdir -p demodir4/child1
[root@localhost demo]# tree demo*
...
demodir3
demodir4
└── child1
...
  • 删除
//rm: 其功能是删除一个或多个文件或目录 -f(强制删除) -r(递归删除目录及内容)
[root@localhost demo]# ls
@  demo2.txt  demo3.txt  demo.txt  employee.txt  empty.txt  test  test2  test3
[root@localhost demo]# rm de
rm: cannot remove ‘de’: No such file or directory
[root@localhost demo]# rm demo.txt 
rm: remove regular file ‘demo.txt’? y
//rm删除目录
[root@localhost demo]# ls
@  demo2.txt  demo3.txt  employee.txt  empty.txt  test  test2  test3
[root@localhost demo]# rm test
rm: cannot remove ‘test’: Is a directory
[root@localhost demo]# rm -r test
rm: descend into directory ‘test’? y
rm: remove regular empty file ‘test/demo.txt’? y
rm: remove regular empty file ‘test/demo2.txt’? y
rm: remove directory ‘test/log’? y
rm: remove directory ‘test’? y
[root@localhost demo]# ls
//rmdir: rmdir命令用于删除空目录(remove empty directories),当目录不为空时,命令不起作用。
[root@localhost demo]# tree
.
├── @
├── demo2.txt
├── demo3.txt
├── employee.txt
├── empty
├── empty.txt
├── test2
│   └── demo.txt
└── test3
3 directories, 6 files
[root@localhost demo]# rmdir test2
rmdir: failed to remove ‘test2’: Directory not empty
[root@localhost demo]# rmdir empty
[root@localhost demo]# ls
@  demo2.txt  demo3.txt  employee.txt  empty.txt  test2  test3

以下在linux中的文件操作请谨记:

1)勿删:用mv替代rm,不要急着删除,而是先移动到回收站/tmp。

2)备份:删除前务必备份,最好是异机备份,若出现问题随时可以还原。

3)如果非要删除,那么请用find替代rm,包括通过系统定时任务等清理文件方法。下面是在生产环境中删除文件或目录的较安全方法:

4)勿用rm -f::如果非要通过rm命令删除,那么请先切换目录再删除,能不用通配符的就不用通配符。对文件的删除禁止使用“rm-rf文件名”,因为“rm-rf”误删目录时并不会有提示,非常危险。最多使用“rm-f文件名”,推荐用“rm文件名”。

  • 文件查找:查找文件是我在日常工作中比较常用的,对于window而言我们只用在搜索栏中输入想要查找的文件名即可查找到,但对于linux我们需要掌握find命令才能高效的找到我们想要的文件

·-4表示文件更改时间距现在4天以内。·+4表示文件更改时间距现在4天以前。·4表示距现在第4天。

// find 查找目录下的文件,使用方式find pathname options
[root@localhost tmp]# find /tmp/demo 
/tmp/demo
/tmp/demo/test2
...
// 常用参数-atime按时间 find pathname -atime +number|-number|number(天数),文件访问时间,及在number天内被访问过的文件
[root@localhost tmp]# find /tmp/demo  -atime -1
/tmp/demo
/tmp/demo/test2
/tmp/demo/test2/demo.txt
/tmp/demo/test3
/tmp/demo/empty.txt
/tmp/demo/log.log
[root@localhost tmp]# stat /var/lib/jenkins/%C/jenkins/war/WEB-INF/update-center-rootCAs
  File: ‘/var/lib/jenkins/%C/jenkins/war/WEB-INF/update-center-rootCAs’
  Size: 166             Blocks: 0          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 67810373    Links: 2
Access: (0755/drwxr-xr-x)  Uid: (  997/ jenkins)   Gid: (  993/ jenkins)
Context: system_u:object_r:var_lib_t:s0
Access: 2022-07-11 09:04:01.549586692 +0800
Modify: 2022-05-15 18:13:35.664005312 +0800
Change: 2022-05-15 18:13:35.664005312 +0800
 Birth: -
 [root@localhost tmp]# find /var  -atime 1
/var/lib/jenkins/%C/jenkins/war/WEB-INF/update-center-rootCAs
// 常用参数-name按名称,支持通配符*匹配
[root@localhost tmp]# find . -name "demo"
./demo
[root@localhost tmp]# find . -name "demo.txt"
./demo/test2/demo.txt
[root@localhost tmp]# find . -name "demo*"
./demo
./demo/test2/demo.txt
./demo/demo2.txt
./demo/demo3.txt
// 常用参数 !反向  -a取交集 -o取并集
[root@localhost demo]# ls
@  demo2.txt  demo3.txt  employee.txt  empty.txt  log.log  test2  test3
[root@localhost demo]# find . ! -name "*.log"
.
./test2
./test2/demo.txt
./test3
./.ignore
./demo2.txt
./demo3.txt
./employee.txt
./@
./empty.txt
// 常用参数-size 按大小
[root@localhost demo]# find . -size +10c #<== 查找文件大于10字节的文件
.
./test2
./demo2.txt
./employee.txt
./@
./log.log
[root@localhost demo]#  find . -size -10c #<== 查找文件小于10字节的文件
./test2/demo.txt
./test3
./.ignore
./demo3.txt
./empty.txt
[root@localhost demo]#  find . -size 10c #<== 查找文件等于10字节的文件
// 常用参数-prune 忽略指定目录与 -path -o一起使用
[root@localhost demo]# find ./ -path './test2' -o -name "*.txt"
./test2
./test2/demo.txt
./demo2.txt
./demo3.txt
./employee.txt
./empty.txt
// 常用的查找并进行的一些操作:-delete(查找出的文件删除) -exec(对匹配到的文件执行改参数给出的shell命令) -ok(与exec相同功能,只是会确认) -prune(不在当前指定目录查找)
// 删除-delete
[root@localhost demo]# ls
@  del.txt  demo2.txt  demo3.txt  employee.txt  empty.txt  log.log  test2  test3
[root@localhost demo]# find . -name "del.*"
./del.txt
[root@localhost demo]# find . -name "del.*" --delete
find: unknown predicate `--delete'
[root@localhost demo]# find . -name "del.*" -delete
// 执行其他参数 -exec
[root@localhost demo]# find . -name "*.txt" -exec ls -l {} \;
-rw-r--r--. 1 root root 0 Jul 10 21:06 ./test2/demo.txt
...

文件过滤和编辑操作


  • 编辑文件vi/vim:vi是Linux命令行界面下的文字编辑器,几乎所有的Linux系统都安装了vi,只要学会了vi这个编辑工具,就可以在任何Linux系统上使用它。而vim是vi命令的增强版(Vi IMproved),与vi编辑器完全兼容,此外还有很多增强功能,例如用不同颜色高亮显示代码。因此,如果系统有vim命令,那么建议大家就使用vim编辑文本。
//vi/vim普通模式vi + 文件名,一些快捷操作:dd删除当前光标行 ndd删除从光标开始向下至n行 gg将光标移动至第一行 
[root@localhost demo]# vi demo1.txt 
this is add  dsdsathis is add  dsdsa
this is add  dsdsathis is add  dsdsa
this is add  dsdsathis is add  dsdsathis is add  dsdsa
this is add  dsdsathis is add  dsdsa
this is add  dsdsa
this is a demo 1 file
//编辑模式,在普通模式下按“i,I,o,O,a,A,r,R,s,S”键进入编辑模式,此时左下角要有插入的标记
this is add  dsdsathis is add  dsdsa
this is add  dsdsathis is add  dsdsa
...                                                                                             
-- INSERT --
//命令行模式:在普通模式下,输入“:”或“/”或“?”时,光标会自动定位在那一行,在这个模式中,可以执行保存、退出、搜索、替换、显示行号等相关操作。
this is add  dsdsathis is add  dsdsa
...                                                                                                                                                                                                                                                                                                      
:
//命令模式常用命令:w(保存) q(退出) !(强制) 
  • 分割文件,split(-l指定分割后文件的最大行数)
//split + 选项 + 输入文件名 + 输出文件名前缀
//按行数分割
[root@localhost demo]# split -l 10 log.log new_
[root@localhost demo]# ls
@          demo2.txt  demodir1  demodir3  employee.txt  log.log  new_ab  new_ad  new_af  test3
demo1.txt  demo3.txt  demodir2  demodir4  empty.txt     new_aa   new_ac  new_ae  test2
[root@localhost demo]# cat new_aa 
eeeeeeeeeee:
eeeeeeeee
log.....
pi@swift-hub-006:/var/log$ head swift.log 
nohup: ignoring input
2022-07-12 20:43:05,028 - linkkit - INFO - start connect
2022-07-12 20:43:05,032 - linkkit - INFO - start connect
2022-07-12 20:43:05,035 - device_connector.ali_connect - ERROR - sensor6-1[sensors] - 'NoneType' object has no attribute 'status'
2022-07-12 20:43:05,037 - linkkit - INFO - start connect
2022-07-12 20:43:06,178 - linkkit - INFO - __on_internal_connect
//按大小分割
[root@localhost demo]# split -b 2k log.log size_
[root@localhost demo]# ls
@          demo2.txt  demodir1  demodir3  employee.txt  log.log  new_ab  new_ad  new_af   size_ab  test3
demo1.txt  demo3.txt  demodir2  demodir4  empty.txt     new_aa   new_ac  new_ae  size_aa  test2
  • 合并文件,paste,join
//paste命令能将文件按照行与行进行合并,中间使用tab隔开。-d(指定分隔符) -s(每个文件占用一行)
[root@localhost demo]# cat a.txt 
a01
a02
a03
a04
a05
a06
a07
a08
a09
[root@localhost demo]# cat password.txt 
p1
p2
p3
p4
p5
p6
p7
[root@localhost demo]# paste -d: a.txt password.txt  > aInfo.txt
[root@localhost demo]# ls
@                a.txt  demo2.txt  demodir1  demodir3  employee.txt  log.log  new_ab  new_ad  new_af        size_aa  test2
aInfo.txt  demo1.txt    demo3.txt  demodir2  demodir4  empty.txt     new_aa   new_ac  new_ae  password.txt  size_ab  test3
[root@localhost demo]# cat aInfo.txt 
a01:p1
a02:p2
a03:p3
a04:p4
a05:p5
a06:p6
a07:p7
a08:
a09:
//join命令针对每一对具有相同内容的输入行,整合为一行输出到标准输出,默认情况下是把输入的第一个字段作为连接字段,字段之间用空格隔开。join命令可以处理具有相关性的文件。
[root@localhost join]# cat a.txt 
s1 87
s2 83
s3 82
...
[root@localhost join]# cat b.txt 
s1 男
s2 女
s3 男
...
[root@localhost join]# join a.txt b.txt 
s1 87 男
s2 83 女
s3 82 男
...
  • 去重,uniq命令可以输出或忽略文件中的重复行。在工作中,我们常用的场景是使用sort命令对文件排序,然后使用uniq命令去重并计数。-c去除重复行 -d只显示重复行 -u只显示唯一行
// uniq + 文件 -c(显示重复的数量)
[root@localhost uniq]# cat multi1.txt 
line
line
line 2
line 2
line 2
line 2
line 2
line 2
line 2
line 23
[root@localhost uniq]# uniq multi1.txt 
line
line 2
line 23
[root@localhost uniq]# uniq -c multi1.txt 
      7 line
      7 line 2
      1 line 23
//当重复行没有连续时候,去除重复行仍然有重复的此时需要结合sort一起来使用
[root@localhost uniq]# cat multi.txt 
line
line
line2
line2
line
line3
line
line4
line3
line4
[root@localhost uniq]# uniq multi.txt 
line
line2
line
line3
line
line4
line3
line4
[root@localhost uniq]# sort multi.txt | uniq -c
      4 line
      2 line2
      2 line3
      2 line4
  • 三剑客:grep sed awk这三个命令基本能处理大部分文件情况这里不再说明,后续单独详细记录下。

文件权限


  • 查看权限lsattr
//lsattr(命令用于查看文件的扩展属性。)
[root@localhost demo]# lsattr -a log.log 
--------------- log.log
  • 设置文件权限,chown,chmod(改变目录或文件权限),chattr(改变文件扩展属性),chgrp
//chmod:改变文件或目录权限,只有文件的拥有者和root用户才能执行使用方式: chmod 【option】 【mode】 【file】
[root@localhost chmod]# chmod a= demo.txt #<===设置所有权限为空
[root@localhost chmod]# ll
total 0
----------. 1 root root 0 Jul 19 09:14 demo.txt
[root@localhost chmod]# chmod -R 7 demo.txt #<===设置文件权限可读可写可执行
[root@localhost chmod]# ll
total 0
-------rwx. 1 root root 0 Jul 19 09:14 demo.txt
//chown:改变文件或目录的用户和用户组,使用方式: chown 【选项】 【用户:用户组】 【文件或目录】
[root@localhost chown]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 19 09:29 demo.txt
[root@localhost chown]# chown aaa demo.txt #<=== 不存在的用户会报错
chown: invalid user: ‘aaa’
[root@localhost chown]# chown test demo.txt 
[root@localhost chown]# ll
total 0
-rw-r--r--. 1 test root 0 Jul 19 09:29 demo.txt
[root@localhost chown]# chown zz demo.txt 
[root@localhost chown]# ll
total 0
-rw-r--r--. 1 zz root 0 Jul 19 09:29 demo.txt
//chattr:用于改变文件扩展属性,与chmod相比chmod只是改变文件的读、写、执行权限,更底层,使用方式:chmod 【options】 【mode】 【file】
[root@localhost chattr]# touch demo.txt
[root@localhost chattr]# lsattr demo.txt 
---------------- demo.txt
[root@localhost chattr]# chattr +a demo.txt  #<===改变文件权限使其只能追加内容不能删除
[root@localhost chattr]# lsattr demo.txt 
-----a---------- demo.txt
[root@localhost chattr]# echo 222 >>demo.txt 
[root@localhost chattr]# lsattr demo.txt 
-----a---------- demo.txt
[root@localhost chattr]# cat demo.txt 
222
[root@localhost chattr]# sudo rm demo.txt  #<===删除失败
rm: cannot remove ‘demo.txt’: Operation not permitted
[root@localhost chattr]# chattr +i demo.txt #<===文件加锁使其只能只读
[root@localhost chattr]# lsattr demo.txt 
----ia---------- demo.txt
[root@localhost chattr]# rm demo.txt 
rm: remove regular file ‘demo.txt’? y
rm: cannot remove ‘demo.txt’: Operation not permitted

注:已知r权限对应的数字为4,w权限对应的数字为2,x权限对应的数字为1,“-”权限对应的数字为0。因此rwx权限换成数字一一对应于421,然后做个加法:4+2+1=7。同理r-x的数字权限总和为5,-wx的数字权限总和为3

总结


以上是对linux文件操作命令的整理,在复习每个命令的意义是都会在系统中操作一下,这样更能加深对该命令的了解。个人认为想要学习好Linux那了解他常用的命令是第一步也是最关键的一步,先掌握了才能使用好。


相关文章
|
14小时前
|
Linux 数据处理
Linux中的pr命令:数据格式化与打印的艺术
`pr`命令是Linux下用于文本格式化的工具,擅长分页、设置页眉页脚及列宽,方便打印和阅读。它可以处理文件、管道输入,常用参数如 `-h` 设定页眉,`-t` 设置页脚,`-l` 控制每页行数,`-w` 设置列宽。例如,`pr -h &quot;标题&quot; -t &quot;页码:%d&quot; -l 2 file.txt` 可以将文本文件格式化并添加定制的页眉页脚。结合其他命令使用能增强文本处理能力。记得测试输出,了解详细帮助可查阅`man pr`。
|
14小时前
|
监控 Linux
深入了解Linux的pmap命令:进程内存映射的利器
`pmap`是Linux下分析进程内存映射的工具,显示内存区域、权限、大小等信息。通过`/proc/[pid]/maps`获取数据,特点包括详细、实时和灵活。参数如`-x`显示扩展信息,`-d`显示设备。示例:`pmap -x 1234`查看进程1234的映射。注意权限、实时性和准确性。结合其他工具定期监控,排查内存问题。
|
14小时前
|
安全 NoSQL Linux
深入探索Linux命令pldd:用途、原理与最佳实践
`pldd`是Linux下用于显示进程加载的动态链接库的工具,非标准内核组件,但对调试和分析至关重要。通过读取`/proc`目录下的信息,它列出进程依赖的`.so`文件,提供实时视图。常用选项包括`-v`(详细信息)、`-p`(按PID查看)和`-n`(按进程名查看)。使用时注意权限、进程状态及系统兼容性。结合其他工具使用,可增强系统诊断能力。
|
15小时前
|
Web App开发 Linux 数据处理
深入理解Linux命令pkill:功能、原理与最佳实践
**pkill命令详解:在Linux中,pkill用于按进程名终止进程,简化了通过PID管理进程的步骤。它利用正则匹配支持模糊查找,可发送不同信号如SIGTERM或SIGKILL。常用示例包括:终止指定进程名、按用户或终端终止进程,以及使用-f进行模糊匹配。注意谨慎使用,避免误杀重要进程,先发送SIGTERM,无效再用SIGKILL。了解其权限需求和配合ps命令使用,能提升系统管理效率。**
|
17小时前
|
Java Linux 网络安全
Linux常用50个命令分享:功能、示例与实用技巧
Linux常用50个命令分享:功能、示例与实用技巧
5 0
|
20小时前
|
机器学习/深度学习 固态存储 Linux
一篇文章讲明白Linux下的ping命令用法与实现
一篇文章讲明白Linux下的ping命令用法与实现
|
21小时前
|
关系型数据库 MySQL Linux
技术笔记:Linux命令的返回值
技术笔记:Linux命令的返回值
|
10月前
|
安全 关系型数据库 MySQL
Linux学习笔记——Linux基本命令篇(三)
Linux学习笔记——Linux基本命令篇(三)
|
10月前
|
Linux 数据库 数据安全/隐私保护
Linux学习笔记——Linux基本命令篇(二)
Linux学习笔记——Linux基本命令篇(二)
|
10月前
|
Oracle 网络协议 Unix
Linux学习笔记——Linux基本命令篇(一)
Linux学习笔记——Linux基本命令篇(一)