一、操作系统基础知识
1、操作系统的功能:管理硬件;提供系统调用
2、操作系统的分类:
- 桌面OS:Windows、MacOS、Linux
- 服务器:Linux(90%以上),Windows server(收费)
- 嵌入式:Linux
- 手机:Android(基于linux) ,iOS
3、Linux内核:硬件管理、系统调用、终端命令
Linux发行版:内核+各类应用程序;有很多,Ubuntu、centOS、Redhat
4、Ubuntu的文件系统(无盘符,只有一个根目录 /)
/ -> (bin,etc,home,lib,usr,opt)
其中较为重要的:bin:存放可执行的二进制文件;etc:存放系统配置文件;home:各用户独立成文件夹;opt:额外软件安装位置
二、Linux基础常见命令(格式: command 【选项】【参数】)
文件存取、目录操作、权限设置、进程管理、磁盘操作
1、ls pwd cd tree
(1)ls 【-alh】【目录名】 :a(所有文件,包括.开头的隐含文件) l(以列表的形式展示具体的信息) h(与l搭配,更人性化的方式展示)
还可以与通配符结合使用,*(0,1,N) ?(1) [1234] [1-3]等
(2)pwd :查看当前文件夹所在文件夹的路径
(3)cd :切换路径;常见的符号有 . .. ~ /
(4)tree 目录名 :以树的形式展示目录下所有文件; -d 只显示文件夹
2、文件和目录操作
1)创建删除
(1)touch 路径/文件名: 无则创建,有则只修改最后修改时间,内容不变
(2)mkdir 文件夹名:创建文件夹 ;-p 表示可以递归创建文件夹
(3)rm 文件名:删除文件,其中也支持模式匹配; -r 表示可以删除文件夹
2)查看文件
(1)cat 文件名;一次性展示,适合内容比较少的
(2)more 文件名;分屏展示,适合内容多的;(f b space)
(3)grep 匹配模式 文件名;对文本文件进行模式查找 ;选项 -n 匹配行以及行号, -v 非匹配行 , -i 忽略大小写
3)拷贝和移动
(1) cp 源文件 目标文件 ; -i 提示是否覆盖; -r 可以复制文件夹
(2)mv 源文件 目标文件; 移动或者重命名 ; -i 提示是否覆盖
4)echo以及重定向
echo 参数;将参数输出
> 目标文件:覆盖内容重新填写; >> 目标文件:追加内容
3、网络与远程操作
(1)查看网络配置:ifconfig ; ping ip网址(检测到目标ip 是否正常)
(2)远程登录:linux 和MacOS可以使用下面的命令,Windows需要额外下载软件,比如putty、Xshell进行连接
ssh [-p port] user@remote ; port 默认为22,remote为ip地址、域名, ssh后面的内容也可以用别名代替,需要在.ssh目录下的config文件中进行配置
(3)远程拷贝:linux和macOS可以使用下面的命令,Windows需要额外下载软件,filezilla
scp [ -r(复制目录) -P port ] 源文件 目标文件 ;其中来自服务器的文件要加 user@remote:
4、用户和组(sudo )
(1)用户创建
useradd -m(自动在home下创建目录) -g 组名 用户名;
passwd 用户名;必须要指定密码,否则无法以该用户身份远程连接
cat /etc/passwd; 查看成功否
userdel 用户名;删除用户
id 用户名;查看用户信息
who:展示当前连接系统的用户列表
whoami: 展示当前用户
usermod -G 组名 用户名(G表示附加组) ; -s /bin/bash 用户名(普通用户的shell软件为dash,这个可以更改为更友好的bash)
(2)组创建
groupadd 组名;
groupdel 组名;
cat /etc/group;
chgrp -R 组名 文件/文件夹 :递归修改文件(夹)为权限为当前组名
(3)权限:读(r 4) 写(w 2) 执行(x 1)
chmod +/- r/w/x 文件夹或文件
chmod -R(文件夹专用) 数字(rwx对应的数字0-7) 文件或文件夹
5、系统命令
(1)date ;cal;
(2)df -h(磁盘剩余信息) ;du -h(磁盘使用信息)
(3)ps :当前正在执行的进程
ps -aux : a(当前用户的所有进程) u(详细信息) x(无控制的进程,太多) ,常见的为au组合
top : 类似于任务管理器
kill [ -9](强制执行) pid值
6、重要的几个命令
(1)| 管道命令,允许一个命令的输出作为另一个命令的参数,两个命令用 | 连接 。常与grep等结合使用,比如 ls ~ | grep clarali
(2)shutdown -r now :现在重启
(3)find [路径,默认为当前] -name "匹配模式" : 从所有子目录以及孙子目录等寻找
(4)ln -s 被链接源文件 链接文件名; 类似于创建快捷方式,被链接路径最好使用绝对路径,否则链接文件位置改变后会失效
ln 被链接源文件 链接文件名; 这个为硬链接,上面的软链接,区别是上面的只是给了一个路径指引,下面的是增加了一个真正的引用;
(5)tar -cvf 打包文件名.tar 被打包文件列表(也可以使用匹配模式) ;打包
tar -xvf 打包文件名.tar ;解包
(6)压缩解压缩
gzip :只需要在tar的cvf和xvf前加字母z,然后打包文件名.tar.gz
bzip2: 只需要在tar的cvf和xvf前加字母j,然后打包文件名.tar.bz2
(7)安装软件
sudo apt install 安装包;
sudo apt remove 安装包;
sudo apt update; 自动更新所有可更新的
注:可以设置软件源,以便速度更快一些
三、vi vim
1、vim是在vi的基础上,更加方便编程;现在大多数linux都将vi作为了vim的软连接
2、vi 文件名
3、常用的命令有很多,关键是知道它的三个重要工作模式,其他只是效率问题啦
命令模式 末行模式 编辑模式