二十一、Linux命令复习
21.1 命令行提示符
ubuntu:用户名
@:分隔符
ubuntu:主机名
day01:当前工作路径
$:普通用户权限 #:超级用户的权限
21.2 切换用户
su 用户名 ------>切换到指定的用户
su 直接回车 ------>默认切换到root用户
sudo 指令 ------>使用管理员的权限执行后面的指令
21.3 修改密码
- passwd
如果修改超级用户的密码------>需要加sudo
sudo passwd root ------>修改超级用户的密码
passwd ------>修改当前用户的密码
21.4 ls
ls 目录 --------->显示当前目录下的所有文件
ls 文件名 -------->回显一次文件名
ls -alh ------>-a显示所有,包括隐藏文件,-l显示详细信息,-h文件大小带单位的显示
21.5 cd
切换工作路径
cd 目标路径 ------>切换到指定路径下
~:当前用户的家目录,相对路径
/:根目录
绝对路径:从根目录开始的路径
相对路径:相对当前位置/相对于当前用户
. 当前路径
..上一级路径
cd 直接回车:切换到当前用户的家目录
21.6 touch
touch 文件名
1.文件不存在,touch就是创建文件
2.文件存在,修改文件的时间戳
21.7 vi/vim
vim是一个编辑器,如果在编辑器内保存退出,就是创建文件
vim/vi 文件名
21.8 cp
拷贝文件
cp 源文件的路径 目标文件的路径
cp指令结束后,源文件的信息会被保留两份
21.9 mv
移动文件
常用于文件的重命名
mv 源文件的路径 目标文件的路径
cp指令结束后,源文件的信息会被保留一份
21.10 mkdir
mkdir 目标路径
想创建,家目录下的dir1/dir2/dir3 ----->指令应该怎么写
mkdir ~/dir1/dir2/dir3 -p ----->-p的作用嵌套创建
-v:显示指令执行的过程
21.11 rm
删除上一步创建的dir1目录
rm ~/dir1 -r
21.12 cat
cat 文件名 ----->回显文件的内容到终端
echo 字符串 ------>打印字符串
21.13 重定向符
cat 1.c > 2.c
1.如果2.c存在,使用1.c中的内容覆盖掉2.c中的内容
2.如果2.c不存在,创建一个2.c为文件,把1.c的内容写到2.c中
echo 3 > 2.c
1、如果2.c存在,使用3覆盖掉2.c中的内容
2、如果2.c不存在,创建一个2.c为文件,把3写到2.c中
追加 >>
二十二、Linux网络配置
配置的是桥接网络
ping baidu.com,能够ping通就是有网了
22.1 设置虚拟机支持桥接网络
- VMware虚拟机----->设置
- 让虚拟机支持桥接网络
22.2 VMware添加桥接网络
22.3 配置虚拟机的桥接网络(在虚拟机中)
- 别忘了在主机的命令行中找到网关,可以通过ipconfig命令来获取网关及ip与掩码
- 主机命令行打开方法:窗口键+r,输入cmd,回车
二十三、在线安装软件
23.1 更新Ubuntu的软件源(在虚拟机中)
在下载软件时, 计算机会读取/etc/apt/sources.list 文件中的网址
更新软件源,需要修改这个配置文件
在搜索引擎上,搜:Ubuntu软件源更新
国内常见的软件源:清华源,阿里源,163源,中科大源·····
更新软件源目的是:在下载软件时,读取国内网址
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
上面这个是清华源。
把里面的配置信息复制下来,粘贴到/etc/apt/sources.list 文件中
把/etc/apt/sources.list 文件中之前的内容注释掉
保存退出
23.2 更新软件列表
sudo apt-get update ----->读取/etc/apt/sources.list文件中的网址,并将网址中的软件列表拉取到本地
只要/etc/apt/sources.list 文件中内容修改过,就需要重新update
23.3 在线下载软件
sudo apt-get install 软件名 ----->下载软件
运行软件(直接在终端输入软件名)
让软件后台运行(oneko&) ----->后台运行软件时,会弹出一个进程号--->根据进程号杀死该进程
sudo apt-get install gnome-mines ------->扫雷
奶牛说:sudo apt-get install cowsay
cowsay可以更换动物 ---->cowsay -l
cowsay -f dragon hello ----->让龙说hello(cowsay如何使用其他小动物)
sudo apt-get remove 软件名 ---->卸载软件(不完全卸载,不删除配置文件)
sudo apt-get remove 软件名 --purge ----->完全卸载软件
sudo apt-get download 软件名 ---->下载软件的安装包
下载的软件安装包,在执行指令的路径下,下载安装包时报没有权限错误,只是表示不能安装程序
直接执行install指令,也会下载软件的安装包,但是软件安装包被下载在默认位置
/var/cache/apt/archives/
可以使用:
sudo apt-get clean 清除默认下载位置的软件安装包
23.4 后台运行程序
程序名&
会回显一个进程号
23.5 杀死进程
kill -9 进程号
二十四、离线安装软件
24.1 软件包的命名规范
sl _3.03 -17build2_ amd64. deb
| | | | |
软件名 主版本号 修订版本号 支持64位架构 软件包后缀
i386--->支持32位架构的
Linux下的软件安装包标准有两种:
- deb ----->debian标准的软件安装包
- rpm ----->redhat标准的软件安装包
24.2 离线安装软件
dpkg ----->debian package
sudo dpkg -i 软件包名 ----->离线安装软件
1.计算机中已有该软件安装包
2.执行指令的路径下,有该软件安装包
sudo dpkg -r 软件名 ------->离线卸载软件(不完全卸载)
sudo dpkg -P 软件名 ------->离线完全卸载软件
24.3 离线安装和在线安装的区别
- 在线安装需要网络连接成功,离线不需要
- 如果在线安装,软件有更新,终端会提示
3. 在线安装会检查软件依赖,并安装依赖,离线安装不行
二十五、配置共享文件夹
实现Ubuntu和wins下的文件互通
25.1 保证主机下有文件夹
- 在主机下创建一个,要和VMware共享的文件,(建议纯英文路径)
25.2 打开虚拟机的共享文件夹
- 虚拟机----->设置----->选项----->共享文件夹------->总是启用
- 添加共享文件夹
二十六、文件相关的操作
26.1 Linux的文件系统结构
- 倒插树结构,从根目录出发,万物皆文件
26.2 Linux的发展史
Linux是由unix演变过来的
GNU是一个项目或者理解为一群人,(GNU is not unix)
GPL许可证/协议:要求在GNU产品的基础上进行二次开发的产品必须开放源码
Linux的发行版:(内核源码和软件应用结合)
Linux发行版举例
Ubuntu
redhat
centos
open SUSE
Deepin ------>国内的发行版
kali
往下都是命令之类的了
26.3 head、tail
- 一般不会单独使用,会和管道符一起使用,用于显示文件的第n行
head 文件名 显示文件的前10行
head -n 文件名 显示文件的前n行
tail 文件名 显示文件的后10行
tail -n 文件名 显示文件的后n行
26.4 管道符 |
- 用于多个命令连起来
指令1 | 指令2 | 指令3 | 。。。 | 指令n
会把前一条指令的输出结果,当成后一条指令的输入
练习:
1:显示1.c的第5行
head -5 1.c | tail -1
2:显示/etc/passwd中的第41行
head -41 /etc/passwd | tail -1
26.5 find
find 查找的路径 -name 文件名 在指定路径下,以文件名为条件 查找文件,并显示文件的绝对路径
find可以和通配符结合进行模糊查询
find / -name day\* 一定要进行转义
26.6 file ------>查看文件信息
如:file a.out
a.out: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6dd5e59aa75fc4fadb01e8dd382d8b9e242df322, for GNU/Linux 3.2.0, not stripped
a.out:可执行文件名
ELF 64-bit LSB shared object:ELF是文件类型,64位小端存储
x86-64:支持64位
version 1 (SYSV):版本
dynamically linked, interpreter /lib64/l:链接到的库
for GNU/Linux 3.2.0:gcc编译器的版本号
BuildID[sha1]=6dd5e59aa75fc4fadb01e8dd382d8b9e242df322:动态ID
not stripped:没有被压缩
26.7 grep ----->查找字符串
grep 要查找的字符串 文件名 从文件中查找这个字符串
参数:
-n : 显示行号
-i : 不区分大小写
-R : 递归搜索(当文件是个目录时)
-w : 按单词查找
grep "^ubuntu" /etc/passwd 在 /etc/passwd 中查找以 ubuntu 为起始字符的行
grep “bash$” /etc/passwd 在 /etc/passwd 中查找以 bash 为结尾字符的行
grep "^ubuntu$" 1 ---->在1中,查找一行中只有Ubuntu的所在行
练习:
1:查找Ubuntu用户在/etc/passwd中所在行,并显示行号
grep "^ubuntu" /etc/passwd -n
2:查找sys用户,在/etc/passwd中的所在行
grep "^sys" /etc/passwd
26.8 cut ----->截取字符串
cut -d 分隔符 -f 要截取的域 文件名
域的写法 : "1" "1,2" "3-5"
通常cut会通过 管道符 与其他指令 结合使用
练习:
1.截取出Ubuntu用户的uid
grep "^ubuntu" /etc/passwd | cut -d : -f 3
2.截取出Ubuntu用户所在的行
grep "^ubuntu" /etc/passwd | cut -d : -f 1
3.截取出Ubuntu用户的家目录,要求不能以:作为分隔
grep -n "^ubuntu" /etc/passwd | cut -d / -f 2,3
26.9 单个文件的压缩和解压缩
压缩或者解压缩后,源文件都不存在
gz bz2 xz Linux下三种压缩工具
压缩操作:
gzip 要压缩的文件 默认生成 .gz 后缀的文件
bzip2 要压缩的文件 默认生成 .bz2 后缀的文件
xz 要压缩的文件 默认生成 .xz 后缀的文件
解压缩操作:
gunip 要解压缩的文件
bunzip2 要解压缩的文件
unxz 要解压缩的文件
- 压缩效率(压缩程度) : xz > bz2 > gz
- 压缩时间(时间更长) : xz > bz2 > gz
26.10 tar ---->归档
- 可以实现对 目录 和 多个文件 的打包并压缩操作
打包和拆包后源文件仍然存在
26.10.1 打包并压缩
使用tar指令时,-f参数只能加文件名
tar -cvf 打包生成的文件名.tar 要打包的文件
使用 tar 压缩:
tar -cvf 打包生成的文件名.tar.xz/gz/bz2 要打包的文件
-z : 使用 gz 工具进行压缩
-J : 使用 xz 工具进行压缩
-j : 使用 bz2 工具进行压缩
如果使用 tar 命令进行打包压缩,一定要保证 参数 和 文件后缀 严格对应
26.10.2 拆包与解压缩
tar -xvf 要拆包 / 要拆包并解压缩的文件
-x 是一个万能的拆包解压缩命令
26.11 链接文件的创建
复习:
b : 块设备文件 - : 普通文件
c : 字符设备文件 l : 软链接文件
d : 目录文件 s : 套接字文件
p : 管道文件
26.11.1 创建硬链接文件 ln
ln 想要链接的文件 创建的硬链接文件
硬链接文件的注意事项:
1.硬链接文件和源文件有相同的inode号
2.创建硬链接文件时,不需要考虑路径的问题
3.任一个文件的修改,都会被更新到另一个文件上
4.硬链接文件的文件类型是普通文件
5.删除硬链接文件,源文件不会被删除,当文件链接文件的个数为0时,文件会被删除
6.创建硬链接文件会增加文件描述中硬链接文件的个数
26.11.2 软链接文件的创建 ln -s
ln -s 想要链接的文件的绝对路径 创建的软链接文件的绝对路径
软链接文件的注意事项:
1.创建软链接文件时,必须要加绝对路径
2.当源文件被删除时,软链接文件会失效(文件名会变成红色),如果再创建一个同名的源文件,链接会重新生效
3.不会增加文件描述中,链接文件的个数,但是软链接文件的文件类型是l
4.任一个文件发生修改,都会同步到另一个文件上
5.软链接文件,可以理解为快捷方式
26.12 chmod ----->修改文件权限
r : 可读 4
w : 可写 2
x : 可执行 1
26.12.1 使用字母表示法修改文件权限
所属用户 u 所属组用户 g
其他用户 o 所有用户 a
chmod 用户+/-/=权限 文件名
练习:
使用touch创建一个文件,修改该文件所属用户添加可执行权限,其他用户添加可写权限
要求:不能通过八进制数修改,并且写在一条指令内。
touch 1
chmod g+x,o+w 1
注意用 逗号 隔开
26.12.2 八进制表示法修改文件权限
chmod 八进制数 文件名
权限范围 : 0-7
chmod 0764 12 ----->0标识八进制数的前导符
26.13 chgrp ---->修改文件的所属组用户
chgrp 目标组 文件名
若涉及到root权限,则加上sudo
26.14 chown
chown 目标用户 文件名
sudo chown root 1.c 把1.c的所属用户改为root
sudo chown root: 1.c 把1.c的所属用户和所属组用户都改为root
sudo chown :root 1.c 把1.c的所属组用户改为root
sudo chown root:ubuntu 1.c 把1.c的所属用户改为root,所属组用户改为ubuntu
26.14 wc(word count)
wc 文件名 回显文件名,行数,字符个数和单词个数
wc -c 文件名 回显字符的个数
wc -w 文件名 回显单词的个数
wc -l 文件名 回显文件的行数