【Linux】Linux的基本常识+指令

目录

[1. 整体学习思维导图](#1. 整体学习思维导图)

[2. 常见快捷键操作](#2. 常见快捷键操作)

[3. 基本指令](#3. 基本指令)

pwd指令

whoami指令

[ls 指令](#ls 指令)

touch指令

[cd 指令](#cd 指令)

[Stat 指令](#Stat 指令)

[mkdir 指令](#mkdir 指令)

alias指令

[nano 指令](#nano 指令)

[rmdir 和 rm 指令](#rmdir 和 rm 指令)

[man 指令手册](#man 指令手册)

[cp 命令](#cp 命令)

[cat/echo/tac 指令](#cat/echo/tac 指令)

[mv 指令](#mv 指令)

[less 指令](#less 指令)

[head/tail 指令](#head/tail 指令)

[date 指令](#date 指令)

[find/which 命令](#find/which 命令)

[grep 指令](#grep 指令)

[rz/sz 指令](#rz/sz 指令)

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

[tar 指令](#tar 指令)

[history 指令](#history 指令)

[bc 指令](#bc 指令)

[uname 指令](#uname 指令)

4.基本知识

[4.1 空文件是否占用空间?](#4.1 空文件是否占用空间?)

[4.2 文件/目录的属性](#4.2 文件/目录的属性)

[4.3 . 和 .. 类型的文件](#4.3 . 和 .. 类型的文件)

[4.4 命令的本质](#4.4 命令的本质)

[4.5 * 通配符](#4.5 * 通配符)

[4.6 Linux下一切皆文件](#4.6 Linux下一切皆文件)

[4.7 日志文件存储目录](#4.7 日志文件存储目录)

[4.8 打包/压缩是什么?](#4.8 打包/压缩是什么?)

[4.8.1 为什么进行打包压缩](#4.8.1 为什么进行打包压缩)

[4.9 查看指令是否安装](#4.9 查看指令是否安装)

[4.10 shell命令及其运行原理简单理解](#4.10 shell命令及其运行原理简单理解)


1. 整体学习思维导图

2. 常见快捷键操作

  • Alt + Enter : 全屏操作/退出全屏

  • Shirt + Insert [+Fn] : 粘贴

  • Ctrl + Insert [+Fn] : 复制

  • Ctrl + C : 终止异常

  • 上下键可以快速查找历史命令

  • Ctrl + r 匹配历史指令

  • Ctrl + d 退出当前用户

  • Tab快速摁两下 命令搜索/补全

3. 基本指令

pwd指令

用于打印当前路径

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# pwd
/root

whoami指令

用于查看当前用户

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# whoami
root

ls 指令

用于查看当前目录下的文件

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# ls
code  mysql  MySQL_Date

可选项 - a 显示全部文件(包含隐藏文件)

可选项 - l 显示文件的详细信息

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# ls -a
.   .bash_history  .bash_profile  .cache  .cshrc    mysql       .mysql_history  .pki              .ssh     .viminfo
..  .bash_logout   .bashrc        code    .lesshst  MySQL_Date  .pip            .pydistutils.cfg  .tcshrc
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# ls -l
total 8
drwxr-xr-x 5 root root 4096 Oct 21 08:27 code
-rw-r--r-- 1 root root    0 Nov 27 19:38 mysql
drwxr-xr-x 2 root root 4096 Nov 27 19:47 MySQL_Date
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# ls -al
total 172
dr-xr-x---.  8 root root  4096 Nov 27 22:19 .
dr-xr-xr-x. 18 root root  4096 Sep 12 08:27 ..
-rw-------   1 root root 15504 Nov 27 22:19 .bash_history
-rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root   176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root   176 Dec 29  2013 .bashrc
drwxr-xr-x   3 root root  4096 Jul 11  2019 .cache
drwxr-xr-x   5 root root  4096 Oct 21 08:27 code
-rw-r--r--.  1 root root   100 Dec 29  2013 .cshrc
-rw-------   1 root root    75 Oct  6 15:01 .lesshst
-rw-r--r--   1 root root     0 Nov 27 19:38 mysql
drwxr-xr-x   2 root root  4096 Nov 27 19:47 MySQL_Date
-rw-------   1 root root 88091 Nov 27 22:19 .mysql_history
drwxr-xr-x   2 root root  4096 Jul 11  2019 .pip
drwxrw----   3 root root  4096 Oct 23 15:00 .pki
-rw-r--r--   1 root root   205 Jun 17 10:31 .pydistutils.cfg
drwx------   2 root root  4096 Jul 11  2019 .ssh
-rw-r--r--.  1 root root   129 Dec 29  2013 .tcshrc
-rw-------   1 root root  4528 Nov 27 19:47 .viminfo

touch指令

  • 用于创建普通文件

  • 也可以更新文件的使用时间

bash 复制代码
/* 创建普通文件 */
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# touch Text.txt
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 12
drwxr-xr-x 2 root root 4096 Oct 21 08:27 dir_2024_10_21
drwxr-xr-x 2 root root 4096 Oct  6 14:54 dir_2024_10_6
drwxr-xr-x 4 root root 4096 Oct  6 14:54 dir_2024_9_12
-rw-r--r-- 1 root root    0 Nov 28 12:49 Text.txt

/* 更新文件的使用时间 */
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# touch Text.txt 
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 12
drwxr-xr-x 2 root root 4096 Oct 21 08:27 dir_2024_10_21
drwxr-xr-x 2 root root 4096 Oct  6 14:54 dir_2024_10_6
drwxr-xr-x 4 root root 4096 Oct  6 14:54 dir_2024_9_12
-rw-r--r-- 1 root root    0 Nov 28 18:57 Text.txt

cd 指令

用于跳转到不同路径

  • 绝对路径

  • 相对路径

bash 复制代码
/* 比如我们想跳转到/root/code 目录下 */

绝对路径
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# cd /root/code/
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# 

我们当前在/root,相对路径
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# cd ./code
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# 

/* cd ~ */ 跳转到家路径下
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# pwd
/root/code
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# cd ~
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# pwd
/root

/* cd- */ 回到最近一次的路径
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cd -
/root/code/dir_2024_11_28/Test
[root@iZ2ze0j6dd76e0o9qypo2rZ Test]# cd -
/root/code/dir_2024_11_28

Stat 指令

查看文件的时间状态

  • Modify (mtime) 关注文件内容的修改。

  • Change (ctime) 关注文件状态的任何变化,包括内容修改和元数据修改。

  • Access (atime) 关注文件内容的读取。

Change和Modify的区别?

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# stat Text.txt 
  File: 'Text.txt'
  Size: 0                 Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d        Inode: 1056689     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-11-28 18:57:44.225373104 +0800
Modify: 2024-11-28 18:57:44.225373104 +0800
Change: 2024-11-28 18:57:44.225373104 +0800
 Birth: -

mkdir 指令

  • 用于创建一个文件夹(目录)

  • 也可以连续递归创建目录 -p

  • tree指令以树形结构打印目录内容

bash 复制代码
/* 创建一个文件夹(目录) */
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# mkdir dir_2024_11_28
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 4
drwxr-xr-x 2 root root 4096 Nov 28 19:22 dir_2024_11_28

/* 可以连续递归创建目录 */
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# mkdir -p dir_2024_11_28/a/b/c/d
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# tree dir_2024_11_28/
dir_2024_11_28/
└── a
    └── b
        └── c
            └── d

4 directories, 0 files

alias指令

给别的指令取别名

这种取别名的方式是临时性的,要想实现永久性需要在配置文件中修改

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# alias ouyang='pwd'
[root@iZ2ze0j6dd76e0o9qypo2rZ ~]# ouyang
/root 

nano 指令

简单的记事本,可以编写普通文件的内容

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# nano Hello.c

rmdir 和 rm 指令

  • rmdir 用于删除目录

  • rm 用于删除目录和普通文件

  • -f 不再询问 -r 递归执行

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# rm a
rm: cannot remove 'a': Is a directory
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# rm -f a
rm: cannot remove 'a': Is a directory
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# rm -rf a
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ll
total 16
-rwxr-xr-x 1 root root 8440 Nov 28 19:45 Hello
-rw-r--r-- 1 root root   72 Nov 28 19:44 Hello.c

man 指令手册

man是一个在线参考手册

cp 命令

cp 来源文件 目标文件

  • 如果存在会覆盖目标文件

  • 会拷贝到目录内部

bash 复制代码
/* 拷贝普通文件 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cp Hello.c Text.c
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ll
total 20
-rwxr-xr-x 1 root root 8440 Nov 28 19:45 Hello
-rw-r--r-- 1 root root   72 Nov 28 19:44 Hello.c
-rw-r--r-- 1 root root   72 Nov 28 19:54 Text.c

/* 如果拷贝的目标文件存在内容会询问是否覆盖 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cp Hello.c Text.c
cp: overwrite 'Text.c'? 


/* -r递归拷贝 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# tree Test
Test
├── a.txt
└── b.txt

0 directories, 2 files
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cp Test Test2
cp: omitting directory 'Test'
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cp -r Test Test2
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ll
total 28
-rwxr-xr-x 1 root root 8440 Nov 28 19:45 Hello
-rw-r--r-- 1 root root   72 Nov 28 19:44 Hello.c
drwxr-xr-x 2 root root 4096 Nov 28 19:56 Test
drwxr-xr-x 2 root root 4096 Nov 28 19:57 Test2
-rw-r--r-- 1 root root   72 Nov 28 19:56 Text.c
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# tree Test2
Test2
├── a.txt
└── b.txt

0 directories, 2 files

/* 再次拷贝目录会拷贝到文件内部 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cp -r Test Test2
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# tree Test2
Test2
├── a.txt
├── b.txt
└── Test
    ├── a.txt
    └── b.txt

1 directory, 4 files

cat/echo/tac 指令

  • cat 显示文件内容(正向)

  • tac 显示文件内容(反向)

  • echo 把后续内容当做字符串

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat Hello.c 
#include<stdio.h>

int main()
{
        printf("Hello World!\n");
        return 0;
}
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# echo Hello.c
Hello.c
  • 重定向操作

    bash 复制代码
    /* 默认写到显示器文件内部 */
    [root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# echo 'Hello Linux!'
    Hello Linux!
    
    /* 使用 > 可以写到别的文件内部 注意:会先清空文件内容再写入 */
    [root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat Hello.c 
    #include<stdio.h>
    
    int main()
    {
            printf("Hello World!\n");
            return 0;
    }
    [root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# echo 'Hello Linux' > Hello.c
    [root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat Hello.c 
    Hello Linux
  • 追加重定向操作 >>

  • 不会清空文件内容,继续写入

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# echo 'Hello ouyang' > Hello.c
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat Hello.c 
Hello ouyang
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# echo 'Hello ouyang' >> Hello.c
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat Hello.c 
Hello ouyang
Hello ouyang
  • tac
bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat Textfile.txt 
#include <iostream>

int main()
{
  return 0;
}
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# tac Textfile.txt 
}
  return 0;
{
int main()

#include <iostream>

mv 指令

bash 复制代码
mv srcfile dstdir
  • 用于移动文件位置

  • 对文件/目录进行重命名(如果dstdir不是目录/不存在)

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# touch Textfile.txt
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# mkdir mydir1
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ls
mydir1  myLinux  Textfile.txt

/* 重命名 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# mv Textfile.txt file.txt
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# mv mydir1 mydir2
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ls
file.txt  mydir2  myLinux

/* 移动文件位置 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# mv file.txt mydir2/
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ll
total 16
drwxr-xr-x 2 root root 4096 Nov 30 08:37 mydir2
-rwxr-xr-x 1 root root 8448 Nov 28 20:29 myLinux
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# tree mydir2/
mydir2/
└── file.txt

0 directories, 1 file

[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# mv mydir2 ../
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ls
myLinux
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cd ..
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ls
dir_2024_10_21  dir_2024_10_6  dir_2024_11_28  dir_2024_9_12  mydir2

less 指令

用于上下查看一个文件的内容,如日志文件

head/tail 指令

用于查找开头/结尾内容,-n 控制查找行数,默认为10行

以查看日志文件为例:

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# head /var/log/messages
Nov 24 03:27:01 iZ2ze0j6dd76e0o9qypo2rZ rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="924" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Nov 24 03:27:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Removed slice User Slice of root.
Nov 24 03:30:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Created slice User Slice of root.
Nov 24 03:30:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 27087 of user root.
Nov 24 03:30:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Removed slice User Slice of root.
Nov 24 03:40:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Created slice User Slice of root.
Nov 24 03:40:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 27088 of user root.
Nov 24 03:40:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Removed slice User Slice of root.
Nov 24 03:50:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Created slice User Slice of root.
Nov 24 03:50:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 27089 of user root.
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# tail /var/log/messages
Nov 30 08:28:46 iZ2ze0j6dd76e0o9qypo2rZ systemd: Created slice User Slice of root.
Nov 30 08:28:46 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28161 of user root.
Nov 30 08:28:46 iZ2ze0j6dd76e0o9qypo2rZ systemd-logind: New session 28161 of user root.
Nov 30 08:30:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28162 of user root.
Nov 30 08:40:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28163 of user root.
Nov 30 08:50:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28164 of user root.
Nov 30 09:00:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28165 of user root.
Nov 30 09:01:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28166 of user root.
Nov 30 09:10:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28167 of user root.
Nov 30 09:20:01 iZ2ze0j6dd76e0o9qypo2rZ systemd: Started Session 28168 of user root.
  • 我们创建一个Hello %d(1-1000) 的文件查询中间的内容501-510

  • | 管道文件

bash 复制代码
/* 创建文件 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cnt=1; while [ $cnt -le 1000 ]; do echo "Hello $cnt"; let cnt++; done > log.txt
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# ll
total 28
-rw-r--r-- 1 root root 9893 Nov 30 09:33 log.txt
-rwxr-xr-x 1 root root 8448 Nov 28 20:29 myLinux
-rw-r--r-- 1 root root   48 Nov 30 08:42 Textfile.txt

/* 查找501-510内容 */
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# head -510 log.txt | tail -10
Hello 501
Hello 502
Hello 503
Hello 504
Hello 505
Hello 506
Hello 507
Hello 508
Hello 509
Hello 510
  • 管道文件 |

date 指令

用于查看时间

  • 年月日时分秒:+%Y-%m-%d_%H:%M:%S
bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# date +%Y-%m-%d_%H:%M:%S
2024-11-30_09:40:09
  • +%s : 时间戳
bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# date +%s
1732930848

find/which 命令

  • which命令用于在指定目录下查找命令

  • find命令可以查找文件/目录/命令等等,以树形结构去寻找

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls

[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# find ~ -name log.txt
/root/code/dir_2024_11_28/log.txt

grep 指令

用于文本过滤,也可以说是在文本当中查找关键字

  • -n 显示行号

  • -v 反向过滤

  • -i 忽视大小写

bash 复制代码
/* 我们创建一个文本文件进行查询 */ 
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cnt=1; while [ $cnt -le 100 ]; do echo "Hello $cnt"; let cnt++; done > log.txt
/* 自动识别匹配 */ 
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# cat log.txt | grep '9'
Hello 9
Hello 19
Hello 29
Hello 39
Hello 49
Hello 59
Hello 69
Hello 79
Hello 89
Hello 90
Hello 91
Hello 92
Hello 93
Hello 94
Hello 95
Hello 96
Hello 97
Hello 98
Hello 99

在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?

bash 复制代码
$表示匹配文件末尾,字符需要在$之前表示以字符结尾  a$表示以a结尾
^表示匹配文件起始,字符需要在^之后表示以字符起始  ^a表示以a起始
grep -E ^a try_grep;

rz/sz 指令

用于Linux机器和windows机器之间的文件传输

zip/unzip 指令

  • zip用于打包压缩

  • unzip用于解压

bash 复制代码
zip [选项] dst.zip(目标压缩包) srcdir/scrfile(来源目录/文件)
-r 递归打包压缩,对于目录中多个文件打包压缩需要使用

[root@iZ2ze0j6dd76e0o9qypo2rZ code]# zip -r dir.zip dir_2024_11_28/
  adding: dir_2024_11_28/ (stored 0%)
  adding: dir_2024_11_28/Textfile.txt (stored 0%)
  adding: dir_2024_11_28/log.txt (deflated 78%)
  adding: dir_2024_11_28/myLinux (deflated 72%)
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 24
drwxr-xr-x 2 root root 4096 Oct 21 08:27 dir_2024_10_21
drwxr-xr-x 2 root root 4096 Oct  6 14:54 dir_2024_10_6
drwxr-xr-x 2 root root 4096 Nov 30 17:21 dir_2024_11_28
drwxr-xr-x 3 root root 4096 Nov 30 17:31 dir_2024_11_30
drwxr-xr-x 4 root root 4096 Oct  6 14:54 dir_2024_9_12
-rw-r--r-- 1 root root 3291 Nov 30 17:32 dir.zip

/* 发送到windows机器 */ sz
bash 复制代码
unzip [选项] src.zip(来源的压缩文件)
-d (指定目录),通过这个可以将文件解压到指定目录

[root@iZ2ze0j6dd76e0o9qypo2rZ code]# unzip dir.zip -d tmp
Archive:  dir.zip
   creating: tmp/dir_2024_11_28/
 extracting: tmp/dir_2024_11_28/Textfile.txt  
  inflating: tmp/dir_2024_11_28/log.txt  
  inflating: tmp/dir_2024_11_28/myLinux  
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 24
drwxr-xr-x 2 root root 4096 Oct 21 08:27 dir_2024_10_21
drwxr-xr-x 2 root root 4096 Oct  6 14:54 dir_2024_10_6
drwxr-xr-x 3 root root 4096 Nov 30 17:31 dir_2024_11_30
drwxr-xr-x 4 root root 4096 Oct  6 14:54 dir_2024_9_12
-rw-r--r-- 1 root root 3291 Nov 30 17:32 dir.zip
drwxr-xr-x 3 root root 4096 Nov 30 17:41 tmp
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# tree tmp
tmp
└── dir_2024_11_28
    ├── log.txt
    ├── myLinux
    └── Textfile.txt

1 directory, 3 files

tar 指令

bash 复制代码
tar [选项] dst.tgz srcdir/scrfile
-czf 打包压缩
-xzf 解压
-v 查看打包压缩/解压的过程
-c 解压到指定路径

[root@iZ2ze0j6dd76e0o9qypo2rZ code]# tar -czf dir_2024.tgz dir_2024_11_28/
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 28
drwxr-xr-x 2 root root 4096 Oct 21 08:27 dir_2024_10_21
drwxr-xr-x 2 root root 4096 Oct  6 14:54 dir_2024_10_6
drwxr-xr-x 2 root root 4096 Nov 30 17:31 dir_2024_11_28
drwxr-xr-x 2 root root 4096 Nov 30 17:49 dir_2024_11_30
drwxr-xr-x 4 root root 4096 Oct  6 14:54 dir_2024_9_12
-rw-r--r-- 1 root root 2861 Nov 30 17:51 dir_2024.tgz
-rw-r--r-- 1 root root 3291 Nov 30 17:32 dir.zip

[root@iZ2ze0j6dd76e0o9qypo2rZ code]# tar -vxzf dir_2024.tgz 
dir_2024_11_28/
dir_2024_11_28/Textfile.txt
dir_2024_11_28/log.txt
dir_2024_11_28/myLinux
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll
total 28
drwxr-xr-x 2 root root 4096 Oct 21 08:27 dir_2024_10_21
drwxr-xr-x 2 root root 4096 Oct  6 14:54 dir_2024_10_6
drwxr-xr-x 2 root root 4096 Nov 30 17:31 dir_2024_11_28
drwxr-xr-x 2 root root 4096 Nov 30 17:49 dir_2024_11_30
drwxr-xr-x 4 root root 4096 Oct  6 14:54 dir_2024_9_12
-rw-r--r-- 1 root root 2861 Nov 30 17:51 dir_2024.tgz
-rw-r--r-- 1 root root 3291 Nov 30 17:32 dir.zip
bash 复制代码
/* Linux机器之间的互传 */
scp dst.tgz 用户名@公网地址:指定路径

history 指令

用于查看历史命令

bash 复制代码
 [root@iZ2ze0j6dd76e0o9qypo2rZ code]# history | head -10
   18  man gcc
   19  gcc -o Hello Hello.c 
   20  ls
   21  Hello
   22  cd Hello
   23  ls
   24  ls -lh
   25  ls -R
   26  ls -t
   27  ls -rt

bc 指令

相当于计算器

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# echo "1+2+3+4+5+6+7+8+9+10" | bc
55

uname 指令

用于查看Linux环境下的体系结构和系统内核版本

  • 体系结构:芯片结构(intel/amd)
bash 复制代码
uname [选项]-a / -r
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# uname -r
3.10.0-957.21.3.el7.x86_64

4.基本知识

4.1 空文件是否占用空间?

  • 文件 = 内容 + 属性

  • 内容存放的是我们写入的数据,属性存放的是文件名/文件类型/文件使用创建修改日期

所以一个空文件也需要空间存放。

4.2 文件/目录的属性

bash 复制代码
drwxr-xr-x 5 root root 4096 Oct 21 08:27 code
-rw-r--r-- 1 root root    0 Nov 27 19:38 mysql

d:表示是目录 -:表示普通文件 (Oct 21 08:27)修改时间 (4096)表示文件大小

  • c开头表示字符文件

  • b开头表示磁盘文件(物理上的不要轻易修改)

  • l开头表示链接文件

  • p开头表示管道文件

4.3 . 和 .. 类型的文件

在Linux中,以.开头的文件是隐藏文件,.表示当前目录,..表示上级目录

4.4 命令的本质

命令的本质其实是文件,命令 == 可执行程序 == c/c++程序

4.5 * 通配符

bash 复制代码
[root@iZ2ze0j6dd76e0o9qypo2rZ code]# ll dir*
dir_2024_10_21:
total 4
-rw-r--r-- 1 root root 507 Oct 21 08:26 code.txt

dir_2024_10_6:
total 4
-rw-r--r-- 1 root root  0 Oct  6 14:50 Test01.txt
-rw-r--r-- 1 root root 70 Oct  6 14:51 Test.txt

dir_2024_11_28:
total 16
-rwxr-xr-x 1 root root 8440 Nov 28 19:45 Hello
-rw-r--r-- 1 root root   72 Nov 28 19:44 Hello.c

dir_2024_9_12:
total 24
-rw-r--r-- 1 root root  292 Sep 12 09:15 test
-rw-r--r-- 1 root root   10 Sep 12 09:11 Test01.txt
-rw-r--r-- 1 root root   51 Sep 12 08:54 Test_2024_9_12
-rw-r--r-- 1 root root   70 Oct  6 14:52 Test_tmp.txt
drwxr-xr-x 2 root root 4096 Sep 12 09:36 user1
drwxr-xr-x 2 root root 4096 Sep 12 09:39 user2

4.6 Linux下一切皆文件

包括键盘/显示器/显示器

printf/scanf/cout/cin 属于文件操作

4.7 日志文件存储目录

bash 复制代码
/var/log/messages

4.8 打包/压缩是什么?

  • 打包:就是把文件合并

  • 压缩:就是通过压缩算法减少文件体积

4.8.1 为什么进行打包压缩

  1. 防止文件丢失->打包

  2. 减少传输时间->压缩

4.9 查看指令是否安装

bash 复制代码
指令名称--version
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# man --version
man 2.6.3

4.10 shell命令及其运行原理简单理解

  • 命令行解释器:shell

  • 为什么存在外壳程序:

    • 方便用户使用操作

    • 外壳程序保护内核

相关推荐
码字哥1 小时前
EasyExcel设置表头上面的那种大标题(前端传递来的大标题)
java·服务器·前端
m0_748257182 小时前
海康威视摄像头RTSP使用nginx推流到服务器直播教程
运维·服务器·nginx
Pou光明3 小时前
1_linux系统网络性能如何优化——几种开源网络协议栈比较
linux·运维·网络·网络协议·开源
fen_fen3 小时前
Docker如何运行一个python脚本Hello World
运维·docker·容器
TianyaOAO4 小时前
inmp+discuz论坛
linux·运维·服务器
星光璀璨山河无恙4 小时前
【Linux】grep命令
大数据·linux
寒月6584 小时前
黑盒白盒测试
运维·服务器
I love this bad girl4 小时前
防火墙旁挂部署+故障切换
服务器·网络·数据库
echo爱学易语言4 小时前
Linux ufw命令丨Linux网络防火墙ufw命令详解
服务器·网络·数据库
海绵波波1074 小时前
zerotier实现内网穿透(访问内网服务器)
运维·服务器