Linux学习总结
Linux是什么
概念
- 开源的、类UNIX的操作系统
- 严格来说是指Linux的内核,现在一般指基于Linux的完整操作系统(Linux发行版)
- 维基百科[Linux](https://zh.wikipedia.org/wiki/Linux)
发展史
- 1970年使用汇编语言(机器语言)开发的unix
- 由于汇编语言过于依赖机器,移植性不好,因此unix在1973年被使用c语言重新开发
- 1991年Linus改进unix,发布了Linux,并将其开源,后来加入了GNU计划
特点
- 开放性:开放源代码
- 多用户:多个用户可以同时登录
- 多任务:能够同时处理多个任务
- 良好的用户界面:有多种GUI图形界面
- 优异的性能和稳定性:长时间不关机也可以很流畅和稳定
Linux发行版
Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。
一个典型的发行版包括:Linux内核,GNU库和各种系统工具,命令行Shell,图形界面底层的X窗口系统和上层的桌面环境等。
常见的Linux发行版有Centos、Ubuntu
为什么要用Linux
- shell编程方便、可玩性强
- Linux稳定性好
- Linux源码和架构都是开放的,可以学习操作系统的原理,也可以按照自己特定的需求进行修改
- Linux中的各种工具基本都是免费的
怎么用Linux
Linux的安装
直接安装Linux
[菜鸟教程-Linux的安装](https://www.runoob.com/linux/linux-install.html)
作为Windows的子系统
前往Microsoft Store下载和安装
查看Linux版本号
1 lsb_release -a
Linux的目录结构
Linux采用树形结构,没有分盘的概念,可通过```ls```或者```ll```命令查看指定目录。
Linux远程连接
连接方式
下载SSH客户端进行连接,默认端口号为22
设置无操作时保持连接的时间
- 修改/etc/ssh/sshd_config文件中的ClientAliveInterval和ClientAliveCountMax属性
1 ## ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔 2 ## 默认是0, 不发送,60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了. 3 ClientAliveInterval 60 4 ## ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开,这里使用默认值3即可 5 ClientAliveCountMax 3
- 重启SSHD服务
1 systemctl restart sshd.service
修改SSH端口号
- 查看当前端口号
1 netstat -tunlp | grep "ssh"
- 编辑文件
1 vim /etc/ssh/sshd_config
- 修改文件内容(修改需要的端口号)
1 Port 22
- 防火墙开启端口号
1 firewall-cmd --permanent --add-port=22/tcp
- 重新加载防火墙策略
1 firewall-cmd --reload
- 重启防火墙和SSH服务
1 ## 重启SSH服务 2 systemctl restart sshd 3 ## 重启防火墙 4 systemctl restart firewalld.service 5 ## 重启服务器 6 shutdown -r now
- 连接服务器
1 ssh root@服务器IP-p 22
Linux防火墙配置
每个Linux发行版都不相同。
centos7的命令如下:
参考博客:https://wangchujiang.com/linux-command/c/firewall-cmd.html
1 ## 启动 2 systemctl start firewalld 3 4 ## 关闭 5 systemctl stop firewalld 6 7 ## 查看状态 8 systemctl status firewalld 9 10 ## 开机禁用 11 systemctl disable firewalld 12 13 ## 开机启用 14 systemctl enable firewalld 15 16 ## 查看帮助 17 firewall-cmd --help 18 19 ## 查看防火墙 20 firewall-cmd --list-all 21 22 ## 查看所有打开的端口 23 firewall-cmd --zone=public --list-ports 24 25 ## 添加一个端口(添加后需要重新载入) 26 ## 其中--permanent永久生效,没有此参数重启后失效 27 firewall-cmd --zone=public --add-port=端口号/tcp --permanent 28 29 ## 关闭一个端口 30 firewall-cmd --remove-port=端口号/tcp --permanent 31 32 ## 重新加载 33 firewall-cmd --reload
Linux用户管理
用户组管理
新增用户组
1 groupadd -g 自定义用户组标识 用户组名称
删除用户组
1 groupdel 用户组名称
修改用户组
1 groupmod -g 新用户组标识 -n 新用户组名称 当前用户组名称
用户管理
新增用户
1 useradd -c 用户描述 -g 用户组 用户名称
删除用户
1 userdel -r(删除用户主目录) 用户名称
修改用户
1 usermod -I 新用户名称 用户名称
用户口令
1 passwd -d(无口令) -f(下次登录时强制修改口令) 用户名称
Linux文件管理
查看文件属性
使用```ll```或```ls -l```可查看指定目录下的所有文件及其部分信息。
1 dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin 2 dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
其含义如下:
- 第一个字符表示文件类型,d为目录、-为文件、l为链接文件、b为外接存储设备(随机存取,如外接磁盘)、c为外接串行设备(一次性读取,如键盘鼠标)
- 后面的九个字符,每三个一组,表示文件的读写执行权限。第一组为文件所有者、第二组为文件所有者的同组成员、第三组为其他用户。
- 然后是文件的数量,文件夹为其内部文件的数量,文件则为1
- 后面为文件的所有者名称
- 后面为文件所有者所在的组
- 后面为文件最后一次修改的时间
- 最后是文件的名称
修改文件属性
修改文件属组
1 chgrp -R(递归修改子文件属性) :属组名称 文件名称
修改文件属主
1 chown –R 属主名称 文件名称
修改文件权限
数字方式设置
1 chmod -R xyz 文件或目录
其中xyz为三种角色的权限值,R为4、W为2、X为1、-为0,将权限值累加即可。
1 rwx------:等于数字表示700 2 rwxr—r--:等于数字表示744 3 rw-rw-r-x:等于数字表示665 4 drwx—x—x:等于数字表示711 5 drwx------:等于数字表示700
如
1 chmod 777 test1
符号方式设置
1 chmod a-全部权限 test1 2 chmod u=所有者权限,g=同组权限,o=其他权限 test1 3 ## 示例 4 chmod a-x test1 5 chmod u=rwx,g=rx,o=r test1
目录常用命令
- ls :列出其直接子目录名称
- ll :列出其直接子目录的名称、属性和权限信息
- find 目录名称 -name 文件名称 :在指定目录查找指定文件
- cd 目录名称 :切换目录
- pwd :显示当前所在目录,从根目录开始
- mkdir 目录名称 :创建新目录
- rmdir 目录名称 :删除空目录
- cp 从位置 到位置 :复制目录或文件
- rm -r(递归删除) -f(忽略不存在的目录) 目录名称 :删除目录或文件
- mv -f 从目录 到目录 :移动目录或文件
文件常用命令
- cat 文件名称 :顺序查看文件内容
- tac 文件名称 :倒序查看文件内容
- nl 文件名称 :顺序查看文件内容同时显示行号
- less/more 文件名称 :按页显示文件内容
- head/tail -n 显示行数 文件名称 :显示文件指定前/后几行的内容
- touch 文件名称 :创建文件
- vi/vim 文件名称 :打开文件(按i进入编辑模式,exc退出编辑模式,/搜索文本,:q!强制退出不报错,:wq保存退出)
Linux磁盘管理
- df -h 目录名称或文件名称 :显示文件磁盘详细信息
- du -S -h 目录名称或文件名称 :显示文件使用磁盘信息
- fdisk -l 装置名称 :显示磁盘分区信息
- mkfs 装置名称 :格式化磁盘
- fsck 装置名称 :磁盘检验
- mount 装置名称 挂载目录 :挂载磁盘
- umount 装置名称或挂载点 :卸载磁盘
Linux包管理(yum)
搜索包
1 yum search 包名称
查看包信息
1 yum info 包名称
下载并安装包
1 yum -y install 包名称
列出已安装包
1 yum list
更新包
1 ## 更新所有包 2 yum -y update 3 ## 更新指定包 4 yum update 包名称
删除包
1 yum remove 包名称
Linux网络管理
监测网络接口配置
1 ifconfig
监测路由配置
1 route
监测网络连通性
1 ping
查看网络状态
1 netstat
查看指定ip、端口号进程的运行情况
1 lsof
Linux应用安装
使用yum安装
1 yum install 应用名称
使用rpm安装
使用压缩包安装(.tar.gz)
1 ## 获取压缩包 2 wget 压缩包URL 3 ## 解压压缩包 4 tar -zxvf 压缩包名称(带后缀)