实用的linux 命令上

今天介绍几个我常用的Linux 命令,每个命令这里只介绍其常用参数。

对于每个Linux 命令都可以使用man + 命令名称,查看其完整使用方法。

0,man

man 命令是一个非常有用的命令,当你不会使用某个Linux 命令时,可以使用man 来查看其帮助文档。man 命令查到的手册来源于目录 /usr/share/man/,可以看到该目录下有9 个这样的目录:

>>> ls /usr/share/man/| grep man
______________________________
man1
man2
man3
man4
man5
man6
man7
man8
man9

man 手册分9 种,用数字[1-9] 来区分,分别代表的含义如下(可以用man man 命令来查看):

数字 含义
1 System commands 系统命令
2 System calls 系统函数
3 Library calls 库函数
4 Special files 特殊文件
5 File formats 文件格式
6 Games 游戏和娱乐
7 Miscellaneous 杂项
8 System administration commands 管理员root 命令
9 其它

可以通过设置不同的数字来查看不同的手册,如下:

man 1 系统命令名
man 2 系统函数名
man 3 库函数名

如果没有带这个数字,则会从1 查到9,直到查到第一个为止。

一,文件管理

1,cat

cat 命令用于查看文件内容,该命令会将文件的所有内容输出到控制台

>>> cat hello.c
______________________________________
// 包含头文件
#include <stdio.h>   

// 程序入口,main 函数,返回值类型为int 类型
int main() 
{
    // 打印字符串
    printf("hello world .\n");

    return 0;
}

cat 命令常用参数:

参数 含义
-n 对输出的内容加上行号
-b 对输出的内容加上行号,空白行不计入行号
-s 将两个以上的空白行,显示为一个空白行

cat 命令会将文件内容快速的输出到控制台,它并不能控制浏览文件的进度。如果想控制浏览文件的进度,可以使用moreless 命令。

2,more

more 命令用于查看Linux 文件的内容,用more filename 打开一个文件后,可以控制向上向下翻滚页面。

>>> more log.txt
________________________________
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
--More--(2%)  (`注`:这里显示浏览页面的`进度百分比`)

more 命令常用操作:

操作 含义
Enter 键 向下翻滚一行
空格键 向下翻滚一页一页的大小可以使用 -N 参数来设置
Ctrl + B (本操作并不是很方便 ) 向上翻滚一页一页的大小可以使用 -N 参数来设置

使用下面的方式将一页 的大小设置为10 行,这时每次向上或者向下翻页时,每次会滚动10 行:

more -10 log.txt

more 命令可以与cat 命令来配合使用,比如用cat显示行号,然后用more 控制翻页,并且页的大小为10 行:

>>> cat -n log.txt| more -10
——————————————————————————————————————————
    56	1111111111111111111111111111111111
    57	1111111111111111111111111111111111
    58	1111111111111111111111111111111111
    59	1111111111111111111111111111111111
    60	1111111111111111111111111111111111
    61	1111111111111111111111111111111111
    62	1111111111111111111111111111111111
--More--
(`注`:第一列为行号,并且这时`进度百分比`消失了,而且`不能向上翻页`)

3,less

less 命令 也是用来浏览文件内容,但与more 命令 有些不同,less 命令有更多的操作。

用命令less filename 打开文件后的常用操作:

操作 含义
b 向上翻一页
d或者空格键 向下翻一页
k或者方向键↑ 向上翻一行
j或者方向键↓或者Enter 键 向下翻一行
/pattern 在页面中搜索字符串pattern,匹配到的字符串会高亮显示,可以用-i 参数来忽略大小写
n 锁定下一个匹配到的字符串pattern
N 锁定上一个匹配到的字符串pattern
q 退出当前文件

less 命令常用参数:

参数 含义
-i 忽略搜索/pattern时的大小写
-m 显示类似more 命令的进度百分比
-N 显示行号
-s 连续空白行显示为一行

如下命令,即显示行号又显示进度百分比

less -mN README.md

效果如下:

在这里插入图片描述

4,head

head 命令用于从一个文件的开头处查看文件。常用参数如下:

参数 含义
-n 查看一个文件的前N行,默认为前10 行
-c 查看一个文件的前N字节

如下命令查看hello.c 文件的前5 行:

