zoukankan      html  css  js  c++  java
  • linux基础(4)

    1、ps:将某个时间点的程序运作情况撷取下来

    2、kill杀死进程

    # kill -pid

    注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
    有时候只想简单的停止和重启进程。如下:

    以优雅的方式结束进程

    # kill -l PID

    -l选项告诉kill命令用好像 启动进程的用户已注销 的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。

    # kill -HUP PID

    该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。

    3、重定向

    输入重定向
    more < killout.txt
    输出重定向
    ls -l > lsout.txt //如果lsout.txt已经存在,则覆盖其内容
    ls -l >> lsout.txt //如果lsout.txt已经存在,则最佳到lsout.txt的末尾

    0代表标注输入
    1代表标准输出
    2代表标准错误输出

    kill -HUP 1234 >killout.txt 2>killer.txt
    将标准输出和标准错误输出分别的重定向到不同的文件中

    kill -l 1234 killout.txt 2>&1
    将标准输出重定向到killout.txt,然后将标准错误输出重定向到与标准输出相同的地方

    4、管道:
    (1)不使用管道
    ps > psout.txt
    sort psout.txt > pssort.out
    (2)使用管道
    ps | sort > pssort.out

    5、把脚本文件设置为可执行
    first //其实,后缀sh不是必须的,知识为了增加可读性
    #!/bin/sh //用/bin/sh来执行本脚本文件
    echo 'hello'

    增加可执行权限
    chmod +x first

    这时,我们你运行first命令会发生错误,因为PATH环境变量并没有将当前目录设置进去,可以采取以下措施
    (1) PATH=$PATH:.
    (2)编辑.bash_profile
    (3)输入./first
    (4)/bin/sh first

    6、export命令
    export命令将 作为它参数的变量到处到子shell中,并使之在子shell中有效。在默认情况下,一个shell中被创建的变量在这个shell调用的下级shell中是不可用的。export命令把自己的参数创建为一个环境变量,而这个环境变量可以被当前程序调用的其他脚本和程序看见。

    脚本文件export2
    #!/bin/sh

    echo "$foo"
    echo "$bar"

    脚本文件export1
    #!/bin/sh

    foo="foo"
    export bar="bar"
    export2

    shell下运行 ./export1
    输出
    [空行]
    bar

    一旦一个变量被导出,它就可以被该shell调用的任何脚本使用,也可以被后续依次调用的任何shell使用
    set -a 或者 set -allexport 将导出它之后声明的所有变量

    7、.点命令
    当一个脚本执行一条外部命令或者脚本时,它会创建一个新的环境(一个子shell),命令将在这个新环境中执行,在命令执行完毕后,这个环境将被丢弃,留下退出码返回给父shell。而点命令允许将要执行的脚本在当前shell中执行。

    脚本文件classic_set
    #!/bin/sh
    version="classic"
    PATH=/usr/local/bin:/usr/bin:/bin:.
    ps1="classic> "

    运行该脚本
    $ . ./classic_set
    classic> echo $version
    classic
    classic>

    8、linux文件与目录
    文件,除了本身包含的内容以外,它还会有一个名字和属性,包括文件的创建修改日期和他的访问权限,这些属性保存在文件的inode节点中,inode节点不保存文件名,它是文件系统的一个特殊的数据块,它同时还包含文件的长度的文件在磁盘上的存放位置。系统使用的是文件的inode编号,目录结构为文件命名仅仅是为了便于人们使用。
    目录是用于保存其他文件的节点号和名字的文件。删除一个文件时,实质上是删除了该文件对应的目录项,同时指向该文件的链接数减一。如果指向某个文件的连接数为0,则表示该inode节点以及指向的数据不再被使用,磁盘上的相应位置会被标记为可用空间。

    9、硬盘基础知识:
    扇区(Sector)为最小的物理储存单位,每个扇区为 512 bytes;
    将扇区组成一个圆,那就是磁柱(Cylinder),磁柱是分区(partition)的最小单位;
    第一个扇区最重要,里面有:(1)主启动记录(Master boot record, MBR)及分区表(partition table), 其中 MBR 占有 446 bytes,而 partition table 则占有 64 bytes。
    所谓的磁盘分区指的是告诉操作系统『我这颗磁盘在此分区可以存放数据的区域是由 A 磁柱到 B 磁柱之间的区块』
    那么指定分区的磁柱范围是记录在哪里?就是第一个扇区的分区表里!但是因为分区表仅有64bytes而已, 因此最多只能记录四个分区的记录,这四个记录我们称为主分区 (primary) 或扩展分区(extended) ,其中扩展分区还可以再分割出逻辑分区 (logical) , 而能被格式化的则仅有主分区和逻辑分区。
    ? 主分区与扩展分区最多可以有四个(硬盘的限制)
    ? 扩展分区最多只能有一个(操作系统的限制)
    ? 逻辑分区是由扩展分区切割出来的分区;
    ? 能够被格式化后,作为数据存放的分区为主分区和逻辑分区。扩展分区无法格式化;
    ? 逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号), SATA硬盘则有11个逻辑分区(5号到15号)。

    操作系统的文件数据除了文件实际内容外, 通常还有很多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部分的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。 每个 inode 与 block 都有编号,至于这三个数据的意义可以简略说明如下:
    ? superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
    ? inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码;
    ? block:实际的数据内容,若文件太大时,会占用多个 block 。

  • 相关阅读:
    mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构
    mysqldump 备份某张表 Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions,
    nfs missing codepage or helper program, or other error
    date 增加一个小时 减少一个小时
    mysqldump 备份单个数据库
    mysql删除账户
    怎么删除某个用户的所有帖子?
    mongodb删除重复数据
    ReSharper2018破解详细方法
    激活windows和office
  • 原文地址:https://www.cnblogs.com/zzj2/p/3008907.html
Copyright © 2011-2022 走看看