目录
[1. 整体学习思维导图](#1. 整体学习思维导图)
[2. 常见快捷键操作](#2. 常见快捷键操作)
[3. 基本指令](#3. 基本指令)
[ls 指令](#ls 指令)
[cd 指令](#cd 指令)
[Stat 指令](#Stat 指令)
[mkdir 指令](#mkdir 指令)
[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.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 为什么进行打包压缩
-
防止文件丢失->打包
-
减少传输时间->压缩
4.9 查看指令是否安装
bash
指令名称--version
[root@iZ2ze0j6dd76e0o9qypo2rZ dir_2024_11_28]# man --version
man 2.6.3
4.10 shell命令及其运行原理简单理解
-
命令行解释器:shell
-
为什么存在外壳程序:
-
方便用户使用操作
-
外壳程序保护内核
-