Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Linux知识补课大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Linux补课 已经将开发环境转Linux了(当然用的是ubuntu,图像界面还是舒服一点,支持也多),不上QQ和微信的话用的还是挺舒服的,但是无奈基础欠账太多,这里赶快补一下 Linux和Unix的关系 emmm算是老生常谈了,但是还是记录一下吧,建立一些感性认识。 Unix是先开发的,最一开始的版本是使用汇编语言,后来用C语言重写了。之后Bell实验室允许大学使用该操作系统教学。Linus对U

Linux补课

已经将开发环境转Linux了(当然用的是ubuntu,图像界面还是舒服一点,支持也多),不上QQ和微信的话用的还是挺舒服的,但是无奈基础欠账太多,这里赶快补一下

Linux和Unix的关系

emmm算是老生常谈了,但是还是记录一下吧,建立一些感性认识。

Unix是先开发的,最一开始的版本是使用汇编语言,后来用C语言重写了。之后Bell实验室允许大学使用该操作系统教学。Linus对Unix的底层代码进行了修改,原先命名为Linus‘s Unix并上传,后来被网站管理员改名为Linux,之后就火了

Unix现在还活得好好的,只不过在互联网上的名气不如Linux大,毕竟Linux的面向人群还是大一些的

GNU

理查德·马修·斯托曼

1991年,他与Liuns商谈,让Linux加入了GNU计划,后来更名为GNU/Linux,当然人们还是叫Linux

Linux的系统特点

Linux分支

ubuntu\debian\centos\rethat\suse\deepin\arch等

分支图:

Linux知识补课

redhat的服务是收费的

Ubuntu常用快捷键

  1. Super 键:打开活动搜索界面,会显示一个搜索框以及所有打开的应用程序界面

  2. Ctrl+Alt+T:打开 Ubuntu 终端窗口

  3. Super+A:显示应用程序菜单

  4. Super+Tab 或 Alt+Tab:在运行中的应用程序间切换

  5. Super+箭头:移动窗口位置

    Super+左箭头:贴合左面

    Super+右箭头:贴合右面

    Super+上箭头:最大化

    Super+下箭头:恢复正常大小

  6. Super+M:切换到通知栏

  7. Alt+F2:运行控制台。是的,Linux除了终端还有控制台

  8. Alt+F4/Ctrl+Q:关闭应用程序窗口

  9. Ctrl+Alt+箭头:切换工作区

路径符号

Linux中的分隔符是/,不是Windows的\

~:家(home)目录

. :一个点表示当前目录

.. :两个点表示上一级目录

/ :根目录

