Linux的基础命令

发布时间:2024年01月07日

上一章我们讲了centos和ubuntu,这一章着重讲解linux的基础命令。

一、Linux的目录结构

之前学数据结构大部分知识点围绕着树结构,而linux的目录结构采用了这一数据结构——树结构。

最开始的目录是根目录即' / ','?/ '目录下由许多目录,下面一张表带你了解一些目录主要功能。

/

Linux文件系统的顶层目录,所有的目录结构都是从“/”开始

/bin

存放用户可执行的程序、一些最基本的Linux命令和二进制文件

/home

一般用户的主目录或者FTP站点管理目录,默认情况下,每创建一个用户,就会在/home下创建对应的目录

/root

管理员的主目录

/boot

操作系统启动时所需要的文件

/usr

存放用户使用的系统命令和应用程序等信息

/var

具有变动性质的相关程序目录,如:log

/dev

接口设备文件目录,例如:had表示硬盘

/etc

包含了所有的系统配置文件。通常这些文件可以用来配置硬件,网络等等。例如,/etc/passwd 来存储用户的信息。

/proc

目前系统核心与程序执行的信息。

/sbin

此目录存放系统启动时所需要执行的程序

/tmp

用来存放暂存盘的目录

/mnt

装置的文件系统加载点,例如:光驱、软盘等

二、Linux命令

1.三大常用命令

(1) cd :?切换目录 , eg:cd /home/ubuntu(你的用户名) , (注:cd ~ 此命令快速切换到家目录)

(2) ls : 打印当前目录下的文件和文件夹

-a 显示所有文件及目录 (.?开头的隐藏文件也会列出)

-d 只列出目录(不递归列出目录内的文件)。

-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。

-r 倒序显示文件和目录。

-t 将按照修改时间排序,最新的文件在最前面。

-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

-R 递归显示目录中的所有文件和子目录。

eg:ls -l

(3) pwd?: 输出当前目录详情, eg:pwd

2.--help 帮助信息

eg:ls --help 查询ls的用法

3.man 帮助信息

man 是linux提供的一个手册,这个手册有很多个章节,用来查看命令、库函数、系统调用等。

-f:显示与指定关键字相关的手册页面。

-k:搜索手册页中与关键字匹配的条目。

-a:显示所有匹配的手册页面。

-w:仅显示手册页的位置,而不显示其内容。

eg: man ls ,查看 ls 命令的手册,按q退出

eg:man 3 printf ,查看 C 语言标准库函数 printf 的手册 ,按q退出

4.tab自动补全(严格来说是一个快捷键,输入前面几位字母按下tab会自动补全后面字母)

eg:cd /home/ubu(按下tab自动补全后面ubuntu)

5.history查看历史命令?

eg:history

6.tree树状显示目录结构

使用该命令需要提前下载该命令

sudo apt-get install tree

-a 显示所有文件和目录。

-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。

-C 在文件和目录清单加上色彩,便于区分各种类型。

-d 显示目录名称而非内容。

-D 列出文件或目录的更改时间。

-f 在每个文件或目录之前,显示完整的相对路径名称。

-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。

-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。

-i 不以阶梯状列出文件或目录名称。

-L level 限制目录显示层级。

-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。

-n 不在文件和目录清单加上色彩。

-N 直接列出文件和目录名称,包括控制字符。

-p 列出权限标示。

-P<范本样式> 只显示符合范本样式的文件或目录名称。

-q 用"?"号取代控制字符,列出文件和目录名称。

-s 列出文件或目录大小。

-t 用文件和目录的更改时间排序。

-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。

-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

eg:tree -a

7.clear清屏

clear可以清空屏幕,使用时直接输入clear即可

8.cat查看文本内容

n 或 --number:由 1 开始对所有输出的行数编号。

b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

E 或 --show-ends?: 在每行结束处显示 $。

T 或 --show-tabs: 将 TAB 字符显示为 ^I。

A, --show-all:等价于 -vET。

e:等价于"-vE"选项;

t:等价于"-vT"选项;

?eg:cat a.txt

9.touch用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

a 改变档案的读取时间记录。

m 改变档案的修改时间记录。

c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

f 不使用,是为了与其他 unix 系统的相容性而保留。

r 使用参考档的时间记录,与 --file 的效果一样。

d 设定时间与日期,可以使用各种不同的格式。

t 设定档案的时间记录,格式与 date 指令相同。

--no-create 不会建立新档案。

--help 列出指令格式。

--version 列出版本讯息。

eg:sudo touch b.txt

10.chmod控制用户对文件的权限的命令

观察上面会发现a.txt和b.txt文件颜色不一样,这是应为两个文件的访问权限不一样。

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

-c : 若该文件权限确实已经更改,才显示其更改动作

-f : 若该文件权限无法被更改也不要显示错误讯息