>>> head hello.c -n 5
_______________________________________
// 包含头文件
#include <stdio.h>   

// 程序入口,main 函数,返回值类型为int 类型
int main()

如下命令查看hello.c 文件的前20 字节:

>>> head hello.c -c 20
_______________________________________
// 包含头文件
#

5,tail

tail 命令的含义与head 恰好相反,tail 从一个文件的尾部开始查看,常用参数如下:

参数 含义
-n 查看一个文件的最后N行,默认为后10 行
-c 查看一个文件的最后N字节
-f 实时查看文件的内容,并输出到控制台,常用于查看日志 输出

如下命令查看hello.c 文件的最后5 行:

>>> tail hello.c -n 5
_______________________________
    // 打印字符串
    printf("hello world 1.\n");
        
    return 0;
}

如下命令查看hello.c 文件的最后20 字节:

>>> tail hello.c -c 20
_______________________________
   
    return 0;
}

6,find

find 命令用来查找指定目录下符合指定条件的文件,并进行指定操作,其语法如下:

find `目录` `条件` `操作`

6.1 目录(可不写)

目录表示在哪个目录下进行查找。例如./ 代表当前目录,/ 代表根目录。如果没有写目录,默认会在当前目录及其子目录下查找。

6.2 条件(必须写)

查找符合怎样 条件的内容,支持如下常用条件(这里并没有列出所有可用条件):

参数 含义
-name 按照文件名称查找,支持* 通配符
-perm 按照文件权限查找
-user 按照文件属主查找
-group 按照文件所属的组查找
-prune 忽略某个目录
-mtime -n/+n 按照文件更改时间来查找,-n表示n天之内,+n表示n天之前
-atime -n/+n 按照文件访问时间来查找
-ctime -n/+n 按照文件创建时间来查找
-type 按照文件类型查找
-size N[bcwkMG] 按照文件大小查找,bcwkMG 是可选的单位
-depth 使查找在进入子目录前先行查找完本目录
-maxdepth 设置查找目录的最大深度
-mindepth 设置查找目录的最小深度

其中-type 支持的类型如下:

类型 含义
f 普通文件
d 目录
l 符号链接文件
s socket
b 块设备文件
c 字符设备文件
p 管道文件

6.3 操作(可不写)

对查找出来的文件进行怎样的操作,支持如下操作

操作 含义
-print 输出到控制台,不写的话,默认为此操作
-exec 对查找到的文件执行shell命令
-ok 对查找到的文件执行shell命令,在执行命令之前会先提示用户是否执行,比-exec 更安全

exec-ok 的格式为:

-exec/-ok command {} \;

其中可变的只有command,其它都是固定写法,不用改变,commandLinux 命令,比如lsrm

6.4 例子

find . -name "*.log"	`在当前目录及其子目录查找,文件名以".log" 结尾的文件,并输出`
find . -perm 777		`在当前目录及其子目录查找,权限为"777" 的文件,并输出`
find . -type d			`在当前目录及其子目录查找,文件类型为目录的文件,并输出`
find . -name "*.c" -exec rm {} \; `在当前目录及其子目录查找,文件名以".c" 结尾的文件,并删除`
find . -size +100c		`在当前目录及其子目录查找,文件大小大于100字节的文件,并输出`
find . -size -100c 		`在当前目录及其子目录查找,文件大小小于100字节的文件,并输出`
find . -size 100c		`在当前目录及其子目录查找,文件大小等于100字节的文件,并输出`

7,chmod

在类Unix 系统中,文件的调用权限分三级,分别是:文件拥有者群组其他。文件的操作权限 分三种分别是:可读可写可执行

chmod 命令用于修改文件的调用权限操作权限,该命令的语法格式如下(这里只列出了-R 参数,还有其它):

chmod [-R] `mode` `filename`

7.1 R参数(可选)

-R 参数表示,是否操作当前目录下的所有文件与子目录。

7.2 mode

mode 包含三部分:[ugoa]+-=[rwx],它们的含义如下:

字母 含义
u 该文件的拥有者
g 与该文件所属同一群组者
o 其它用户
a 所有用户,即ugo 三者皆是
+ 增加权限
- 取消权限
= 唯一设定权限,即设置为只有一个权限
r 可读权限
w 可写权限
x 可执行权限

