首页 > 系统相关 >Linux相关命令的使用

Linux相关命令的使用

时间:2024-09-14 21:21:07浏览次数:3  
标签:文件 sudo tar hqyj Linux 命令 file 归档 相关

一、压缩和归档的命令

1.1 压缩和解压缩

操作对象是 单个文件

压缩方式:

gzip ---> .gz

bzip ---> .bz2

xz ---> .xz

上是三种压缩方式:压缩率依次递减,压缩速率依次递减

gzip file //将文件 file 按 gzip 格式进行压缩

//压缩之后原文件就不存在了,只留下名为file.gz的压缩后的文件

解压缩:gunzip file.gz

bzip2 file //将文件 file 按 bzip2 格式进行压缩

//压缩之后原文件就不存在了,只留下文件名为file.bz2的压缩的文件

解压缩:bunzip2 file.bz2

xz file //将文件file按xz格式进行压缩

//压缩之后原文件就不存在了,只留下文件名为file.xz的压缩的文件

解压缩:unxz file.xz

1.2 归档和解归档

归档的作用是将多个文件归档成一个文件 归档操作的对象都是整个目录

归档的命令 tar

tar的命令选项:

-c 归档

-x 解归档

-v 显示详细信息

-f 必须加在选项的最后

附加选项

-z 归档的同时将文件按gzip格式压缩

-j 归档的同时将文件按bzip2格式压缩

-J 归档的同时将文件按xz格式压缩

归档:

tar -cvf 归档后的文件名 要归档的对象 //归档后的文件名一般是在原名后面加 .tar 即可

//归档操作原文件会保留

例如:

tar -cvf hqyj.tar hqyj //将hqyj目录及其子目录下的所有文件归档成一个名为hqyj.tar的文件

解归档:

tar -xvf 归档后的文件名(要解归档的文件名) //将归档后的文件进行解归档 原文件也会保留

例如:

tar -xvf hqyj.tar

注意:对归档后的单个文件就可以使用 gzip bzip2 xz 进行压缩了。

归档的同时也可以进行压缩:

tar -zcvf hqyj.tar.gz hqyj //将目录hqyj及其子目录下的内容归档并按gzip格式压缩

//生成 hqyj.tar.gz文件(注意:文件名最好符合规范)

tar -jcvf hqyj.tar.bz2 hqyj //将目录hqyj及其子目录下的内容归档并按bzip2格式压缩

//生成 hqyj.tar.bz2 文件 (注意:文件名符合规范)

tar -Jcvf hqyj.tar.xz hqyj //将目录 hqyj 及其子目录下的内容归档并按照xz格式压缩

//生成的 hqyj.tar.xz 文件(注意:文件名最好符合规范)

解压缩解归档:

tar -zxvf hqyj.tar.gz

tar -jxvf hqyj.tar.bz2

tar -Jxvf hqyj.tar.xz

通用的解压缩解归档的命令:tar -xvf hqyj.tar.(gz/bz2/xz) //()里面的内容三选一

二、查看文件内容的命令

2.1 cat命令

cat file //查看文件所有内容

cat -n file //查看文件所有内容 显示行号

2.2 head 命令

head file //查看文件开头的内容 默认显示前10行

head -n 5 file //查看文件前5行的内容

head -5 file //查看文件前5行的内容

2.3 tail 命令

tail file //查看文件结尾的内容 默认显示后10行

tail -n 5 file //查看文件后5行的内容

tail -5 file //查看文件后5行的内容

tail -f file //动态显示文件内容的新增情况-----常用于查看日志文件

| 管道符 //将前面的命令的结果 作为后面命令的参数

head -n 60 file | tail -n 10 查看文件第 51-60 行的内容

2.4 more 命令

more flie //按百分比显示文件内容

//回车键 向下滚动

// q 键 退出显示

2.5 less 命令

less file //滚动显示文件内容

// 方向键 上下 控制滚动

// q 键 退出显示

2.6 查看二进制文件的命令

od -c 二进制文件名

三、统计文件内容的命令--wc

wc file //统计文件内容

结果如下:

1000003 1000003 6000019 01test.txt

| | | |

行数 单词数 字符数 文件名

wc -l file //(小写的L)统计文件的行数-----line //比较常用

wc -w file //统计文件的单词书-----word

wc -c file //统计文件的字符数-----char

