一、Linux操作系统
操作系统定义:操作系统直接运行在计算机上的系统软件, 它是与硬件打交道和控制软件运行的计算机程序。
虚拟机:就是模拟一个真实的计算机,好比一个虚拟的电脑,对于学习一个新的操作系统就可以通过虚拟机来完成。
注意:虚拟机之间是相互独立的,删除虚拟机不会对其它虚拟机产生影响,当然也不会对电脑本身生影响
Linux内核:是操作系统内部操作和控制硬件设备的核心程序,它是由芬兰人林纳斯开发的。
Linux发行版:是Linux内核与各种常用软件的组合产品,通俗来说就是我们常说的Linux操作系统。(Ubantu、CentOS、Redhat)
二、Linux命令
快捷键:↑ 重复上次使用过的命令;同理 ↓ ;history 显示使用过的所有历史命令;Tab自动补全要输入的文件名
Ctrl+c 停止正在执行的命令
1.查看目录命令
ls: 查看当前目录下的路径信息
tree: 以树状方式显示目录
pwd: 查看当前目录路径
clear: 清除终端命令 快捷键:Ctrl+l
ctrl + shift +“+” 放大窗口字体
ctrl + “-” 缩小窗口字体
2.切换目录命令
cd 目录 切换到指定目录
cd ~ 切换到当前用户的主目录 注意:cd后面不写目录等价于cd ~
cd .. 切换到上一级目录
cd . 切换到当前目录
cd - 切换到上一次目录
3.相对路径和绝对路径
绝对路径: 一般以 根目录/ 为开始位置 整个路径信息完整清晰
相对路径: 以当前所在路径为参考路径 使用方便快捷
注意:
在代码编写中建议使用绝对路径,使得代码阅读清晰同时减少错误
示例:
1.使用绝对路径切换到桌面
cd /home/python/Desktop
2.在dbs目录以相对路径切换到桌面
当前路径 /home/python/dbs
cd ../Desktop
3.在桌面使用相对路径切换到上一级目录的上一级目录
当前路径 /home/python/Desktop/itcast/01
cd ../../
4.创建、删除文件和目录命令
touch 文件名 创建指定文件
mkdir 目录名 创建目录(文件夹)
rm 文件名 删除指定文件----------unlink 文件名 也可以删除文件,但是没有rm可以设置的参数
rmdir 目录名 删除空目录
注意: 删除非空目录: rm 非空目录名 –r(-r: 递归删除目录及其内容)
在文件或者目录前面加上 . 表明创建的是隐藏文件
5.复制、移动文件和目录命令
cp:复制(拷贝)文件、拷贝目录
eg:cp A B -r 把A拷贝到B文件夹,如果没有B文件夹,新建B
注意: cp目录需要加上一个-r选项(-r: 递归拷贝目录及其内容)
同一个目录下不能出现相同的文件名
mv:移动文件、移动目录、重命名
重命名:mv后同为文件夹或者同类型文件,执行重命名操作
注意:
cp:复制目录需要加上 –r 选项
mv:移动目录不需要加选项
mv:可以重命名文件和目录
6.终端命令格式
command [-options] [parameter]
command:命令名, 比如: ls、pwd
[-options]:选项,可以有零个、一个或者多个选项,多个选项可以合并,比如使用的 -r 就是选项。
[parameter]:参数,可以有零个、一个 或者 多个参数, 比如: touch 文件名、mkdir 目录名、cd 目标目录(路径),这些文件名和目录名都是参数。
要点注意:
选项:用于调整命令的功能,比如:-r选项调整cp命令的功能。
参数:命令的操作对象,一般是文件名或者目录名。
对于命令,它的选项和参数一般情况下没有顺序要求
7.查看命令帮助的方式
--help command --help
man man command
空格 显示下一屏信息
回车 显示下一行信息
b 显示上一屏信息
q 退出
三、Linux命令选项的使用
1.查看目录信息命令选项
ls命令选项
-l 以列表方式显示,默认是字节
-h 智能的显示文件大小
-a 显示隐藏文件和隐藏目录
注意: ll 相当于 ls -al
文件类型说明:- 表示文件类型;d 表示文件夹
文件权限说明:
由三个三元组字符组成
第一个三元字符组代表文件所有者用户的权限
第二个代表文件用户组的权限,
第三个代表其他用户的权限:
r 表示可读,w 表示可写
x 表示可执行,- 表示没有权限
硬连接数表示:有多少种方式可以访问当前文件或者文件夹
2.创建、删除文件夹命令选项
1.mkdir命令选项
-p 创建所依赖的文件夹(层级套aa/bb/cc)
2.rm命令选项
-i 交互式提示 ---------------只能删除文件
-r 递归删除目录及其内容)----可以删除文件夹及其内容
-f 强制删除,忽略不存在的文件,无需提示
-b 只能删除空文件夹
总结:
创建嵌套文件夹使用 “mkdir –p” 嵌套目录
删除空目录使用“rmdir 目录名”或者“rm –r 目录名”
删除非空目录使用“rm –r 目录名”
3.拷贝、移动文件和文件夹命令选项
1.cp
-i 交互式提示
-r 递归拷贝目录及其内容
-v 显示拷贝后的路径描述
-a 支持拷贝文件夹并且文件夹中的文件权限不丢失
2.mv
-i 交互式提示
-v 显示移动后的路径描述
总结:
拷贝文件防止覆盖使用“cp –i”操作
拷贝文件夹使用“cp –r”操作
移
四、高级Linux命令及选项
1.重定向命令(没有写入文件时会创建)
> 如果文件存在,会覆盖原有文件内容,相当于文件操作中的‘w’模式
>> 如果文件存在,会追加写入文件末尾,相当于文件操作中的‘a’ 模式
2.echo 内容 会直接输入内容 可使用:echo Holle > a.txt 建立a并将Holle写入其中
把运行语句错误重定向到指定文件:./a.py &> 1.txt
tree
2.查看文件内容命令
cat 查看小型文件
more 查看大型文件
less 也可查看大型文件,同more,唯一区别不会自动退出需要在:后加q 退出
|(管道)管道,一个命令的输出可以通过管道做为另一个命令的输入,相当于一个容器。(一般结合more命令使 用,主要是分配查看终端显示内容。)
管道&more:
空格 显示上一屏信息
回车 显示下一行信息
f 显示下一屏信息
q 退出
总结:
查看小文件内容使用 cat 命令, 查看大文件内容使用 more 命令,查看终端显示内容并分屏展示,使用管道结合 more 命令。
3.链接命令
软链接(ln -s):
类似于Windows下的快捷方式,当一个源文件的目录层级比较深,我们想要方便使用它可以给源文件创建一个软链接。
注意:尽量使用绝对路径,否则可能失效;删除源文件,软链接会失效;目录也可以创建
4.查找文件内容命令
grep:查找/搜索文件内容
-v 显示不包含匹配文本的所有行
-n 显示匹配行号
-i 忽略大小写
grep命令结合正则表达式使用
^以指定字符串开头;$以指定字符串结尾;. 匹配一个非换行符的字符
注意:
grep 还可以查找管道中的内容;比如:ls / | grep ‘lib’
grep 可以省略查找内容的引号;比如:ls / | grep lib, grep hello 1.txt
5.查找文件命令
find 在指定目录下查找符合条件的文件
-name 根据文件名查找文件-------------find 目录 -name 文件名
通配符:模糊搜索
* 代表0个或多个任意字符---------在文件夹内科表示该文件夹内所有的文件和文件夹 rm * -r 删除当前目录下所有内容
?代表任意一个字符
注意:
通配符不仅能结合 find 命令使用,还可以结合其它命令使用,
比如: ls、mv、cp 等,这里需要注意只有find命令使用通配符需要加上引号。
ls 1?1.txt --> 123.txt
6.压缩和解压缩命令
后缀:.gz和.bz2的压缩包需要使用tar命令来压缩和解压缩
tar:压缩和解压缩命令
-c 创建打包文件
-v 显示打包或者解包的详细信息
-f 指定文件名称, 必须放到所有选项后面
-z 压缩(.gz)
-j 压缩(.bz2)
-x 解压缩
-C 解压缩到指定目录---------tar 选项 压缩包 -C 指定目录
注意:
.bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间(注意在压缩较大文件时)
7.文件权限命令
左数第一列是文件类型和权限;第三列用户名;第四列用户组;第五列文件大小;第六列文件修改时间;第七列文件名
chmod:修改文件权限
字母法:chmod u/g/o/a+/-/=rwx 文件名
u user 表示该文件的所有者
g group 表示用户组
o other 表示其他用户
a all 表示所有用户
+ 增加权限
- 撤销权限
= 设置权限
r可读 w可写 x可执行 -无任何权限
注意:目录可读类似ls 可写类似移除、修改 可执行类似cd,即切换命令
数字法:chmod 权限值 文件名
r 可读,权限值是4
w 可写,权限值是2
x 可执行,权限值是1
- 无任何权限,权限值是0
注意:chmod 5 1.txt-------------给的数字不是3个的时候从右至坐赋值 本例为o
8.获取管理员权限的相关命令
sudo命令:
sudo -s 切换到root用户,获取管理员权限------------某次操作使用
sudo 某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo------大量操作谨慎使用
组管理:都要通过sudo操作,否则没有权限
groupadd 组名 添加组
groupdel 组名 删除组
cat /etc/group 确认组信息---------etc文件下存放的是系统配置文件
chgrp -R 组名 文件/目录 递归修改文件/目录的所属组
创建用户、设置密码、删除用户
查看家目录:ll /home
whoami命令:查看当前用户
exit:退出登录用户
注意: 如果是切换后的登陆用户,退出则返回上一个登陆账号。
如果是终端界面,退出当前终端。
who:查看所有登录用户
passwd:修改用户密码,不指定用户默认修改当前登录用户密码
which:查看命令位置
shutdown –h now:立刻关机 -----------now可以改为关机时间几分钟,3表示3分钟后关机
shutdown -r 时间:重启 -r 选项表示重新启动reboot
9.远程登录、远程拷贝命令
1.ssh:远程登录
想要使用ssh服务,需要安装相应的服务端和客户端软件。
安装步骤:
假如Ubuntu作为服务端,需要安装ssh服务端软件. 执行命令: sudo apt-get install openssh-server
客户端电脑如果是macOS系统则不需要安装ssh客户端软件,默认已经安装过了,直接可以使用ssh命令
客户端电脑如果是Windows系统则需要安装OpenSSH for Windows这个软件
ssh命令格式: ssh 用户名@ip地址
在一台电脑上ssh客户端和服务端软件都可以安装
在Ubuntu安装ssh客户端命令: sudo apt-get install openssh-client
安装了ssh客户端软件就可以使用ssh命令了
ssh是专门为远程登录提供的安全性协议,常用于远程登录
拓展:sp -ef/aux 查看正在运行的所有程序
2.scp:远程拷贝
scp是基于ssh进行安全的远程文件拷贝的命令,也就是说需要保证服务端和客户端电脑安装了相应的ssh软件
1. 远程拷贝文件:
scp 本地文件 远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径
scp 远程服务器用户名@远程服务器ip地址:远程服务器文件 指定拷贝到本地的路径
2. 远程拷贝目录:
scp -r 本地目录 远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径
scp -r 远程服务器用户名@远程服务器ip地址:远程服务器目录 指定拷贝到本地的路径
-r 表示递归拷贝整个目录
3.配置别名:每次ssh 用户@ip 太麻烦了 配置好别名后直接ssh 别名就可远程登录
在用户家目录下打开.ssh隐藏文件,在里面新建config文件,用gedit打开文件写入如下格式文件
Host 别名
HostName 远程服务器的IP
User 远程服务器用户名
Port 登录的服务器端口号22
FileZilla软件:是一个免费开源的FTP软件, 可以可视化方式上传和下载文件
注意:
1. ssh命令是远程登录主机电脑,相当于直接操作的是远程电脑。
2. scp命令是可以把本机文件拷贝到远程主机,也可以把远程主机文件远程拷贝的本机,注意:拷贝文件夹需要加-r选项。
3. 大量的文件上传和下载可以通过可视化工具FileZilla来完成。
10.vim编辑器:vi 文件
是一款功能强大的命令文本编辑器,可以对远程服务器的代码直接进行修改,这样操作起来更加快速和方便。
工作模式:命令、编辑i、末行:模式
注意点:编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成。
末行模式命令:
-
:w 保存
-
:wq 保存退出
-
:x 保存退出
-
:q! 强制退出
vim命令模式常用命令:
11.ifconfig 查看网卡的信息 直接回车查看
计算机中可能会有物理网卡和虚拟网卡,物理网卡一般用ensXX表示
ping ip地址 ---------检测到目标主机是否连接正常
ping 127.0.0.1-------检测本地网卡工作正常 数值越大速度越慢ms