4 解锁 Linux 操作新姿势:man、grep、tar ,创建用户及添加权限等 10 大实用命令详解

Hellow! 铁子们,书继续接上文本文继续介绍Linux下一些其他实用命令的介绍


目录

[1. man - 查看命令手册](#1. man - 查看命令手册)

[2. grep - 文本搜索工具](#2. grep - 文本搜索工具)

管道符和grep配合使用

[. history - 查看命令历史](#. history - 查看命令历史)

[5. which&whereis](#5. which&whereis)

[6 zip/unzip指令](#6 zip/unzip指令)

[7 rz(receive)//sz(send)命令(重点)](#7 rz(receive)//sz(send)命令(重点))

8tar指令(重要)

[9 uname‒r指令](#9 uname‒r指令)

[10 echo与重定向符 >& >>](#10 echo与重定向符 >& >>)

[11 添加用户和修改用户权限](#11 添加用户和修改用户权限)

[12 授予sudo权限](#12 授予sudo权限)

关于指令的理解


1. man - 查看命令手册

功能 :显示命令的详细帮助手册(Manual),包含功能、选项、示例等。 操作手册按页显示,按 Space 翻页,q 退出/关键词 搜索内容

• -k根据关键字搜索联机帮助

• num 只在第num章节查找

• -a 将所有章节的都显⽰出来,⽐如man printf它缺省从第⼀章开始搜索,知道就停⽌,⽤a选项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕 解释⼀下:man⼿册分为9章(不同系统可能会有差别)

• 1是普通的命令

2是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么 头⽂件)

3是库函数,如printf,fread

4是特殊⽂件,也就是/dev下的各种设备⽂件

• 5是指⽂件的格式,⽐如passwd,就会说明这个⽂件中各个字段的含义

• 6是给游戏留的,由各个游戏⾃⼰定义

• 7是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明

• 8是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig

whb@bite-alicloud test\]$ man printf # 查看printf指令(没错,printf也是⼀个指令) 1 \[whb@bite-alicloud test\]$ man fork # 查看系统调⽤,默认没有这个指令,man就⾃动 去2号⼿册查找 \[whb@-alicloud test\]$ man 2 frok # 查看系统调⽤ \[whb@-alicloud test\]$ man 3 printf # 查看C库函数 \[whb@-alicloud test\]$ man 7 signal # 查看变量 \[whb@-alicloud test\]$ man 7 environ \[whb@-alicloud test\]$ man man # 查看man⼿册⾃⼰

进入手册页面使用 /搜索手册中的相关词,比如搜索return value这几个单词 :/return value 然后回车即可

2. grep - 文本搜索工具

grep [选项] 搜寻字符串 ⽂件 功能: 在⽂件中搜索字符串,将找到的⾏打印出来 常用选项

  • -i:忽略大小写(如 grep -i "error" log.txt 搜索包含 errorError 的行)。

  • -r:递归搜索目录下的所有文件(grep -r "password" /etc 搜索 /etc 目录下含 password 的文件)。

  • -n:显示匹配行的行号。

  • -v:反向匹配,显示不包含关键词的行。

whb@alicloud test\]$ cat temp.txt abcd ABCD hello bite 1234 #基本查找 \[whb@alicloud test\]$ grep "abcd" temp.txt abcd # 忽略⼤⼩写的不同,所以⼤⼩写视为相同 \[whb@alicloud test\]$ grep -i "abcd" temp.txt abcd ABCD # 顺便输出⾏号 \[whb@alicloud test\]$ grep -n "abcd" temp.txt 1:abcd \[whb@alicloud test\]$ grep -ni "abcd" temp.txt 1:abcd 2:ABCD # 反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏ \[whb@alicloud test\]$ grep -v "abcd" temp.txt ABCD hello bite 1234 \[whb@alicloud test\]$ grep -vn "abcd" temp.txt 2:ABCD 3:hello 4:bite 5:1234 \[whb@alicloud test\]$ grep -vni "abcd" temp.txt 3:hello 4:bite 5:1234

管道符和grep配合使用

cxk@iZbp1eohssncs8onmdq5v3Z:~$ cat t.txt

asdasfasfa

afsf

qr

qwqw

asfasfas

cxk@iZbp1eohssncs8onmdq5v3Z:~$ cat t.txt | grep qw #把cat输出重定向到grep命令中去,输出有qw字符串的行。

qwqw

. history - 查看命令历史

功能 :显示当前用户执行过的命令历史记录(默认保存最近 1000 条)。 常用操作

  • 执行历史命令:按 键向上翻阅,或用 !编号 执行对应编号的命令(如 !123 执行历史中第 123 条命令)。

  • 搜索历史命令:按 Ctrl+R 后输入关键词,匹配到后按 Enter 执行。

  • 清除历史:history -c 清空当前会话的命令历史(永久清除需删除 ~/.bash_history 文件)。

这些命令覆盖了 Ubuntu 日常使用中的大部分场景,熟练掌握后能显著提升终端操作效率。如需更深入的用法,可通过 man 命令名 查看官方手册。

5. which&whereis

which:

功能:搜索系统指定的命令 举例:

whb@alicloud test\]$ which ls alias ls='ls --color=auto' /usr/bin/ls \[whb@alicloud test\]$ which pwd /usr/bin/pwd

whereis: 功能:⽤于找到程序的源、⼆进制⽂件或⼿册 举例:

whb@-alicloud test\]$ whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz \[whb@-alicloud test\]$ whereis libc.so libc: /usr/lib64/libc.so /usr/lib64/libc.a /usr/share/man/man7/libc.7.gz

6 zip/unzip指令

语法: zip 压缩⽂件.zip ⽬录或⽂件 功能:将⽬录或⽂件压缩成zip格式 常⽤选项

•-r:递归处理,将指定⽬录下的所有⽂件和⼦⽬录⼀并处理 举例

将test2⽬录压缩: zip test2.zip test2/* #被压缩的文件名后缀为.zip

解压到tmp⽬录: unzip test2.zip -d /tmp

7 rz(receive)//sz(send)命令(重点)

没有命令的可以下载,如centos系统:sudo yum/apt install -y lrzlz

rz :从windows拖拽文件到Linux中

sz 文件名:从Linux把指定文件传到windows中,不过一般打包之后传比较快

8tar指令(重要)

打包/解包,不打开它,直接看内容 语法: tar [-cxtzjvf] ⽂件与⽬录 .... 参数:

• -c:建⽴⼀个压缩⽂件的参数指令(create的意思);

• -x:解开⼀个压缩⽂件的参数指令!

• -t:查看arfile⾥⾯的⽂件!

• -z:是否同时具有gzip的属性亦即是否需要⽤gzip压缩

• -j:是否同时具有bzip2的属性亦即是否需要⽤bzip2压缩

• -v:压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!

• -f:使⽤档名,请留意,在f之后要⽴即接档名喔!不要再加参数!

• -C:解压到指定⽬录

案例: 范例⼀:将整个/etc⽬录下的⽂件全部打包成为/tmp/etc.tar

[root@linux ~]$ tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]$ tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]$ tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

特别注意,在参数f之后的⽂件档名是⾃⼰取的,我们习惯上都⽤.tar来作为辨识。 如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tarfile〜 如果加j参数,则以.tar.bz2来作为附档名啊〜

范例⼆:查阅上述/tmp/etc.tar.gz⽂件内有哪些⽂件

root@linux \~\]$ tar -ztvf /tmp/etc.tar.gz

由於我们使⽤gzip压缩,所以要查阅该tar file内的⽂件时,就得要加上z这个参数了!这很重要的。使用什么压缩选项就加什么压缩选项

范例三:把压缩包解压缩

解压缩到当前目录

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls

l Linux myd1 scott_data.sql test.tar t.txt yyy

cxk@iZbp1eohssncs8onmdq5v3Z:~$ tar -xzvf test.tar #把当前压缩报解压到当前文件目录,使用什么压缩

#选项就加什么压缩选项解压

myd1/

myd1/ddd/

myd1/ddd/t.txt

myd1/ddd/ddd/

解压缩到指定目录

cxk@iZbp1eohssncs8onmdq5v3Z:~$ tar -xzvf test.tar -C ./myd1# -C路径选项 后面接路径(目录)

yyy/

yyy/r

yyy/tt/

yyy/tt/t.txt

yyy/tt/t2

yyy/tt/myd/

yyy/tt/myd/t.txt

yyy/tt/myd/ddd/

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls

l Linux myd1 scott_data.sql test.tar t.txt yyy

范例四:Linux机器互传压缩包

scp 压缩包名称 用户名@对方主机的公网ip:对方主机的路径(目录)

如:scp t.tar cxk@11.11.11:/home/cxk/h

9 uname‒r指令

语法:uname[选项] 功能:uname⽤来获取电脑和操作系统的相关信息。 补充说明:uname可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。 常⽤选项:

• -a或‒all详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理 器类型,硬件平台类型,操作系统名称

10 echo与重定向符 >& >>

echo命令类似于pritf的功能,把后面所有的内容当做字符串输出的标准输出文件中即屏幕。

cxk@iZbp1eohssncs8onmdq5v3Z:~$ echo lll

lll

#把echo要输出的字符串重定向输出到指定文件中,如果文件不存在则创建,如果存在且文件有内容则清空

>文件名可以快速清空文件内容或者创建文件

cxk@iZbp1eohssncs8onmdq5v3Z:~$ echo lllfff > t.txt

cxk@iZbp1eohssncs8onmdq5v3Z:~$ vim t.txt

#也是重定向输出到指定文件中但是不清空而是追加

cxk@iZbp1eohssncs8onmdq5v3Z:~$ echo lllfff >> t.txt

cxk@iZbp1eohssncs8onmdq5v3Z:~$ vim t.txt

11 添加用户和修改用户权限

一、添加新用户

  1. ‌**使用adduser命令(交互式推荐)**‌ 执行命令后会自动创建家目录、用户组,并提示设置密码及其他信息:

sudo adduser <用户名>

示例:sudo adduser user01会引导输入密码及可选信息。

12 授予sudo权限
  1. 通过usermod添加到sudo组 ‌ 这是最简便的方法,将用户加入sudo组即可获得权限:

sudo usermod -aG sudo <用户名> # -aG表示追加到组

验证权限:sudo whoami应返回root

‌2 .直接编辑/etc/sudoers文件‌ 若需更精细控制权限,可手动修改配置文件:

sudo visudo # 安全编辑工具

在文件中添加行: <用户名> ALL=(ALL:ALL) ALL 保存后生效。

关于指令的理解

指令就是指定路径下的可执行程序(which命令就可以查看在哪个路径下),当输入对应的指令就会执行对应的程序,然后把结果输出到标准输出文件,所有指令的输出也可以重定向比如:

#把ls指令的结果重定向输出到指定文件中

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls -l > t.txt

cxk@iZbp1eohssncs8onmdq5v3Z:~$ vim t.txt


本期收录于博主的专栏------Linux专栏,其实后面还有更多的指令嘿嘿,当然还有几个有趣的指令的,黑客帝国知道吧,里面有一幕是电脑界面有一个炫酷的动画,其实Linux下是有的,而且效果不能说大差不差只能说一毛一样。

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:小董 不懂 *( ̄▽ ̄)°★*


相关推荐
程序员老舅4 小时前
干货|腾讯 Linux C/C++ 后端开发岗面试
linux·c语言·c++·编程·大厂面试题
爱倒腾的老唐5 小时前
24、Linux 路由管理
linux·运维·网络
程序员Aries5 小时前
自定义网络协议与序列化/反序列化
linux·网络·c++·网络协议·程序人生
_清浅5 小时前
计算机网络【第六章-应用层】
运维·服务器·计算机网络
泽02025 小时前
Linux之环境变量
java·linux·redis
正在努力的小河5 小时前
Linux 自带的 LED 灯驱动实验
linux·运维·服务器
济南java开发,求内推5 小时前
Redis一个服务器部署多个节点
服务器·数据库·redis
恒创科技HK6 小时前
如何选30G、60G、100G的香港高防服务器?
运维·服务器
Le_ee6 小时前
Apache2
服务器·网络安全·apache·web