wc 命令支持使用通配符来一次统计多个文件

四、检索文件的内容的命令---grep

grep "string" file //在文件file中查找所有包含string的行

grep命令的常用选项:

-n 带行号显示

-i 忽略大小写

-w 精确查找string 必须独立出现的地方 有前缀后缀都不行

-v 反选-------查找不包含string的行

-R 递归查找,可以在子目录中查找

常用用法:

grep -nR "string" * 在当前目录及子目录下的所有文件中检索包含string的行且带行号显示

grep 命令查找字符串的写法说明:

grep "^string" file //在文件中查找所有以string开头的行

grep "string$" file //在文件中查找所有以string结尾的行

grep "^string$" file //在文件中查找所有string独立成行的行

grep命令即可以应用于检索文件内容,也多和管道符配合使用被用于检索某个命令执行的结果

如:

ls -l 查看当前目录下所有文件的详细信息

ls -l | grep "a.c" 表示在ls -l的结果中 筛选出 包含 a.c 的行

五、查找文件的命令--find

find 路径 -name 文件名 在指定目录及其子目录下查找是否有想要的文件

eg:

find ./ -name "hello.c" 查找当前目录下所有的hello.c

find /usr/include -name "string.h" 查找/usr/include其子目录下所有的string.h

注意:find支持使用通配符 但要注意以下用法 (错误示例,尽量别用):

find ./ -name *.c //要特别注意此种写法,它并不表示查找当前目录及其子目录下的所有.c文件

//而是在当前路径下 匹配所有.c文件,并把结果作为find的参数

//如果当前路径下只有一个a.c执行不报错,但找到的是所有的a.c

//如果当前路径下有多个.c文件,执行就会报错:参数过多

正确的查找指定路径及其子目录下所有.c结尾的文件的方式是:

find 路径 -type f | grep "\.c&" //f 表示普通文件

find 路径 -type f | grep "\.c$" | wc -l //统计指定路径下.c 文件的个数

| xargs 表示将前面的命令的结果 逐个 的赋值给后面的命令当作参数

find 路径 -type f | grep "\.c$" | xargs wc -l //统计指定路径下.c 文件的行数

六、文件内容截取的命令---cut

-d 分隔符

-f 指定要选择的域

注意:

1.cut 操作时是以行为单位操作 如果是某一行没有指定的分隔符 就不处理

2.如果指定的分隔符 是特殊字符 如 双引号 需要使用 \"

eg:

练习:

Linux系统中 /etc/password 文件中记录的是用户相关的信息

linux: x : 1000 : 1000 : linux,,, : /home/linux : /bin/bash

用户名 是否有密码 用户名id 组id 描述字段 用户的家目录 默认的命令行解析器

搭配命令,将Linux用户信息在、etc/passwd 文件中的行号显示出来

cat /etc/passwd | cut -d : -f 1 | grep -n "^linux$" | cut -d : -f 1

七、通配符

7.1 *

通配任意长度的任意字符

原有文件:

01test.txt 03test.txt 2.c a.c b.c c.c hello.c

02test.txt 1.c 3.c A.c B.c C.c

ls *.c的结果:

1.c 2.c 3.c a.c A.c b.c B.c c.c C.c hello.c

ls B*的结果:

B.c

7.2 ?

通配一个长度的任意字符

原有文件:

01test.txt 03test.txt 2.c a.c b.c c.c hello.c

02test.txt 1.c 3.c A.c B.c C.c

ls ?.c 的结果:

1.c 2.c 3.c a.c A.c b.c B.c c.c C.c

ls ?????.c 的结果:

hello.c

7.3 [字符1字符2...字符n]

通配[]内的任意一个字符

原有文件:

01test.txt 03test.txt 2.c a.c b.c c.c hello.c

02test.txt 1.c 3.c A.c B.c C.c

ls [1abcxyz].c 的结果:

1.c a.c b.c c.c

7.4[起始字符-结束字符]

通配[起始字符,结束字符]内任意一个字符

原有文件:

01test.txt 03test.txt 2.c a.c b.c c.c hello.c

02test.txt 1.c 3.c A.c B.c C.c

ls [b-d].c 的结果:

b.c c.c

7.5 [^字符1字符2...字符n]

反选:通配除了[]里的任意一个字符

原有文件:

01test.txt 03test.txt 2.c a.c b.c c.c hello.c

