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

设置无操作时保持连接的时间

  1.  修改/etc/ssh/sshd_config文件中的ClientAliveInterval和ClientAliveCountMax属性
    1 ## ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔
    2 ## 默认是0, 不发送,60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.
    3 ClientAliveInterval 60
    4 ## ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开,这里使用默认值3即可
    5 ClientAliveCountMax 3
  2. 重启SSHD服务
    1 systemctl restart sshd.service

Linux防火墙配置

每个Linux发行版都不相同。
centos7的命令如下:

 1 ## 启动
 2 systemctl start firewalld
 3 ## 关闭
 4 systemctl stop firewalld
 5 ## 查看状态
 6 systemctl status firewalld 
 7 ## 开机禁用
 8 systemctl disable firewalld
 9 ## 开机启用
10 systemctl enable firewalld
11 ## 查看帮助
12 firewall-cmd --help
13 ## 查看所有打开的端口
14 firewall-cmd --zone=public --list-ports
15 ## 添加一个端口(添加后需要重新载入)
16 ## 其中--permanent永久生效,没有此参数重启后失效
17 firewall-cmd --zone=public --add-port=端口号/tcp --permanent
18 ## 重新载入
19 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 压缩包名称(带后缀)

转载于:https://www.cnblogs.com/hutianyao/p/11395317.html

你可能感兴趣的:(shell,运维,操作系统)