-v : 显示权限变更的详细资料

-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

--help : 显示辅助说明

--version : 显示版本

eg:sudo chmod 777 b.txt,然后会发现b.txt颜色跟a.txt一样了

11.rm删除文件或目录

-i 删除前逐一询问确认。

-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

-r 将目录及以下之档案亦逐一删除。

eg:sudo rm b.txt,执行完后b.txt会没有

12.cp要用于复制文件或目录

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。

-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。

-r?或?--recursive:用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。

-i?或?--interactive:在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答?y?时目标文件将被覆盖。。

-u?或?--update:仅复制源文件中更新时间较新的文件。

-v?或?--verbose:显示详细的复制过程。

-p?或?--preserve:保留源文件的权限、所有者和时间戳信息。

-f?或?--force:强制复制,即使目标文件已存在也会覆盖,而且不给出提示。

-l:不复制文件,只是生成链接文件。

eg:cp a.txt b.txt

13.mv用来为文件或目录改名、或将文件或目录移入其它位置

-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。

-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。

-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。

-n: 不要覆盖任何已存在的文件或目录。

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

eg:sudo mv b.txt c.txt

14.mkdir 创建文件夹

eg:sudo mkdir add

15.grep用于查找文件里符合条件的字符串或正则表达式

-i:忽略大小写进行匹配。

-v:反向查找,只打印不匹配的行。

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

-r:递归查找子目录中的文件。

-l:只打印匹配的文件名。

-c:只打印匹配的行数。

eg:grep hello a.txt


16.In链接文件

Linux ln(英文全拼:link files)命令是一个非常重要命令,面试时经常会考,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

链接又分为软链接(源文件和链接文件内容实时同步。链接文件等价于源文件的快捷方式 如果删除源文件,链接文件将无效)和硬链接(源文件和链接文件 内容实时同步,链接文件是一个普通的独立文件,如果删除源文件,链接文件不受影响)

软链接

????????1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

????????2.软链接可以 跨文件系统 ,硬链接不可以

????????3.软链接可以对一个不存在的文件名进行链接

????????4.软链接可以对目录进行链接

硬链接

????????1.硬链接,以文件副本的形式存在。但不占用实际空间。

????????2.不允许给目录创建硬链接

????????3.硬链接只有在同一个文件系统中才能创建

必要参数:

--backup[=CONTROL] 备份已存在的目标文件

-b 类似?--backup?,但不接受参数

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-s 软链接(符号链接)

-v 显示详细的处理

eg:ln /home /ubuntu/Desktop/vscode/code? /home/ubuntu/Desktop/test

17.tar压缩和解压文件

tar命令的参数比较多,我们需要是自行查询手册,我们只需要掌握三种tar的参数操作。

(1)压缩文件,非打包

tar -czvf test.tar.gz? text.c? 压缩 text.c文件为test.tar.gz

(2)列出压缩文件内容

tar -tzvf test.tar.gz 

(3)解压缩文件

tar -xzvf test.tar.gz 

18.wc 用于计算字数

-c或--bytes或--chars 只显示Bytes数。

-l或--lines 显示行数。

-w或--words 只显示字数。

--help 在线帮助。

--version 显示版本信息。

eg:wc a.txt

19.时间日期类指令

(1)date 用来显示或设定系统的日期与时间

date (功能描述:显示当前时间)

date +%Y (功能描述:显示当前年份)

date +%m (功能描述:显示当前月份)

date +%d (功能描述:显示当前是哪一天)

date "+%Y-%m-%d %H:%M:%S" ( 功能描述:显示年月日时分秒)

eg:date +%Y

(2)cal查看日历

eg:cal 2023

20.ps 用于显示当前进程的状态,类似于 windows 的任务管理器

ps参数比较多,仅列出几个常用的,若以后需要则自行查询手册

e 显示所有进程

-f 显示所有字段(UID,PPIP,C,STIME字段)

-h 不显示标题

-l 长格式

-w 宽输出

-a 显示一个终端的所有进程

-r 只显示正在运行的进程。

-u 显示当前用户进程和内存使用情况

-x 显示没有控制终端的进程

–sort 按照列名排序

eg:ps -ef?

其中:

UID:用户ID,即进程的拥有者

PID:进程ID

PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程被称为僵尸进程

C:cpu的占用率,形式是百分数(%)

STIME:进程开始启动时间

TTY:终端设备,发起该进程的设备识别符号,如果显示‘ ?’表示该进程并不是由终端发起

TIME:进程的执行时间

CMD:该进程的名称或对应的路径

eg:ps -ef | grep sshd (管道查询指定进程)

到这里就结束了,谢谢大家观看ヾ(≧▽≦*)o

文章来源:https://blog.csdn.net/m0_65473174/article/details/135425337
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。