java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)

OS的一些基本概念简介,在下面两篇中已经介绍了一些:

  • OS_Part_1整起(进程线程协程并发并行、进程线程切换进程间通信、死锁\进程调度策略、分段分页、交换空间、OS三大调度机制)
  • OS_Part_2整起~IO们那些事【包括五种IO模型:(BIO、NIO、IO多路复用、信号驱动、AIO);零拷贝、事件处理及并发等模型】
  • 再贴一些自己看的一些视频捡的零碎银两,关键字记录法
    • 一些基本概念:计算机系统分硬件软件,服务器分类【从高度分类:1U2U4U;从服务器外形:塔式、刀片式、机架式;从功能分类】、硬件厂商(Dell、HP、IBM、浪潮、华为、曙光、华三)、机房(IDC机房托管、自建【机架式服务器机柜】)、服务器特点(稳定性高、要求能够全天724365工作、性能要求高【CPU核心数多、频率高,功耗大;内存大;硬盘(容量大);网卡】、模块化【方便拆卸、维护、扩展升级】、稳定性可靠性安全性都要好)
    • 服务器:服务器也叫伺服器,提供计算服务的设备
      • 服务器硬件组成:电源【冗余设计:(双电设计、模块化电源、可插拔)】、主板、CPU【Intel】、内存、硬盘【重要指标是转速:5400转和7200转、容量】、网卡、阵列卡【为了获得更高的容量、性能、冗余(数据安全),用了磁盘阵列卡,廉价冗余磁盘阵列,磁盘阵列(RAID)是一种技术,通过把若干个磁盘按照一定要求组成一个整体,然后用阵列控制器来控制整个磁盘阵列】、远程卡【跟网卡一样,跟那个XSHELL功能一样,有时候不方便直接进入机房,可以用来远程管理服务器BIOS硬件、配置RAID卡、远程重启等】、机箱
    • 计算机软件:除了MacOS、Window大法好、安卓移动端那些、再就是两个大哥大【Unix、Linux】
      • Unix:稳定安全,银行等这些大的垄断性的企业常用
      • Linux:是一个裁剪板的阉割版的Unix
        • Linux系统版本的选择和优化:不选最旧的不选最新的、选偶数版本
          • 1.用哪种服务器架构:X86【Intel公司,用的是志强处理器;AMD公司,很少】或者ARM【Android手机,高通公司,iPhone用的A12、A12处理器也是ARM架构。ARM架构现在也支持iOT设备、iPad Pro】架构。
          • 2.基于CPU处理数据能力:32位64位…?
          • 3.根据需求、开源不开源【服务器选择,不选最老不选最新:Ubuntu Server 16.04和18.04比较主流和稳定;Centos 7.6就可以】、对硬件的要求;
        • 对CentOS7进行系统优化:linux系统中的/etc目录下重要东西很多。在这里可以对CentOS7进行系统优化,cd /etc/yum.repos.d/中
          • 先备份再修改配置文件、清空并建立缓存【yum clean all;yum makecache】、优化网络管理【临时关闭:systemctl stop NetworkManager、永久关闭systemctl distable NetworkManager】、设置服务器静态IP地址【cd /etc/sysconfig/network-script/这个目录下存的是网卡的配置文件ifcfg-ens33,修改这个配置文件从而设置静态固定的IP地址。改好之后老规矩:systemctl restart network】
            • 置服务器静态IP地址:DCHP改为static,去掉UUID,配置好GATEWAY和IPADDR,并且IPADDR和GATEWAY都必须为10开头的私有地址段。设置服务器静态IP地址【cd /etc/sysconfig/network-script/这个目录下存的是网卡的配置文件ifcfg-ens33,修改这个配置文件从而设置静态固定的IP地址。改好之后老规矩:systemctl restart network】
              java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第1张图片
        • 出现了故障怎么办?
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第2张图片