02test.txt 1.c 3.c A.c B.c C.c

ls [^aBc].c的结果:

1.c 2.c 3.c A.c b.c C.c

八、用户管理相关命令-----了解

Linux系统是多用户的操作系统。

8.1 添加用户

sudo adduser 用户名

创建成功后会在 /etc/passwd 文件中新增的新用户的信息

在 /etc/group 文件中新增新组的信息

注意:新添加的用户是不能以sudo 权限执行命令的

会报错:xxx 不在 sudoers 文件中。此事将被报告

解决:

切换到root用户下 : su root

给 sudoers 文件添加写权限:chmod u+w /etc/passwd

打开这个文件 vi /etc/passwd

找到 root ALL.........这一行 复制yy 粘贴p

将新行的root改成自己新的用户名

:wq 保存退出

给sudoers 文件减掉写权限 : chmod u-w /etc/sudoers

exit 退出

8.2 切换用户

su 用户名

8.3 查看当前使用的用户

whoami

8.4 退出用户

exit

8.5 修改用户密码

注意:只有用户自己root用户可以修改用户的密码

passwd 用户名

8.6 修改用户信息--usermod

sudo usermod -c "string" user1 //将用户user1的描述字段改成string

sudo usermod -d /home/xxx user1 //将用户user1的家目录改成 /home/xxx

//如果草率的修改了用户的家目录可能会导致用户用不了

//因为用户的家目录下有一些和用户相关的配置文件(隐藏文件)

//如果要改家目录 需要将这些配置文件迁移到新目录

sudo usermod -l beijing user1 //将用户user1的用户名改成beijing

sudo usermod -g beijing user1 //将用户user1的所属用户组改成beijing

8.7查看用户简略信息

id 用户名

8.8 删除用户

sudo deluser 用户名

8.9 删除组

sudo delgroup 组名

九、关机和重启的命令

9.1 关机的命令

sudo shutdown -h 10:30 //10:30关机

sudo shutdown -h +20 //20分钟后关机

sudo shutdown -h now //立即关机

9.2 重启的命令

sudo shutdown -r 10:30 //10:30重启

sudo shutdown -r +20 //20分钟后重启

sudo shutdown -r now //立即重启

sudo reboot //立即重启

十、文件权限管理*****

10.1 文件的权限

- rw-rw-r-- 1 linux linux 5.8M 9月 12 18:47 01test.txt

类型 权限 硬链接个数 所属用户 所属组 大小 时间戳 文件名

rw-rw-r--

rw- 所属用户的权限

rw- 所属组的权限

r-- 其他人的权限

r 读权限

w 写权限

x 执行权限

- 没有对应的权限(哪个权限没有哪个权限就显示 - )

10.2 修改文件权限--chmod

u 所属用户 user

g 所属组 group

o 其他人 other

a 所有人 all

例如:

chmod g-w 文件名 //将文件 所属组的写权限剪掉

chmod u/g/o/a某用户 +/- r/w/x 任意权限 加上或剪掉某用户的某权限

10.2.2 通过八进制数修改权限

Linux中使用3位八进制数 来表示文件的权限

eg:rw-rw-r-- 0664

rw-r----- 0640

r-x--x-w- 0512

chmod 0654 文件名 //将文件的权限改为 rw-r-xr--

10.3 修改文件的所属用户

注意:只有root用户才可以修改文件的所属用户

sudo chown user1 file //将文件file的所属用户改为user1 chown -> change own

十一、磁盘相关的命令

11.1查看系统磁盘的信息

sudo fdisk -l

其中 sda 表示系统盘 5 表示的分区编号

如果有外接硬盘,设备名依次是 sdb sdc sdd...

11.2 查看磁盘使用情况

df -h

11.3 挂载磁盘

Ubuntu20.04是提供默认挂载功能的 有些系统不提供 需要手动挂载

挂载

sudo mount /dev/sdb1(设备名) 要挂载的目录

挂载之后就可以通过挂载的目录访问硬盘

解除挂载

sudo umount /dev/sdb1(设备名)

11.4 对硬盘的操作

sudo fdisk 设备名

命令(输入 m 获取帮助): m

d 删除分区

F 列出未分区的空闲区

l 列出已知分区类型

n 添加新分区

p 打印分区表

t 更改分区类型

v 检查分区表

i 打印某个分区的相关信息

