Linux基础指令

发布时间:2024年01月19日

Linux下的基本指令

ls指令

ls:显示当前路径下的文件名

标志作用
-a显示所有文件,包括隐藏文件
-l列出文件的详细信息
-i查看文件的inode编号
-d将目录像文件一样显示,而不是显示其下的文件。如: ls -d指定目录
-r对目录反向排序
-t以时间排序
-s在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R列出所有子目录下的文件。(递归)
-1一行只输出一个文件。
-k以k字节的形式表示文件的大小。ls -alk指定文件
-n用数字的UID,GID代替名称。(介绍UID,GID)
-F在每个文件名后附上一个字符以说明该文件的类型,"*“表示可执行的普通文件;”/“表示目录;”@“表示符号链接;”|“表示FIFOs;”="表示套接字(sockets)。(目录类型识别)

pwd

显示当前路径

[hmy@VM-8-15-centos ~]$ pwd
/home/hmy

touch

在当前路径下创建一个普通文件

[hmy@VM-8-15-centos ~]$ touch test.txt
[hmy@VM-8-15-centos ~]$ ls
test.txt

mkdir

在当前路径下创建一个目录/文件夹

选项作用
-p创建一串路径 mkdir -p d1/d2/d3/d4
[hmy@VM-8-15-centos ~]$ mkdir dir //创建一个目录
[hmy@VM-8-15-centos ~]$ ls
dir  test.txt

stat

stat 命令用于显示文件或文件系统的详细信息,包括文件的权限、大小、创建时间、修改时间、访问时间等。stat 命令可以用于查看文件的元数据信息。

[hmy@VM-8-15-centos ~]$ stat myfile
  File: ‘myfile’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d	Inode: 920921      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1002/     hmy)   Gid: ( 1002/     hmy)
Access: 2023-11-23 13:00:17.903359201 +0800 //这是文件最后一次被访问的时间。每当文件被读取、执行或查询状态时,访问时间都会更新。
Modify: 2023-11-23 13:00:17.903359201 +0800 //这是文件内容最后一次被修改的时间。每当文件内容发生变化时,修改时间都会更新。
Change: 2023-11-23 13:00:17.903359201 +0800 //这是文件元数据(metadata)最后一次被修改的时间。元数据包括文件的权限、所有者、组等信息。当文件的权限或所有者发生变化时,改变时间会更新。
 Birth: -

tree

以树形结构显示目录内容的命令

[hmy@VM-8-15-centos ~]$ tree .
.
├── code
│   └── text.txt
├── dir
├── myfile
└── test.txt

2 directories, 3 files

cd

进入一个路径

[hmy@VM-8-15-centos ~]$ cd dir
[hmy@VM-8-15-centos dir]$ pwd
/home/hmy/dir

cd ~ 进入当前用户的工作目录
cd - 跳转至上一次我所处的路径中

rmdir

删除不为空的目录

rm

删除文件

选项作用
-r递归删除(删除不为空的目录)
-f强制删除,即使文件的权限设置为只读或者存在其他限制,也会被删除而不会产生提示。
-i表示交互式删除,即在删除文件之前会提示用户确认是否真的要删除。每次删除都会询问用户是否确定删除。

rm -rf * 删除该目录下所有

man

用于显示 Linux 系统中命令的手册页(manual pages)的命令

man ls; man pwd;

  1. Executable programs or shell commands (可执行程序或 shell 命令): 包含用户可以运行的可执行程序或者 shell 命令的手册页。

  2. System calls (functions provided by the kernel) (系统调用): 包含由操作系统内核提供的系统调用的手册页。

  3. Library calls (functions within program libraries) (库调用): 包含程序库中的函数的手册页。

  4. Special files (usually found in /dev) (特殊文件): 包含通常位于 /dev 目录下的特殊文件的手册页。

  5. File formats and conventions eg /etc/passwd (文件格式和约定): 包含文件格式和约定的手册页,例如 /etc/passwd

  6. Games (游戏): 包含游戏的手册页。

  7. Miscellaneous (including macro packages and conventions) (其他): 包含各种杂项,包括宏包和约定的手册页。例如,man(7)groff(7)

  8. System administration commands (usually only for root) (系统管理命令): 包含通常仅供管理员用户(root)使用的系统管理命令的手册页。

  9. Kernel routines [Non standard] (内核例程): 包含内核例程的手册页,这些通常是非标准的或特定于某些系统的。

    man 1 ls
    man 3 printf
    

