linux知识
操作系统(科普)
1.操作系统可以直接和硬件打交道(最重要的作用),在操作系统中,封装了许多的方法(系统调用),供程序直接使用来操作硬件。
2.在没有操作系统的计算机上编写代码,就必须要用机器语言 0 和 1
3.在计算机上安装了操作系统后,就可以在操作系统上安装支持的高级语言环境,用于高级语言的开发
4.操作系统分类
桌面操作系统
服务器操作系统
嵌入式操作系统
移动设备操作系统
5.用户操作系统
单用户操作系统:指一台计算机在同一时间只能有一个用户使用,一个用户独享系统的全部硬件和软件资源
多用户操作系统:指一台计算机在同一时间可以有多个用户使用
6.在 linux
系统中没有盘符的概念,所有文件都存储在**根目录下/
**,home 目录最重要,其中存储着所有用户的文件,并且每个用户只能在自己的文件夹中进行操作
linux 命令
基础命令
常用 linux 命令
1 | # ls(list),查看当前文件夹下的内容 |
linux 终端命令的格式
1 | command [-options] [parameter] |
查阅命令的帮助信息
1 | 1.command --help,显示command命令的帮助信息 |
文件和目录
查看目录内容
ls 后面也可以有参数,表示显示置顶目录下的内容
常用选项
1 | 1.以点开始的文件是隐藏文件 |
通配符的使用(跟正则表达式差不多)
*代表任意多个字符(0 - 无穷大)
- 找到以数字 1 开始的文件或目录,ls 1*
- 找到以数字 1 结尾的文本,ls *1.txt
?代表一个字符
[] 表示可以匹配字符组中的任意一个, [abc]、[a-c]
切换目录
- cd / 回到根目录
- cd ~ 回到 home 目录,及当前用户目录
- cd - 在最近两次工作目录之间来回切换
- 相对路径是相对当前目录进行定位
- 绝对路径是相对 /目录或者 ~目录进行定位
目录文件操作
1 | # mkdir创建文件夹 |
1 | # touch创建文件 |
1 | # rm删除文件或文件夹 |
*拷贝和移动文件
1 | # cp复制文件或目录 |
1 | # tree以树状图的形式列出目录结构 |
1 | # mv可以用来移动文件或者目录,或者把已经存在的文件或目录重命名 |
查看文件内容
1 | # cat查看文件内容、创建文件、合并文件、追加文件内容等功能 |
1 | # more分屏显示文件内容 |
1 | # grep是一个强大的文本搜索工具(正则匹配) |
其他
- 重定向 > 和 >> 将命令执行结果重定向到一个文件
- > 表示输出,会覆盖文件原有的内容
- >> 表示追加,会讲内容追加到已有文件的末尾
- echo 通常和重定向连用
- 将输入参数显示在终端
- 可以在创建文件的同时,指定文件的内容
- 管道 |,more 和 grep 常用
- linux 允许将一个命令的输出通过管道作为另一个命令的输入
远程管理
1.shutdown 命令
用法 shutdown 选项 时间
-r
选项表示重新启动,-c
选项表示取消关机
**不指定选项和参数,默认表示 1 分钟后关闭电脑 **
远程维护服务器时,最好不要关闭系统,而是重启系统
1 | # 重新启动系统 now表示现在 |
2.查看或配置网卡信息
网卡是一个专门负责网络通讯的硬件设备
ip 地址是设置在网卡上的地址信息,每一台联网的电脑都会有 ip 地址
ifconfig
命令,查看/配置计算机当前的网卡配置信息
ping
命令,检测到目标 ip 地址的链接是否正常,也可以测试网速大小。检测本地网卡是否正常 ping 127.0.0.1
3.远程登录 ssh 服务器
ssh(secure shell)
ssh 客户端的使用
- 书写方式:ssh [-p port] user@remote,可以使用此命令登陆到支持 ssh 的服务器
- user:是在远程机器上的用户名,如果不指定的话默认时当前用户
- remote:是远程机器的地址,可以是 ip 地址或域名
- port:是 ssh server 监听的端口,默认时 22
ssh 是目前较可靠,专门为远程登录会话和其他网络服务提供安全性的协议
ssh 协议可以有效的防止远程管理过程中的信息泄漏
ssh 的传输数据时经过压缩的,可以加快传输速度
端口号:通过端口号可以找到计算机上运行的应用程序,默认端口可以省略
使用 exit 退出当前用户的登录
4.远程复制文件 scp(secure copy)
1 | #把本地当前目录下的01.py文件复制到远程目录下 |
1 | # 复制文件夹 需要使用-r选项 |
5.ssh 高级、配置别名(不常用)
1 | 非对称加密 |
配置别名 简化 ssh 登录和 scp 复制
1 | # 在ssh文件夹下创建config文件(在ssh客户端创建) |
6.用户和权限的基本概念
用户是 linux 系统工作中重要的一环,用户管理包括用户和组
在 linux 中,可以指定每一个用户针对不同文件或者目录的不同权限
对文件/目录的权限包括
1 | read 读 r 数字代号 4 |
ls -l可以查看文件夹下文件的详细信息,从左到右依次是:
- 权限:第一个字符如果是 d 表示目录,否则是文件,剩余的字符分为 3 组,每一组有 3 个字符组成,分别是文件的拥有者及当前用户、用户组、其他用户
- 硬链接数:通俗的讲,就是有多少种方式,可以访问到当前的文件/目录,文件的硬链接数一般是 1,目录的硬链接数取决于该目录的子目录有多少(与孙目录没关系)
- 拥有者:home 目录下 文件/目录 的拥有者通常都是当前用户
- 组:在 Linux 中,很多时候,会出现组名和用户名相同的情况
- 大小
- 时间
- 名称
chmod 简单使用(重要)
chmod 可以修改用户/组对文件/目录的权限
命令格式
1 | # +增加权限 |
超级用户
linux 系统中的root 账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限
sudo 命令有 5 分钟的有效期,超过期限需要重新输入密码
sudo 命令用来以其他身份来执行命令,预设的身份是 root
组管理
创建组/删除组的终端命令都需要通过sudo来执行
组信息保存在**/etc/group 文件中**
/etc 目录是专门用来保存系统配置信息的目录
1 | # 添加组 |
用户管理
添加新用户
1 | #-m 选项 自动创建用户home目录 |
设置用户密码
1 | #如果是普通用户直接使用passwd修改密码 |
删除用户
1 | #如果创建用户时没有添加-m选项,推荐直接删掉这个用户,重新创建 |
用户信息位置
1 | # /etc/passwd文件存放的是用户的信息,有6个分号组成的7个信息,分别是 |
查看用户信息
查看用户 UID 和 GID 信息
1 | uid是用户id |
who查看当前所有登陆的用户列表
whoami查看当前用户是谁
usermod(需要使用 sudo)
可以用来设置用户的主组/附加组和登陆 shell
主组:通常在新建用户时指定,在/etc/passwd 的地 4 列 gid 对应的组
附加组:在/etc/group 中最后一列表示该组用户列表,用于指定用户的附加权限
1 | #可以使用一下命令查看当前用户有多少附加组 |
- 设置了用户的附加组之后,需要重新登陆才生效
1 | #修改用户的主组(passwd中的gid) |
which(重要)
/etc/passwd是用来保存用户信息的文件
/usr/bin/passwd是用来修改用户密码的程序
which 命令可以查看执行命令的所在位置
1 | which ls #/bin/ls |
bin 和 sbin
- 在 linux 中,绝大多数的可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin
- /bin(binary)是二进制可执行文件目录,主要用于具体应用
- /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin(user commands for applications)后期安装的一些软件
- /usr/sbin(super user commands for applications)超级用户的一些管理程序
切换用户
1 | #使用场景 |
修改文件权限
1 | # 修改文件/目录的拥有者 ls -l第三列 |
系统信息相关
主要是为了方便通过远程终端维护服务器,查询相关信息
查看系统时间
1 | # 查看系统时间 |
查看系统空间
1 | # 显示磁盘剩余空间 disk free |
查看进程信息,所谓进程,就是一个正在运行的程序
1 | # 查看进程的详细状况 process status |
其他命令
find 查找文件
1 | # 查找指令路径下扩展名为.py的文件,包括子目录 |
软链接
在 linux 中,文件名和文件数据时分开存储的
1 | # 类似于创建快捷方式 |
打包压缩
打包 tar
1 | # 打包文件 |
压缩 gzip(-z) ,bzip2(-j)
1 | # 压缩文件 |
软件安装 apt(advanced)
1 | # 安装软件 |