LINUX的基本操作学习总结

前言

从2020年11月定下了以后所打算从事的方向开始,就开始学习LINUX基础和LINUX环境编程,故谨以此文来记录LINUX的基础操作

声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出

目录

  1.LINUX的基础介绍及目录结构
  2.运行指令及基本操作指令
  3.VIM的操作
  4.开关机操作
  5.用户管理
  6.文件管理
  7.组管理和权限管
  8.任务调度
  9.磁盘分区和挂载
  10.网络配置
  11.进程管理

1.linux的基础介绍及目录结构

LINUX的由来

1.LINUX的前身是UNIX操作系统,这个操作系统是由大名鼎鼎贝尔实验室的肯·汤姆森所开发,之后因为觉得用B语言写的UNIX太垃圾。他又和 丹尼斯·里奇(C语言之父)用C语言来编写了UNIX操作系统,这大大的提高了性能和可移植性。

2.LINUX是由芬兰的一名大学生Linus Torvalds (林纳斯)基于类UNIX操作系统所开发出来的操作系统。因为LINUX是开放源码、没有版权、技术社区用户多的特点,故LINUX在全世界大牛的修补,更新下使得LINUX变得更加安全,稳定。

向大佬们致敬,正因为他们有开源精神才有了如今不断发展的技术,有朝一日我也希望自己能贡献一份绵薄之力

LINUX的目录结构

  • 在LINUX中一切皆文件
  • 在LINUX中有且只有一个根目录(/)
  • 在LINUX各个目录存放的内容事先规划好了

目录结构

