一、基础简介
1. 虚拟机
-
虚拟机就是一款软件,运行在windows macos上
-
虚拟机作用:在当前系统上虚拟出一个或多个操作系统,
-
虚拟机的优点:各个虚拟机之间相互独立,互不影响
-
docker容器
-
anaconda:python环境管理工具,不同容器中可以选择不同的python版本
2. ubuntu系统
-
根目录: /
-
当前用户目录: /home/用户名
3. Linux内核与发行版本
-
linux内核(非常小):Linux控制和操作硬件的核心部分
-
发行版本:Linux内核 + 常用软件
-
常见发行版本:
- ubuntu
- centOS
- redhat
二、常见命令介绍
1.Linux基础命令
1. 系统版本
# 处理器架构
arch
# 内核版本
uname -r
# cpu info
cat /proc/cpuinfo
# Linux 版本
cat /proc/version
2. 目录操作
# 展示当前目录所有文件
ls
# 以树的方式展示目录结构(两层)
tree -L 2
# 展示当前路径
pwd
# 清屏
clear(或者通过 ctrl + l / ctrl + k)
3. 切换目录
# 切换到上一级目录
cd ..
# 切换到用户目录
cd ~
# 当前目录
cd .
# 切换到上次的目录
cd -
4. 绝对路径和相对路径
pwd
# 当前目录 /home/python/aaa
# 切换到Desktop:
# 1.使用绝对路径
cd /home/python/Desktop
# 2.使用相对路径
cd ../Desktop
5. 文件操作相关命令
# 创建文件
touch 文件名
# 删除文件
rm 文件名
# 删除文件夹(及文件夹中所有文件)
rm -r 文件夹
# 删除空文件夹
rmdir 文件夹
6. 复制、移动文件和目录
# 复制文件和目录(也可修改文件名)
cp 文件 目录 (或文件名)
# 复制文件夹(递归)
cp -r 文件夹 目录
# 移动(重命名)文件和目录(不需要 -r)
mv 源文件 新文件
7. 终端命令格式组成
格式:
命令 [可选项] [参数]
命令:必须
可选项:预定义好
参数:不确定
8. 查看命令格式
# 建议此方式
命令 --help
man 命令
9. ls常用可选项
# 列表方式
-l
# 智能显示(文件大小已 K M G 量级显示)
-lh
# 展示所有文件(包括隐藏文件)
-a
# 展示所有文件详情(包括隐藏文件)
-al
# 智能展示所有文件详情(包括隐藏文件)
-alh
10. 创建文件夹、删除文件或文件夹可选项
# 把父文件夹一并创建
mkdir -p 文件夹
# 递归删除文件夹下的所有文件和文件夹
rm -r
# 强制删除,没有提示
rm -f
# 交互式提醒
rm -i
# 强制递归删除
rm -rf
11. 拷贝或移动文件
拷贝 cp
-i: 交互式提示(拷贝文件防止覆盖)
-v: 显示拷贝后的路径描述
-r: 拷贝文件目录
–a: 拷贝文件夹并且文件权限不丢失
移动 mv
-i: 交互式提示(移动文件防止覆盖)
-v: 显示拷贝后的路径描述
2.Linux高级命令
1. 重定向
- 作用: 将命令输出,放到其他地方(比如写入文件)
- 分类: 1.覆盖添加 > 2. 追加 »
2. echo 回显
echo 字符串(控制台上显示字符串)
echo "hello world" > d.txt
创建文件并初始化内容
3. 查看文件内容 cat more
# 把文件名显示到终端上,适合小文件
cat 文件名
# 通过分页方式展示,适合大文件
# 快捷键 f:下一页 b:上一页 回车:下一行
more 文件名
# |:管道,把上个命令的输出作为下个命令的输入
# 命令|命令
ll | more
4. 链接 ln
-
软连接:相当于快捷方式
# 尽量使用绝对路径,相对路径容易失效!!! ln -s 需要链接的文件/文件夹 软连接名称
-
硬连接:类比于指向同一个对象的两个不同指针
# 硬连接和源文件共用同一块内存 # 修改硬连接,源文件也会变化 # 一般用来保存非常重要的文件 # 删除硬连接,不会影响源文件 ln 需要链接的文件 硬连接名称 # cp:拷贝,复制出一样的文件
5. 查找特定内容 grep
grep [可选项] 字符串/正则 文件
可选项
-n 显示行号
-v 取反
-i 忽略大小写
正则:
^a 以a开头
a$ 以a结尾
. 匹配任意一个字符
# 与管道连用
ll / | grep 字符串/正则
ps -aux | grep ssh
6. 查找文件 find which
# find 路径 [可选项目] 文件名/通配符
find . -name "a.txt"
find . -name "a*.txt"
find . -name "a?.txt"
通配符:
? 匹配一个字符
* 匹配一个或多个字符
# which 可执行程序
which python3
7. 压缩和解压缩 tar zip unzip
# tar本身是归档操作
# tar包不会压缩
tar -cvf a.tar *.txt/或多个文件,以空格分割
tar -xvf a.tar
# gz压缩包稍大,比较快
tar -zcvf a.tar.gz *.txt/或多个文件
tar -zxvf a.tar.gz
# bz2压缩包更小,比较慢
tar -jcvf a.tar.bz2 *.txt/或多个文件
tar -jxvf a.tar.bz2
tar -jxvf a.tar.bz2 -C 解压目录
可选项:
-c: 创建打包文件
-x: 解压缩
-z: 压缩成gz
-j: 压缩成bz2
-v: 显示详细信息
-f: 指定文件名称,放在所有选项后
-C: 指定解压目录
# zip和gz区别:
# linux下一般都使用gz,因为zip压缩效率比较低
zip a.zip 文件名
unzip a.zip
8. 文件权限管理
windows只能控制只读权限 Linux可以精确控制文件权限
- 角色:
- 文件创建者 u
- 用户组组 g
- 其他用户 o
- 所有 a
- 文件类型
- d:文件夹
- -:普通文件
- l:软连接
- b:块文件
- 权限控制:
- r: 可读 4
- w: 可写 2
- x: 可执行 1
9. 修改权限 chmod
注意:在非用户目录下,需要获取管理员权限才可以执行;
# 1.字母法 chmod u/g/o/a/+/-/=/rwx- 文件名
# eg:
chmod a=rwx a.py
chmod o=- a.py
# 将py文件改成可执行程序:
# 在py环境最上方添加 #!/usr/local/bin/python3
# 2.数字法
chmod 777 a.py
10. 用户和管理员权限
# 切换到用户
sudo -s
# 获取一次管理员权限
sudo 指令
# 获取当前用户
whoami
# 获取所有登陆用户
who
# 关机和重启
shutdown -r now
reboot
# 创建用户
sudo useradd -m tt
# 自定密码
sudo passwd tt
# 切换用户到tt
su tt
# 退出当前用户
exit
# 删除tt用户
userdel -r tt
11. 远程拷贝和登陆
# 远程登陆 ssh 用户@
sudo apt install openssh-server
sudo apt install openssh-client
ssh python@172.16.156.132
# 远程拷贝
# 拷贝文件到远程
scp [-r(拷贝目录)] [-p 端口号] local_file remote_username@remote_ip:remote_folder
# 拷贝远程文件到本地
scp [-r(拷贝目录)] [-p 端口号] remote_username@remote_ip:remote_file local_folder
# 使用FileZille拷贝,图形化界面
12. 软件安装
- deb离线方式:先下载软件,然后通过命令安装 sudo dpkg -i 安装包 卸载:sudo dpkg -r 软件
- apt-get在线安装: 从镜像仓库安装 sudo apt-get install 软件 卸载:sudo apt remove 软件
- 第三方安装
13. vim
- 命令模式: vim a.txt 直接进入命令模式,i 进入编辑模式,: 进入命令模式
- 编辑模式: 编辑文本,esc 进入命令模式
- 末行模式: q/q!/wq/x/ZZ , esc 进入命令模式
常用命令:
行首:shift 6
行尾:shift 4
文件末尾:G
文件开始:gg
到第N行:number + G
撤销:U
反撤销:ctrl + r
复制:yy
粘贴:P
删除/剪贴:dd
按行选中:v
查找: :/xxx 从头查找 , :?xxx 从尾查找
看下一个: n
看上一个: N
左下上右:h j k l
显示行号::set number
如何多行插入?
按Esc进入“命令模式”
使用Ctrl + V进入可视块模式
向上 / 向下移动在你要评论的行选择文本的列。
然后按Shift + i,然后输入要插入的文本。
然后按Esc键 ,等待1秒钟,插入的文本将出现在每一行上。
注意:快捷键参考 https://linux.cn/article-8144-1.html
14. 查看进程信息 ps
```
# 获取进程信息
ps -ef | grep python
ps -aux | grep python
# 杀死进程
kill -9 进程号
```
15.查看硬件配置
# 查看内存
free -h
# 查看硬盘
df -h
# 查看CPU
lscpu
# 查看文件大小
du -sh ./*
16. 查看python路径
whereis python