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. 自己实现一个Electron跨进程消息组件

    我们知道开发Electron应用,难免要涉及到跨进程通信,以前Electron内置了remote模块,极大的简化了跨进程通信的开发工作,但这也带来了很多问题,具体的细节请参与我之前写的文章: http ...

  2. libevent源码学习(9):事件event

    目录在event之前需要知道的event_baseevent结构体创建/注册一个event向event_base中添加一个event设置event的优先级激活一个event删除一个event获取指定e ...

  3. 分享自己做的一个指定进程以及线程长时间cpu监控的工具

    前言: 前面给大家分享过一个工作中用到的编译拷贝脚本,其实工作中还有一些其他工具的使用,今天再来分享一个自己纯手工的CPU监控的脚本.大家可以结合上篇文章与本篇文章一起学习shell. 主要实现功能: ...

  4. SpringBoot 整合MinIO

    引入依赖 <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifact ...

  5. JAVA根据URL生成二维码图片、根据路径生成二维码图片

    引入jar包 zxing-2.3.0.jar.IKAnalyzer2012_u6.jar 下载地址:https://yvioo.lanzous.com/b00nlbp6h                ...

  6. 【LeetCode】242. Valid Anagram 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 字典统计词频 排序 日期 [LeetCode] 题目地址:ht ...

  7. 【LeetCode】1023. Camelcase Matching 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 正则+字典 日期 题目地址:https://leet ...

  8. 【LeetCode】986. Interval List Intersections 解题报告(C++)

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

  9. 【LeetCode】387. First Unique Character in a String 解题报告(Python)

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

  10. 教学日志:javaSE-循环语句

    一.while循环和do...while循环 /* while循环:先判断条件,再执行逻辑代码 四部分组成: 1.初始化:循环的初始化变量 2.条件判断:条件返回必须是true或false 3.循环体 ...