• 计算机硬件基本知识及Linux的常用命令



    ------------------
    1. 计算机硬件基本知识
    ------------------

    CPU - 寄存器 - L1/L2/L3 - 内存 - 硬盘 - 互联网下载/其他存储介质传输

    寄存器:如果是需要重复执行的指令,就放到寄存器,不用每次都从内存去读取 8个寄存器
    缓存:CPU是高速设备,内存是低速设备,CPU和内存做数据交互,就通过缓存来临时存储。

    计算机的主要硬件:

    CPU:

    主频:台式机 单核主频 4.0Ghz 睿频6.0Ghz
    工艺:32nm 22nm 10nm 8nm,摩尔定律(戈登.摩尔)贝尔实验室
    架构:CPU的软件,skylake

    外星人、未来人类:P7 笔记本20万。将台式机的硬件,放到笔记本里。

    笔记本模具:蓝天(代工)、微星(自产自用)。


    Intel 英特尔(牙膏厂):

    酷睿 Core(家用,自带核心显卡):

    核心(超线程技术)
    i3:双核双线程
    i5:四核四线程,笔记本(双核四线程)
    i7:四核八线程

    U 低电压(低功耗)
    M 移动版
    Q 四核心
    H 焊接在主板上(散热好一些,但是不能拆卸)
    K 不锁倍频
    X 旗舰版

    至强 Xeon(服务器,不带核心显卡):
    E3:单核主频低,但是核心多。 主频2.0, 6核12线程,主要是用来做多任务处理。
    E5:
    E7:

    AMD :锐龙


    内存:圆晶体颗粒、主控

    优盘、内存、固态硬盘,都由圆晶体颗粒和主控组成。

    频率:1333MHZ 1600MHZ

    4G 1333MHZ + 4G 1600MHZ 遵循水桶效益。


    圆晶体颗粒厂商:三星、镁光、台积电、东芝

    金士顿、海盗船、威刚、三星、镁光...

    机械硬盘:磁头,簇
    5400rpm 7200rpm ,
    60~80M/s 100M/s

    IBM(硬盘业务出售给日立) - 日立(西部数据合并了日立的硬盘业务) - 西部数据(全资收购闪迪 )
    三星的硬盘 - 希捷

    显卡:
    英伟达 NVIDIA

    GeForce 精视:
    GTX 1080、980、780、690

    1080Ti 公版,显卡生产商发布的显卡版本

    流处理器:
    架构:
    显存:速度


    华硕、索泰、技嘉、七彩虹。


    AMD(ATI)
    A卡,N卡:信仰。


    网卡、声卡:瑞昱 和 高通。
    显示器:戴尔、LG、三星、夏普、冠捷、京东方。

    ------------------
    2. Unix 和 Linux的诞生
    ------------------


    21世纪最伟大的科研机构 贝尔实验室

    (后来:从att拆分后,单独成立一家公司:朗讯(商业化)和 贝尔实验室(科研),阿尔卡特收购了朗讯:阿尔卡特-朗讯。阿尔卡特和诺基亚合并: 诺基亚阿尔卡特朗讯贝尔实验室)

    通信业务:爱立信、西门子、诺基亚、阿尔卡特
    电信设备:思科、华为、中兴

    AT&T(美国电话电报公司) 成立一个科研单位。

    贝尔实验室:晶体管、C语言、Unix操作系统,通信、光、物理、化学...
    诞生了8个诺贝尔奖得主,多个图灵奖得主。

    图灵奖:计算机界的诺贝尔奖。艾兰-图灵 英国人。发明了机器自动去计算,最后破译德军Enigma密码。人工智能之父。


    机器语言 - 汇编语言(符号语言)- 高级语言
    UNIX :汇编写的第一版。

    BCPL(英国剑桥发布一种编程语言) - B语言(编写了改写了UNIX) - C语言。
    开始用C语言重写了UNIX


    intel :
    8086 8bit、80286 16bit、80386 32bit CPU


    UNIX 最早的源码是开放,大学、机构、军工都可以使用。
    AT&T 申请版权,不能再随便使用源码。


    UNIX BSD : 加利福尼亚大学 伯克利分校计算机中心 发布的一款UNIX

    Sun :Sun公司, Sun服务器 + Sun OS, Java, 全部被Oracle收购,Solaris


    GNU 组织:开源世界的领头人。
    GNU :GNU is Not Unix:宣扬自由软件运动的一个组织。
    GNU当时有很多自由软件,Emacs,bash等,唯独缺少一个操作系统。

    GNU + Linux = 开源世界

    Linus's UNIX = Linux
    Linus 的主要产品:kernel(Linux的内核)、git(版本管理工具)、github(代码托管网站)


    Linux全部都是免费下载使用。

    Ubuntu(在宣传Linux的使用做了很大的贡献):易用性,软件的更新速度和维护速度很高。
    CentOS:个人版的Redhat
    Redhat:企业级的Linux,提供收费的技术解决方案

    Debian
    FreeBSD
    OpenBSD

    BT5/Kali:黑客必备的Linux


    Ubuntu 16.04
    年.月

    04 :稳定版都是长期支持版(支持4~6年)
    10 :过渡版本,开发版本(支持1年)


    ------------------
    微软的故事...
    ------------------
    IBM: 国际商用机器公司

    IBM PC机,缺一个操作系统,微软接下了这个订单。

    MS-DOS: 5万刀 买了 西雅图软件公司手上 一个操作系统 xxx-DOS,卖给了IBM

    MS-DOS:磁盘操作系统,一直到 MS-DOS 9.0

    Windows 比尔盖茨,图形化的操作系统

    Windows 3.0 - 销量非常非常广泛,几乎所有的家用电脑都运行 Windows

    从此,微软开始了他的垄断之路。三流公司做产品、二流公司做设计、一流公司做标准。全世界的软件公司都活在微软的阴影之下。

    2001 互联网时代开始了,微软开始走下路。

    搜索、手机、移动互联网,鲍尔默 。纳德拉:移动为先云为先。

    现金牛:Windows、Office、Azure云

    硅谷,国外大企业玩死小公司:1.收购,2.收购不了打官司。

    Windows 8 和 8.1

    Windows XP,大家的电脑都很差,内存512M

    Windows Vista 和 7


    ------------------
    3. Linux的常用命令
    ------------------

    Ubuntu

    ls :列出当前目录下的文件

    pwd :打印当前目录的绝对路径

    touch 创建指定文件
    rm 删除指定文件

    mkdir 创建指定空目录
    rmdir 删除指定空目录

    rm -rf 删除非空目录 -r 表示递归删除,-f 强制执行

    clear / ctrl + l 快速清屏

    ------------------
    4. Vim的基本操作
    ------------------

    Vim 是Vi 的升级版。


    主要有两种模式:

    默认打开文件后,是命令模式


    编辑模式:
    按一下键进入编辑模式:

    i 在当前光标前,进行编辑
    I 在当前行的行首,进行编辑

    a 在当前光标后,进行编辑
    A 在当前行的行尾,进行编辑

    o 在当前行的下面开辟新行,进行编辑
    O 在当前行的上面开辟新行,进行编辑


    命令模式:
    在编辑模式下,按ESC键进行命令模式

    h : 向左
    j : 向下
    k : 向上
    l : 向右

    x 删除光标所在的字符
    X 删除光标前一个字符

    dd 删除当前行字符
    D 删除当前行光标和光标之后的所有字符

    u 撤销上一步操作

    r 替换当前光标的字符

    gg 就是回到文件的开始位置
    G 到文件的结尾所在行的开始


    :w 保存数据
    :q 退出文件(如果文件没保存则提示出错)
    :q! 强制退出,打开后写入的数据则不保存。

    :wq 保存并退出
    :x 保存并退出
    shift + zz 保存并退出


    yy 复制当前行
    p 在下一行粘贴复制的内容


    使用命令的时候,可以按下ESC键终端当前命令


    dd 删除/剪切当前行字符
    yy 是复制当前行
    p 是光标所在行的下面一行粘贴 复制/剪切的内容

    D 删除/剪切 当前行光标和光标之后的所有字符
    p 在光标的位置后进行粘贴(不会换行)


    u 是撤销
    ctrl + r 是反撤销

    y1j :从光标所在行开始,向下复制1行,总共2行

    y2k :从光标所在行开始,向上复制2行,总共3行


    视图模式:
    v 进入视图模式,可以选中多行内容,只处理被选中的部分
    ctrl + v 进入视图模式,可以 按区域块 选中,只处理被选中的部分

    v G : 从当前位置开始,向后选中全部内容


    man ls

    空格:走一屏幕
    回车:走一行
    b :回滚一屏幕
    q :退出

    终端的命令技巧:

    方向键 上下 切换之前的命令
    方向键 左右 移动光标
    ctrl + a : 移动光标到命令的头部
    ctrl + e : 移动光标到命令的尾部
    善用tab键补齐文件名/目录名
    ctrl + c :立刻终止当前程序/行为

    ctrl + u 清除当前的命令内容


    ls -a 显示所有文件,包括隐藏文件

    ls -l 显示文件的详细信息

    例如:-rw-rw-r-- 1 python python 1466 9月 11 14:52 a.py

    第一个字符表示文件类型:-普通文件,d表示目录

    rwx rw- r--
    文件所有者权限 所属用户组的权限 其他用户的权限

    r read 表示读权限
    w write 表示写权限
    x execute 表示执行权限

    1 表示硬链接数量 :相当于文件拷贝,拷贝越多,硬链接就越多,删除一个拷贝,硬链接就减少一个。

    python python : 用户名 和 组名

    1466:文件大小,单位 Byte

    9月 11 14:52 :表示文件的最后修改时间

    a.py :文件名


    cp :拷贝

    cp 源文件 拷贝后的文件
    cp -r 源目录 拷贝后的目录


    mv : 移动/重命名 文件/目录
    mv 源文件/目录 移动后的文件名/目录名


    cat:在终端上显示文件里文本内容,适用于文本内容较少时候使用
    -n 可以显示行号

    cat -n xxx.py


    more:在终端上分段显示内容,适用于内容较多的时候使用


    grep : 在文本里查找指定的内容
    grep "文本内容" 文件名


    grep支持正则表达式,正则表达式是一种文本匹配工具,一般编程语言都支持正则表达式。 Python通过 import re 导入模块使用正则。
    举例:
    ^hello : 表示匹配以hello开头的字符串
    world$ : 表示匹配以world结尾的字符串


    UNIX哲学:一个功能只做一件事,各个功能之间可以配合使用。

    重定向: 将终端的输出内容重定向到文件里(注意,重定向不要重定向到文件自身,否则会导致内容丢失)
    > 相当于文件操作的 w ,如果文件不存在,则创建文件并写入数据,如果文件存在则清空文件再写入数据
    >> 相当于文件操作的 a,如果文件不存在,则创建文件并写入数据,如果文件存在则在文件末尾追加新的数据

    可以配合Linux的其他命令一起使用,只要是终端的输出内容,都可以做重定向。

    # 保存终端的输出信息(ps -aux表示显示所有进程的详细信息)
    ps -aux > ps_info.txt

    # 文件合并
    cat file1 >> file2


    管道: 将第一个命令的结果,通过管道,传递给第二个命令处理

    ps -aux | grep "sogou"

    python 1444 0.2 0.2 29932 8316 pts/2
    显示pid编号 1444

    sudo kill -9 1444

    ls -al | more

    cat xxx.txt | grep

    chmod 修改文件权限:
    chmod +x 让所有用户都具有执行权限
    chmod -r 让所有用户都没有读权限
    这样处理权限要么都有,要么都没有。


    chmod 777 test.py # 所有用户可读可写可执行
    chmod 536 test.py # 文件所有者 5:读执行, 组 3:写执行, 其他用户 6:读写
    chmod 400 test.py # 文件所有者 4:读, 其他用户没有权限

    0 表示没有权限
    1 表示执行权限
    2 表示写权限
    4 表示读权限

    Windows 在目录里执行:
    先找当前目录,如果当前目录有,则立刻执行;如果当前目录没有,则去找环境变量。


    Linux 在目录里执行:
    直接找环境变量,如果环境变量有,则执行;如果没有,则报错。

    所以,需要在前面加上 ./ 指明Linux执行当前目录下的文件。


    #!/usr/bin/python3

    # 表示如果文件作为可执行程序运行,则使用指定解释器进行解释。


    #coding:utf-8

    # Python2 默认环境是ascii编码,不能处理中文。coding:utf-8 表示按utf-8编码处理中文。在Python2的代码里比较常见。
    # Python3 环境已经改为utf-8,所以不用指定了。
    print("你好世界,你坏世界。")

    find: 查找指定目录下的所有符合条件的文件(注意,find会递归查找所有的子目录)

    如果不写路径,则默认查找当前目录;如果不写 -name 文件名,则默认查找所有文件
    # 查找当前目录下所有的 .py 文件,包括子目录
    find ./ -name "*.py"


    软连接:

    ln -s 源文件的绝对路径 软连接的路径和名称

    1. 源文件必须用绝对路径
    2. 创建好软连接后,不要移动源文件,否则会失效。


    硬链接:简单理解为文件的拷贝(课后了解)


    Linux 打包 和 压缩:一般把需要打包的文件和目录全部存到统一的一个目录,再去打包这个目录。

    tar 只是包,并没有做压缩
    # 打包
    tar -cvf 打包后的包名.tar 需要打包的目录
    # 解包
    tar -xvf 打包后的包名.tar


    tar.gz 会进行压缩,大小会大大降低
    # 压缩 gzip
    tar -zcvf 压缩后的包名.tar.gz 需要打包的目录

    # 解压缩
    tar -zxvf 压缩后的包名.tar.gz


    sudo su # 切换超级用户,一般不推荐这么做,避免因为误操作导致系统问题,不小心误删文件或修改文件,系统不会提示。

    sudo vi /bin/xxxx # 需要权限单独加 sudo

    # 1. 安装软件
    $ sudo apt install 软件包

    # 2. 卸载软件
    $ sudo pip remove 软件名

    # 3. 更新已安装的包
    $ sudo apt upgrade

    # 4. 定期更新源服务器软件列表 : /var/lib/apt/lists
    $ sudo apt update

    让自己紧张起来!

  • 相关阅读:
    tmux 简明操作指南
    几种查看linux版本信息的方法
    安装Ruby&Rails遇到的问题
    安装DevKit
    gcc 编译选项
    EF数据操作详解
    值类型和引用类型的区别
    Class<T> where T:new() 含义
    50道高级sql练习题;大大提高自己的sql能力(附具体的sql)
    Entity framework 意外删除了表,如何在不影响其它表的情况下恢复回来
  • 原文地址:https://www.cnblogs.com/jingsupo/p/linux-tips.html
Copyright © 2020-2023  润新知