LINUX的基本操作学习总结_第1张图片
LINUX的7种文件类型

  • d(目录
  • b(块设备
  • c(字符设备
  • -(普通文件
  • p(管道
  • l(链接
  • s(套接字

LINUX的指令运行级别图
LINUX的基本操作学习总结_第2张图片

2.运行指令及基本操作指令

基本操作指令

  • 查看当前位置(pwd

  • 进入目录(cd

  • 当前位置(./

  • 上一层目录(…/

  • 查看帮助文档(man [命令/配置文件/函数]

  • 查看帮助文档(help [命令]

  • 显示当前内容(ls

  • 查看文件内容(cat 只读方式

  • 查看文件内容(more 全屏方式按页显示内容
    空格键(向下翻一页)Enter(向下翻一行)

  • 添加快捷指令(alias 快捷指令 =“实际指令” 例如:alias cl=“clear”)

  • 输出内容到控制台(echo [option ] [内容] 例如:echo $PATH 输出当前环境的路径)

  • 创建软链接(ln -s [源文件/目录] [软链接名称] 例如:ln -s /root /home/LinkToRoot 但是pwd还在/home下)

  • 查看历史指令( history
    显示最近10条历史指令( history 10 )
    执行历史编号为5的指令( !5

  • 查看当前日期(date
    显示年份(date +%Y )
    显示月(date +%m )
    显示日(date +%d )
    显示年月日时分秒(date +"%Y -%m-%d %H:%M:%S")
    设置系统时间(date -s “2020-11-11 11:11:11”)

  • 查看日历( cal
    查看指定年份日历(cal year)

3.vim的操作

VIM介绍

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

VIM的三种模式
  • 插入/编辑模式:输入i(insert)或者a(append)

  • 普通模式:打开文档时候的模式

  • 命令行模式:按下 ESC 和 :

快捷键的使用

  • 拷贝当前行(命令行模式下:输入yy)
  • 删除当前行(命令行模式下: 输入dd)
  • 粘贴(命令行模式下: 输入p)
  • 设置文件行号(命令行模式下: 输入set nu/取消 set nonu)
  • 到达文档的首页(命令行模式下: 输入gg)
  • 到达文档的结尾(命令行模式下: 输入G)
  • 跳转到指定行数(命令行模式下: 输入行号+shift+g)
  • 撤销(命令行模式下: 输入u)
  • 查找指定内容(命令行模式下: 输入/hello从上至下 或者 ?hello从下至上 找到要查找的内容按下n到下一个目标)
  • 替换当前行的内容(命令行模式下: 输入s/one/two 将所在行第一个one替换为two
  • 替换当前行的所有目标内容(命令行模式下: 输入s/one/two/g 将所在行所有one替换为two
  • 替换所有符合的内容(命令行模式下: 输入%s/one/two/g 将所有one替换为two
  • 垂直分屏 (命令行模式下: 输入vsp+文件名称 )
  • 水平分屏 (命令行模式下: 输入sp+文件名称 切换的时候在命令行模式下按下 ctrl + w w
  • 退出文件 (命令行模式下: 输入wq(写入退出)q!(强制退出) qall(退出所有) )

VIM的配置

  • 用户配置文件目录(~/.vim/vimrc)
  • 系统配置文件目录(~/.vim/vimrc)

4.开关机操作

关机/重启命令

  • poweroff [选项] (可关闭 重启 停止计算机)
    不建议使用(强制直接关闭计算机电源可能导致进程数据丢失, 使系统处于不稳定状态 (甚至损坏硬件设备))
  • shutdown -h now(立即关机
  • shutdown -h 时间(指定时间后关机
  • halt(关机
  • shutdown -r(立即重启
  • reboot(现在重启

reboot、shutdown 、-rhalt的区别

  • reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多
  • shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。(后文会详细说明)
  • halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

5.用户管理

用户管理图
LINUX的基本操作学习总结_第3张图片

用户说明

  • LINUX操作系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户都必须向管理员申请一个帐号,然后凭借此身份进入系统
  • LINUX的用户需要至少属于一个组

用户管理操作

  1. 添加用户
    useradd [option] username
    例如: useradd -d /home/JJ kobe (利用-d选项指定在/home/JJ目录下创建用户kobe
    例如: useradd -g LAKER kobe (将用户kobe加入LAKER

  2. 给用户指定密码
    passwd username (如果无法成功在之前加上sudo,切换为root权限

  3. 删除用户
    userdel username (这种删除保留此用户的家目录,要是想一并删除可以在username之前加-r

  4. 查询用户信息
    id username

  5. 切换用户
    在LINUX操作系统中,如果当前权限不够,可用su - username,切换到高权限的用户(如root)
    su - 切换的用户名(低权限到高权限要密码,反之则必须要,退出原用户exit

  6. 创建一个组
    groupadd 组名

  7. 修改文件所在组
    chgrp 组名 文件名

  8. 修改用户所在组
    usermod -g 组名 用户名(

6.文件管理

文件的打包与解包

  • gzip/gunzip 文件名(只能将文件压缩为*.gz文件,压缩后原文件消失

  • zip/unzip (这在实际开发中用的比较多
    zip -r 文件/目录(递归压缩
    unzip -d 文件/目录(将文件解压到指定地址
    例子:zip -r mypackage.zip /home/* (把家目录下所有内容打包成mypackage.zip )

  • tar指令
    tar -zcvf 目标文件 源文件(将指定文件打包压缩
    例子:tar -zcvf a.tar.gz 1.txt 2.txt(把当前目录下的1.txt 2.txt 压缩成 a.tar.gz )
    tar -zxvf 源文件 -C 地址(将指定文件解压到指定目录
    例子:tar -zxvf a.tar.gz -C /opt/tmp(把当前目录下的 a.tar.gz打包到 /opt/tmp)

文件的权限

LINUX的基本操作学习总结_第4张图片

文件的常用操作指令

  • 创建目录(mkdir 目录名称 不提示递归删除文件)
    例子:mkdir -p /home/a/b/c( 递归创建多级目录)
  • 创建文件(vim/touch 文件名 不提示递归删除文件)
  • 删除文件(rm [-rf] 目录/文件名 不提示递归删除文件)
  • 复制文件(cp [-r] 源文件 目标地址
  • 移动/重命名文件( mv oldfile newfile 复制到同一个目录的话可以更改文件名称
  • 文件所有者修改( chown [-R]newowner:newgroup file
    (例:chown -R kobe:LAKER hello )hello下的所有文件属于kobe,所在组是LAKER)
    (例:chown kobe:LAKER hello )hello的文件属于kobe,所在组是LAKER)

    注意:-R是递归所有文件的选项

搜索类查找指令

  • find [范围 ] [选项]
    按文件名称查找(find -name
    (例:find /home/ -name *.c )
    按所有者称查找(find -user
    (例:find /opt/ -user root)
    按文件大小称查找(find -size + 大于 - 小于 )
    (例:find /opt/ -size +20M 查找文件大小大于20M的文件)

  • grep [选项] [查找内容 ]
    常常搭配管道 | 使用
    (例:ps -aux | grep -n root  查找系统运行的所有者为root的内容,且区分大小写)

7.组管理和权限管理

权限管理/strong>

  • 用+ - = 变更权限(u :所有者 g :所在组 o:其他人
    (例:chmod u=rwx,g = rx,o = x 1.c )所有者有全部权限,所在组有读执行权限,其他只有执行权限
    (例:chmod g -w,o + x 1.c )所在组没有写权限,其他添加只有执行权限
  • 用数字变更权限(r:4 w :2 x:1
    (例:chmod 777 1.c )1.c文件所有人都满权限

8.任务调度

下文基于CENTOS实现

任务调度

  • 含义:在某个时间执行特定的命令或者程序
  • 语法 : crontab [option]
    -e 编写定时任务
    -l 查询crontab任务
    -r 删除用户所有的crontab任务

任务调度的符号说明
LINUX的基本操作学习总结_第5张图片

案例:每隔一个小时把当前日期打印到/home/date文件中

  1. 编写一个脚本date.sh
  2. 输入 data >> /home/date
  3. 给date.sh可执行权限(chmod 777 date.sh)
  4. 编写任务调度(crontab -e)
  5. * */1 * * * /home/date.sh

9.磁盘分区和挂载

分区的基本知识

  1. mbr分区
    最多支持四个主分区
    系统只能安装在主分区
    拓展分区要占一个主分区
    MBR最大支持2TB,但是拥有最好的兼容性
  2. gtb分区
    支持无线多个主分区(但是操作系统会限制,Windows下最多128个分区
    最大支持18EB的大容量(1EB = 1024PB 1PB = 1024TB
    Win7 64位后支持gtp

LINUX分区原理图
LINUX的基本操作学习总结_第6张图片

主要操作指令

  • 查看分区情况(lsblk -f)
    帮助记忆:老师不离开(lsblk)
  • 查看分区大小(lsblk)
  • 查询系统整体的磁盘使用情况(df -l )-h可以查看具体大小
  • 查询指定的目录磁盘使用情况(du -h 目录 )-h可以查看具体大小
    例:du -ach --max-depth=1 /home  查看home目录的磁盘使用情况(深度为1)

案例:给LINUX添加一个新的硬盘(挂载到/home/newdisk下)

  1. 虚拟机添加硬盘
  2. 分区
    fdisk /dev/sdbsdb要视挂载硬盘信息情况而定
    先输入n(新增分区)然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入分区并退出
  3. 格式化磁盘
    mkfs -t ext4 /dev/sdb1ext4为分区类型
  4. 挂载
    mount /dev/sdb1 /newdisk
    取消挂载
    umount /dev/sdb1 或者 umount /newdisk
  5. 永久挂载
    在/etc/fstab中加入如下指令
    /dev/sdb1       /home/newdisk   ext4  defaults  00
    mount -a 立即生效
    如果未生效,建议重启

10.网络配置

此处为永久配置:是通过修改配置文件来配置(基于centos)

案例:配置网络

  1. 打开配置文件
    vim /etc/sysconfig/network-scripts/ifcfg-eth0权限不足的话使用切换到root
  2. 将BOOTPROTO改为static
  3. IPADDR改为"192.168.184.130"
  4. 修改ONBOOT = yes
    static为静态获取ip 
    dhcp态获取ip
  5. 修改过后重启服务 service network restart

UBUNTU下的配置文件在/etc/network/interfaces下修改方法类似

11.进程管理

进程概念

  • 在LINUX中每执行一个程序(代码)为进程,每一个进程有唯一的进程号
  • 每一个进程都会对应一个父进程,而父进程下可以有多个子进程
  • 每一个进程可能以两种方式存在(前台/后台)
    前台是可见的进程,有输入输出的
    后台是不可见的(也叫守护进程或者精灵进程)
  • 一般系统的服务都是以后台运行,直到关机才结束

进程相关操作指令

  • 显示系统执行的进程(静态)ps -aux
    查看父进程 ps -ef
    例:查看sshd的父进程 ps -ef | grep sshd

  • 显示系统执行的进程(动态)top [option]
    查看特定用户 top -u root
    中止特定进程 top k 进程id
    指定10s后更新进程信息 top -d 10

  • 中止进程kill killall
    强制中止 kill -9 进程号
    此处-9是因为kill的信号是9号
    杀死父进程 killall 进程名称

  • 监控网络情况 netstat [option]
    查看系统所有网络服务 netstat -anp

总结

  从之前对LINUX的不了解,到后面惊叹他的神奇,简简单单几个操作符就可以完成WINDOWS下的复杂操作这也太帅了吧,渐渐的开始依赖LINUX的便捷,并且没有那么多弹窗广告 (我想可能垃圾广告还没发现这未开发的领地)。现在已经习惯在LINUX下完成日常的使用(除了打游戏,虚拟机下开虚拟机套娃就算了)初学LINUX的时候觉得每一个操作符都很有趣,而且自以为英语还不错,不上机实操。结果好家伙一个星期差不多全忘记,所以多操作,总结还是很不错的。接下来还有很长的路,而赛过要努力呀!

建议

  • 一定要多上机实操
  • 多总结规律,很多知识都是相通的
  • 学会使用man手册
  • 最后欢迎你来到LINUX的学习,准备接受互联网的无情毒打吧
而塞过 2021-1-6

关于我:一个就要进入互联网,经历社会毒打的99小伙

下一站(javascript)
下一站(html)

你可能感兴趣的:(Linux,总结,linux)