• linux基础


    ---恢复内容开始---

    linux基础

        一.网络补点

          1.tcp三次握手和四次挥手

            

           tcp是可靠连接,它可以通过发送ack确认收到包

           udp是不可靠连接,发完包就清除缓存。

             哪条路传完数据哪条路再断开连接。

        二.linux基础命令

          1.ls pwd cd su passwd clear date cal(查日历)man mkdir -p递归

           

          2.echo 123456 | passwd --stdin root

           tail -f 1.txt   实时监控数据

             -n 5 /etc/passwd 查看文件最后5行

           head -n 5 /etc/passwd 查看文件前5行

           more  查看更多

           > 输入覆盖

           >> 输入增加

          3.绝对路径和相对路径  

            绝对路径:从根开始完整的路径

            相对路径:针对当前目录来说的路径

          4.基础目录: 

            bin:存放常用的可执行文件          

            sbin:存放系统的可执行文件(一定权限)

            home:存放普通用户相关文件的目录

            dev:设备文件目录

            etc:配置文件目录

            mnt:默认挂载软驱和光驱目录

            boot:存放引导相关的文件

            var:存放一些经常变化的数据

            usr:存放默认安装文件存放的目录

            tmp:临时目录

            .    :当前目录    

            ..   :上级目录

           5.文件和目录操作命令

             ls  cd cp find mkdir mv pwd rename rmdir(删空目录 -p) touch tree basename dirname chattr lsattr file md5sum

             basename 删除所有前缀包

               basename /usr/bin/sort  →  sort

             dirname  截取给定文件的目录部分

               dirname /usr/bin/sort  → sort

               dirname 1.sh → .

             chattr 改变文件,目录属性,相当于chmod底层

               chattr +i /etc/resolv.conf 用chattr命令防止系统中某个关键文件被修改  

               chattr -i /etc/reslov.conf  去掉该权限

               chattr +a /var/log/messages 让某个文件只能往里面追加数据,但不能删除,一般适用于各种日志文件

              lsattr +a 显示文件属性

              file 后面跟文件  查看文件类型

              md5sum 生产和校验文件的md5值

                -b 二进制模式读入

                -t  文本模式读入

                -c  根据已生成md5值,校验

            6.系统性能监视

             内存:top free vmstat mpstat iostat sar

             CPU:top vmstat mpstat iostat sar

             I/O:  vmstat mpstat iostat 

                 进程: ipcs ipcrm lsof lstrace strace

                 负载:  uptime

                

    (1) top

     

    top - 12:38:33 up 50 days, 23:15,  7 users,  load average: 60.58, 61.14, 61.22

    Tasks: 203 total,  60 running, 139 sleeping,   4 stopped,   0 zombie

    Cpu(s)  : 27.0%us, 73.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

    Mem:   1939780k total,  1375280k used,   564500k free,   109680k buffers

    Swap:  4401800k total,   497456k used,  3904344k free,   848712k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                

     4338 oracle    25   0  627m 209m 207m R    0 11.0 297:14.76 oracle                                

     4267 oracle    25   0  626m 144m 143m R    6  7.6  89:16.62 oracle                                

     3458 oracle    25   0  672m 133m 124m R    0  7.1   1283:08 oracle                                

     3478 oracle    25   0  672m 124m 115m R    0  6.6   1272:30 oracle                                

     3395 oracle    25   0  672m 122m 113m R    0  6.5   1270:03 oracle                                 

     3480 oracle    25   0  672m 122m 109m R    8  6.4   1274:13 oracle                                

     3399 oracle    25   0  672m 121m 110m R    0  6.4   1279:37 oracle                                

     4261 oracle    25   0  634m 100m  99m R    0  5.3  86:13.90 oracle                                

    25737 oracle    25   0  632m  81m  74m R    0  4.3 272:35.42 oracle                                

     7072 oracle    25   0  626m  72m  71m R    0  3.8   6:35.68 oracle                                

    16073 oracle    25   0  630m  68m  63m R    8  3.6 175:20.36 oracle                                

    16140 oracle    25   0  630m  66m  60m R    0  3.5 175:13.42 oracle                                

    16122 oracle    25   0  630m  66m  60m R    0  3.5 176:47.73 oracle                                

      786 oracle    25   0  627m  63m  63m R    0  3.4   1:54.93 oracle                                

     4271 oracle    25   0  627m  59m  58m R    8  3.1  86:09.64 oracle                                

     4273 oracle    25   0  627m  57m  56m R    8  3.0  84:38.20 oracle                                

    22670 oracle    25   0  626m  50m  49m R    0  2.7  84:55.82 oracle     

    一.  TOP前五行统计信息

    统计信息区前五行是系统整体的统计信息。

    1. 第一行是任务队列信息

    同 uptime  命令的执行结果:

    [root@localhost ~]# uptime

     13:22:30 up 8 min,  4 users,  load average: 0.14, 0.38, 0.25

    其内容如下:

    12:38:33

    当前时间

    up 50days

    系统运行时间,格式为时:分

    1 user

    当前登录用户数

    load average: 0.06, 0.60, 0.48

    系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

    2. 第二、三行为进程和CPU的信息

    当有多个CPU时,这些内容可能会超过两行。内容如下:

    Tasks: 29 total

    进程总数

    1 running

    正在运行的进程数

    28 sleeping

    睡眠的进程数

    0 stopped

    停止的进程数

    0 zombie

    僵尸进程数

    Cpu(s): 0.3% us

    用户空间占用CPU百分比

    1.0% sy

    内核空间占用CPU百分比

    0.0% ni

    用户进程空间内改变过优先级的进程占用CPU百分比

    98.7% id

    空闲CPU百分比

    0.0% wa

    等待输入输出的CPU时间百分比

    0.0% hi

     

    0.0% si

     

    3. 第四五行为内存信息。

    内容如下:

    Mem: 191272k total

    物理内存总量

    173656k used

    使用的物理内存总量

    17616k free

    空闲内存总量

    22052k buffers

    用作内核缓存的内存量

    Swap: 192772k total

    交换区总量

    0k used

    使用的交换区总量

    192772k free

    空闲交换区总量

    123988k cached

    缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

    二.  进程信息

    列名

    含义

    PID

    进程id

    PPID

    父进程id

    RUSER

    Real user name

    UID

    进程所有者的用户id

    USER

    进程所有者的用户名

    GROUP

    进程所有者的组名

    TTY

    启动进程的终端名。不是从终端启动的进程则显示为 ?

    PR

    优先级

    NI

    nice值。负值表示高优先级,正值表示低优先级

    P

    最后使用的CPU,仅在多CPU环境下有意义

    %CPU

    上次更新到现在的CPU时间占用百分比

    TIME

    进程使用的CPU时间总计,单位秒

    TIME+

    进程使用的CPU时间总计,单位1/100秒

    %MEM

    进程使用的物理内存百分比

    VIRT

    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

    SWAP

    进程使用的虚拟内存中,被换出的大小,单位kb。

    RES

    进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

    CODE

    可执行代码占用的物理内存大小,单位kb

    DATA

    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

    SHR

    共享内存大小,单位kb

    nFLT

    页面错误次数

    nDRT

    最后一次写入到现在,被修改过的页面数。

    S

    进程状态。
                D=不可中断的睡眠状态
                R=运行
                S=睡眠
                T=跟踪/停止
                Z=僵尸进程

    COMMAND

    命令名/命令行

    WCHAN

    若该进程在睡眠,则显示睡眠中的系统函数名

    Flags

    任务标志,参考 sched.h

                    

    (2)free 

       free  -m         

    bash-3.00$ free
    total used free shared buffers cached
    Mem: 1572988 1509260 63728 0 62800 277888
    -/+ buffers/cache: 1168572 404416
    Swap: 2096472 16628 2079844

    MEM 表示物理内存统计
    total:表示物理内存总量(total = used + free)
    used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
    free:未被分配的内存。
    shared:共享内存,一般系统不会用到,这里也不讨论。
    buffers:系统分配但未被使用的buffers 数量。
    cached:系统分配但未被使用的cache 数量。


    total:表示物理内存总量(total = used + free)
    used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
    free:未被分配的内存。
    shared:共享内存,一般系统不会用到,这里也不讨论。
    buffers:系统分配但未被使用的buffers 数量。
    cached:系统分配但未被使用的cache 数量。

    -/+ buffers/cache:表示物理内存的缓存统计 

    buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件(缓存)

    从应用程序的角度来说 可用内存=系统free memory+buffers+cached.

    (3) vmstat 

      

    root@ubuntu:~# vmstat 2 1
    procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
    r b swpd free buff cache si so bi bo in cs us sy id wa
    1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0

     2表示每个两秒采集一次服务器状态,1表示只采集一次。

     

    (4) mpstat   性能

    [root@C44 ~]#  mpstat
    Linux 2.6.14.7-selinux1-WR1.4aq_cgl (MSP)       07/26/12
    
    12:47:05     CPU   %user   %nice    %sys %iowait    %irq   %soft   %idle    intr/s
    12:47:05     all    2.98    0.00    2.68    2.12    0.05    0.31   91.87    391.82


    (5) iostat 监控系统设备的IO负载情况

           -d 表示磁盘使用状态
    iostat -d -k 1 10
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda              39.29        21.14         1.44  441339807   29990031
    sda1              0.00         0.00         0.00       1623        523
    sda2              1.32         1.43         4.54   29834273   94827104
    sda3              6.30         0.85        24.95   17816289  520725244
    sda5              0.85         0.46         3.40    9543503   70970116
    sda6              0.00         0.00         0.00        550        236
    sda7              0.00         0.00         0.00        406          0
    sda8              0.00         0.00         0.00        406          0
    sda9              0.00         0.00         0.00        406          0
    sda10            60.68        18.35        71.43  383002263 1490928140
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda             327.55      5159.18       102.04       5056        100
    sda1              0.00         0.00         0.00          0          0


    (6) sar 系统性能分析




             7.用户,群组,权限

             1. 对硬盘来说没有修改,都是磁道,只能替换。组密码文件在gshadow里面.

             2. gpasswd 

                -a:添加用户到组
                -d:从组删除用户
                -A:指定管理员
                -M:指定组成员和-A的用途差不多
                -r:删除密码
                -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组 

              所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户:

              gpasswd -a user_name group_name

              gpasswd <group> <==建立特定群组密码
              gpasswd -a <user> <group>  <==加入使用者到特定群组
              gpasswd -A <user> <group>  <==加入管理者到特定群组
              gpasswd -d <user> <group>  <==刪除在特定群组的使用者
              gpasswd -r <group>    <==删除群组密码
              gpasswd -R <group>  <==加入群组密码(需与gpasswd <group>连用)
              gshadow 管理用户密码

     


              3. newgrp: 切换用户所在用户组命令 登入另一个群组,如果一个用户同时隶属于两个或两个以上分组,需要切换到其它用户组来执行一些操作,就用到了newgrp命令切换当前登陆所在组
              rm -rf /home/rose/.[!.]*
              cp -r /etc/skel/.[!.]* /home/rose/   手动建用户,将系统信息手动导入rose家目录,同样需要改/etc/passwd,/etc/group,/etc/shadow和/etc/gshadow文件配置.
              4. usermod -g +变组 +原用户 变更gid (初始组)
                    -G +组 +用户 将用户添加组(附加组)
                    -d +变 +原 usermod -d /新路径 用户
                    -L 用户 锁定用户
                    -U 用户 解锁用户
                    -d +变 +原 改家目录
                5. useradd新增用户需先创建组 再复制 gid
                   -u +uid
                   -g +gid加属组
                   -d +家目录
                   -c 加备注
                   -s 加shell
                6. userdel -r 删除用户及家目录
                7. groupmod -n +变 +原 改组名
                   -g +变 +原 改gid
                8. groupadd -g 指定群组GID
                9. groupdel   +组

              10. chown 修改文件的属主

                chown 属主:属组 文件

             11. chgrp 修改文件的属组

              chgrp 属组 文件

            12. chmod 更改权限

              u: 所有者

              g: 群组

              o: 其他人

              a: 所有用户

              表示: + — = r(4) w(2) x(1)

            8.  压缩

               tar cvf 1.tar 1.txt 2.txt 打包

               tar -tf 1.tar 查看

                 tar xvf 1.tar  解包

               tar xvf 1.tar -C /bak 指定路径

               gzip 1.txt -c > 1.tar  压缩      (效率比bzip2慢)

               gunzip 1.txt.gz > /tmp 解压缩

               bzip2 1.txt >    压缩

               bunzip2 1.txt.bz2 >   解压缩

               tar zcvf 1.tar.gz 1.txt 2.txt 3.txt 用gzip技术压缩打包

               bzip2 e.txt

               tar cvjf test2.tar.bz2 a.txt b.txt c.txt 用bzip2技术压缩打包

             9.  硬盘

               1.设备名 IDE硬盘  /dev/hd[a-d]

                      SCSI硬盘 /dev/sd[a-p]           

                            U盘  /dev/sd[a-p]

                            CDROM  /dev/sr0

                 2.硬盘的逻辑结构

                  (1)块:盘片上寻址的最小单位,存放一定字节

                  (2)磁道:由一系列头尾相连的块组成的圆圈。

                    (3)磁柱:由一叠磁道,由在相同半径上每个盘面的磁道所组成。

                    (4) 分区: 由一组相邻的磁柱组成

               3.磁盘分区分为主分区(最多四个),扩展分区和逻辑分区

                       SCSI硬盘上划分63个分区,IDE硬盘上划分15个分区

                     tune2fs -l /dev/sdb

                       fdisk -l 列出分区类型
                   m 帮助
                   n 添加新分区
                   p 列出分区表内容
                   q 退出fdisk
                   t 改变分区系统的id

                   w 保存
                mkfs.ext4 /dev/sdb1
                e2label /dev/sdb1 查看分区label
                e2label /dev/sdb1 wg
              4. df -hT 显示目前所有档案系统的最大可用空间及使用情形
                du -ah 查询档案目录的磁盘使用空间
              5. mount挂载
                 mount /dev/sdb1 /wg
                 umount /wg
              6. i节点
                  实际上是一个数据结构,存放一个普通文件,目录或其他文件系统对象的基本信息。
              7. ln 链接
                 ln -s 源文件 现文件 软链接指向文件名,跟innode号无关,软链接可以跨分区,
                 ln 源文件 现文件  硬链接指向innode号,与源文件共享innode,硬链接不能跨分区,
              10. 进程
              1.进程:程序的一次动态执行。
              2.守护进程:再后台运行并提供系统服务的一些进程。

                  3.父进程与子进程:当一个进程创建另一个进程时,第一个进程被称为新进程的父进程,而新进程被称为子进程。

                4.ps: 显示当前进程的状态。

                pikill -9 程序名:  杀死程序

                kill -9 进程号:    杀死程序   

                5.pstree:以树状图显示程序。

                   6.pgrep: 通过名称或其他属性查找进程。

                  pgrep init:只过滤init的pid

                7.jobs: 后台执行的进程    也可以用kill -9 %n 杀死第n个工作

                                                   firefox &  放到后台.

                8. 

                             11. 软件包管理

              1.包位置: cd /run/media/root/Centos/Packages

                   2.rpm  -ivh vsftpd.rpm 安装

                rpm  -qi  vsftpd.rpm 查询这个包的信息(安装状态)

                rpm  -ql      vsftpd.rpm     列出该软件包有哪些文件

                 rpm  -qa  |grep vsftpd   查询这个软件被安装的所有软件包

                 rpm  -qf   文件  查询属于哪个软件包

                  rpm  -e  vsftpd 删除

                 rpm -e `rpm -qa |grep vsftpd`  反义符查结果

              3.   

                baseurl=file:///opt
                yum clean all 清缓存
                yum -y erase httpd 卸载
                yum -y install ceph
                yum -y install epel* centos扩展源 yum同一时刻只用用一个终端跑
                yum makecache -y 装缓存提高装软件包速度
                /etc/yum.conf 通过网络yum源下载完一台机器,然后自己部署本地源,建目录,把包下下来。再复制到其他机器。
                [main]
                Cachedir=/rpm_bak 自己设置一个目录做缓存包目录
                keepcache=1

     


                yum reininstall 重新安装
                yum -y update 更新
                ls /rpm_bak/epel/packages/
                epel-release

     


                mkdir /cangku_httpd
                cp Packages/httpd-2.1... /cangku_httpd
                cp Pachages/mail

     

                将所需要包导入/cangku_httpd/
                yum install createrepo 解决依赖性的
                createrepo /cangku_httpd/ 依赖性包
                ls /cangku_httpd/ 多了一个repodata
                自己建立一个httpd.repo源
                baseurl=file:///cangku_httpd/

     

                yum clean all 清缓存

     

                网络源
                导入网址 Packages repodata

     

                /opt/lrzsz

                   源码安装python

                  用本地源
                  cd /mnt/Packages
                  rpm -ivh lrzsc.rpm
                  上传python.tgz
                  yum -y groupinstall '开发工具'
                  yum -y install gcc* glibc 编译工具
                  tar zxvf python.tgz
                  cd python3.6
                  ./configure --prefix=/usr/local/python3.6
                  yum -y install zlib*
                  make && make install
                  PATH=/usr/local/python3.6/bin:$PATH
                  /usr/bin/python2.7
                  /usr/local/python3.6

                  vi /etc/profile
                  PATH=/usr/local/python3.6/bin:$PATH
                  export PATH

                  tail -2 /etc/profile

     

               

     

     

     

     

     

     

     

     

     

     

     

     

     

                    

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Oracle存储过程获取YYYY-MM-DD的时间格式
    EXP/IMP 导出生产库表的指定数据到测试库一例
    java sm4国密算法加密、解密
    oracle 三表关联查询
    oracle 两表关联查询
    oracle 批量更新之将一个表的数据批量更新至另一个表
    js 不固定传参
    CocoaPods为project的全部target添加依赖支持
    QML 开发神奇加成之为网络资源设置本地缓存
    一步步走向国际乱码大赛-- 恶搞C语言
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6547810.html
Copyright © 2020-2023  润新知