w 将分区表写入磁盘并退出

q 退出而不保存更改

11.5 指定磁盘的类型

FAT32类型 不能存储单个的超过4GB的文件

NTFS类型 可以存储单个的超过4GB的文件

sudo mkfs.ntfs 设备名 将磁盘格式化为 NTFS类型

sudo mkfs.ntfs 设备名 将磁盘格式化为FAT32类型

标签:文件,sudo,tar,hqyj,Linux,命令,file,归档,相关
From: https://blog.csdn.net/2303_78438820/article/details/142185946

相关文章

  • Linux相关命令及shell命令
    一、链接文件1.1软链接(符号链接)ls-l能看到类型为链接文件的都是软连接软连接类似于windows的快捷方式创建软连接的方式:ln-s被链接的文件文件名要生成的文件名注意:1.我们一般创建软连接时最好使用绝对路径否则一旦相对位置发生变化链接就会失效。2.如果被链......
  • (Linux)嵌入式打卡第十一天
    指针数组简介概念:指针数组的本质是一个数组,只不过数组里面的每一个元素都是指针;定义格式:数组类型*数组名[成员个数];eg://定义一个数组,数组里面的每一个元素都是int*类型int*arr[5];指针数组使用#include<stdio.h>intmain(int......
  • Linux下载软件及卸载
    Linux发展史汤姆森·肯---UNIX之父斯托曼发起GNU计划莱纳斯linux之父现在主流的基于Linux的系统的发行版本centos、Ubuntu、Deepin(国产)、RedHat、...查看Ubuntu版本:cat/etc/issue查看内核版本:uname-a嵌入式层次结构一、用户空间命令脚本(命令的集合)app----......
  • linux 模拟题
    一,填空题linux主要是基于各种       来完成各种操作。打印当前所在的位置的命令是       linux的选项是哪两种        当前登录的用户tom,切换至用户家目录        想要使用命令本身的作用       ......
  • linux ln 命令
    ln是Linux系统中的一个命令,用于创建链接(link)或者链接一个目录。它主要有两种常见的用法:创建硬链接和符号链接(软链接)。1.创建硬链接:硬链接是在文件系统中创建一个文件的副本,它们共享相同的inode和数据块。当我们删除原始文件时,硬链接仍然会存在,并且可以继续访问文件的内容。创建......
  • Linux本地部署DbGate结合内网穿透工具实现无公网IP远程管理数据库
    文章目录前言1.安装Docker2.使用Docker拉取DbGate镜像3.创建并启动DbGate容器4.本地连接测试5.公网远程访问本地DbGate容器5.1内网穿透工具安装5.2创建远程连接公网地址5.3使用固定公网地址远程访问前言本文主要介绍如何在LinuxUbuntu系统中使用Docker部......
  • 常用的ADB命令
    ADB(AndroidDebugBridge)是一种功能强大的命令行工具,用于与Android设备进行通信和调试,这里来总结一下常用的ADB命令:一、常用的命令1.连接与设备管理adbdevices列出已连接的设备及其状态。adbconnect<IP地址>:<端口号>通过网络连接设备,适用于无线调试。adbdiscon......
  • Linux 性能调优之CPU上下文切换
    写在前面博文内容为Linux性能指标CPU上下文切换认知内容涉及:上下文认知,发生上下文切换的场景有哪些上下文指标信息查看,内核上下文切换事件跟踪,系统上下文切换统计上下文异常场景分析,CPU亲和性配置优化上下文理解不足小伙伴帮忙指正......
  • 前端项目通过 Nginx 发布至 Linux,并通过 rewrite 配置访问后端接口
    〇、前言本文通过将arco框架的前端项目,部署至CentOS7,并访问同服务器的WebAPI接口,来简单演示一下,如何将前端项目发布至Linux系统。关于ASP.NETWebAPI发布至Linux的步骤,可以参考博主过往文章:https://www.cnblogs.com/hnzhengfy/p/18384107/webapi_centos。一、简......
  • Linux+Docker:3分钟实现MinIO在线部署与Java集成
    Linux下使用Docker安装MinIO1.拉取MinIO镜像dockerpullminio/minio2.创建挂载目录mkdir-p/opt/minio/datamkdir-p/optl/minio/config3.检查端口占用sudolsof-i:9000...4.启动MinIO容器dockerrun--nameminio\#容器名称-p9010:9000......