linux系统

Ubuntu deb包使用

狂风中的少年 提交于 2020-03-23 07:19:37
deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、Knoppix 等。 以下是一些 Dpkg 的普通用法: 1、dpkg -i <package.deb> 安装一个 Debian 软件包,如你手动下载的文件。 2、dpkg -c <package.deb> 列出 <package.deb> 的内容。 3、dpkg -I <package.deb> 从 <package.deb> 中提取包裹信息。 4、dpkg -r <package> 移除一个已安装的包裹。 5、dpkg -P <package> 完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。 6、dpkg -L <package> 列出 <package> 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。 7、dpkg -s <package> 显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及

NFS性能优化

南楼画角 提交于 2020-03-23 07:10:03
参考: http://www.techrepublic.com/blog/linux-and-open-source/tuning-nfs-for-better-performance/ 1.服务器端查看是否有瓶颈 # nfsstat -rc Client rpc stats: calls retrans authrefrsh 3409166 330 0 retrans过高,说明NFS线程数不足,一般安装缺省设置为8个. centos 下/etc/rc.d/init.d/nfs # Number of servers to be started by default [ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=8 修改后需要重启NFS 2.客户端mount优化 缺省为8KB,,增加到32KB block size rsize=32768,wsize=32768,intr,noatime noatime 这个参数来禁止记录最近一次访问时间戳 linux在每次文件被访问的时候会记录访问时间,查看方法 ls –lu 来源: https://www.cnblogs.com/jjkv3/p/3869599.html

第15 章 : 深入解析 Linux 容器

家住魔仙堡 提交于 2020-03-23 04:47:29
深入解析 Linux 容器 今天的内容主要分成以下三个部分 资源隔离和限制; 容器镜像的构成; 容器引擎的构成; 前两个部分就是资源隔离和限制还有容器镜像的构成,第三部分会以一个业界比较成熟的容器引擎为例去讲解一下容器引擎的构成。 容器 容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。先看一下下面这张图,这张图简单描述了一个容器的启动过程。 最下面是一个磁盘,容器的镜像是存储在磁盘上面的。上层是一个容器引擎,容器引擎可以是 docker,也可以是其它的容器引擎。引擎向下发一个请求,比如说创建容器,然后这时候它就把磁盘上面的容器镜像,运行成在宿主机上的一个进程。 对于容器来说,最重要的是怎么保证这个进程所用到的资源是被隔离和被限制住的,在 Linux 内核上面是由 cgroup 和 namespace 这两个技术来保证的。接下来以 docker 为例,来详细介绍一下资源隔离和容器镜像这两部分内容。 一、资源隔离和限制 namespace namespace 是用来做资源隔离的,在 Linux 内核上有七种 namespace,docker 中用到了前六种。第七种 cgroup namespace 在 docker 本身并没有用到,但是在 runC 实现中实现了 cgroup namespace。 我们先从头看一下: 第一个是 mount

Linux内核学习--内存寻址

大城市里の小女人 提交于 2020-03-23 03:17:26
1.内存寻址的基本流程   首先,一般的书中或者博客中,在介绍Linux内核的时候,首先都会介绍Linux的内存寻址,这样的一块知识和程序的关联在哪里,下面的内容就首先的讨论一下这个问题。   在我们书写程序的时候,我们有的时候会操作地址空间空间,那么我们用到的地址是真实的内存空间地址么,答案是否定的,我们用到的是逻辑地址,在操作系统中,存在着这样的三个地址概念,他们是逻辑地址、线性地址和物理地址。   逻辑地址:包含在机器语言中,用来指定一个操作数或者一条指令的地址。每一个逻辑地址都由一个段和偏移量组成,偏移量指明了他从段开始的地址到实际地址的距离;   线性地址:也称作虚拟地址,是一个32位的无符号整数(32位操作系统),可以表达4GB的地址空间。其地址用十六禁止的数字表示,值得范围从0x00000000到0xffffffff。   物理地址:用于内存单元的寻址,是真正的内存的地址。   三种地址之间的关系如下:      从80286模型开始,Intel的处理器以两种不同的方式进行地址转换,这两种方式分别是实模式和保护模式,下面我们描述的都是保护模式下的地址转换。 2.内存中的分段机制   首先,我们来讨论下CPU的寻址方法:   (1)根据指令的类型来确定应该使用哪一个段寄存器,例如转移指令中的地址在代码段,取数指令中的地址在数据段。   (2)根据段寄存器中的内容

LINUX常用命令(基础)

牧云@^-^@ 提交于 2020-03-23 02:44:07
1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。 2. ls 查看目录或者文件的属性 ,列举出任一目录下面的文件 eg: ls /usr/man ls -l 1) d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link) 2) 表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。 3. cp 拷贝文件 eg: cp filename1 filename2 //把filename1拷贝成filename2 cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c 4. rm 删除文件和目录 eg: rm 1.c //将1.c这个文件删除 5. mv 移走目录或者改文件名 eg: mv filename1 filename2 //将filename1 改名为filename2 mv qib.tgz ../qib.tgz //移到上一级目录 6. cd 改变当前目录 pwd 查看当前所在目录完整路径 eg: pwd //查看当前所在目录路径 cd netseek //进入netseek这个目录 cd //退出当前目录 7. cat,more命令