但是呢,像咱们搞Java的,在SSM那块一般都是写好单体项目打个war包扔到Linux地下的tomcat服务器中,然后运行起来就可以访问项目了,这个过程中咱们经常要用XSHELL这种工具,对Linux文件以及目录以及环境做一些操作,那Linux命令不xiao习一下怕是不太行

  • Linux基本命令:【命令学习/使用网站:https://www.runoob.com/linux/linux-tutorial.html + https://www.w3xue.com/manual/linux/ + https://www.shell.how/】,多用用就会了【修改文件/目录的权限的命令:chmod
    • 命令概览,详细的在下面:
      • 目录切换命令:cd …(或cd…/): 切换到上一层目录、cd /: 切换到系统根目录、、cd ~: 切换到用户主目录。ls【ls -al】、pwd(显示当前用户所在目录)、tab【自动补全】、ctrl+c【强制退出本信号或者本命令】、ctrl+a【光标移动至本行首】、ctrl+e【光标移动至本行尾】、ctrl+f【光标向右移动一个字符】、ctrl+b【光标向左移动一个字符】、ctrl+insert【复制】、shirt+insert【粘贴】man【帮助文档】touch【创建一个或多个文件;touch 文件.文件扩展名】、mkdir\rmdir\cp【复制一个文件或目录】\rm【删除一个文件或空目录,删除非空目录要rm -rf,慎用rm -rf;慎用rm -f以及rm -rf,尽量用rm -r这种问咱们是否删除的模式】\mv【移动文件或目录】、cat【从文件的第一行显示文件的内容;cat >a.txt<、tac【和cat命令是一对,cat命令的倒序显示,与cat命令用法一模一样】、nl【显示行号,并同时从文件的第一行显示文件内容】、more【一页一页的翻动显示,-num,指定显示多少,更人性化,空格键可以翻页,字母b可以向上翻,】、less【与more是一对,一页一页翻动显示】、head【取出文件的前几行,-num】、tail【取出文件的后几行,-num】、tree将所在目录树形展示【有时候报错,可能你得先安装tree这个命令】
      • 目录的操作命令(增删改查):
        • mkdir 目录名称: 增加目录
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第3张图片
        • ls/ll(ll 是 ls -l 的别名,ll 命令可以看到该目录下的所有目录和文件的详细信息):查看目录信息。
        • find 目录 参数: 寻找目录(查)。手册里的find是这样的。示例:
          • ① 列出当前目录及子目录下所有文件和文件夹: find .
          • 在/home目录下查找以.txt 结尾的文件名:find /home -name "*.txt" ,忽略大小写: find /home -iname “*.txt” ;
          • 当前目录及子目录下查找所有以.txt 和.pdf 结尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)或find . -name "*.txt" -o -name "*.pdf"
        • mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
          • mv 目录名称 新目录名称: 修改目录的名称(改)。注意:mv 的语法不仅可以对目录进行重命名,而且也可以对各种文件,压缩包等进行 重命名的操作
          • mv 目录名称 目录的新位置移动目录的位置—剪切(改)注意:mv 语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。另外 mv 与 cp 的结果不同,mv 好像文件“搬家”,文件个数并未增加。而 cp 对文件进行复制,文件个数增加了
            • cp -r 目录名称 目录拷贝的目标位置: 拷贝目录(改),-r 代表递归拷贝 。注意:cp 命令不仅可以拷贝目录,还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r 递归。
        • rm [-rf] 目录 : 删除目录(删)。注意:rm 不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆, 无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包
          • rm -rf 文件: 删除文件(删)
      • 文件的操作命令(增删改查)
        • touch 文件名称: 文件的创建(增)
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第4张图片
        • cat/more/less/tail 文件名称 :文件的查看(查)。命令 tail -f 文件 可以对某个文件进行动态监控,例如 tomcat 的日志文件, 会随着程序的运行,日志会变化,可以使用 tail -f catalina-2016-11-11.log 监控文件的变化 。
        • vim 文件: 修改文件的内容(改)。vim 编辑器是 Linux 中的强大组件,是 vi 编辑器的加强版,vim 编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用 vim 编辑修改文件的方式基本会使用就可以了。在实际开发中,使用 vim 编辑器主要作用就是修改配置文件,下面是一般步骤: vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! (输入 wq 代表写入内容并退出,即保存;输入 q!代表强制退出不保存)
          • vim:进入编辑模式【i,从当前光标处插入信息。I从光标所在行的行首插入】、yy命令复制光标所在当前行内容【nyy表示从光标开始复制n行】、p命令在光标所在行的下一行粘贴、dd【删除光标所在行,ndd表示删除光标所在行的开始n行】、gg快速跳转到文件头部所在行的首字符、G命令快速跳转到文件尾部所在行的首字符【n+G,光标移动到第n行】。$ 快速到光标所在行的行尾字符所在处【n+$,光标移动到第n行的行尾部】、u命令撤销;【输入:,进入底行模式或者叫命令行模式,可以wq保存,可以q退出当前文件,可以set nu显示行号,可以/要搜的内容,就可以搜索内容,可以q!强制退出不保存,可以s/old/new把光标所在行从左到右第一次出现的old内容替换为new内容,可以s/old/new/g替换光标所在行所有的old为new,可以%s/old/new/g,把全文中的old替换为new】
      • echo:可以在Linux窗口打印一些东西玩玩
        • echo > ,表示重定向覆盖的方式写入,覆盖之前的
        • echo >> ,表示输出重定向追加的方式写入,不覆盖之前的
        • echo 2>> ,错误信息追加
        • echo &>> ,正确和错误信息均写入同一个文件
      • 压缩文件的操作命令:
        • 打包并压缩文件:Linux 中的打包文件一般是以.tar 结尾的,压缩的命令一般是以.gz 结尾的。而一般情况下打包和压缩是一起进行的打包并压缩后的文件的后缀名一般.tar.gz。 命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第5张图片
        • 解压压缩包:tar [-xvf] 压缩文件。x:代表解压
          在这里插入图片描述
      • Linux 的权限命令:操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在 Linux 中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。【超级用户可以无视普通用户的权限,即使文件目录权限是 000,依旧可以访问。
        java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第6张图片
        • 所有者(u) :一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用 ls ‐ahl 命令可以看到文件的所有者 也可以使用 chown 用户名 文件名来修改文件的所有者 。

        • 文件所在组(g) :当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 。用 ls ‐ahl命令可以看到文件的所有组也可以使用 chgrp 组名 文件名来修改文件所在的组。

        • 其它组(o) :除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第7张图片

        • 【修改文件/目录的权限的命令:chmod】:修改/test 下的 aaa.txt 的权限为文件所有者有全部权限,文件所有者所在的组有读写权限,其他用户只有读的权限:chmod u=rwx,g=rw,o=r aaa.txt 或者 chmod 764 aaa.txt

        • 文件的类型:

          • d: 代表目录
          • -: 代表文件
          • l: 代表软链接(可以认为是 window 中的快捷方式)
        • Linux 中权限分为以下几种:
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第8张图片

          • r:代表权限是可读,r 也可以用数字 4 表示
          • w:代表权限是可写,w 也可以用数字 2 表示
          • x:代表权限是可执行,x 也可以用数字 1 表示
      • 常用命令:
        • pwd: 显示当前所在位置
        • sudo + 其他命令:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行
        • grep 要搜索的字符串 要搜索的文件 --color: 搜索命令,–color 代表高亮显示
        • ps -ef/ps -aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:ps aux|grep redis (查看包括 redis 字符串的进程),也可使用 pgrep redis -a
          • 如果直接用 ps((Process Status))命令,会显示所有进程的状态,通常结合 grep 命令查看某进程的状态。
        • kill -9 进程的pid: 杀死进程(-9 表示强制终止。)
        • 网络通信命令:
          • 查看当前系统的网卡信息:ifconfig
          • 查看与某台机器的连接情况:ping
          • 查看当前系统的端口使用:netstat -an
            • net-tools 和 iproute2 :net-tools起源于 BSD 的 TCP/IP 工具箱,后来成为老版本 LinuxLinux 中配置网络功能的工具。但自 2001 年起,Linux 社区已经对其停止维护。同时,一些 Linux 发行版比如 Arch Linux 和 CentOS/RHEL 7 则已经完全抛弃了 net-tools,只支持iproute2。linux ip 命令类似于 ifconfig,但功能更强大,旨在替代它
          • shutdown: shutdown -h now: 指定现在立即关机;shutdown +5 “System will shutdown after 5 minutes”:指定 5 分钟后关机,同时送出警告信息给登入用户。
          • reboot: reboot: 重开机。reboot -w: 做个重开机的模拟(只有纪录并不会真的重开机)
        • Linux 环境变量:在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的主目录(HOME)。配置文件执行先后顺序为:/etc/enviroment –> /etc/profile –> /etc/profile.d –> ~/.bash_profile –> /etc/bashrc –> ~/.bashrc。如果要修改系统级别环境变量文件,需要管理员具备对该文件的写入权限。建议用户级别环境变量在 ~/.bash_profile中配置,系统级别环境变量在 /etc/profile.d 中配置
          • 按照作用域来分,环境变量可以简单的分成:
            • 用户级别环境变量 : ~ /.bashrc、~/.bash_profile。
            • 系统级别环境变量 : /etc/bashrc、/etc/environment、/etc/profile、/etc/profile.d
          • 读取环境变量
            java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第9张图片
          • 环境变量修改
            java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第10张图片
      • Linux查看系统资源占用 :
        • free命令查看内存占用
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第11张图片
        • 查看内存占用前五的进程:ps auxw | head -1;ps auxw|sort -rn -k4|head -5
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第12张图片
        • 查看cpu占用前三的进程:ps auxw|head -1;ps auxw|sort -rn -k3|head -3,只是选择的资源占用情况的第3列(即cpu),用“-k3”表示。
        • top显示系统整体负载
          在这里插入图片描述
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第13张图片
      • linux下查看端口是否被占用以及查看所有端口
        • 查看服务器端口是否被占用:lsof -i:8081
        • 查看服务器所有端口:netstat -ntlp
        • 查看服务器是否开放某端口:
          java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第14张图片
        • 先用ps -ef | grep xxx(某个进程),可以查看某个进程的pid,再用netstat -anp | grep pid号,可以查看到该进程占用的端口号
      • 查看进程、线程的命令:
        • LINUX查看进程的4种方法(小结)
          • ps aux:ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
            java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第15张图片
          • ps -elf:
            java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第16张图片
          • top:以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的任务管理器。
            java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第17张图片
          • pstree -aup:
            java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_3_Linux整起(Linux常见命令操作、Shell)_第18张图片
  • Shell
    • Shell是用C开发的一个程序或者一种程序设计的语言或者叫命令解释器,作为用户跟OS之间的一个连接桥梁或者中间翻译官使得用户可以跟OS交互;可以用来可以执行一些脚本、自动化运维的任务、修改服务器固定ID地址、修改系统变量

巨人的肩膀
https://xiaolincoding.com/os
低并发编程
javaGuide老师有关于Linux的文章和关于Shell的文章,值得一看
菜鸟教程
linux命令在线速查:https://www.w3xue.com/manual/linux/
https://www.shell.how/

你可能感兴趣的:(唠计网,唠OS,唠计组,唠数算,java,linux,Shell,Linux命令)