cp

复制文件或目录

选项作用
-r递归复制,用于复制目录及其内容。
-f表示强制复制,用于在复制文件或目录时不进行确认提示,即强制执行复制操作。如果目标文件已经存在,将会被覆盖
-n表示不覆盖已经存在的文件。如果目标文件已经存在,cp 命令将不会覆盖它,而是保留已存在的文件。
[hmy@VM-8-15-centos code]$ pwd
/home/hmy/code
[hmy@VM-8-15-centos code]$ cp hello.c /home/hmy
[hmy@VM-8-15-centos code]$ cd ..
[hmy@VM-8-15-centos ~]$ pwd
/home/hmy
[hmy@VM-8-15-centos ~]$ tree .
.
├── code
│   ├── hello.c
│   └── text.txt
├── dir
├── hello.c
├── myfile
└── test.txt

2 directories, 5 files

mv

移动文件,重命名

用法
mv 源目录 目标目录
mv 源文件 目标目录
mv 旧文件名 新文件名 (重命名)

cat

语法:cat [选项] [文件]

功能:查看目标文件内容

常用选项:

选项作用
-b对非空输出行编号
-n对输出的所有行编号
-s不输出多行空行

more

语法:more [选项] [文件]

功能:类似cat

常用选项

选项作用
q退出more
-n对输出的所有行编号
-55行5行的显示

echo

功能:

  1. 打印内容到显示器(显示文本消息、变量的值)
    • echo Hello, World!
    • name=“John” echo $name
  2. 将文本写入文件
    • echo “This is a line of text.” > output.txt(这将创建一个名为 output.txt 的文件,并将文本写入该文件。会覆盖原文件内容)
    • echo “This is a line of text.” >> output.txt (在文件中追加内容)

less

打开指定文件并显示其内容。你可以使用箭头键向上或向下滚动,空格键翻页,q 键退出:less file.txt

head

提取文件的前n行:head -n file.txt

head -1010 file.txt | tail -11 这个命令用于显示名为 file.txt 的文件的第1000到1010行。|:这是一个管道符号,用于将 head 命令的输出重定向为下一个命令的输入。

tail

提取文件的后n行:tail -n file.txt

date

显示或设置系统的日期和时间。

  • 显示当前时间:date

  • 自定义日期和时间格式:date +“%Y-%m-%d %H:%M:%S”(年,月,日,时,分,秒)

  • 显示当前时间戳(从1970年1月1日起的秒数):

    [hmy@VM-8-15-centos ~]$ date +%s
    1701149753
    
  • 时间戳转化成日期

    [hmy@VM-8-15-centos ~]$ date +"%Y-%m-%d %H:%M:%S" -d @1701149753
    2023-11-28 13:35:53
    

find

搜索

选项作用
-name按照文件名查找
[hmy@VM-8-15-centos ~]$ find ~ -name file.txt
/home/hmy/file.txt

which

在系统路径中,去查找特定的指令所在的路径