7.3 例子

chmod ugo+r file			`将文件file 设为所有人皆可读`
chmod a+w file				`将文件file 设为所有人皆可写`
chmod ug+w,o-w file1 file2	`将文件file1 file2设为该文件拥有者,与其所属同一个群组者可写入,但其它用户不可写`
chmod -R a+r dir/*			`将dir 目录下的所有文件与子目录设为所有人可读`

8,chown

chown 命令用于将文件的拥有者改为指定的用户或组。

一般来说chown 命令由root 使用,因为普通用户没有权限改变他人文件的拥有者,也没有权限把自己的文件拥有者改设为他人。

chown 命令的语法格式如下:

chown [-R] user[:group] file_list

-R 参数表示,是否操作当前目录下的所有文件与子目录。

其它参数含义:

参数 含义
user 新的文件拥有者
group 新的文件拥有者组
file_list 要修改的文件,可以是一个文件,也可以是一个文件列表

例子:

chown runoob:runoobgroup file	`将文件file 的拥有者设为runoob,群组设为runoobgroup`
chown -R root:root dir/*		`将dir/ 目录下的所有文件与子目录的拥有者设为runoob,群组设为runoobgroup`

9,scp

scp 命令用于远程复制目录或文件,它基于sshscpsecure copy 的缩写。scp 命令是rcp 命令的加强版,scp 是加密传输,rcp 是非加密传输。

scp 的语法格式如下:

scp [可选参数] file_source file_target 

有如下常用可选参数

参数 协议
-1 使用协议ssh1 传输
-2 使用协议ssh2 传输
-4 使用IPv4协议寻址
-6 使用IPv6协议寻址
-C 使用压缩
-r 递归复制整个目录
-P 指定传输端口

例子:

scp local_file remote_username@remote_ip:remote_folder	`指定了用户名,命令执行后需要再输入密码`
scp local_file remote_ip:remote_folder	`没有指定用户名,命令执行后需要输入用户名和密码`

scp -r local_folder remote_username@remote_ip:remote_folder	`复制目录`
scp -r local_folder remote_ip:remote_folder					`复制目录`

scp remote_username@remote_ip:remote_file local_folder		`从远程复制到本地`
scp -r remote_username@remote_ip:remote_folder local_folder	`从远程复制到本地`

二,文档处理

10,wc

wc 命令用于计算行数字数文件大小(以字节为单位),其语法格式如下:

wc [-lcw] filename

其参数含义如下:

参数 含义
-l 计算文件行数
-c 计算文件大小
-w 计算文件字数
不带参数 以上三者都会计算

11,grep

grep 命令用于查找文件中符合特定条件的字符串,其语法格式如下:

grep `[参数]` `匹配条件` `文件`

常用参数如下:

参数 含义
-c 计算符合条件的行数
-e 使用正则表达式,一个-e 后只能跟一个pattern,可以写多个-e
-E 使用正则表达式,可以使用| 来分割多个pattern ,从而写多个pattern
-i 忽略大小写
-l 只列出符合条件文件名
-L 只列出不符合条件文件名
-n 显示行号
-o 只显示匹配pattern 的部分,这个参数很有用
-v 显示不符合条件的所有行
-r 递归目录查找
--color 使匹配到的字符串高亮显示
-A<行数N> 除了显示符合条件的那一行之外,还显示该行之后N行的内容
-B<行数N> 除了显示符合条件的那一行之外,还显示该行之前N行的内容
-C<行数N> 除了显示符合条件的那一行之外,还显示该行之前和之后N行的内容

例子:

grep test *file    `在当前目录下,从所有的以"file" 为后缀的文件中,匹配字符串"test"`
grep -r hello ./   `在当前目录下,递归所有的文件和目录,匹配字符串"hello"`
grep -v hello *txt `在当前目录下,从所有的以"txt" 为后缀的文件中,显示所有不匹配字符串"hello" 的行`

下面三个命令sortuniqawk 相对来说较复杂,限于篇幅,所以不在本文中详细介绍,具体可点开相应链接查看。

12,sort

sort 命令用于将文本内容进行排序,其以文本内容的为单位,以ASCII 码的次序进行排列。

详见这里

13,uniq

uniq 命令用于检查及删除文本文件中重复出现的行列。

详见这里

14,awk

awk 命令是一个强大的文本分析工具,它有着复杂的功能。

详见这里

(完。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限!!!粘滞位!!!超详解!!!
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Windows、Linux、MacBook_mack book 安装qt
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Linux——了解操作系统的发展历史以及初次体验Linux编程环境
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,个人学习时很认真的记录的,觉得好的麻烦点个赞。
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)_openssh_9.5p1
文章浏览阅读3.5k次,点赞93次,收藏78次。初识Linux中的线程,理解线程的各种概念,理解进程地址空间中的页表转换,介绍pthread线程库并理解线程库!
文章浏览阅读863次。出现此问题为Linux文件权限问题,解决方案为回到引擎目录执行命令。输入用户密码后运行./UnrealEditor。_increasing per-process limit of core file size to infinity.
文章浏览阅读2.9k次。使用文本编辑器:打开CSV文件,并使用文本编辑器(如Notepad++、Sublime Text、Visual Studio Code等)来查看文件的字符编码格式。通常在编辑器的底部状态栏或设置中可以找到当前编码的显示。请注意,上述方法并非绝对准确,特别是当文件没有明确的编码标识时。因此,如果你发现CSV文件在不同的工具或方法中显示不同的编码格式,可能需要进行进一步的分析和判断,或者尝试使用不同的编码转换方法。该命令将输出文件的MIME类型和编码信息。使用命令行工具:在命令行中,你可以使用。_shell读取csv文件逐行处理
本文介绍了如何在Linux系统中升级gcc版本,以便更好地支持C++11及以上版本的新特性。通过升级gcc,可以提升编译器的功能和性能,获得更好的开发体验。详细的步骤和方法请参考原文链接。
文章浏览阅读4.4k次,点赞6次,收藏19次。Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。_linux mosquitto
文章浏览阅读7.2k次,点赞2次,收藏12次。Linux中,用于根目录下有一个.ssh目录,保存了ssh相关的key和一些记录文件。_~/.ssh/
文章浏览阅读4.5k次,点赞5次,收藏18次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具
文章浏览阅读3.5k次,点赞7次,收藏24次。本地部署和使用llama.cpp进行量化Llama2,linux和Windows平台方案,支持CPU和GPU多版本。_llama cpp gpu
文章浏览阅读1.4k次,点赞46次,收藏44次。在vim中,最为常见的有三种模式,分别是:命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+: 即可进入该模 式。在进入vim后,使用 i 进入插入模式,插入模式就是vim的编辑模式,可以在vim中进行内容的编辑和修改。vim的核心模式,使用vim进入文件编辑时的最初模式,在该模式中只能移动光标和使用命令对文件内容进行编辑。
Linux常用命令大全,包括目录操作命令和文件操作命令,以及查看登录用户命令和文件内容查看命令等。
文章浏览阅读1.7k次,点赞57次,收藏50次。Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用.本地部署,注重隐私,简单高效的MYSQL审计平台。下面介绍Linux 简单部署Yearning 并结合cpolar 内网穿透工具实现远程访问,破除访问限制,提高工作效率!!
文章浏览阅读1.9w次,点赞7次,收藏18次。Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能,为用户带来更加流畅的浏览体验。Edge最近推出了分屏功能,支持一个窗口同时显示两个选项卡,这可以大大提高生产力和多任务处理能力。欢迎大家使用分屏及其他新功能后分享自己的使用心得与建议。首先,使用Microsoft Edge的分屏功能确实能够提高生产力,尤其是在需要同时浏览两个不同网页的情况下。分屏功能使得在一个窗口中同时显示两个选项卡,用户可以在两个网页之间快速切换,而无需打开新的窗口或使用多个浏览器窗口。_edge linux
文章浏览阅读1.8k次,点赞83次,收藏71次。C语言实现倒计时和进度条并进行演示。_linux不换行输出倒计时
文章浏览阅读1.5k次,点赞28次,收藏25次。基于嘉立创泰山派开发板,本机使用VMware+Unbuntu,编译泰山派的Linux SDK。详细教程,0基础小白可操作!内涵大量基础操作和linux基本知识。_立创泰山派sdk编译