Linux 多线程通信

耗尽温柔 提交于 2020-03-23 02:40:21
摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,由于线程间能够共享数据结构,也就是一个全局变量能够被两个线程同一时候使用。只是要注意的是线程间须要做好同步,一般用mutex。能够參考一些比較新的UNIX/Linux编程的书,都会提到Posix线程编程,比方《UNIX环境高级编程(第二版)》、《UNIX系统编程》等等。 linux的消息属于IPC,也就是进程间通信,线程用不上。 linux用pthread_kill对线程发信号。 另:windows下不是用post..(你是说PostMessage吗?)进行线程通信的吧? windows用PostThreadMessage进行线程间通信,但实际上极少用这样的方法。还是利用同步多一些 LINUX下的同步和Windows原理都是一样的。只是Linux下的singal中断也非常好用。 用好信号量,共享资源就能够了。 使用多线程的理由之中的一个是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而执行于一个进程中的多个线程,它们彼此之间使用同样的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,并且

Linux五大网络IO模型

爷,独闯天下 提交于 2020-03-22 18:25:08
对于一个应用程序即一个操作系统进程来说,它既有内核空间(与其他进程共享),也有用户空间(进程私有),它们都是处于虚拟地址空间中。 用户进程是无法访问内核空间的,它只能访问用户空间,通过用户空间去内核空间复制数据,然后进行处理 。 1、阻塞io(同步io):   发起请求就一直等待,直到数据返回。好比你去商场试衣间,里面有人,那你就一直在门外等着。(全程阻塞)    2、非阻塞io(同步io):    不管有没有数据都返回,没有就隔一段时间再来请求,如此循环。好比你要喝水,水还没烧开,你就隔段时间去看一下饮水机,直到水烧开为止。 (复制数据时阻塞)      当用户进程发出read操作时,如果kernel(内核空间)中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲 ,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道数据还没有准备好,于是它可以再次发送read操作。一旦kernel中的数据准备好了,并且又再次收到了用户进程的system call,那么它马上就将数据拷贝到了用户内存( 此时占用CPU阻塞 ),然后返回。 3、 多路复用 io(同步io):     I/O是指网络I/O, 多路指多个TCP连接(即socket或者channel),复用指复用一个或几个线程

实验三 Linux系统用户管理及VIM配置

跟風遠走 提交于 2020-03-22 18:10:07
项目 内容 这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求 学号-姓名 16071109-习永基 作业学习目标 1.学习Linux系统用户管理 2.学习vim使用及配置 1. Linux用户管理 问:Linux系统为什么应避免使用root用户登录? 答:因为root权限太大,root登录时,所有程序都有了最高权限,哪里都可以访问以及操作。怕误操作造成损失或者恶意软件窃取用户资料造成损失。 1)如何在与用户有关的三个文件中查看当前用户的信息? cat /etc/passwd |grep xyj #查看用户xyj的关键信息,该文件对所有用户可读,格式为(用户名:是否有密码:用户ID:组ID:注释性描述:家目录:所用shell ) 请简要描述这三个文件? /etc/passwd文件:存储当前系统中用户的信息 /etc/group文件 :存储当前系统中用户组的所有信息 /etc/shadow文件:存储当前系统中用户组的密码信息 2)用id命令查看当前用户相关信息 请简要描述输出结果? uid=1000(xyj) #(xyj)用户id gid=1000(xyj) #(xyj)用户组id 组=1000(xyj),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lapdmin),126(sambashare) #(xyj

linux shell 脚本攻略学习11--mkdir和touch命令详解

旧时模样 提交于 2020-03-22 17:58:48
一、创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amosli@amosli-pc:~/learn/dir$ ls folder 上面的命令中用到了mkdir,即是创建一个目录,非常常用的一个linux 命令。 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 在命令行内输入mkdir --help查看帮助信息. amosli@amosli-pc:~/learn/dir$ mkdir --help Usage: mkdir [OPTION]... DIRECTORY... Create the DIRECTORY(ies), if they do not already exist. Mandatory arguments to long options are mandatory for short options too. -m, --mode=MODE set file mode (as in chmod), not a=rwx - umask -p, --parents no error if existing, make parent directories as

Linux命令:iostat命令

[亡魂溺海] 提交于 2020-03-22 17:55:25
  Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。 1.命令格式:   iostat[参数][时间][次数] 2.命令功能: 通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。 3.命令参数:   -C 显示CPU使用情况   -d 显示磁盘使用情况   -k 以 KB 为单位显示   -m 以 M 为单位显示   -N 显示磁盘阵列(LVM) 信息   -n 显示NFS 使用情况   -p[磁盘] 显示磁盘和分区的情况   -t 显示终端和CPU的信息   -x 显示详细信息   -V 显示版本信息 4.使用实例: 实例1:显示所有设备负载情况 命令:   iostat 输出: [root@CT1186 ~]# iostat Linux 2.6.18-128.el5 (CT1186) 2012年12月28日 avg-cpu: %user %nice %system %iowait