linux系统

Linux中的终端、控制台、tty、pty等概念

喜你入骨 提交于 2020-03-22 04:47:48
参考: http://news.newhua.com/news1/program_language/2010/623/10623141048745773199BCF0CFH6AKB9930IGCFKHBH4IBE65IDFI07F.html?lt=common 基本概念: 1> tty(终端设备的统称 ): tty一词源于 t ele ty pes, 或者teletypewriters ,原来指的是电传打字机,是通过串行线用打印机键盘阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。 终端是一种字符型设备 , 它有多种类型,通常使用tty来简称各种类型的终端设备 。 2> pty(伪终端,虚拟终端 ): 但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) 3>pts/ptmx(pts/ptmx结合使用,进而实现pty): pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。 在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种: 1、 串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal

Linux Shell编程case语句

烂漫一生 提交于 2020-03-22 04:33:42
http://blog.csdn.net/dreamtdp/article/details/8048720 case语句使用于需要进行多重分支的应用情况 格式: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ;; esac case语句结构特点如下: case行尾必须为单词 in 每个模式必须以右括号 ) 结束 双分号 ;; 表示命令序列结束 case语句结构特点如下: 匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。 最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列。 case语句实例:由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符, 并输出相应的提示信息。 #!/bin/bash read -p "press some key ,then press return :" KEY case $KEY in [a-z]|[A-Z]) echo "It's a letter." ;; [0-9]) echo "It's a digit." ;; *) echo "It's function keys、Spacebar or other ksys." esac ################################

Linux安装MongoDB

