linux

linux与windows的区别

linux的文件结构

Linux基本命令

  • ls: 列出目录
  • cd: 切换目录
  • pwd: 显示当前目录
  • mkdir: 创建一个新的目录
  • rmdir: 删除一个空的目录
    • rmdir -r: 删除目录及目录下所有子文件
    • rmdir -rf: 强制删除目录及目录下所有子文件
  • cp: 复制文件或目录
  • rm: 移除文件或目录
  • mv: 移动文件与目录,或者修改文件与目录的名称

shell基础

shell是与linux交互的桥梁,shell是比较底层的一个工具,可以与linux内核进行交互

常见的shell

  • bourne Shell(/user/bin/sh或/bin/sh)
  • Bourne Ahaim Shell(/bin/bash) --->最常用、免费、功能强大

  • C Shell(/user/bin/csh)
  • K Shell(user/bin/ksh)
  • Shell for Root(/sbin/sh)

运行shell

  • chmod +x ./test.sh #给与脚本具有执行的权限
  • 运行方法1>>>./test.sh # 执行脚本
    • 使用 ./ 运行shell,它会自动识别是使用哪一种shell
  • 运行方法2>>>/bin/sh test.sh #指定shell运行,脚本中的第一行就会失效

linux进程与线程

进程

  • 可执行程序的运行态

    • 当linux文件(可执行程序、shell脚本)被系统调度、即,你去运行它的时候,操作系统会解析这个文件并判断文件中的指令通过内存、cpu去进行调度和运行,这就是一个可执行程序的运行态,此时它就从一个静态的文件变成一个动态化的进程
  • 操作系统调度的基本单位
    • 进程可以从文件中提取出所需要的数据、指令,数据放到内存、cpu去调度指令,然后指令再去操纵内存中的数据,从而完成复杂的数据处理
  • 线程容器
    • 一个进程,它最底层的单元是线程,cpu在去调度的时候,调度的是其中的一个线程,所以,进程的本身是一个线程的容器,它包含线程,同时也包含线程之外的一些指令和数据
  • 进程本身包含指令、数据等资源
    • 进程由内核去生成、进程包含代码、指令、数据、堆栈等,内核会对进程对象进行调度维护

线程

  • 进程中被执行的最小单元
  • cpu调度的基本单位
  • 线程带有指令、数据等资源

进程的生命周期

  • created: 当执行一个脚本、程序的时候 (./demo.py)内核会调度demo.py文件,创建进程,操作系统会维护这些进程的状态
  • ready:当进程被创建之后,就会进入ready状态,即可以被cpu进行调度,此时,当cpu空闲出来或者跑完其他指令,就会运行demo.py,大部分cpu都基于分片运行,根据给与的指令进行不断的运行,它是并发来进行执行的
  • running:从ready到running中,有一个状态切换,比如在运行的过程中需要等待磁盘、或者遇到外部指令强行被终止,此时会重新回到ready,或者进入waiting的状态
  • waiting: 当进程进入到waiting状态的时候,直到满足条件之后,才会重新再进入ready状态
  • terminated: 当给与一些指令之后,比如kill进程,就会进入正常的一个状态,terminated

常见进程管理命令

  • ps: 进程列表快照

    • 列出当前所有进程快照

      • unix风格参数:ps -ef | less 找到当前所有进程列表

      • bsd风格参数: ps aux |less 比 -ef更详细

      • ps au -m :能显示进程的线程数

    • gnu风格参数: ps --pid pidlist

    • ps -o :自定义输出指标

      • ps -o pid,ppid,psr,thcount,tid,cmd -M

  • top: 交互式进程观察

    • 可以查看当前进程状态
  • kill: 结束进程

    • 结束进程
  • fg: 进程切换到前台

    • 前台进程:当进程具有交互界面
  • bg: 进程切换到后台

    • 后台进程:脱离桌面,但还处于执行状态
  • ctrl z 挂起进程

|

|

|

|

ps:

下一篇:linux常用命令之文件处理

linux与shell介绍 - 进程与线程的更多相关文章

  1. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  2. (转)如何在Linux中统计一个进程的线程数

    如何在Linux中统计一个进程的线程数 原文:http://os.51cto.com/art/201509/491728.htm 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会 ...

  3. 如何在 Linux 中统计一个进程的线程数

    编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn ...

  4. 在Linux上显示某个进程的线程的几种方式

    方法一:PS 在ps命令中,"-T"选项可以开启线程查看.下面的命令列出了由进程号为的进程创建的所有线程. 1.$ ps -T -p 方法二: Top top命令可以实时显示各个线 ...

  5. Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向

    一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计 ...

  6. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

  7. 如何在Linux中统计一个进程的线程数(转)

    方法一: /proc proc 伪文件系统,它驻留在 /proc 目录,这是最简单的方法来查看任何活动进程的线程数. /proc 目录以可读文本文件形式输出,提供现有进程和系统硬件相关的信息如 CPU ...

  8. 【Linux】程序、进程和线程的区别

    程序.进程和线程的区别 程序是一组指令及参数的集合,指令按照既定的逻辑控制计算机运行.进程则是运行着的程序,是操作系统执行的基本单位.线程则是为了节省资源而可以在同一个进程中共享资源的一个执行单位. ...

  9. Linux下查看某个进程的线程数量(转)

    转自:https://www.cnblogs.com/caosiyang/archive/2012/10/15/2724585.html 有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值 ...

随机推荐

  1. sar命令查看网卡流量 (System ActivityReporter系统活动情况报告)

    sar命令查看网卡流量 2016年06月14日 03:31:29 WarriorTan 阅读数:9748更多 个人分类: Linux   版权声明:本文为博主原创文章,未经博主允许不得转载. http ...

  2. JAVA匹配html中所有img标签

    public static List<String> getImg(String htmlStr) { List<String> list = new ArrayList< ...

  3. summernote富文本图片上传,增加视频上传功能、批量上传方法

    Summernote 是一个简单灵活的所见即所得的 HTML 在线编辑器,基于 jQuery 和 Bootstrap 构建,支持快捷键操作,提供大量可定制的选项. 但是却只有图片上传功能,没有视频上传 ...

  4. 【LeetCode】721. Accounts Merge 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/accounts ...

  5. 【LeetCode】131. Palindrome Partitioning 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...

  6. Rikka with wood sticks(hdu5203)

    Rikka with wood sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  7. hdu 1430 (BFS 康托展开 或 map )

    第一眼看到这题就直接BFS爆搜,第一发爆了内存,傻逼了忘标记了,然后就改,咋标记呢. 然后想到用map函数,就8!个不同的排列,换成字符串用map标记.然后又交一发果断超时,伤心,最恨超时,还不如来个 ...

  8. Labeling Balls(poj3687)

    Labeling Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13109   Accepted: 3782 D ...

  9. JVM 内存布局

    JVM 内存布局规定了 Java 在运行过程中内存申请.分配.管理的策略,保证了 JVM 的高效稳定运行. 线程是否共享 Heap (堆区) 堆是 OOM 故障最主要的发生区域.它是内存区域中最大的一 ...

  10. 常见分布式唯一ID生成策略

    方法一: 用数据库的 auto_increment 来生成 优点: 此方法使用数据库原有的功能,所以相对简单 能够保证唯一性 能够保证递增性 id 之间的步长是固定且可自定义的 缺点: 可用性难以保证 ...