
Linux
文章平均质量分 85
AHAOAHA
www.ahaoaha.top
展开
-
Linux在命令行模式下执行命令
Linux系统登录环境在Linux默认的登录的模式中,主要分为两种,一种是纯文本界面的登录环境,另一种则是图形界面的登录环境。 ●Linux默认提供6个终端界面来让用户登录,切换的方式为:[Ctrl]+[Alt]+[F1]~[F6]。系统会按[F1]~[F6]的顺序分别命名为:tty1~tty6的操作界面环境。 ●[Ctrl]+[Alt]+[F1]~[F6]:文字界面登录 tty1~tty...原创 2018-09-16 11:52:59 · 17901 阅读 · 0 评论 -
进程间的状态切换
点击此处阅读原文进程之间的状态切换。下文中以单核计算机为例。在任意时刻下,通常只有一个进程可以被加载到计算机的CPU上运行。三状态模型任何一个进程在它的生命周期内都会处于下面三种状态,使用这三种状态可以简单描述运行在计算机上的进程之间的状态切换,进程的一生都处在这三种状态间相互转换。运行态(Running):指该进程正在被CPU调度运行。就绪态(Ready):指该进程满足被CPU调度...原创 2019-05-21 21:31:27 · 4655 阅读 · 0 评论 -
进程间通信
点击此处阅读原文进程间通信的本质就是让不同的进程额能够看到同一份公共的资源。进程间通信的方式管道管道是Linux操作系统下的一种文件类型,该文件类型的文件就是为了给不同进程之间提供可以进行通信的文件资源。一个管道只能单向通信。为什么一个管道只能进行单向通信?一个进程可以对一个管道文件进行读或写操作,当两个进程通过一个管道进行通信时,一定是有一个进程对管道进行写操作,另一个管道进行...原创 2019-05-21 21:30:14 · 299 阅读 · 0 评论 -
scanf缓冲区刷新问题
最近在Linux终端写代码时,使用scanf输入一个字符,当不小心输入了一个退格键或者方向键时,程序就出现无限读取的现象,这显然是scanf的缓冲区内的字符无法刷新出去,即研究一下scanf缓冲区的刷新规则。scanf缓冲区的刷新规则当scanf从缓冲区读取走需要的数据之后,缓冲区应该会被清空,但在某些情况下,缓冲区并不会会清空,使用下面的代码检测一下什么情况下缓冲区不会被清空:输入数字...原创 2018-12-26 16:54:50 · 1003 阅读 · 0 评论 -
Linux中的线程
什么是线程在之前进程的介绍中,一个进程拥有一个PCB,一个虚拟地址空间,一个页表,这样的角度理解进程是比较狭义的。在一个进程中,可以存在一个或多个线程,每一个线程就是一个执行流,那么该如何理解线程呢?CPU调度执行流是通过PCB调度的,当一个进程中存在多个线程(执行流)时,也就是说在一个进程中,存在多个PCB可以被CPU调度。而每一个PCB即代表一个线程,同一个进程下的线程共享同一份虚拟地址空...原创 2018-12-05 14:57:09 · 126 阅读 · 0 评论 -
进程间的状态切换
在任意时刻下,通常只有一个进程可以被加载到计算机的CPU上运行。三状态模型任何一个进程在它的生命周期内都会处于下面三种状态,使用这三种状态可以简单描述运行在计算机上的进程之间的状态切换,进程的一生都处在这三种状态间相互转换。运行态(Running):指该进程正在被CPU调度运行。就绪态(Ready):指该进程满足被CPU调度的所有条件但此时并没有被调度执行。阻塞态(Blocked):指...原创 2018-11-27 20:21:04 · 2055 阅读 · 0 评论 -
Linux下的进程信号处理过程
信号的产生信号的产生方式键盘产生键盘产生的信号只能发送给前台进程。例如:[Ctrl+C]…程序异常除0错误。除0错误会导致硬件错误。core dumped(核心转储):当进程异常退出时,操作系统会将该进程发生异常退出之前在内存中的数据存储至硬盘上。但是通常发生程序异常退出时,用户并不会发现程序产生了一个core dumped文件,这是因为操作系统当前给用户可产生cor...原创 2018-11-19 13:48:40 · 1797 阅读 · 0 评论 -
详解C程序的编译过程
环境在C语言的任何一种实现中,存在两种不同的环境,分别是翻译环境和执行环境。这两种环境并不一定必须同时位于一台机器上。翻译环境翻译环境即是为C语言代码从代码转变为机器可以执行的二进制文件过程中所要依赖的环境。执行环境执行环境即用于实际执行代码。程序的翻译过程当一个项目进程编译时,项目中可能存在多个xxx.c的源文件,每一个源文件都会单独经过编译器处理并分别生成一个目标文件,当生成目...原创 2018-11-21 21:29:44 · 542 阅读 · 0 评论 -
Linux下的进程
什么是进程?当我们写好一份代码时,编译生成可执行程序,将这个可执行程序运行起来,在运行期间,这就是一个进程。在Linux系统下,任何一个可以运行的软件,包括操作系统自己,都可以称之为进程。操作系统如何管理进程一台计算机中有数不清的进程,操作系统的作用就是要将这些进程有序的管理起来。既然要管理,那就离不开先描述,后组织,在现实生活中,公司管理员工,学校管理学生,都是先将要管理的对象用一个统一的...原创 2018-11-15 19:28:01 · 248 阅读 · 0 评论 -
Linux环境下的进程间的通信
进程间通信的方式管道管道是Linux操作系统下的一种文件类型,该文件类型的文件就是为了给不同进程之间提供可以进行通信的文件资源。一个管道只能单向通信。为什么一个管道只能进行单向通信?一个进程可以对一个管道文件进行读或写操作,当两个进程通过一个管道进行通信时,一定是有一个进程对管道进行写操作,另一个管道进行读操作,这样就可以实现进程之间的单向通信,但假如两个进程同时将读写端口都打开时,...原创 2018-11-03 13:41:23 · 454 阅读 · 0 评论 -
Linux下的文件操作
Linux下,一切皆文件!文件描述符 fd什么是文件描述符?在Linux系统中,一切皆文件,不仅我们平时认为的文件是文件,而且显示器,键盘,磁盘…都是文件。当进程需要对某些文件进行操作时,就必须在进程中打开所要操作的对应文件。而一个进程的所有状态信息都会被保存在进程的task_struct(Linux下的进程PCB)中,在task_struct中,存在一个指针,它指向一个结构体file_st...原创 2018-10-27 10:22:14 · 2062 阅读 · 0 评论 -
Linux环境下编写简单的Shell
使用进程创建、等待、终止等知识自主实现简单的Linuxshell命令行,Linux环境:CentOS7.3进程创建创建进程的方式通常使用fork()函数来创建一个新进程,新进程为子进程,而原来的进程即为父进程。在Linux中fork()是一个非常重要的函数,它的头文件为<unistd.h>。通过vfork()也可以来创建一个子进程,它的返回值与fork()相同。fork...原创 2018-10-27 10:20:34 · 3829 阅读 · 0 评论 -
Linux环境下强大的文本编辑器---vim
vim的使用基本上vim可以分为3种模式:一般模式、编辑模式、命令行模式。一般模式:用vim打开一个文件就会默认进入一般模式。该模式下可以使用上下左右键移动光标,也可以删除字符或删除整行,也可以复制、粘贴内容。编辑模式:在一般模式下,按“i\I\o\O\a\A\r\R”等任何一个字母之后都可以进入编辑模式,通常进入编辑模式之后,在界面左下方会出现INSERT字样,若想返回一般模式,按下[E...原创 2018-10-08 15:37:56 · 1921 阅读 · 0 评论 -
Ubuntu/CentOS更换国内软件源
ubuntu18.04更换为阿里云软件源●第一步,为了以防万一,备份旧的软件源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak这时,旧的软件源文件已经被备份,/etc/apt/sources.list.bak即为备份文件,当某一天想要恢复原来的软件源时,只需将备份文件恢复,即将文件末尾的.bak抹去。●第二步,更新软件源v...原创 2018-09-27 18:29:46 · 1759 阅读 · 0 评论 -
Linux环境下安装/卸载软件
Ubuntu环境下:使用apt-get工具●什么时apt-get?高级包装工具(Advanced Packaging Tools ,简称APT),是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软 件包,因此简化了 Unix系统上管理软件的过程,apt-get命令一般需要root权限执行,所以一般跟着sudo命令。●软件源...原创 2018-09-27 17:55:23 · 2406 阅读 · 0 评论 -
Linux下的重要目录及其作用
Linux目录配置标准:FHS因为有很多人都在用Linux系统进行开发,如果每个人都按照自己的想法来配置文件放置的目录,那就会造成许多管理上的困扰,所以就有了Filesystem Hierarchy Standard(FHS)标准。根据FHS(http://www.pathname.com/fhs/)的官方文档指出,其主要目的是希望用户可以了解已安装的软件通常放置在哪个目录下,所以它希望独立的...原创 2018-09-24 15:12:00 · 7096 阅读 · 2 评论 -
Linux的文件权限
在Linux系统中,一切皆文件用户、用户组、其他人●文件所有者●Linux是一个多用户,多任务的系统,因此通常会有很多人同时使用一台Linux的主机进行工作,为了保护每一个人的隐私权以及每个人喜欢的工作环境,文件所有者就显得异常重要了。 ●例如你住在一个小区里,你对自己的家拥有所有权,可以任意处置自己家里的东西,而别人要来你的家里做客,就需要经过你的授权。●用户组...原创 2018-09-16 19:43:20 · 383 阅读 · 0 评论 -
关于栈空间的大小
点击此处阅读原文在进程的虚拟地址空间中,栈空间用来为函数开辟栈帧以及存放局部变量,栈空间相对于堆空间是较小的,但是这也不是绝对的,因为栈空间的大小是可以被改变的。Linux查看栈空间大小在Linux环境下,可以通过ulimit -a来查看栈空间的大小:stack size字段即代表栈空间的大小,可以看出Linux环境下默认的栈空间大小为8M。改变栈空间大小使用ulimit -s [...原创 2019-05-21 21:51:51 · 8418 阅读 · 1 评论