[hmy@VM-8-15-centos ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls

alias

给指令起别名

[hmy@VM-8-15-centos ~]$ alias zz='ls -al'
[hmy@VM-8-15-centos ~]$ zz
total 216
drwx------  6 hmy  hmy    4096 Nov 28 13:23 .
drwxr-xr-x. 5 root root   4096 Nov 21 17:19 ..
-rw-------  1 hmy  hmy    4328 Nov 28 14:22 .bash_history
-rw-r--r--  1 hmy  hmy      18 Nov 25  2021 .bash_logout
-rw-r--r--  1 hmy  hmy     193 Nov 25  2021 .bash_profile
-rw-r--r--  1 hmy  hmy     231 Nov 25  2021 .bashrc
drwxrwxr-x  3 hmy  hmy    4096 Nov 21 17:27 .cache
drwxrwxr-x  2 hmy  hmy    4096 Nov 23 14:27 code
drwxrwxr-x  3 hmy  hmy    4096 Nov 21 17:27 .config
drwxrwxr-x  2 hmy  hmy    4096 Nov 23 13:55 dir
-rw-rw-r--  1 hmy  hmy  148906 Nov 28 13:16 file.txt
-rw-rw-r--  1 hmy  hmy      73 Nov 23 14:35 hello.c
-rw-rw-r--  1 hmy  hmy       0 Nov 23 13:00 myfile
-rw-rw-r--  1 hmy  hmy       2 Nov 28 12:06 test2.txt
-rw-rw-r--  1 hmy  hmy       4 Nov 28 12:03 test.txt
-rw-rw-r--  1 hmy  hmy    9284 Nov 28 13:23 tmp.txt

grep

行文本过滤器

选项作用
-n显示原文本中该关键字出现的行号
-v反向搜索,grep -v “888” file.txt 把包含888的行去掉
-i查找时忽略大小写

? grep选项中,-E选项可以用来扩展选项为正则表达式;

`$`表示匹配文件末尾,字符需要在`$`之前表示以字符结尾 `a$`表示以a结尾	grep -E a$ try_grep

? ^表示匹配文件起始,字符需要在^之后表示以字符起始 ^a表示以a起始 grep -E ^a try_grep

[hmy@VM-8-15-centos ~]$ grep "888" file.txt
hello bit 888
hello bit 1888
hello bit 2888

xargs

命令行参数

[hmy@VM-8-15-centos ~]$ echo "-a -l" | xargs ls
total 216
drwx------  6 hmy  hmy    4096 Nov 28 14:26 .
drwxr-xr-x. 5 root root   4096 Nov 21 17:19 ..
-rw-------  1 hmy  hmy    4548 Nov 28 14:37 .bash_history
-rw-r--r--  1 hmy  hmy      18 Nov 25  2021 .bash_logout
-rw-r--r--  1 hmy  hmy     193 Nov 25  2021 .bash_profile
-rw-r--r--  1 hmy  hmy     231 Nov 25  2021 .bashrc
drwxrwxr-x  3 hmy  hmy    4096 Nov 21 17:27 .cache
drwxrwxr-x  2 hmy  hmy    4096 Nov 23 14:27 code
drwxrwxr-x  3 hmy  hmy    4096 Nov 21 17:27 .config
drwxrwxr-x  2 hmy  hmy    4096 Nov 23 13:55 dir
-rw-rw-r--  1 hmy  hmy  148906 Nov 28 13:16 file.txt
-rw-rw-r--  1 hmy  hmy      73 Nov 23 14:35 hello.c
-rw-rw-r--  1 hmy  hmy       0 Nov 23 13:00 myfile
-rw-rw-r--  1 hmy  hmy       2 Nov 28 12:06 test2.txt
-rw-rw-r--  1 hmy  hmy       4 Nov 28 12:03 test.txt
-rw-rw-r--  1 hmy  hmy    9284 Nov 28 13:23 tmp.txt

zip,unzip

压缩和解压

[hmy@VM-8-15-centos ~]$ zip -r project.zip project
[hmy@VM-8-15-centos dir]$ unzip project.zip
[hmy@VM-8-15-centos dir]$ unzip project.zip -d /home/hmy 解压到特定路径

tar

压缩和解压

[hmy@VM-8-15-centos ~]$ tar -czvf project.tgz project 压缩
[hmy@VM-8-15-centos ~]$	tar -xzvf project.tgz project 解压到project目录
[hmy@VM-8-15-centos ~]$	tar -xzvf project.tgz -C /home/hmy 解压到特定路径

bc

计算

[hmy@VM-8-15-centos ~]$ echo "1+2*4" | bc
9

uname

查看Linux的体系结构和内核版本

[hmy@VM-8-15-centos ~]$ uname -a 查看所有
Linux VM-8-15-centos 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[hmy@VM-8-15-centos ~]$ uname -r 查看内核版本 
3.10.0-1160.92.1.el7.x86_64

stat

查看文件信息

[hmy@VM-8-15-centos lesson6]$ stat mytest 
  File: ‘mytest’
  Size: 8360      	Blocks: 24         IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 1188988     Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1002/     hmy)   Gid: ( 1002/     hmy)
