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. 安装选择msi格式还是zip(windows下Nodejs zip版下载安装及环境变量配置)

    安装选择msi格式还是zip((windows下Nodejs zip版下载安装及环境变量配置)) -----以node.js 安装为例: 1,外观对比: ✿ 简单介绍一下node的作用: • node ...

  2. vc mfc listctrl使用虚拟列表 虚拟列表用法

    note 虚拟列表可有效加载大量数据 需要处理listctrl的 LVN_GETDISPINFO 消息 使用虚拟列表 不能 使用 insert的方法插入数据,而是告诉listctrl 当前要显示多少行 ...

  3. 【LeetCode】219. Contains Duplicate II 解题报告(Python)

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

  4. 【LeetCode】535. Encode and Decode TinyURL 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 方法一:数组 方法二:字典 日期 题目地址:https://l ...

  5. 【LeetCode】838. Push Dominoes 解题报告(Python)

    [LeetCode]838. Push Dominoes 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http:// ...

  6. 【LeetCode】495. Teemo Attacking 解题报告(Python & C++)

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

  7. 1057 - Collecting Gold

    1057 - Collecting Gold   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...

  8. 1030 - Discovering Gold

    1030 - Discovering Gold    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 M ...

  9. 线程 IO流 网络编程 基础总结

    线程 进程---->进行中的程序 线程---->由进程创建 一个进程可以创建多个线程 并发:同一个时刻 多个任务交替执行 造成一种貌似同时进行的错觉 简单来说 单个cpu的多任务就是并发 ...

  10. 【服务器】【环境搭建】WordPress建立数据库连接时出错---问题---解决

    这意味着您在wp-config.php文件中指定的用户名和密码信息不正确,或我们未能在localhost联系到数据库服务器.这可能意味着您主机的数据库服务器未在运行. 您确定用户名和密码正确吗? 您确 ...