余生长醉 提交于 2020-03-22 04:24:04
本文基于centos6安装mongod 3 添加repo vim /etc/yum.repos.d/mongodb-org-3.6.repo [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc 安装 sudo yum install -y mongodb-org 开放端口 SELinux 如果安装了 SELinux semanage port -a -t mongod_port_t -p tcp 27017 或者直接关闭 /etc/selinux/config SELINUX=disabled mongodb配置绑定ip 默认绑定端口为本机,可以指定ip,也可以开放所有。下面开放所有 vim /etc/mongod.conf net: port: 27017 bindIp: 0.0.0.0 如果指定ip net: port: 27017 bindIp: 127.0.0.1,192.168.1.100 重启 service mongod

Linux 内核编码风格

为君一笑 提交于 2020-03-22 03:12:05
/*--> */ /*--> */ 序   像其他大型软件一样,Linux制订了一套编码风格,对代码的格式、风格和布局做出了规定。我写这篇的目的也就是希望大家能够从中借鉴,有利于大家提高编程效率。   像Linux内核这样大型软件中,涉及许许多多的开发者,故它的编码风格也很有参考价值。 括号    1、左括号紧跟在语句的最后,与语句在相同的一行。而右括号要另起一行,作为该行的第一个字符。      2、如果接下来的部分是相同语句的一部分,那么右括号就不单独占一行。   3、还有      4、函数采用以下的书写方式:         5、最后不需要一定使用括号的语句可以忽略它:    每行代码的长度   要尽可能地保证代码长度不超过80个字符,如果代码行超过80应该折到下一行。   将参数分行输入,在开头简单地加入两个标准tab:    命名规范   名称中不允许使用混合的大小写字符。 局部变量如果能够清楚地表明它的用途,那么选取idx甚至是i这样的名称都是可行的。而像theLoopIndex这样冗长反复的名字不在接受之列。——匈牙利命名法(在变量名称中加入变量的类别)危害极大。 函数   根据经验函数的代码长度不应该超过两屏, 局部变量不应该超过十个 。 1、一个函数应该功能单一并且实现精准。 2、将一个函数分解成一些更短小的函数的组合不会带来危害。—

Linux open函数

落爺英雄遲暮 提交于 2020-03-22 03:11:50
Linux open函数 open 函数用于打开和创建文件。以下是 open 函数的简单描述 #include <fcntl.h> int open(const char *pathname, int oflag, ... ); 返回值:成功则返回文件描述符,否则返回 -1 对于 open 函数来说,第三个参数(...)仅当创建新文件时才使用,用于指定文件的访问权限位(access permission bits)。pathname 是待打开/创建文件的路径名(如 C:/cpp/a.cpp);oflag 用于指定文件的打开/创建模式,这个参数可由以下常量(定义于 fcntl.h)通过逻辑或构成。 O_RDONLY  只读模式 O_WRONLY  只写模式 O_RDWR  读写模式 打开/创建文件时,至少得使用上述三个常量中的一个。以下常量是选用的: O_APPEND  每次写操作都写入文件的末尾 O_CREAT  如果指定文件不存在,则创建这个文件 O_EXCL  如果要创建的文件已存在,则返回 -1,并且修改 errno 的值 O_TRUNC  如果文件存在,并且以只写/读写方式打开,则清空文件全部内容 O_NOCTTY  如果路径名指向终端设备,不要把这个设备用作控制终端。 O_NONBLOCK  如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I

linux 如何查看服务和端口

你说的曾经没有我的故事 提交于 2020-03-22 03:00:54
问:我该如何发现哪种服务正在某个特定端口上监听呢?我如何发现哪一个程序正在一个特定端口上监听呢?   答:在*NIX系统中,你可以使用下面的任何一个命令来得到在一个特定TCP端口上监听的列表。   Lsof:其功能是列示打开的文件,包括监听端口。   netstat :此命令象征性地展示各种与网络有关的数据和信息的内容。    Lsof命令示例   你可以输入下面的命令来查看IPv4端口:   # lsof -Pnl +M -i4   你可以输入下面的命令来查看IPv6 协议 下的端口列示:   # lsof -Pnl +M -i6    此例输出: 这里我们不妨解释一 下。第一栏是command,它给出了程序名称的有关信息。请注意标题的细节。例如,第二行的gweather* 命令从美国 NWS 服务器 (140.90.128.70)获取天气的报告信息,包括交互天气信息网络和其它的天气服务。在这里,我们解释一下命令各个参数。   1. -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。   2. -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。   3. -l :这个选项约束着用户ID号到登录名的转换

linux下定时执行任务的方法

爱⌒轻易说出口 提交于 2020-03-22 01:28:31
在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出。 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron在3个地方查找配置文件: 1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。 一般一个用户最多只有一个crontab文件。 二、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。 三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。 四、权限 crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在 用法如下: 1、如果两个文件都不存在,则只有root用户才能使用crontab命令。 2、如果cron.allow存在但cron.deny不存在,则只有列在cron

linux就该这么学

懵懂的女人 提交于 2020-03-22 00:55:07
3 月,跳不动了?>>> 《Linux就该这么学》是一本注重于实用性的Linux系统技术自学书籍,自基础篇公布后网站每天日常阅读量已经超过10000多人,25万多名忠实粉丝读者,是目前国内人气增速最快的IT书籍。您可以在本网站内免费在线阅读书籍的全部章节及最新内容,今后的进阶篇也将会一如既往免费、完整的提供给亲爱的读者们在线学习。 与此同时,我们正在全球各地部署书籍的在线学习站点,您只要打开手机、电脑或平板设备就能阅读到书籍,让学习真正的不再受到时间和地点的限制。《Linux就该这么学》书籍中所需的Linux系统镜像及所有相关 配套工具 就在这里,您方便的时候就可以下载啦。不仅如此,我们的 团队成员 还为您收集整理了值得每日一看的“ 新闻资讯 ”和“ 技术干货 ”,作为书籍的扩展资料真的是极好的~当然也欢迎您来加入 QQ技术群 中与诸多小白、大牛们互助学习,共同进步呦!~ 刘遄老师自2015年初起,花费了近三年时间对书籍结构与内容构思、设计培训课程体系与结合红帽RHCE认证内容后, Linux在线培训班 终于正式开班啦!~我们通过借助网络培训的独有优势,以超高的性价比面向所有0基础的技术爱好者开班授课。培训课程全部由刘遄老师亲自讲解,通过2个月充实的培训课程带领您入门运维行业,并会据当期学员的实际情况进行灵活调整及安排讲课进度。 培训课程从最基础的安装Linux系统开始讲起

浅谈Linux操作系统

≯℡__Kan透↙ 提交于 2020-03-21 22:33:46
  伴随着计算机的迅速发展,操作系统作为连接机器与人的桥梁,其崛起的必然性不言而喻。发展至今,典型的操作系统由很多,如DOS类、Windows类、Linux类、Mac OS类等等。不同的操作系统有其各自的特点,今天我就简要认识一下Linux操作系统的基本情况。   Linux是一种新型的操作系统,它的最大的特点就是源代码开放,可以免费得到许多应用程序。是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。   Linux操作系统诞生于1991 年的10 月5 日,是由一位名叫Linus Torvalds的计算机业余爱好者发布的,以惊异的速度迅速在服务器和桌面系统中获得成功,已经被业界认为是未来最有前途的操作系统之一。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。如Ubuntu(乌班图)、CentOS(社区企业操作系统)、Red Hat(红帽)操作系统等。    Ubuntu   Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观

基于 debootstrap 和 busybox 构建 mini ubuntu

无人久伴 提交于 2020-03-21 22:33:02
基于 debootstrap 和 busybox 构建 mini ubuntu 最近的工作涉及到服务器自动安装和网络部署操作系统,然后使用 ansible 和 saltsatck 进行配置并安装 openstack 。 难点在于服务器的自动安装,由于不单只是通过 PXE 安装服务器,还需要能够安装时进行分区、配置网卡等工作,因此需要在开始安装前,必须先收集服务器的硬件信息。 调研了一下目前的开源项目中,提供此类功能的有 tinycorelinux 、 puppet razor-el-mk 可做类似的工作。tinycorelinux 是个很好的工具,整个系统在 PXE 之后在内存中执行,可在里面加上简单的 agent 完成任务报告的工作;razor 是 puppet 绑定在一起用的,el-mk 基于 centos ,它在里面装了 razor 的 agent,使用 facter 进行硬件信息收集。 这些方案的基本思路都是相通的,首先通过 PXE 下载 microkernel ,然后直接在内存中执行,启动网卡,运行 agent 并向服务器汇报信息,并接收来自服务器的命令。基本的技术原理都是 PXE + linux initramfs ,根据不同的需要向 initramfs 中加硬件驱动。 仔细研究了一下之后,发现用 debootstrap + busybox 工具做这样的小系统会更加简单