Access: 2024-01-05 17:14:25.241678545 +0800  //文件最近访问时间
Modify: 2024-01-05 17:14:23.872683572 +0800  //文件最近内容修改时间
Change: 2024-01-05 17:14:23.872683572 +0800  //文件最近属性修改时间
 Birth: -

热键

  • Tab 命令补全功能
  • Ctrl + c 让当前程序终止
  • Ctrl + d 通常代表着:键盘输入结束(End Of File, EOF, End Oflnput)的意思;另外,它也可以用来取代exit

小知识点

  1. Linux下是有隐藏文件的! Linux下隐藏文件/目录(文件夹)的方式,可以让文件以 . 开头。

  2. 隐藏文件的基本用途:可以用来进行隐藏一些配置文件

  3. 每个文件里都会有这两个隐藏文件 ’ . ’ 和 ’ … ’

    [hmy@VM-8-15-centos code]$ ls -a -l
    total 8
    drwxrwxr-x 2 hmy hmy 4096 Nov 22 22:51 .  //表示当前路径(可以限定我们要执行的可执行程序在什么位置)
    //cd . 进入当前路径
    drwx------ 6 hmy hmy 4096 Nov 22 22:47 .. //表示直接上级路径(帮助我们进行路径切换)
    //cd .. 进入上级路径
    -rw-rw-r-- 1 hmy hmy    0 Nov 22 22:51 text.txt
    

    Linux的整个目录结构,本质上是一颗多叉树结构

    • 目录
    • 文件或者空目录(叶子节点)

在这里插入图片描述

  1. 对于普通用户而言:/home/xxx:就叫做xxx这个用户的家目录(工作目录)~
    对于root用户而言:/root

  2. *是通配符

  3. >是输出重定向

    • 如果目标文件不存在,则建之,否则直接进行访问
    • 访问 输出重定向(从文件开始,覆盖式的写入)
  4. >>是追加重定向

    • 访问 追加重定向(从文件开始,追加式的写入)
  5. <是输入重定向

  6. |管道

    • 管道文件,内存级的文件,没有在磁盘上。
    • 批量化,流水化处理数据。
    • 例如:head -1010 file.txt | tail -11 这个命令用于显示名为 file.txt 的文件的第1000到1010行。

Linux的整个目录结构,本质上是一颗多叉树结构

  • 目录
  • 文件或者空目录(叶子节点)

[外链图片转存中…(img-8u7qqP7J-1705597556103)]

  1. 对于普通用户而言:/home/xxx:就叫做xxx这个用户的家目录(工作目录)~
    对于root用户而言:/root

  2. *是通配符

  3. >是输出重定向

    • 如果目标文件不存在,则建之,否则直接进行访问
    • 访问 输出重定向(从文件开始,覆盖式的写入)
  4. >>是追加重定向

    • 访问 追加重定向(从文件开始,追加式的写入)
  5. <是输入重定向

  6. |管道

    • 管道文件,内存级的文件,没有在磁盘上。
    • 批量化,流水化处理数据。
    • 例如:head -1010 file.txt | tail -11 这个命令用于显示名为 file.txt 的文件的第1000到1010行。
文章来源:https://blog.csdn.net/m0_63949251/article/details/135687242
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。