zoukankan      html  css  js  c++  java
  • 【linux】基础2

    第2章 linux系统安装与基本操作

    • 安装VM+centos
    • 查看硬盘

    计算机-管理-存储-磁盘管理

    更改驱动器和路径 名称,让用户访问有个入口 删除了就无法访问。如果有程序在读数据,删了就报错。

    • windows中用盘符,linux中用文件夹起名

    要想访问数据,就要给硬盘分配的空间起名字

    windows的根是盘符 cd 回到根上

    linux只有一个根

    • 既然有图形化,为何还留命令行?

    命令行节省资源开销只是附带,财大气粗可以不在乎。最关键的地方是,命令行比较明确错误化,而图形化界面会让你在发生错误的时候感觉困惑(我IP地址配置的明明填写正确了为什么上不了网?结果使用命令行查ipconfig发现,ip地址没获取到。)。这才是命令行带来的核心需求,为什么没有淘汰掉,甚至无法淘汰掉的原因所在,因为我们需要错误的明确化来进一步处理与分析,否则的话这个世界将充满错误,而我们一直稀里糊涂探不到根源所在。

    • linux文件夹命名

    /usr 像windows的系统盘,放很多系统文件

    /home 像windows的用户放数据的地方,存放很多用户数据的目录,创建的账户都在这下面

    /boot 引导计算机的系统用的,windows的引导文件默认放到系统盘根下隐藏的

    /tmp 在windows中有放临时文件的,linux也有

    /var/log 放日志的文件,windows中,计算机管理-事件查看器-windows日志-属性 比如:

    %SystemRoot%System32WinevtLogsSetup.evtx

    • %SystemRoot% 为环境变量

    cmd命令 set %SystemRoot% 可以查看它的值

    • linux中用文件夹名分配硬盘分区的名称

    windows中给分区命名的是C D E F是字母,linux中为文件夹名,都是给分区起名字,一样的道理。

    比如将第一个分区命名为/boot,第二个分区命名为根(/),/boot比较特殊,它在第二个分区里可以访问到它,而它实际是命名成了第一个分区的名称,从第二个分区里访问第一个分区中的内容

    • 挂载 mount,目录名叫挂载点mount point

    在windows中给分区分配盘符,linux中给分区分配文件夹名,有个专业的叫法,叫挂载

    • /dev device设备

    linux中一切皆文件,/dev专门放各种硬件信息,存放表示硬盘以及分区的文件

    • 硬盘

    IDE /dev/hd

    SATA /dev/sd

    centos6开始不管什么接口通通 /dev/sd 命名

    a,b,c....z,aa等字母表示设备的数量

    ls /dev/sda
    lsblk     //列出块设备list block   硬盘,光盘都是块设备
    
    • 分区

    用数字表示

    MBR分区策略:主,扩展,逻辑分区

    主分区:一个硬盘上最多4个,不能再分了。右键-将分区标记为活动分区,用来引动操作系统用的。4个主分区只能有一个是活动状态(数字表示为:1-4)

    扩展分区:我想分4个以上的分区怎么办?扩展分区就引入了。最多一个,划分更小的分区,这些更小的分区就叫做逻辑分区(数字表示为:1-4),扩展加主分区一共计数4个编号

    逻辑分区:可以单独用来格式化,存放数据(5,6……)

    fdisk -l /dev/sda    查看硬盘分区信息
    
    • windows中也有类似的挂载功能

    计算机管理-存储-磁盘管理-D盘-更改驱动器号和路径--删除D盘符-添加-加一个其他盘的文件夹

    从其他盘的文件夹访问D盘的数据

    • 分区规划

    / 实际生产中看业务环境

    /boot 1G

    du -sh /boot     看目录存放的数据有多大
    

    /data 专用于实验用的多划分一个分区出来,系统本身不带

    swap 交换分区 (内存数据和硬盘数据进行交换) 物理内存的1.5-2倍(8G内存及以下)

    centos7.5 给2G centos6.10 给1G 不然太少了会报错

    • 虚拟内存技术

    windows中内存不够了会报内存不足,它有一个pagefile.sys分页文件,内存不够时可以把这个文件拿来当内存。性能肯定差很多很多,毕竟在硬盘上,比报错空间不足强很多,能用。如果你自己评估自己的内存够用,这个技术可以关闭。还是那句话,令人困惑的图形化界面,你点了关闭不使用,实际情况如何,咱道行不够也看不出来图个心理安慰。

    计算机-属性-高级系统设置-性能(设置)-高级-虚拟内存(更改)

    windows用文件来表示虚拟内存,而linux中直接用分区来表示,就是swap交换分区

    VMware workstation操作

    • VMware workstation安装程序光盘映像文件(ISO)

    如果有自己的分区规划需求,给哪些盘分哪些区,挂载到哪里,个性化命名等(比如/sec875挂载点),就不要用这一项,这项是ISO文件自带分区好的。选择稍后安装操作系统。

    • 最大磁盘大小

    这是模拟的大小,分配200G都没事。将虚拟硬盘存储为单个文件。.vmdk就是模拟出来的200G硬盘

    • centos7 2G内存2核心 centos6 1G内存2核心

      桥接:大家相互连接 NAT:你可以连别人,别人连不了你

    • 虚拟网络编辑器

    桥接-选择网卡 有物理和无线两块网卡,不要选错了

    • 获取发行版

    centos

    https://wiki.centos.org/Download

    mirrors.aliyun.com

    mirrors.sohu.com

    mirrors.163.com

    举例:阿里云镜像站 /centos6.10/isos/ DVD1和DVD2两张盘 7.5是一张盘 Everything

    将官网给的sha1sum哈希值复制出来

    • 找一个存在的linux系统,虚拟机设置-CD/DVD-挂载最新下载的ISO文件-计算哈希值,右下角光盘在闪
    sha1sum /dev/sr0   
    

    得到的结果与官方的对比,不一样则下载过程中有问题,数学被破坏没法用。

    • mspaint 画图工具
    • 选择仅主机模式时

    centos6和7之间有一台虚拟的交换机,在VM内部。在VM和宿主机之间有一张网卡,叫VMnet1。仅主机模式,连的就是VMnet1网卡。打开网络和共享中心-更改配置器设置。与其他主机就没法连接

    • 桥接模式

    连的就不是VMnet1,而是VMnet0(也就是本地网络的物理网卡,被映射成VMnet0)。肉眼可见,已经从宿主机连接出来到外面的交换机上面了。

    ctrl+alt+回车 全屏/回来

    ctrl+alt 弹出鼠标

    虚拟机中装centos和实际业务环境是一样的,企业都在用虚拟机技术。

    • windows计算机名和linux有本质区别

    windows计算机名一样会冲突,而linux不检查计算机名。体现在了 root@计算机名

    • ctrl+alt+F1-F6可以看见安装过程发生什么事
    • 选择Create Custom Layout自己创建分区
    • 看内存配置

    cat /proc/meminfo

    shift+pageup上下翻滚浏览

    • 看分区

    cat /proc/partitions

    • 安装完成以后做备份,拷目录就行

    快照有时会出问题,文件坏了快照也恢复不了。

    • reboot重启
    • 运行模式(切换界面)

    runlevel

    free -h  查内存
    init 3 切换到纯字符界面
    init 5 切换到图形界面
    startx 开启图形化软件
    
    init 6 重启
    init 0 关机
    reboot 重启
    halt 关机不断电     poweroff 关机并断电
    
    ctrl+alt+F1-F6     不关闭图形切字符界面,终端登陆,多用户登陆
    chvt 1-6    使用命令切换终端
    
    liunx并发的多用户工作系统
    终端窗口tty
    /dev/tty/0  查看从哪个终端登陆过来的
    /dev/pts/0  在图形化界面中的终端名称叫pts
    
    • 如果发现没有分配IP地址,网卡设置启动

    nmcli commection modify ens33 connection.autoconnet yes centos7专属

    • 在windows用软件连接linux进行管理

    secureCRT 8.0或者Xshell(Xmanager安装完成后出来一个Xshell)

    • whoami查看当前用户,who am i
    • 看管理员还是普通用户,UID为准,不是root名字

    0 :管理员 非0:普通用户

    id -u   查看UID
    
    • 交互式接口

    GUI:图形用户接口

    基于X协议

    GNOME(C,图形库gtk)

    KDE(C++,图形库qt)

    XFCE(轻量级桌面)

    CLI:命令行接口

    • 内核版本 uname -r
    • 查CPU lscpu
    • 查内存free -h
    • 查硬盘lsblk
    • 查网卡mii-tool eth0
    • 生产环境中的服务器追求的是稳定,所以版本较老
    • 多少人登陆,谁在登陆who

    shell

    输入的命令都是英语单词,计算机最终识别的是二进制,谁帮把命令给转换执行了呢?shell背后帮做这些事,它是命令解释器,把人理解的语言命令解释成计算机理解的二进制语言。英译过来变成了壳,翻译后严重形成了畸形,这种情况下就不要翻译了,就用原文shell。

    • 有多种软件支持shell,cat /etc/shells

    不同的操作系统默认的shell不一样,centos默认是bash

    查看当前用的shell类型 echo $SHELL echo ${SHELL}

    • 不同的shell(以后都默认为在说shell软件)有不同的特性与功能

    比如 > 在bash中有创建文件的功能,在csh中就不支持

    cat /etc/shells查看各种shell
    /bin/csh	运行csh
    > test	发现csh报错,不认识此命令
    exit   退出运行的shell,回到以前的shell中
    exit  logout再退就退出系统注销了
    
    • 清屏ctrl+l clear
    • /sbin/nologin shell

    有的软件在后台运行,不需要用户登录,用的shell类型就是nologin

    • 查看完整的主机名hostname
    • 提示符格式echo $PS1

    提示符说的是root@计算机名 ~ 这个东西,可以改这个东西,不会永久保存,退出再进就恢复了

    $PS1=sec875
    

    要保存下来,就得写到文件里

    ls /etc/profile.d/

    nano /etc/profile.d/env.sh //env是环境的意思,这个名字可以随便起,把$PS1=sec875,写到文件里

    gedit 图形化记事本

    nano /etc/gdm/custom.conf
    [daemon]	//守护进程
    AutomaticLoginEnable=true
    AutomaticLogin=root		//下次开机时,自动登录
    
    cat /etc/motd	//登录后提示信息
    
    rz	//上传
    df	//查看光盘路径
    rpm -ivh 光盘路径
    rpm -ivh 光盘路径/Packages/lrzsz- tab补全
    rz
    ls
    mv motd-keyboard	/etc/motd
    
    • 执行命令

    shell程序找到键入的命令所的可执行程序或代码,并由其分析后提交给内核分配资源将其运行

    • 两类:内部命令,外部命令

    help查看内部命令

    enable查看内部命令

    type pwd查看是否为内部命令

    enable -n pwd禁用内部命令

    pwd 发现还能执行

    type pwd 发现确实被禁用了,前面带了星号

    系统先执行内部命令,发现没有内部命令再去找外部命令

    • 为什么有了内部命令,还要再准备一个一样的外部命令?

    ll /bin/pwd

    内部命令是依赖于shell的,不同的shell没有内部命令就会导致执行失败,因此准备一个外部命令

    type -a pwd列出所有内部,外部命令的列表

    基于观察的寻人法比基于提问的寻人法准确的多。究其缘由在于,我们通过提问的方式来寻找物以类聚的人,而非真正对的人。深思问与答,如果答对改变的其实是自己的心理(此人不错),如果答错(此人不适合)。从此例发现,看准人在于他是否改变了你的心理。

    既然核心是改变你的心理,那么触发点就太多了。除了运用问与答。请问一下自己,他长年累月的在写笔记,积累阅读,超群的见解等是否和问与答同样可以改变你的心理认知呢?如果可以,恭喜你,组团招人的眼力就提高了。

    我们要明白一个道理,很多问题问在那些年薪百万的专家身上,他们一样答不出来,难倒去否认专家吗?臣妾怕。。

    思考知道创宇总裁在回国的时候,为什么要亲自去找一个其他专业出身的余弦,而不通过问一些专业性的问题去招人呢?事出无常必有妖。亲密无间,光速成长,已梦想为触发点驱动专业性成长,忠诚度。我觉得,一个重要的团队,这些东西比其他的都重要。无形的让自己的资产从本质上得到建设,因为人是复杂的,KPI无法统计出这些指标。当然,赵老板,“你这招比画饼更牛!直接了当的收买人心啊,还成本为0,招人的开销都省去了,哈哈”。当然,如余弦的组团篇所言,其他行业的人也不需要这么做,因为他们组建的是黑客团队,对成员的要求非常高,才剑走偏锋。总不能每个行业都得这么做吧。

    • which reboot确切的知道某个外部命令以后,使用它查看路径
    • whereis reboot列出的更多更详细
    • ls /bin usr/bin全都是外部命令

    外部命令每次运行都要去磁盘上面找到相应的路径

    • 外部命令怎么知道路径在哪?

    不是一个个目录去翻,靠一个变量来找

    echo $PATH

    • 执行过一次外部命令,下次再执行是不是没必要再去找了,记在内存中

    这个执行一次就记在内存中的过程,就叫hash。把路径记录在内存的哈希表里。

    whereis ls

    type whereis //执行过一次以后,发现前面写着一个hashed

    hash -l显示hash缓存中,记录下来的命令

    hash 也可以显示记录下来的命令

    • 如果某些操作导致缓存中的命令路径与真实的命令路径不一致,以后都会提示命令找不到,但命令确实存在于$PATH中,这个时候需要清除所有缓存的命令路径

    hash -r cat清除缓存中所有记录的命令路径

    • 起别名执行命令

    hash -p /bin/ls lsls //起别名

    hash -l //加l参数才能看见别名

    hash -d lsls删除别名

    hash -t ls显示命令路径

    • hash以后会经常用,这个使用的技术就叫缓存技术。

    type ls可以查看有没有别名

  • 相关阅读:
    Mysql 修改本地密码
    关于Ubuntu18.04 linux系统使用安装JDK Mysql
    关于 java编程思想第五版 《On Java 8》
    关于Ubuntu18.04 linux系统使用搜狗输入法 出现乱码
    关于Ubuntu18.04 linux系统下使用Tim QQ 微信
    项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
    Ubuntu 16.04 LTS 64位系统 安装Docker
    安装Ubuntu服务器版 + 远程连接ssh +更换阿里云源
    机器学习-简单线性回归(一)
    机器学习-神经网络算法应用(二)
  • 原文地址:https://www.cnblogs.com/sec875/p/13167364.html
Copyright © 2011-2022 走看看