指令

  1. ls 路径:显示该目录下所有的文件

    参数:

    1. ls -l:以详细列表的形式展示

    2. ls -lh:以详细列表的形式展示的同时以更具有可读性的方式显示

    3. ls -a:显示所有的文件文件夹(主要是显示隐藏文件文件夹)

      LInux的隐藏文件一般都是.开头

    ls列出的结果中,蓝色表示文件夹,黑色表示文件,绿色表示其权限为拥有所有权限

  2. pwd:打印当前工作目录

  3. mkdir 文件名称创建文件

    -p : mkdir -p 路径: 一次性创建多层不存在的目录,就是路径中所有不存在的文件夹都会被创建

    mkdir 路径1 路径2:一次性创建多个目录

  4. touch 路径:创建文件

  5. cp 要复制的文件的路径 目的路径(可以同时改名):复制

    -r: 递归复制,也就是将文件夹里面的内容也进行复制

  6. mv 需要移动的文件目录 要保存的文件目录:移动,也就是剪切的意思

    mv同时也能执行重命名

  7. rm 文件目录:删除

    -f:force,不进行再次确认

    -r:递归删除,用于删除文件

    -rf:两个一起用

    删除指令可以使用正则表达式:例如 rm -r linux*

  8. 输出重定向

    将命令结果保存到文件中而不是显示在终端中

    > 覆盖输出,覆盖掉原有文件

    >> 追加输出,在文件末尾添加

  9. cat:

    1. cat 文件路径:直接打开一个文件而不进入编辑,和vim等编辑器效果不一样(打开后依然在终端中,能看到之前的命令)

    2. cat 待合并文件路径1 待合并文件路径2等等 >新地址:合并文件

      不同类型的文件也可以合并

  10. df:查看磁盘空间

    df -h:以较高可读性的形式显示

  11. free:查看内存使用情况

    free -h同理

    swap用于临时内存,用磁盘空间充当内存

  12. head:查看一个文件的前n行(显示前10行)

    head -n 文件路径

  13. tail:查看一个文件的后n行(认10行)

    也可以通过tail查看一个文件的动态变化,语法为tail -f 文件地址,但是这个命令主要用来查看系统日志,变化内容不能是用户手动添加的(用户使用vim修改文件的实质是删除文件并创建同名新文件,这使得tail无法跟踪),要测试可以利用输出重定向.退出的话按下q键即可

  14. less:查看文件,以较少的内容进行输出,只显示一屏,按下辅助功能键查看更多

    less 文件地址

    :n 从第n行进行显示

    空格键:一页一页翻

    上下:一行一行翻

    :q 退出

  15. wc:统计文件内容信息

    wc 文件路径

    -l:行数

    -w:单词数,注意,这里的单词是依照空格来区分的

    -c:字节数

    不加选项的话,返回:行数、单词数、字节数、名称

    加选项就只返回对应的内容文件名称

  16. date指令:操作时间和日期(读取、设置),shell脚本中用的比较多

    但是设置比较少用现在,都是自动获取

    CST:当地时间

    不加参数的话输出是这个样子:2019年 10月 06日 星期日 12:07:26 HKT

    带参数的输出

    1. date +%F,也可以用 date "+%Y-%m-%d":输出年月日:2019-10-06

      注意这里Y是大写,m和d是小写,大小写表示的含义是不一样的

      Y:整位的四位数年

    2. date +%F,输出也是2019-10-06,等价于date "+%Y-%m-%d"

    3. date "+%F %T",输出2019-10-06 15:04:35,这里的引号表示让其中的内容成为一个整体,和date "+%Y-%m-%d %H:%M:%s"等价

    4. date -d "-1 day" "+%F %T":表示输出一天前的时间(可以用于编写shell脚本自动实现备份数据库以及删除一个时间节点之前的,例如一个月或者一个礼拜之前的数据库备份)

      date -d "+1 day" "+%F %T":一天后

      date -d "-1 month" "+%F %T":一周前

      date -d "-1 year" "+%F %T":一年前

      加s和不加都可以

    完整参考内容见下:

  17. cal:操作日历

    直接输入cal:显示当月日历,等价于cal -1

    cal -3:显示一个月+本月+下一个月的日历

    cal -y 2019:显示2019年日历

  18. clear:清空终端中的命令和结果,也可以用快捷键 ctrl+L

    不是严格意义上的清空,只是下拉一页,用来的都在上面

  19. 管道:|

    管道不能单独使用,必须配合前面讲的一些指令配合使用,主要起辅助作用

    管道一般可以用于:

    1. 过滤

      例如:

      用管道查询出当前目录下包含y字母的文档名称

      ls|grep y

      grep:global regular expression print,全局正则表达式打印,用于检索目标行命令

      以管道作为分界线,前面命令的输出就是后面命令的输入

    2. 特殊

      例如:

      通过管道实现less的等价效果(只是举例了,还是用less)

      cat 路径|less

    3. 拓展处理

      统计某目录下文档的总个数ls 目录地址 |wc -w

  20. hostname:操作主机名:读取和设置(设置用的比较少,因为这里改的是临时的,一重启就没有了)

    语法:

    hostname:输出完整的主机名

    hostname -f:输出当前主机名中的FQDN(全限定域名)

  21. id:查看一个用户的基本信息(用户id、用户组id、附加组id)

    如果不指定用户,则认当前用户

    id 用户名显示指定用户的基本信息,例如id root

    验证用户信息:通过文件/etc/passwd

    验证用户组信息:/etc/group

  22. whoami:返回当前用户名

    一般用于shell脚本,获取用于当前操作的用户名,方便日志的记录

  23. ps -ef指令

    用于查看当前机器的进程信息

    -e:列出全部进程

    -f:显示全部的列,即显示那些不显示内容

    显示内容

    1. UID:用户名

    2. PID:process ID,进程名

    3. PPID:父级进程名

      如果一个程序的父级进程找不到,该程序的进程称为僵尸进程,就是表示没有什么用了

    4. C:表示cpu占有率(百分比)

    5. STIME:start time:启动时间

    6. TTY:终端设备

      如果一个进程有终端设备,就表示这个进程是由这个终端发起的,?表示不是由终端发起的

    7. TIME:进程的执行时间

    8. CMD:进程对应的路径

    案例:搜索特定进程

    ps -ef|grep gnome-shell

    ps-ef搜索出来的结果,无论原来有没有,一定会至少有一个,也就是我们搜索这个行为的进程,即使我们乱搜也会有的

  24. top:查看机器进程占用的资源(实时更新的哦)

    q键或者Ctrl+c退出

    解释一下top的一些参数意思:

    • top:当前时间
    • up:开机时间
    • load average:在某个时间点范围内的负载情况,第一个是5分钟,第二个是10分钟,第三个是15分钟
    • zombie:僵尸进程数量

    表头的含义:

    • PR(priority):权重(网站用的那个PR是page rank),例如在搜索引擎对网页也有这个,范围是1-10,级别越高说明优先级越高,越受欢迎

    • NI:nice cpu time,即用户进程空间改变过优先级的进程占用cpu百分比

    • VIRT:虚拟内存,虚拟内存就是进程申请的内存

    • RES:常驻内存,常驻内存是进程实际使用的内存

    • SHR:共享内存,有的进程不能独立运行,而是依赖于其他进程,共享内存值的就是常驻内存中对其他进程的调用开销

      计算一个进程实际使用的`1内存=常驻内存-共享内存

    • S:进程的状态(sleeping,S是睡眠,R是运行)

    • MEM:内存的占用百分百

    • COMMAND:进程的名称或者路径

    排序:

    M:按内存占用排序

    P:按cpu使用排序

    1:将cpu的不同内核的状态展开,分别显示

  25. du -sh 目录地址:查看目录的真实大小

    -s:只显示汇总的大小(summary)

    -h:使用便于阅读的形式显示

  26. find 路径范围 选项 选项的值:用于查找文件

    -name:按名字来搜,支持模糊搜索和正则表达式(例如:*.txt,表示所有txt文件

    -type:按文档的类型搜,注意,这里指的不是文件名后缀,而是“f":文件,"d":文件

  27. service:控制软件服务的启动/停止/重启

    service 服务名 start/restart/stop

    例如,启动apache:service apache2 start

    可以使用ps查询apache服务是否启动:

    ps -ef|grep apache2

    同时访问的一个用户就需要一个进程来管理,所以启动apache的时候会同时启动一些子进程来应对并发

  28. kill:杀死进程

    语法:kill 进程的PID

  29. killall:直接通过进程名称杀死进程,不需要先查询出PID了

    语法: killall 进程名称

  30. ifconfig:操作网卡,全称是interface configuring

    显示处理的结果举个例子:

    从inet addr中可以找到ipv4的地址

    wlp2s0是无线网卡,lo的全称是loop,本地回环网卡,其ip地址一般都是127.0.0.1

  31. reboot:重启

reboot -w:模拟重启,但是不重启。它的效果是往日志中写入reboot日志,但是不重启,主要用于做测试

  1. shutdown:关机。要谨慎使用这个命令!如果是远程连接,reboot的话还可以断开连接之后重新建立,但是shutdown了之后就开不了了23333

    当然云服务器不需要担心这个,他们的服务器有插件,可以通过网页的控制台开启,但是如果不是的话就gg了

    要是不小心用了怎么办?打电话到机房或者自己去机房打开2333

    shutdown -h Now :立即关机

    shutdown -h 15:25 “关机提示”:定时关机并给出关机提示

    取消关机:shutdown -c,如果是较为旧的内核,输入shutdown之后终端一直被占用的话,应该使用Ctrl+C来终止

  2. uptime:输出计算机的持续在线时间

    输出大概是这种:20:46:48 up 3 days,22:05,1 user,load average: 0.17,0.31,0.60

  3. uname:获取操作系统的相关信息,输出一个Linux

    uname -a:获取全部系统信息,输出大概是这种:

    Linux 主机名 5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

    5.0.0-29-generic是内核版本,后面跟的那个时间是系统的发布时间

  4. netstat -tnlp:查看网络连接状态

    -t:只列出tcp协议的连接

    -n:以ip地址名:端口名,而不是地址和协议的形式显示

    -l:过滤出“state"列中其值为LISTEN(监听)的连接

    -p:显示PID和进程名称

  5. man:全称是manual,是手册的意思,包含了Linux的全部命令

    格式,man 命令名称

    这个牛逼啊,它不仅可以查到Linux自带的服务的指令,还能查到软件库中其他软件的指令

  6. 使用sudo su进入root用户后如何退出:输入exit\logout\Ctrl+D均可

  7. screenfetch:一个比较常用的软件,

  8. iconv:对文本文件进行转码

    常用方法

    对于这个命令,我们可以使用iconv -t UTF-8 workspace.js > w.js更加方便地进行转码,但是绝对不能将文件直接写回源文件,否则文件会被清空的!我们可以将转换后的文件统一放在另一个文件夹中,这样也就可以实现批量操作了,并且也可以使用和源文件一样的文件名。

Linux自有服务

系统内置的服务,不需要用户安装其他软件

Vim编辑器

vi是所有Unix和Linux系统下标准的编辑器

vim相比vi比较高级,更适合写代码

  • i键进入编辑模式

  • :w保存,:q退出 :q!在不保存的情况下退出

  • Syntax on:开启语法高亮

  • :set number:开启行号

  • vim ~/.vimrc:编辑配置文件,将要认加载的功能写进去,例如上面的指令要是不写在这配置文件中的话就只会在当前一次下生效,关闭vim再打开就没有了

  • 上下左右:移动光标

  • H\L,分别代表左和右;J\K,分别代表下和上

  • W:按单词向后跳转;B:按单词向前跳转

  • pageup\pagedown:上下翻页,这个任何工具都是一样的

  • Ctrl+F\B,vim独有的上下翻页

  • 按行跳转:行数 gg

  • 往上\下\左\右跳多少行:10j 向下跳10行,10k向上跳10行,H左跳L右跳,都是同理的

  • 查询:在命令模式下,输入 /要查找的字符串,会查找光标之后的第一个匹配的项,如果想要继续查找的话就按N(next),按Shift和N会回到上一个匹配项

  • 删除整行:CC,如果删错了先退出编辑模式再按u(undo)恢复

    也可以用dd,但是dd不会进入编辑模式

  • 删除几行:CnC,表示同时删除n行,要是用dd的话就是nDD

    这两个命令实际上是一个”剪切“

  • 粘贴:p

  • 复制:y

  • 复制单行:yy

  • 复制多行:yny,n是行数

  • 按一下v键,会进入VISUAL模式,这时光标会选中所有移动过的范围

  • 内置的自动补全:编辑模式下,Ctrl+N,但是它的缺点是只能补全已经出现过的单词。可以安装插件使其更加智能。

  • vim plug:插件管理系统

  • vim awesome:一个汇集了vim插件的网站

  • vim内集成的简易计算器:先进入编辑模式,按下”ctrl+r"并输入“=”,此时光标会变到最后一行,此时再输入需要计算的内容就好了,结果会自动显示在原来的位置上

关于Linux的一些知识

纯粹是好奇或者是为将来可能的吹b用的,只是为了建立一些感性认识:

  1. Linux上Nvidia的开源驱动noveau居然是通过逆向工程得到的```

  2. UnityCanonical公司GNOME桌面环境所开发的图形用户界面,和那个游戏引擎不是一回事。用于Ubuntu操作系统。不过现在已经被Canonical放弃了,原来它开发这个系统是为了各个平台(手机、电脑以及其他硬件)统一,后来发现其他平台搞不成,Unity也就顺理成章地被放弃了,公司也裁员了。不过Canonical这个公司自建立就一直入不敷出不赚钱,一直是靠有钱的创始人养活的。

  3. Mac系统是闭源的,借鉴了openBSD,经过了Unix认证

  4. 开源不代表免费,可能会收取服务费用,同时系统的认证(例如RedHat认证)也是收费的

  5. 为什么服务器使用Linux?

    • 性能,不使用图形桌面
    • Linux更加稳定
    • 开源,有bug会得到更快的修补
    • Linux相比Windows更加安全:例如,PE工具可以替换原有系统的密码或者直接读原有硬盘的文件,而Linux不可以
    • 远程管理更加高效

大佬总结

以上是大佬教程为你收集整理的Linux知识补课全部内容,希望文章能够帮你解决Linux知识补课所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: