目录
tree(需要安装yum install -y tree,需要在root账号安装)
tar czf code.tgz d1 long.txt 打包压缩
tar tzf code.tgz d1 long.txt 预览
1、OS(操作系统)是什么?
操作系统是一种做软硬件管理的软件
应用软件是在操作系统之上的
一个好的操作系统衡量指标:稳定,快,安全
为什么要有操作系统?
操作系统的核心工作:通过对下管理好软硬件资源的手段,达到对上提供良好的(稳定,快速,安全)操作/使用环境
我们在计算机上的所有行为都会转换成为硬件行为
我们所有的软件行为,全部都要自顶向下贯穿计算机的软硬件结构。
几乎我们的所有软件行为,未来都和操作系统直接或间接相关!
操作系统两个特性: 管理、贯穿
XShell 下的复制粘贴
Xshell 全屏 Alt+Enter 退出也是一样
两次ctrl+d 退出Xshell
Linux操作的特点:纯命令行/Linux也有图形化界面
windows也是命令行/图形化界面
无论是图形化,还是指令,本质其实是一样的
因为计算机先需要输入输出
所以先有键盘,才有鼠标
因为指令操作更先诞生,指令操作更贴近操作系统
指令操作
ls 当前目录下的文件,ls后面可以带选项 ls-l,
pwd 看在什么路径下 print working directory
mkdir 建立目录文件夹,与文件夹名字要有一个空格
cd 双击 cd class_108/ 加一个/进入某个文件夹 change directory
touch 建立普通文件夹
指令是可以携带选项的(1.14)
ls常见选项
ls创建文件是以 . 开头表示隐藏文件
可以多个选项一起使用
ls 显示文件属性名字
ls一般都是与文件属性有关
ls-l等价于ll
列出文件的详细信息,显示更多的文件属性
4096 0 文件大小
Apr 20 21:04 文件最近创建或修改时间
class_108 文件名
文件类型
第一列的第一个字母表示文件类型
d:是一个目录
-:文件是一个普通文件
以.开头的是隐藏文件
认识文件
文件的属性也是数据,需要存储,因此空文件也要占据内存
文件=文件内容+文件属性
文件的操作=对文件内容的操作or对文件属性的操作
ls -a 显示隐藏文件
ls -la
ls-laF
. 与 ..
linux任何文件目录下都有 . 和..
. . :表示当前路径的上级路径 cd . . 相当于返回上一级目录
. :表示当前路径,存在的意义帮助用户定位当前目录下的一个文件,执行当前路径下的可执行程序
ls + -dl+ 文件名
将目录像文件一样显示,而不是显示其下的文件
ls -alF
显示更多文件类型
ls *
自动匹配
pwd cd
Linux 下 / :表示路径分割符
Windows下 \:表示路径分割符
linux 头/表示Linux的根目录
文件属性以d开头表示目录文件
Linux的整个目录结构:一定是一个多叉数的样子,它的叶子节点一定是空目录或非目录文件,路上节点一定是一个非空目录
所以我们所有的对文件或者目录的增删查改,本质都是对这颗多叉数的增删查改
绝对路径和相对路径
我们把从/(跟目录)开始定位到指定位置,具有唯一性的路径,称为绝对路径!
我们以自己当前所处的路径为起始参照位置,来进行特定文件的定位,我们称为相对路径
我所处的路径发生变化,可能相对路径就失效了
我们定位一个文件,通常用路径来进行定位
因为我们任何节点都只有一个父节点
两者的应用场景
1.绝对路径往往比较长,但是不变,一般在一些固定场景,配置文件中使用
2.一般命令行输入,比较常用相对路径
/ 分割符 ,Linux风格
cd
进入某个文件
whoami 查看当前登录用户是谁
cd ..
cd /home/litao/linux/
:绝对路径
cd ../day02/
cd ~
cd -
返回最近访问目录,我上一次所在的路径
adduser 增加普通用户
userdel -r 删除普通用户
touch 创建一个普通文件
mkdir 创建一个目录文件
mkdir -p 创建多个目录
tree(需要安装yum install -y tree,需要在root账号安装)
将当前文件路径目录结构以树形式进行打印
Linux删除后,很难恢复
rm删除指令
rm 删除普通文件
在root账号下,会询问是否确定删除
因为在Linux下删除了文件很难恢复,成本很高
rm -f
直接删除文件,不需要询问
rmdir
只能删空目录
rm -r
删除目录文件
因为我们不是root账号,所以没有询问是否删除
rm -rf
不要询问直接删除
rm -rf / (根目录)直接删库跑路
rm * -rf
删除文件下所有文件
rm -i
询问是否删除
y表示yes,n表示no
man
输入“Q”退出
按键盘上下建,上翻或者下翻
查看指令操作作用
查看C语言
man 3 printf 3代表查的是C语言
不带编号时,默认先在1号手册里面寻找,找不到再往下找,如果找不到,就会告诉我们这个东西不存在
cp 拷贝指令
源文件和目标文件名字不能相同,同一个目录下,不能存在同名文件
-f 或 --force
强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive
覆盖文件之前先询问用户
当f与i同时存在时,优先选择询问。
-r
cp -rf
cp-r拷贝目录文件
cp-f不询问
cp-i 询问
echo (默认带换行)
直接在显示器上显示
将数据写入文件中
由0字节到12字节
cat
打印文件内容
mv修改文件名 ,还可以进行剪切操作
mv+源文件+目标文件
重命名
mv test.txt teat.txt
剪切操作
mv b.txt ../
剪切并重命名
上一级路径 mv b.txt ../c.txt
剪切后,我们发现在当前路径下已经没有这个文件,然后我们在上级路径上发现这个文件
在当前路径下对它做剪切并重命名
mv b.txt ./c.txt
因此mv指令操作都是可以认为是剪切并重命名,只不过有些没有指定名字,默认用之前的
对上一级路径进行剪切
mv ../mytest.txt .
对于目录文件mv指令操作也是相同的
mv reason ../class_108_1 不会将clas_108_1目录文件覆盖,而是将其添加到class_108_1目录文件下
^c
ctrl+c :终止因为程序或者指令异常,而导致我们无法进行指令输入,无脑ctrl+c
从而进行下次输入
which查看指令在哪
查看指令的路径在哪
alias 用于指令可以重命名
指令重命名
重新打开就会失去作用
也可以甚至为中文
cat指令(后面跟的是文件名)
想显示器打印
打印文件内容
cat -n 打印带编号
cat -
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
-sn
-sb
-snb -sbn
cat 不适合看大文本
适合看小文本
因为它会直接打印完
三大重定向
>输出重定向
echo "hello Linux">out.txt
输出重定向,向目标文件进行写入的时候,覆盖写入
1.清空文件
2.写入新内容
也可以用于清除文件内容
还可以用于创建新文件,
>>追加重定向
append 追加
中间不能带空格
追加重定向
<输入重定向
本来应该从键盘读取,现在不用从键盘读取,从指定的文件读取输入重定向
echo (后面跟的是字符串)
不需要加引号
默认带换行
more(看大文本,只能下翻)
不带选项默认打满一屏数据
按照要求显示,按回车下翻,逐行下翻,不能上翻,按q退出
也可以文本查找
skipping 跳过
到多少行停止
more -500 test.,txt
less(看大文本,推荐使用,按Q退出,可以上下翻)
可以进行文本查找
/+数字往后查找
?+数字往前查找
Linux下一切皆文件
head
从头提取你想提取的n行文本行
默认提取10行
head -提取行数 文件名
tail
从尾提取你想提取的n行文本行
默认10行
指定看最后n行
利用head和tail以及重定向提取文件内容片段
缺点:需要创建一个临时文件
| 管道文件
cat headn-1020 long.txt | tail -21
| 一种符号,后面会被“系统”解释成为管道文件,它不会在磁盘中真实存在,它是一种内存级文件
什么叫做管道?
有一个出口,入口,用于传输资源
cat test.txt | head -50 | teil -20 | wc -l
wc -l 计算有多少行数据
管道通常可以支持流水线工作
管道指令在内存里
2023.5.13
date
打印不允许有空格,会被当成两个操作数
时间戳(很重要的一个概念)
date +%s 查看时间戳
计算机里规定公用的时间
date -d @秒数
查看具体时间
最开始规定的时间是在欧洲,我们这里是东八区,所以快8个小时
时间戳未来会溢出
cal
查看日历
cal+年份
3个查找指令
find
find:可以在指定的路径下进行文件的搜索——真的在磁盘文件中查找
which:可以在指令路径 /usr/bin ,搜索指令文件
whereis:在系统特定的路径下查找,既可以找到
find ~ name test.c
在特定的路径下进行文件名查找的指令
Permission denied 表示没有权限在这个文件内进行查找,因为不是在你自己的家目录下进行查找
grep(行文本过滤工具)
行文本过滤工具
grep '过滤信息' 过滤文件
-v 逆转,有过滤信息的不打印
-n 带编号
-i 忽略大小写
-r 在目录文件中递归查找
Linux下一切皆文件
-i 忽略大小写
-rn 在目录文件里递归查找你需要的内容,在那个路径下的第几行
ssh是Windows下的客户端,sshd是Linux下的服务器
云服务器硬件
ssh软件
软件退出某个国家,关掉在这个国家的服务器,就无法使用软件
zip/unzip
Linux充当服务器的时候,也需要各种网络应用场景,满足通讯需求
所以Linux上也有打包压缩需求
[Yechenchen@VM-4-9-centos ~]$ mkdir -p d1/d2/d3
[Yechenchen@VM-4-9-centos ~]$ ll
total 216
-rw-rw-r-- 1 Yechenchen Yechenchen 18 May 16 10:40 big.txt
drwxrwxr-x 4 Yechenchen Yechenchen 4096 May 16 14:06 class_108
drwxrwxr-x 5 Yechenchen Yechenchen 4096 May 2 17:45 class_108_1
drwxrwxr-x 3 Yechenchen Yechenchen 4096 May 18 15:15 d1
drw-rw-rw- 2 Yechenchen Yechenchen 4096 May 13 17:20 dir1
-rw-rw-r-- 1 Yechenchen Yechenchen 16233 May 3 17:07 newfile.txt
-rw-rw-r-- 1 Yechenchen Yechenchen 130 May 16 19:22 new.txt
-rw-rw-r-- 1 Yechenchen Yechenchen 168894 May 3 16:39 test1.txt
-rw-rw-r-- 1 Yechenchen Yechenchen 0 May 16 14:06 test.c
-rw-rw-r-- 1 Yechenchen Yechenchen 1 May 16 10:46 test.txt
drwxrwxr-x 2 Yechenchen Yechenchen 4096 May 2 18:17 垃圾桶
[Yechenchen@VM-4-9-centos ~]$ cd d1
[Yechenchen@VM-4-9-centos d1]$ ls
d2
[Yechenchen@VM-4-9-centos d1]$ touch file1.txt file2.txt file3.txt
[Yechenchen@VM-4-9-centos d1]$ ls
d2 file1.txt file2.txt file3.txt
[Yechenchen@VM-4-9-centos d1]$ cd d2
[Yechenchen@VM-4-9-centos d2]$ touch file4.txt file5.txt
[Yechenchen@VM-4-9-centos d2]$ ls
d3 file4.txt file5.txt
[Yechenchen@VM-4-9-centos d2]$ echo 'hello world' file4.txt
hello world file4.txt
[Yechenchen@VM-4-9-centos d2]$ echo 'hello world' > file4.txt
[Yechenchen@VM-4-9-centos d2]$ cat file4.txt
hello world
的时候,也需要各种网络应用场景,满足通讯需求
zip 压缩包名字.zip d1(要压缩的文件)只能打包一个
zip -r 压缩包名字.zip d1 递归似的打包和压缩 能打包目录文件 和多个文件
打包和压缩多个文件
首创建一个目录文件
再创建一个普通文件
将这两个文件打包到压缩包里 zip -r 压缩包名字.zip 文件名 文件名,然后再删除这两个文件
解压恢复这两个文件 unzip 压缩包名字.zip
rm d1.*可以删除压缩包
也可以 rm 压缩包名字.zip1直接删除
将压缩包解压到某个路径下
unzip d1.zip -d test
在网上下载的安装包可以在Linux中解压,但是在Linux中解压没有什么意义
安装zip和unzip
以root方式登录 /su /su-->root 切换root账号 su - logout退回原先账号
yum install -y zip unzip
tar()
tar czf code.tgz d1 long.txt 打包压缩
creat 创建 以zip形式进行压缩 f 压缩包名称
tar tzf code.tgz d1 long.txt 预览
t 预览查看里面有什么内容 以zip形式进行预览 f 压缩包名称
tar xzf code.tgz 解压解包
x 解压解包 以zip形式进行解压解包 f 压缩包名称
tgz是什么?
tar->打包后缀
.gz->压缩后缀
XXX.tar.gz->XXX.tgz
-C(解压到指定路径)
tar xzf code.tgz -C ..
[Yechenchen@VM-4-9-centos class_108_1]$ ls
big.txt d1_backup d1.zip d2 mytest_backup.txt mytest.txt reason test_backup.txt
[Yechenchen@VM-4-9-centos class_108_1]$ cd reason
[Yechenchen@VM-4-9-centos reason]$ ls
code.tgz d1 long.txt
[Yechenchen@VM-4-9-centos reason]$ tar xzf code.tgz -C ..
[Yechenchen@VM-4-9-centos reason]$ ls ..
big.txt d1_backup d2 mytest_backup.txt reason
d1 d1.zip long.txt mytest.txt test_backup.txt
zip和unzip与tar的区别?
安装包纯Linux下互相扭转,建议用tar
想要让安装包在Windows中的解压解包软件也能识别,可以直接使用zip
bc(Linux下的计算器)
正常按照先乘除后加减
[Yechenchen@VM-4-9-centos reason]$ echo '1+2+3+4+5+6' | bc
21
[Yechenchen@VM-4-9-centos reason]$ echo '12+45*89-90/89+345' | bc
4361
[Yechenchen@VM-4-9-centos reason]$ uname
Linux
uname -a 查看内核版本
[Yechenchen@VM-4-9-centos reason]$ uname -a
Linux VM-4-9-centos 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
VM-4-9-centos 主机名
3.10.0-1160.71.1.内核版本 el7 centos7
.x86_64 x86_64位系统等价于x64 x86==32位(默认)
#1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
uname -r 查找体系结构
[Yechenchen@VM-4-9-centos ~]$ uname -r
3.10.0-1160.71.1.el7.x86_64
free(查内存)
-k kb
-m M兆
-g G
[Yechenchen@VM-4-9-centos ~]$ free
total used free shared buff
Mem: 2046680 301228 84660 776 1
Swap: 0 0 0
[Yechenchen@VM-4-9-centos ~]$ free -k
total used free shared buff
Mem: 2046680 301320 84536 776 1
Swap: 0 0 0
[Yechenchen@VM-4-9-centos ~]$ free -m
total used free shared buff
Mem: 1998 294 82 0
Swap: 0 0 0
[Yechenchen@VM-4-9-centos ~]$ free -g
total used free shared buff
Mem: 1 0 0 0
Swap: 0 0 0
df(查磁盘)
-h
查磁盘
vda1 阿里云/腾讯云分配给用户的虚拟盘
[Yechenchen@VM-4-9-centos ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 989M 0 989M 0% /dev
tmpfs 1000M 24K 1000M 1% /dev/shm
tmpfs 1000M 748K 999M 1% /run
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/vda1 50G 5.0G 43G 11% /
tmpfs 200M 0 200M 0% /run/user/0
tmpfs 200M 0 200M 0% /run/user/1001
查看cpu
lscpu
支持32位模式和64位模式
Little Endian 小端
[Yechenchen@VM-4-9-centos ~]$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 94
Model name: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
Stepping: 3
CPU MHz: 2399.998
BogoMIPS: 4799.99
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
L3 cache: 28160K
NUMA node0 CPU(s): 0,1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat
chmod
chmod +/-
修改权限
现代操作系统
操作系统-精髓与设计原理
深入理解计算机系统
cmd 关机指令