操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入输出设备、操作网络与管理文件系统等基本事务。
功能
1管理好硬件设备,为用户提供调用方法
2是计算机中最重要的系统环境
3管理各种其他的软件和程序的运行
4对系统中文件进行管理
1桌面系统:Windows,MacOS为主,图形界面良好用户群体大
2服务器系统:Linux,Unix为主,安全,稳定,费用低占有量大。Windows占有率比较低
3嵌入式系统:Linux为主,主要用于小型智能设备,如智能手机,机器人等。
Linux
Linux系统特点
Linux是一款开源免费的操作系统
支持多种硬件平台
支持多用户
具有非常强大的网络功能
定义
文件系统是计算机操作系统的重要组成部分,用于组织和管理计算机存储设备上的大量文件。
Linux的文件组织没有盘符。将根(/)作为整个文件系统的唯一起点,其他所有目录都从该点出发。
- /bin目录
/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程
序(bin是binary----二进制的简称),多是系统中重要的系统文件。- /sbin目录
/sbin目录类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然
普通用户必要且允许时可以使用,但一般不给普通用户使用。- /etc目录
/etc目录存放着各种系统配置文件,其中包括了用户信息文件/etc/ passwd,系统初始化文件/etc/rc等。linux正
是因为这些文件才得以正常地运行。- /root目录
/root 目录是超级用户的目录。- /lib目录
/lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程
序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间- /dev目录
/dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来
访问鼠标的输入,就像访问其他文件一样。- /usr文件系统
/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。本地安装的程序和其他东西
在/usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。- /var文件系统
/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。- /home
/home 普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹。
打开关闭终端快捷键
打开 :通过ctrl+alt +t,shift+ctrl+n 都可以快速打开一个终端。
关闭 :Ctrl+d或者在命令行输入exit。
终端字体大小控制
放大 摁住 ctrl 和 + 号
缩小 摁住 ctrl 和 - 号
常用快捷键
清空屏幕 : ctrl + l
调取历史命令 : 上下尖头
序号 | 命令 | 作用 |
---|---|---|
01 | ls | 查看当前文件夹下的内容 |
02 | pwd | 查看当前所在位置绝对路径 |
03 | cd [目录名] | 切换文件夹 |
04 | touch [文件名] | 如果文件不存在,新建文件 |
05 | mkdir [目录名] | 创建目录 |
06 | rm [文件名] | 删除指定的文件名 |
07 | cp | 复制一个文件 |
08 | mv | 移动一个文件 |
部分命令细节说明
ls : -l 展示详细信息,-a展示隐藏文件(Linux下 . 开头的为隐藏文件)。
cd: 参数为绝对路径或者相对路径,直接cd表示回到主目录,cd - 回到上一次工作目录 。
touch: 可以同时跟多个参数表示创建多个文件。
cp:如果拷贝的是一个目录需要使用 -r ,同时这个命令有另存为的作用
mv: 即使移动目录页不需要选项,有重命名的作用。
rm:删除表示直接删除,无法找回,如果删除目录需要加 -r选项
小技巧: 使用Tab键可以自动补全文件名,目录名等信息
通配符
通配符 | 含义 | 实例 |
---|---|---|
星号(*) | 匹配任意长度的字符串 | 用file_*.txt,匹配file_wang.txt、file_Lee.txt、file_Liu.txt |
问号(?) | 匹配一个长度的字符 | 用flie_?.txt,匹配file_1.txt、file_2.txt、file_3.txt |
方括号([…]) | 匹配其中指定的一个字符 | 用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t.txt |
方括号([ - ]) | 匹配指定的一个字符范围 | 用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt |
序号 | 命令 | 作用 |
---|---|---|
01 | cat [文件名] | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
02 | head [文件名] | 显示文件头部 |
03 | tail [文件名] | 显示文件尾部 |
04 | grep [搜索文本] [文件名] | 搜索文本文件内容 |
05 | find [目录] -name [文件名] | 在一个目录及其子目录下查找文件 |
06 | wc [文件名] | 查看文件行数,单词数等信息 |
部分命令细节说明
管道
管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。
ls | grep 'hello'
ls | wc -w
序号 | 命令 | 作用 |
---|---|---|
01 | zip ,unzip | 将文件压缩为zip格式/将zip格式文件解压 |
02 | tar | 对gz或者bz2格式进行压缩解压 |
部分命令细节说明
zip: 用于常与windows交互的情况,-r选项可以压缩目录 。
unzip -d 可以选择解压位置
zip test.zip filelist
unzip test.zip
unzip -d /home/tarena test.zip
tar:-cjf 用于压缩bz2格式文件,-czf用于压缩gz格式文件,-xvf用于解压文件,兼容了gzip和bzip2命令的功能。
tar -czf file.tar.gz file1 file2
tar -xvf file.tar.gz
一般Linux 上常用的压缩方式是选用tar 将许多文件打包成一个文件,再以 gzip压缩命令压缩成紧
xxx.tar.gz(或者xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip 压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar 文件
打包:tar -cvf xxx.tar 要打包的文件或目录的列表,用空格隔开
打包并且压缩:tar -zcvf xxx.tar.gz 要打包的文件或目录的列表,用空格隔开
解压:tar -xvf xx.tar
tar -zxvf xx.tar.gz -C /usr/kkb 注意-C大写,防止拆包解压的路径找不到
权限共有10个字符,我们将它分为4大部分来理解:
- — — —
第1部分、表示文件的类型
- 表示是一个文件
d 表示是一个目录
l 表示是一个连接(理解为快捷方式)
第2部分、当前用户具有的对该文件的权限 (owner 属主,缩写u)
第3部分、当前组内其他用户具有的对该文件的权限 (group 属组,缩写g)
第4部分、其他组的用户具有的对该文件的权限 (other 其他,缩写o)
r:Read 读
w:Write 写
x:eXecute 执行
针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
对于文件和目录来说,r,w,x有着不同的作用和含义:
针对文件:r:读取文件内容
w:修改文件内容
x:执行权限对除二进制程序以外的文件没什么意义
针对目录:目录本质可看做是存放文件列表、节点号等内容的文件
r:查看目录下的文件列表
w:删除和创建目录下的文件
x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权
限)
PS:root账户不受文件权限的读写限制,执行权限受限
用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果
是,则后面权限不看。
序号 | 命令 | 作用 |
---|---|---|
01 | sudo | 放在一个命令前,表示使用管理员权限执行 |
02 | chmod | 修改文件权限 |
部分命令细节说明
sudo: 在打开终端第一次使用sudo时需要输入密码
chmod
在设置权限时,可以字母也可以使用三个数字分别对应 拥有者 / 组 和 其他 用户的权限
直接修改文件|目录的 读|写|执行 权限,但是不能精确到 拥有者|组|其他
chmod augo+/-rwx 文件名/目录名
例如:
777
===>u=rwx,g=rwx,o=rwx
755
===>u=rwx,g=rx,o=rx
644
===>u=rw,g=r,o=r
序号 | 命令 | 作用 |
---|---|---|
01 | echo | 向终端打印内容 |
02 | date | 显示当前时间 |
03 | df | 显示磁盘剩余空间 |
04 | whoami | 显示当前用户 |
05 | history [num] | 显示历史命令记录 |
部分命令细节说明
echo : -n 表示打印完成不换行
df: -h 选项以Mb为单位显示,-T显示文件系统类型 ext4的为磁盘
history : history 默认显示500条历史记录,后面可以加具体数字表示显示多少条
输出重定向
重定向符 | 含义 | 实例 |
---|---|---|
> file | 将file文件重定向为输出源,新建模式 | echo “hello world” > out.txt,将执行结果,写到out.txt文件中,若有同名文件将被删除 |
>> file | 将file文件重定向为输出源,追加模式 | ls /usr >> output.txt,将ls /usr的执行结果,追加到Lsoutput.txt文件已有内容后 |
序号 | 命令 | 作用 |
---|---|---|
01 | shutdown | 关机或者重启 |
02 | ln | 创建链接 |
03 | tree | 获取目录树形结构 |
部分命令细节说明
shutdown:
shutdown -r now 立即重启
shutdown now 立即关机
shutdown +10 10分钟后关机
shutdown -c 取消关机计划
ln : 一般使用 -s 选项 创建软链接,相当于快捷方式,如果跨目录创建要使用绝对路径。
ln -s hello.py hello
什么是vi编译器
vi是Linux操作系统中一个自带的编辑器。没有图形界面,只能编译文本内容,没有字体段落等设置,通过命令强大的命令完成一系列的编写工作。
$ vi [文件名]
如果文件已经存在,会直接打开该文件
如果文件不存在,会新建一个文件
工作模式
vi
的 入口vi
返回到控制台,需要在末行模式下输入命令vi
的 出口命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
o | 在当前行后面插入一空行 | 常用 |
命令 | 功能 |
---|---|
w | 保存 |
q | 退出,如果没有保存,不允许退出 |
q! | 强行退出,不保存退出 |
wq | 保存并退出 |
w! | 强制保存 |
命令模式常用命令
命令 | 功能 |
---|---|
w | 向后移动一个单词 |
b | 向前移动一个单词 |
0 | 行首 |
$ | 行尾 |
命令 | 功能 |
---|---|
gg | 文件顶部 |
G | 文件末尾 |
:数字 | 移动到 数字 对应行数 |
撤销和恢复撤销
命令 | 功能 |
---|---|
u | 撤销上次命令 |
CTRL + r | 恢复撤销的命令 |
命令 | 功能 |
---|---|
x | 删除光标所在字符,或者选中文字 |
cc | 删除光标所在行并进入插入模式 |
命令 | 功能 |
---|---|
yy | 复制一行,可以 nyy 复制多行 |
dd | 剪切光标所在行,可以 ndd 剪切多行 |
p | 粘贴 |
命令 | 功能 | 工作模式 |
---|---|---|
r | 替换当前字符 | 命令模式 |
R | 替换当前行光标后的字符 | 替换模式 |
:%s/str/replace/g | 替换str为replace | 底行模式 |
R
命令可以进入 替换模式,替换完成后,按下ESC
可以回到 命令模式
底行模式:2,6s/str/replace/g替换2-6行
命令 | 功能 |
---|---|
/str | 查找 str |
:set nu | 显示行号 |
/ 查找到指定内容之后,使用
n
查找下一个出现的位置:set nu ! 可以取消行号显示
用户:Linux操作系统可以有不同的用户,这是系统管理的重要一环,不同的用户有自己独立的空间内容。
用户组:为了方便对用户管理,Linux操作系统使用用户组的概念。将不同的用户添加到对应的组中,可以方便用户设置权限的设置。
root用户:Linux系统中的root用户通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限,一般工作中不会使用root用户进行系统操作,防止一些误操作带来系统损坏。
序号 | 命令 | 作用 |
---|---|---|
01 | groupadd 组名 | 添加组 |
02 | groupdel 组名 | 删除组 |
03 | useradd -m 用户 -g 组 | 添加用户 |
04 | passwd 用户名 | 设置用户密码 |
05 | userdel -r 用户 | 删除用户 |
useradd : -m 表示添加用户时添加主目录,-g表示选择用户所在组,如果不写默认会创建一个与用户同名的组。
useradd -m abby
passwd : 设置密码,设置之后才能切换新用户登录
设置密码后为新用户添加sudo权限,打开sudoers文件增加如下内容,然后 :w! 强制保存 :q 退出
sudo vi /etc/sudoers
设置命令解释器
注意:1. 新创建的用户和密码信息存储在 /etc/passwd文件中
2. 如果切换用户终端命令行只有一个$ 提示,则vi打开这个文件,将该用户对应的内容修改
删除组:sudo groupdel 组名
sudo kill -9 进程号
Linux下安装的软件包是 deb格式软件包。由于当时Linux系统中软件包存在复杂的依赖关系。因此,通常使用网络安装。
作用 | 命令 |
---|---|
更新软件源 | apt update |
安装软件 | apt install |
卸载软件 | apt remove --purge |
删除缓存的软件安装包 | apt clean |
安装本地软件包 | dpkg -i 在线解决未处理的依赖关系apt --fix-broken install |
卸载软件 | dpkg -P |
sudo apt install sl # 安装
sudo apt remove --purge sl # 彻底卸载
ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。在数据传输方面有很多应用。之前说到,实际工作中经常需要远程访问服务器,ssh就是通用的远程访问服务器的方法。
ifconfig 查看ip地址
安装启动
安装ssh服务 : sudo apt install openssh-server
查看ssh服务状态 : ps -e | grep “ssh”
启动和关闭 :
sudo service ssh start/restart/stop
常用命令
序号 | 命令 | 作用 |
---|---|---|
01 | ssh 用户名@ip | 登录远程主机 |
02 | scp 用户名@ip:文件名绝对路径 目标位置 | 远程复制文件 |
ssh登录
ssh [email protected] # 登录
exit # 退出
scp -r 文件 用户名@ip地址:目录 把文件夹复制到远程
scp 用户名@ip地址:文件 把远程文件复制到当前目录
ssh秘钥
在服务器中并没有pycharm这些集成编译工具,所有当我们最后将程序部署在服务器上执行时,往往需要通过终端运行python程序。