linux笔记
- 格式:doc
- 大小:97.31 KB
- 文档页数:18
linux笔记全(⽆图版)1、ls 查看当前⽬录下的所有内容⿊⾊的是⽂件,蓝⾊的是⽂件夹,也就是⽬录2、rm -f anaconda-ks. cfg 彻底删除⽂件(如不确定,则需要先保存备份,也就是快照)3、ifconfig 查看⽹卡的配置信息(ip地址等)4、ifconfig ens33 192.168.18. 201 /24(⽹络地址/⼦⽹掩码)更改ip地址5、systemctl restart network 重启⽹络服务6、桥接模式,直接可以进⾏通信(同⼀⽹段,配置ip)7、能不能通信的2个条件:在同⼀个物理⽹络内,ip地址也在同⼀⽹段内8、仅主机模式,虚拟机和物理机不能进⾏通信,相当于虚拟机和物理机进⾏了隔离与笔记本(真机)通信截图9、NAT模式,⾃动分配⽹络地址和⽹关,以及dns,可以直接上⽹可以访问互联⽹内的主机,但互联⽹内的主机不能访问本机(max特点)10、route -n 查看⽹关11、cat /etc/resolv. conf 查看dns(注意cat后⾯有⼀个空格,空格不可少)12、验证nat模式可以直接上⽹13、shell:通常指linux的字符界⾯,图形界⾯和字符界⾯都属于shell,但图形界⾯的shell常称为gui,字符界⾯的shell常称为cli14、cat /etc/shells 查看⽂件内容(linux⾥⾯提供的所有的shell)15、linux默认使⽤的shell是bash的shell16、echo $SHELL 查看当前使⽤的shell17、shell默认指的是bash,它的应⽤是最⼴泛的18、linux是彻底的多⽤户多任务,它可以直接多个⽤户同时进⾏操作19、ctrl+alt+f2-f6 对应5个shell ctrl+alt+f1 开始图形界⾯shell 作⽤:如何开始shell(也就是如何打开命令界⾯)20、虚拟终端的缩写为tty, 在字符界⾯下执⾏“tty"命令就可以显⽰⽤户⽬前所在的终端编号(终端名称)。
Linux 性能调优1.Profiling几种工具profiling 包括几种:cpu profiling,即提到的性能分析。
memory profiling,即分析程序性能。
network profiling,即网络流量的分析。
另外,profiling又分两种:1, sampling。
即采样方式。
2, instruments,即插装代码技术。
(包含: 编译期间,链接期间,运行期间)。
oprofile ---- 属于sampling 方式,即不影响程序行为,也不需要重启程序,它是对cpu进行采样分析。
gprof ---- 属于插装技术,需在编译期间增加-pg 选项,属于GNU 部分,不需安装,随着gcc附带。
valgrind--- 属于插装技术,需要在运行期间增加valgrind选项。
(其中massif工具用于内存分析,callgrind用于性能分析)google-perftools ---- 属于插装技术,需要在链接期间增加-L/usr/lib -lprofiler 选项。
2.gprof 分析linux程序性能瓶颈gcc -pg -o test test.ctest运行的时候会把搜集的信息保存在gmoun.out中fedora 不能使用-lc_p选项的问题一般gprof只能查看用户函数信息。
如果想查看库函数的信息,需要在编译是再加入“-lc_p”编译参数代替“-lc”编译参数,这样程序会链接libc_p.a库,才可以产生库函数的profiling信息。
需要安装glibc-profile,下载地址http://ftp.riken.jp/Linux/fedora/core/updates/2/i386/glibc-profile-2.3.3-27.1.i386.rp。
gprof hello gmon.out -p 得到每个函数占用的执行时间gprof hello gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。
linux操作系统课程学习笔记,我的Linux学习笔记·Linux操作系统基础今天的笔记主要是关于Linux操作系统根底的相关学问。
那就从我⾯前的电脑开端讲起。
计算机和操作系统计算机主要包括五个部分:运算器,控制器,存储器,输⼊设备和输出设备。
通常,运算器,控制器再加上其他⼀些部件如寄存器等构成了我们通常所说的CPU(central processing unit),存储器则主要是内存。
运算器,控制器和存储器可以实现数据的处理.但是数据从何⽽来,运算之后的结果去往哪⾥?这就需要输⼊设备和输出设备(I/O设备)。
我们通常⽤到的输⼊设备包括键盘⿏标等,输出设备为屏幕,打印机等。
值得⼀提的是,计算机中有个叫做硬盘的东西,它并不是存储器,⽽是⼀个I/O设备。
在将数据读取到内存时,它是⼀个输⼊设备;⽽将结果保存到磁盘时,它就变成了⼀个输出设备。
这么多设备整合在⼀起,就成了⼀台计算机。
它可以接收我们的指令(键盘⿏标),通过运算(CPU),把结果展⽰给我们(屏幕,硬盘等)。
但是这么多硬件是如何协调作⽤,共同完成⼀个任务⽽不会我⾏我素地乱来呢?我们需要⼀个东西,它可以控制硬件有序地⼯作,各⾃执⾏⾃⼰的任务,这个东西就是操作系统(Operating System)。
操作系统是⼀个特殊的软件,它的任务就是硬件管理—控制CPU的运算,控制内存的分配,控制计算机的⼏乎⼀切。
假如⼀台电脑没有操作系统,它可能只是⼀个艺术品,或者⼀堆废铁。
⼀个完整的操作系统包括内核和⼀些辅助软件。
内核的主要任务就是进⾏硬件管理,它是⼀个操作系统最基础最底层的东西。
内核若想很好地控制硬件并使其发挥相应的功能,需要和硬件相识相知相爱,他俩可以成为完美的⼀对,全都仰仗于驱动的帮忙。
驱动是硬件的灵魂,它向操作系统提供了访问和使⽤硬件的接⼝,以便在某项任务中最⾼效地调⽤硬件。
什么是LinuxLinux就是⼀个操作系统,它可以管理整个计算机硬件,并且可以接收我们的指令,来指挥硬件完成相应的任务,并把结果反馈给我们。
鸟哥的linux私房菜(基础篇)学习笔记鸟哥的linux私房菜(基础篇)是一本非常好的Linux入门教材,它全面介绍了Linux 的基础知识,包括Linux的安装、文件系统、用户管理、进程管理、磁盘管理、文件编辑器、Shell编程以及Linux网络等方面。
本文将简单介绍一些我学习这本书时的笔记和心得,以期为Linux新手提供一些帮助。
1. 操作系统和内核操作系统是由内核和外壳组成的,内核是操作系统最基础的组成部分,它负责处理硬件和软件的交互,包括驱动程序、内存管理、进程管理和文件系统等。
而外壳则是用户和操作系统进行交互的界面,我们可以通过命令行或者图形化界面与系统进行交互。
2.文件系统在Linux系统中,所有资料都以文件的形式保存在文件系统中,文件系统采用树形结构。
在Linux中,根目录是"/",其他目录都是在根目录下面的子目录。
我们可以使用ls 命令来查看文件目录和文件,也可以使用cd命令来进入和退出目录,另外,文件名是区分大小写的。
3.用户管理在Linux中,每个用户都有自己的ID号、用户名和密码。
通过用户管理,我们可以添加、删除或修改用户,另外,我们可以通过权限控制来限制普通用户访问系统的某些文件或命令,使系统更安全。
4.进程管理在Linux中,每个程序都是一个进程,我们可以使用ps命令查看系统中运行的进程,也可以使用kill命令来终止特定的进程。
另外,我们可以使用top命令来查看系统中当前占用CPU资源最多的进程,以便优化系统性能。
5.磁盘管理Linux系统中的磁盘分为硬盘和分区,我们可以使用fdisk命令来分区,也可以使用mkfs命令来格式化分区,以便在系统中进行挂载。
另外,我们可以使用df命令来查看文件系统的使用情况,以便合理管理磁盘空间。
6.文件编辑器在Linux中,有很多种文件编辑器,如vi、vim、nano等。
其中,vi是最常用的编辑器,而vim是vi的增强版,它提供了更多的功能和快捷键。
目录第一章 LINUX简介及安装 (2)一、LINUX介绍 (2)二、LINUX安装 (2)三、LINUX目录 (2)四、总结来说: (4)第二章常用命令及帐户管理 (4)一、linux命令格式 (4)二、常用命令 (4)三、用户管理命令 (5)使用技巧: (7)第三章 vi 编辑器 (8)一、Linux 系统中的编辑器知识 (8)二、vi 的模式 (8)三、命令: (8)第四章 SHELL的使用 (8)一:Shell的环境 (8)二、Bash的主要功能 (9)三、Shell变量 (9)第五章、应用程序安装与管理 (11)一、Linux应用程序组成 (11)二、RPM(Redhat Package Manager)包管理 (11)三、应用程序的编译安装 (11)第六章Linux系统管理 (12)一、启动过程: (12)二、运行级别: (12)三、系统服务的启动状态: (13)四、磁盘空间配额: (14)五、压缩命令: (14)第7章Linux基本网络配置 (15)第八章 NFS文件系统: (15)一、NFS的概述和安装 (15)二、NFS服务器的配置 (16)三、图形界面的NFS服务器配置工具: (16)第一章 LINUX简介及安装一、LINUX介绍1Linux:Linux是由芬兰大学的Linus Torvalds 李納斯发起创建的开源软件项目。
2版本号xx.yy.zz :①.xx表为主版本号,yy为次版本号,zz为修订的版本号。
②.次版本号中,单数代表测试版,双数代表正式发行版3开源软件:①源代码开放。
②GPL协议:主要是以源代码形式发布,任何人都可以得到源代码,但是不提供任何的担保,不限制商业性质的发行和包装。
③LGPL许可协议:允许在使用者自己的应用程序中使用程序库,即使不公开自己的源代码。
二、LINUX安装1RHEL4是由RED HAT公司发布的2Linux硬盘概念:①可以分为主分区、扩展分区、逻辑分区。
【Linux】学习笔记:(⼆)⽤户和组群账户管理⽬录前⾔在Linux系统中,⽤户账户是登录系统的唯⼀凭证,其中root⽤户是系统的最⾼管理者,该⽤户的UID是0,与⽤户和组群账户相关的配置⽂件有/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow。
⼀、⽤户账户简介1、⽤户账户分类root⽤户root⽤户UID为0。
root⽤户的权限是最⾼的,普通⽤户⽆法执⾏的操作,root⽤户都能完成,所以也称之为超级⽤户系统⽤户系统⽤户的UID为1~999这类⽤户不具有登录Linux的能⼒,但却是系统运⾏不可缺少的⽤户。
普通⽤户系统⽤户的UID为1000~60000在Linux系统上进⾏普通操作,其使⽤系统的权限受限制。
2、 /etc/passwd⽂件假设以账户zhangsan登录系统时,系统⾸先会检查/etc/passwd⽂件,存在zhangsan账户,然后确定⽤户zhangsan的UID,通过UID确认⽤户⾝份,如果存在,则读取/etc/shadow⽂件中对应的密码,核实⽆误,则登录系统,读取⽤户的配置⽂件[root@centos83 home]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin..............(省略)..........sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinrngd:x:994:991:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologinzhangsan:x:1000:1000::/home/zhangsan:/bin/bash字段字段含义⽤户名在系统中⽤户名应该具有唯⼀性密码存放加密⽤户的密码,看到的是⼀个x,其实密码已经被映射到/etc/shadow⽂件中⽤户标识号(UID)每个⽤户的UID都是唯⼀的,root⽤户的UID是0,普通⽤户的UID默认从1000开始组群标识号(GID)在系统内⽤⼀个整数标识⽤户所属的主要组群ID号,每个组群ID都是唯⼀的⽤户名全称⽤户名描述,可以不设置主⽬录⽤户登录系统后⾸先进⼊的⽬录登录shell⽤户使⽤的Shell类型,Linux系统默认使⽤的Shell是/bin/bash2、 /etc/shadow⽂件/etc/shadow⽂件内容包括⽤户及被加密的密码以及其他/ect/passwd不能包括的信息,⽐如账户有效期等/etc/shadow⽂件只有root⽤户可以读取和操作,确保系统安全[root@centos83 home]# cat /etc/shadowroot:$6$Uq9EeN5GfNDLF83M$csUva0exzO/n3PIvhKv5D1Xs3Ga06G2whjfagtEtJUW1wlQbREEd6HkOjTRCTqGuZCXvg2WQ1wdyzqY.qfAzE1::0: 99999:7:::bin:*:18397:0:99999:7:::..............(省略)..........sshd:!!:18625::::::rngd:!!:18625::::::zhangsan:$6$HMTy.raoMPbhboQn$71FPRHyRycVf3AcenfNW1n7/qD7ep.x5vSeBSSxzJdWmvjoQ98oDhfA8Kz/6PlOgKe/ksj58AXeWBPOGAm/dl1 :18625:0:99999:7:::字段字段含义⼆、 ⽤户账户设置1、useradd :创建⽤户创建⽤户useradd moon创建⽤户并设置UID 为1010useradd -u 1010 moon创建⽤户并设置⽤户所属群组为rootuseradd -g root moon创建系统⽤户mysql 并设置所属组群useradd -r -g mysql mysql2、 usermod :修改⽤户账户修改⽤户pp 的登录名为moonusermod -l moon pp修改⽤户moon 账户过期时间为2028年11⽉23⽇usermod -e 11/23/2028 moon修改⽤户moon 的主⽬录到/home/oopp ,并⾃动创建⽬录usermod -d /home/oopp -m moon ⽤户名这⾥的⽤户名和/etc/passwd 中的相同加密密码密码已经加密,如果由⽤户显⽰"!!",则表⽰这个⽤户还没有设置密码,⽆法登录到系统⽤户最后⼀次更改密码的⽇期从1970年1⽉1⽇算起到最后⼀次修改密码的时间间隔天数密码允许更换前的天数如果设置为0,则禁⽤此功能。
Linux学习笔记⼀(⽂件和⽬录操作)1.基本shell操作命令解析器--根据命令的名字,调⽤对应的可执⾏程序shell--unix操作系统bash--Linux操作系统(⽂件系统)Linux⽂件系统的存储单元是块在磁盘上存储的时候每个⽂件都有⼀个inode--i节点,保存了⼀些⽂件信息,通过iNode找到对应的⽂件a.快捷键b.虚拟终端history--查询命令的历史记录ctrl+p == 向上的箭头,查询上⼀个命令ctrl+n == 向下的箭头,查询下⼀个命令ctrl+b 向左移动backctrl+f 向右移动forwardctrl+a 移动到⾏⾸ctrl+e 移动到⾏尾ctrl+h 刪除光标前⾯的字符ctrl+d 刪除光标覆盖的字符ctrl+u 刪除光标前⾯的所有字符ctrl+k 删除光标位置到⾏尾的字符ctrl+l或者clear命令清理屏幕c.命令和路径补齐tab智能提⽰键,按⼀次没反应说明有很多符合条件的命令,再按⼀次出现符合条件的命令列表cd ⽬录 + 连续两次tab,显⽰⽬录下⼀级的所有路径d.centos7防⽕墙操作systemctl start firewalld.service 启动systemctl enable firewalld.service 开机启动systemctl stop firewalld.service 停⽌systemctl disable firewalld.service 禁⽌开机启动systemctl status firewalld.service 查看状态firewall-cmd --state 查看状态2.Linux系统⽬录结构ls 路径(查询当前路径下的所有⽂件)/根⽬录下的⽬录说明:/bin bin是binary的缩写,这个⽬录存放着经常使⽤的命令可执⾏程序/boot 存放的是启动Linux时的⼀些核⼼⽂件,包括⼀些连接⽂件以及镜像⽂件(开机启动项)/dev 是Device(设备)的缩写,该⽬录存放的是Linux的外部设备,在Linux中访问设备的⽅式和访问⽂件的⽅式是相同的(Linux奉⾏⼀切皆⽂件,它会把所有硬件外设抽象成设备⽂件存到dev⽬录之下,⽐如⿏标键盘)/etc ⽤来存放所有系统管理所需要的配置⽂件和⼦⽬录/home ⽤户的主⽬录,在Linux中,每个⽤户都有⼀个⾃⼰的⽬录,⼀般该⽬录名是以⽤户的账号命名。
重启命令立刻重启(root用户使用)rebootshutdown -r nowinit 610分钟后自动重启(root用户使用)shutdown -r 10在时间为20:35时候重启(root用户使用)shutdown -r 20:35如果是通过shutdown命令设置重启的话,可以取消重启shutdown -c关机命令立刻关机(root用户使用)haltpoweroffshutdown -h nowinit 010分钟后自动关机shutdown -h 10hostname命令查看主机名hostname设置主机名临时修改hostname 主机名永久修改vi /etc/hostname网络服务查看IP信息ip a网络连通性测试ping [选项] 目标主机设置网络信息vi /etc/sysconfig/network-scripts/ifcfg-ens32重启network网络服务service network restart防火墙设置查看防火墙状态systemctl status firewalld关闭防火墙systemctl start firewalld禁止开机启动systemctl disable firewalld主机映射文件修改主机名与IP映射关系vi /etc/hosts目录操作命令查看工作目录(Print Working Directory)pwd切换工作目录(Change Directory)cd [目录位置]列表(List)显示目录内容ls [选项]... [目录或文件名]常用命令选项-l :详细信息显示-a:显示所有子目录和文件的信息,包括隐藏文件-A:类似于“-a”,但不显示“.”和“…”目录的信息-R:递归显示内容创建新的目录(Make Directory)mkdir [-p] [/路径/]目录名统计目录及文件的空间占用情况(estimate file space usage)du [选项]... [目录或文件名]常用命令选项-a:统计时包括所有的文件,而不仅仅只统计目录-h:以更易读的字节单位(K、M等)显示信息-s:只统计每个参数所占用空间总的大小文件操作命令新建空文件,或更新文件时间标记touch 文件名查看文件类型file 文件名复制(copy)文件或目录cp [选项] 源文件或目录… 目标文件或目录常用命令选项-r:递归复制整个目录树-p:保持源文件的属性不变-f:强制覆盖目标同名文件或目录-i:需要覆盖文件或目录时进行提醒删除(Remove)文件或目录rm [选项] 文件或目录常用命令选项-f:强行删除文件,不进行提醒-i:删除文件时提醒用户确认-r:递归删除整个目录树移动(Move)文件或目录mv [选项]... 源文件或目录… 目标文件或目录如果目标位置与源位置相同,则相当于改名显示系统命令所在目录which <选项> command(命令名称)常用命令选项-a:将所有由PATH路径中可以找到的指令均列出,而不止第一个被找到的指令名称文件内容操作命令显示出文件的全部内容cat全屏方式分页显示文件内容more交互操作方法按Enter键向下逐行滚动按空格键向下翻一屏、按b键向上翻一屏按q键退出与more命令相同less查看文件开头的一部分内容(默认为10行)head -n 文件名查看文件结尾的少部分内容(默认为10行)tail -n 文件名统计文件中的单词数量(Word Count)等信息wc [选项] 目标文件常用命令选项-l:统计行数-w:统计单词个数-c:统计字节数查找文件里符合条件的字符串grep [选项] <关键字> <文件…>常用选项-c:计算匹配关键字的行数-i:忽略字符大小写的差别-n:显示匹配的行及其行号-s:不显示不存在或不匹配文本的错误信息-h: 查询多个文件时不显示文件名-l:查询文件时只显示匹配字符所在的文件名–color=auto:将找到的关键字部分加上颜色显示压缩命令压缩(解压)文件或目录,压缩文件后缀为gzgzip [选项] 压缩(解压缩)的文件名常用选项-d将压缩文件解压(decompress)-l显示压缩文件的大小,未压缩文件的大小,压缩比(list)-v显示文件名和压缩比(verbose)-num用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。
OCP_linux笔记1、查看防⽕墙状态查看、iptables -L操作、setup2、查看selinux状态查看、getenforce(enforcing强制 permissive被动)操作、setenforce 0 设置为被动setenforce 1 设置为强制3、排除相同的IP查看、arping+⾃⾝IP地址根据反馈MAC地址判断4、查看本机计算机名查看、hostname5、查看本机DNS查看、cat /etc/resolv.conf第⼆天1、分析linux操作系统的⽬录结构倒树形(1、⽅便管理,2、架构层次分明。
)重要⽬录(蓝⾊:⽬录,绿⾊:可执⾏⽂件、淡蓝⾊:连接⽂件、黄⾊:设备⽂件、红⾊:安装包、粉⾊:接⼝⽂件)/bin:命令,常⽤的可执⾏的⼆进制⽂件/etc:系统配置相关的⽂件/media与/mnt:与挂载相关的⽂件/opt:存放第三⽅⼯具的/selinux:增强linux⽂件/boot:内核及引导⽂件/home:⽤户相关的⽂件/usr:⽤户管理相关的⽂件/lib:库⽂件、硬件驱动/root:管理员的宿主⽬录/var:操作系统中经常变化的⽂件(⽇志、)/dev:操作系统中的设备⽂件信息/sbin:管理员使⽤的配置⽂件/tmp:临时⽬录命令(内部命令:发出命令直接提交,外部命令:需要调⽤其他程序提交的)cd(改变⽬录)绝对路径:参照物为根⽬录相对路径:参照物为当前⽬录cd ..:返回上级⽬录cd .:当前⽬录cd和cd~:返回家⽬录ls(列出当前⽬录)ls -l:以长格式显⽰当前⽬录ls -a:显⽰当前⽬录所有⽂件ls -dl:以长格式查看⽬录信息file(查看⽂件属性)mv(1.移动⽂件和⽬录、2.⽂件及⽬录重命名)cp(复制1.⽂件、2.⽬录:-r递归复制,-a权限复制,-p)rm(删除1.⽂件、2.⽬录:-r递归删除,-f强制删除)rmdir(只⽤来删空⽬录)查看⽂件的命令cat(查看⽂本⽂件,-n加⾏标,-s合并连续的空⽩⾏)tail(取⽂件尾⼗⾏的内容,-f动态监控)head(取⽂件前⼗⾏的内容)more和less(分屏显⽰长⽂件)stringes(查看⼆进制⽂件)vim()wc(统计⽂件的⾏数和字数)chmod(改权限)chown(改所有者)chgrp(改所属组)chattrgetfaclsetfacl2、分析linux操作系统的常⽤⽂件管理3、分析linux磁盘与内存第三天1、查看硬盘命令:fdisk -l2、硬盘计算容量公式:磁头X扇区X柱⾯X512=容量3、查看磁盘已挂载信息 cat /etc/fstab4、列出挂载信息 mount -l5、查看硬盘使⽤情况命令:df6、关于硬盘分区的命令分区 fdisk /dev/sdx格式化 mkfs -t ext3 -b 4096 -i 8192 /dev/sdxx 为ext3格式指定快⼤⼩为4096 每两个块⼀个节点查看分区⽂件格式信息 tune2fs -l /dev/sdxxx7、卸下挂载点:umount /mnt8、熟悉linux的运⾏级别(0-6)查看运⾏级别⽂件 cat /etc/inittab查看当前运⾏级别 ranlevel改变运⾏级别 init (0-6)0是关机 1是单⽤户模式 3是命令⾏模式 5是图形界⾯模式 6是重启9、挂载配额:mount -o remount,rw,usrquota /home/10、开启磁盘配合 quotaon开启磁盘配额11、修改挂载信息修改vim /etc/fstab12、检查磁盘配额 qutacheck -auvc13、edquota -u ⽤户14、权限 setfacl -m u:⽤户,rwx /mnt/sdb1 /home15、qoutaon /mnt/sdb1 /home第四天1、进程管理1.明⽩进程的启动操作系统的启动①通电⾃检(BIOS)②启动⽅式(光盘、硬盘、⽹络)③硬盘(1.查找零磁道2查找MBR记录3.查找引导程序gurb)④grub启动(1.加载内核到内存2.把内核解压3.启动内核的的OS主要包含⼀些基础设备的驱动4.启动init5查找/etc/inittab查看运⾏级别,启动进程)⑤加载⽤户信息(.bashrc、.bash_prfile、rcload)⑥⽤户登录(/etc/passwd /etc/shadow)2.查看进程的⽅式①OS⾃带的⼯具(top查看进程、ps-ef、ps-aux查看进程、kill -9 PID杀死⼀个进程、进程+& 将进程调⼊后台、jobs查看后台进程、fg+后台进程编号调回后台进程 ctrl+z 挂起进程)②第三⽅软件3.故障①判断(1.OS和第三⽅⼯具2.端⼝vim /etc/service查看端⼝协议)netstat -ntl查看端⼝信息。
Linux学习笔记系列(1)据说linux很厉害;⼀、 Linux的发展史。
了解⼀个东西,⾸先就要了解他的历史,emmmm,了解,就是不⽤记得,所以,我也只是知道个⼤概,于是乎,我去别⼈的博客复制⼀下他的历史来这⾥放着。
UnixUnix操作系统是⼀个强⼤的多⽤户、多任务操作系统,⽀持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。
⽬前它的商标权由国际开放标准组织所拥有,只有符合单⼀Unix规范的Unix系统才能使⽤Unix这个名称,否则只能称为类Unix(Unix-like)。
GNUGNU是⾃由软件之⽗Richard Stallman在1984年组织开发的⼀个完全基于⾃由软件的软件体系,与此相应的有⼀分通⽤公共许可证(General Public License,简称GPL)。
Linux以及与他有关的⼤量软件是在GPL的推动下开发和发布的。
⾃由软件之⽗ - Richard Stallman 像⼀个神态庄严的传教⼠⼀样喋喋不休地到处传播⾃由软件的福⾳,阐述他创⽴GNU的梦想:“⾃由的思想,⽽不是免费的午餐”。
这位⾃由软件的“顶级神甫”为⾃⼰的梦想付出了⼤半⽣的努⼒,他不但⾃⼰创作了许多⾃由软件,如:GCC、和GDB,在他的倡导下,⽬前⼈们熟悉的⼀些软件如BIND、Perl、Apache、TCP/IP等都成了⾃由软件的经典之作。
如果说Richard Stallman创⽴并推动了⾃由软件的发展,那么,Linus Torvalds毫不犹豫奉献给GNU的Linux,则把⾃由软件的发展带⼊到⼀个全新的境界。
BSD386BSD因为法律问题直到1992年还不能发布,NetBSD和FreeBSD是386BSD的后裔,⽐Linux早。
Linus Torvalds说,当时如果有⾃由的基于386的Unix-like操作系统,他就可能不会创造Linux。
Linux笔记(狂神说)笔记关注狂神公众号1、概述及环境搭建1.11)我们为什么要学习LinuxLinux诞⽣了这么多年,以前还喊着如何能取代windows系统,现在这个⼝号已经⼩多了,任何事物发展都有其局限性都有其天花板。
就如同在国内再搞⼀个社交软件取代腾讯⼀样,想想⽽已基本不可能,因为⽤户已经习惯于使⽤微信交流,不是说技术上实现不了解⽽是⽼百姓已经习惯了,想让他们不⽤,即使他们⾃⼰不⽤亲戚朋友还是要⽤,没有办法的事情。
⽤习惯了windows操作系统,再让⼤家切换到别的操作系统基本上是不可能的事情,改变⼀个⼈已经养成的习惯太难。
没有办法深⼊到普通⽼百姓的⽣活中,并不意味着Linux就没有⽤武之地了。
在服务器端,在开发领域Linux倒是越来越受欢迎,很多程序员都觉得不懂点Linux 都觉得不好意思,Linux在开源社区的地位依然岿然不动。
尤其是作为⼀个后端程序员,是必须要掌握Linux的,因为这都成为了你找⼯作的基础门槛了,所以不得不学习!2)Linux 简介Linux 内核最初只是由芬兰⼈林纳斯·托⽡兹(Linus Torvalds)在赫尔⾟基⼤学上学时出于个⼈爱好⽽编写的。
Linux 是⼀套免费使⽤和⾃由传播的类 Unix 操作系统,是⼀个基于 POSIX(可移植操作系统接⼝)和 UNIX 的多⽤户、多任务、⽀持多线程和多 CPU 的操作系统。
Linux 能运⾏主要的 UNIX ⼯具软件、应⽤程序和⽹络协议。
它⽀持 32 位和 64 位硬件。
Linux 继承了 Unix 以⽹络为核⼼的设计思想,是⼀个性能稳定的多⽤户⽹络操作系统。
3)Linux 发⾏版Linux 的发⾏版说简单点就是将 Linux 内核与应⽤软件做⼀个打包。
⽬前市⾯上较知名的发⾏版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
韩顺平LINUX系统笔记第0天开山篇1、linux是一个开源免费的操作系统。
2、学习linux的流程:(1)linux平台上的开发和linux基本操作(2)加强C语言功底:《C专家编程》或者Java语言(3)学习unix环境高级编程(4)Linux应用系统开发/linux嵌入式开发3、书籍推荐:鸟哥的linux私房菜、linux入门到精通、linux内核完全剖析4、学习方法推荐:(1)高效而愉快的学习(2)先建立一个整体框架,然后细节学习(3)用到什么再学什么(4)计算机是做了、练了才会(5)适当的跳过(6)学习linux系统是在琢磨别人怎么做,而不是我认为怎么做第一天1、linux的特点:(1)linux系统时免费开源的(2)linux支持多线程,多用户(3)安全性优良(4)内存和文件管理性能优越2、Linux用户:root(相当于windows的administrator),建议使用普通用户登录,通过su–root切换为身份为管理员3、startx:启动图形用户界面,ctrl+alt+break:切换到控制台环境下4、shutdown now:立即关机shutdown–r now和reboot:立即重启计算机5、注销:logout6、熟悉vi编辑器:vi相当于windows的记事本7、在linux下进行简单的java开发:(1)vi hello.java//创建一个hello.java的文件(2)按"i"进入insert状态,进行文档编辑//编辑一个java文档(3)按"Esc"键退出编辑状态,转换为命令行模式(4)按shift输入冒号,在输入"wq"保存退出,若不保存退出则输入:q!(5)编译java文件:javac hello.java(6)运行java文件:java hello8、ls:列举当前文件夹,参数-l:显示当前目录的详细信息9、ccp程序的编译:编辑过程同上面的java程序,下面只记录编译和运行方式:(1)编译:gcc hello.cpp(2)运行:./a.out//默认编译出的文件为a.out(3)编译时更名:gcc–o hello.out hello.c,编译后的名字变为:hello.out10、set nu:在文件中每行行首加入行号set nonu:取消行号输入数字:直接输入数字,按"Esc"键,将光标移至该行行首/字符串:查找特定字,按"n"继续查找?字符串:查找特定字,按"n"继续查找11、linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录,详细结构图解:12、linux显示当前路径:pwd13、用户管理:(1)添加用户:只有root用户或者拥有root权限的用户才能创建useradd用户名passwd用户名(2)删除用户:只有root用户或者拥有root权限的用户才能删掉userdel用户名(保留用户相关的文件)userdel–r用户名(删除用户及其相关的文件)14、Linux运行级别:init[0,1,2,3,4,5,6]注释:(1)0:关机(2)1:单用户(3)2:没有网络服务的多用户状态(4)3:有网络服务的多用户状态(5)4:系统未使用保留给用户(6)5:图形界面(7)6:系统重启常用级别为3和5,修改运行级别:vi/etc/inittab,修改id:5:inittabdefault中的数字,即可修改运行等级。
第三章安装软件3.1 RPMRPM(RedHat Package Manager):RPM软件包管理器是一种用于Internet下载包的打包及安装工具,为二进制已编译文件,与之对应的开源代码的格式为SRPM。
RPM命令中,长命令格式--query与缩写命令格式-q相对应。
下面是简单的命令说明:命令行选项--install 安装一个软件包--upgrade 升级或将当前已安装软件更新到最新版本--erase 移出或删除一个已安装软件包--query 查询软件信息--force 强制进行安装。
-h 使用符号“#”指示安装进度,与-v参数同时显示效果更好。
--percent 显示已完成百分比进度。
-nodeps 不进行依赖关系检查--test 测试安装是否能成功完成。
-V 检验系统中的RPM包或文件。
-v(/--verbose,详细的) 通知RPM报告每一步操作的详细信息。
例:rpm -qi bash,显示bash包详细信息rpm -ql bash,列出bash包包含的所有文件rpm -qc bash,列出bash包中配置文件rpm -q --qf “[%{INSTALLTIME:date}% \n]” bash,查找bash包安装至系统中的时间使用RPM安装软件包1)# mount /media/cdrom,插入Fedora光盘,将在CDReadOnlyMeida中的文件挂载至/media/cdrom/中;2)# cd /media/cdrom/Fedora/RPMS/,并#ls joe*确定文件是否在其目录下;3)# rpm –install –verbose –hash –test joe*,测试软件依赖关系;4)# rpm –ivh joe*,安装软件;5)# rpm –q joe,查询命令以确认应用安装至系统中。
删除RPM软件包# rpm –e –vvv joe,删除joe软件包并显示详细信息。
切换X Window与命令行模式:linux login :rootTab 按键具有命令补全与文件补全在线帮助:man page /info page[root@linux^]LANG="man"[root@linuxx]#man dataDATA(1)以root的身份封入Linux之后输入“ls-al”-rwx rwx文件拥有者与文件所属用户组对文件的权利。
linu的发展主要分为哪两种核心版本、文件属性-rwxrwxrwx表示这个文件的意义是什么?要将一个文件的属性改为-rwxr-xr--采用什么命令?若需要更改一个文件的拥有者与用户组,该用什么命令?linux传统的文件系统是什么?常用的文件登陆格式是那些?文件和目录管理:cd切换目录dmtsai 用户的家目录是/home/dmtsai,root家目录是/root,假设一root身份在linux 系统中,这儿个特殊目录的意义是:[root@linux~]# cd【相对路径或绝对路径】[root@linux~]#cd ~dmtsai#表示去dmstai用户的家目录,及/honme/datsai[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#pwd(显示当前所在多的目录)[root@linux~]#pwd [-p]参数:-p :显示出十几路径,而非食用连接(link)路径dmtsai用户的家目录是/home/dmtsai root家目录是/rootpwd显示当前所在目录例:[root@linux~]#pwd [-p]pwd显示当前所在目录mkdir(建立新目录)rm 删除文件或目录mv移动文件与目录,或重命名[root@linux~]#mv [fiv]source dmstination[root@linus ]#mv [options] source1 souroe2 souroe2 .....directory-f;force,强调的意思,强制直接移动而不询问。
linux系统学习笔记==============================智能娱乐系统===================硬件:中控:UI,⾳视频数据处理能⼒操作:显卡,声卡、LED、游戏机、触控屏ARM :cortex - A软件:开发环境:vmware + linux(ubuntu)程序开发:linux C程序移植:交叉开发效果:⾃动处理程序⼀、Linux 命令linux : 图形简陋---> 追求效率⾼移植性强,开源性linux :命令⾏形式进⾏交互ls: 查看全部⽂件名/ --->根⽬录pwd: 打印当前的路径/home/gec 等于~ ---> 家⽬录cd : 直接回到/home/geccd / : 回到根⽬录/cd ..: 回到上⼀级的⽬录ls -l类型权限链接数创建者⼯作组⼤⼩⽇期⽬录名d rwxrwxr-x 2 gec gec 4096 Jul 2 2013 Desktop d:⽬录(第⼀个字母:-:普通⽂件d:⽬录)rwxrwxr-x:⽂件的权限r:读权限w:写权限x:执⾏权限⽤户权限:rwx(创建者的权限)rwx(同组⼈)r-x(其他⼈)clear: 清除屏幕信息touch 创建⽂件touch xxxx ----> 因为⾝份是gec,所以必须在/home/gec中创建rm 删除⽂件/⽬录rm xxxx(⽂件名) ----> 因为⾝份是gec,所以必须在/home/gec中删除rm xxxx(⽬录名) -rfgedit 编辑⽂件gedit xxxxcat 查看⽂件内容cat xxxxmkdir 创建⽬录mkdir xxxx ----> 因为⾝份是gec,所以必须在/home/gec中创建cp 拷贝命令cp ⽂件名⽬录名---> cp abc.c 123/chmod 修改⽂件的权限-rw-rw-r-- 1 gec gec 20 Apr 14 19:43 abc.c4214214216 6 4希望三个⼈都是可读可写可执⾏7 7 7chmod 777 xxxxchmod 777 abc.c-rwxrwxrwx 1 gec gec 20 Apr 14 19:43 abc.c⼆、linux与windows间的共享⽬录1,在windows系统中的D:\创建⼀个名字为share的⽬录2, "虚拟机" --- "设置" ---- "选项" --- "共享⽂件夹" --- "总是启⽤" ---"确定" 3,在linux系统输⼊以下命令来进⼊共享⽬录cd /mnt/hgfs/share/4,在linux与windows分别创建⽬录和⽂件,观察两个系统的变化=====================开发板的使⽤=========================⼀、核⼼板CPU:ARM - cortex -A8名字:S5PV210内存:4块4 * 128MB = 512MBnandfalsh: 1G ---〉linux系统⼆、底板电源线插⼝:5V按键⾳频输⼊(红⾊)输出(绿⾊)串⼝:连接PC机与开发板⽹⼝:快速传输数据三、使⽤GEC210板⼦1,接上电源线2,串⼝线⼀端接在开发板上,另⼀端接在USB转串⼝上,USB⼝接在电脑的USB⼝上。
多进程编程1.进程:运行中的程序特征:执行的代码,动态2.多进程:多个应用程序同时进行加快效率,统筹思想(牺牲系统资源多)3.线程:轻量级的进程4.进程运行状态关系:(加载到内存中才能运行)可见的不同是:PID号;不可见的不同的是:数据,外部文件PID进程标号PIDY程序代码——共享——代码数据数据函数库(运行状态编译)static —共享—函数库shared使用到的文件使用到的文件5.实现多进程的方法进程启动进程(不常用)启动另一个进程后,原进程是等待状态进程替换进程(不常用)·用新的替换原有的进程,原进程不复存在,只留下进程号和内存空间进程创建进程(常用)·两个进程互不影响·进程和创建的进程之间是相互独立的·但是可以协调工作6.进程启动进程#include <stdlib.h>int system(const char *string);形参:传递的事指令+参数字符串返回值:进程的结束状态7.进程替换#include <unistd.h>int execl* (参数……);*:cl lp le v vp ve型参:各个参数组成完整指令int execl ( const char *path(路径),指令,指令的参数,0【结尾】);例子:execl("./bin/ps","ps","-aux",0);int execlp ( const char *file,指令,指令的参数,0【结尾】);例子:execl("ps","ps","-aux",0);int execle ( const char *path,参数,const char *envp[]【新环境变量】);(加环境变量)例子:execle("/bin/ps","ps","-aux",0,pemp);int execv ( const char *path,const char *argv[]);int execvp( const char *path,const char *argv[]);int execve( const char *path,const char *argv[],const char *envp[]);以上3个将指令和参数的字符串一起传送例子:#include <unistd.h>int main(int argc,char argv[]){char *order_argv[]={"ls","./","-a",0};char *order_envp[]={"PA TH=/bin:/usr/bin","TERM=console",0};//PATH=/bin:/usr/bin 新环境的路径,TERM=console:在终端显示printf ("exedl\n");execl("/bin/ls","ls","./","-a",0);printf ("excelp\n");execlp("ls","ls","./","-a",0);printf ("execle\n");execle("/bin/ls","ls","./","-a",0,order_envp);printf ("execv\n");execv("/bin/ls",order_argv);printf ("execvp\n");execvp("ls",order_argv);printf ("execve\n");execve("/bin/ls",order_argv,order_envp);}8.进程创建#include <unistd.h>Einclude <sys/types.h>pid_t fork(void) 创建子进程返回值:0:子进程; 非0:父进程; -1:创建失败文件描述的管道文件流描述的管道pid_t getpid(void);获得子进程无参数有返回值:pid 号pid_t getppid(void);获得子进程例子#include <stdio.h>#include <unistd.h>#include <sys/types.h>int main(int argc,char *argv[]){pid_t pid;//pid_t 定义的类型char buf='A'; //在fork()函数前执行的语句就是原进程pid = fork();switch(pid){case -1:break;case 0;buf = 'B';printf("I'm sun! %c\n",buf);break;default:buf = 'C';printf("I,m father!%c\n",buf);break;}}fork 原进程 PID=0原进程父进程 子进程结果:sun B;father C;进程间的通讯1.管道:popen 打开,pclose 关闭进程;用fread fwrite 来进行通讯头文件:#include <stdio.h>FILE *popen(const char *cmd【指令】,const char *type【打开方式】);int pclose (FILE *stream);例子1:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>int main(int argc,char argv[]){FILE *fp;char buffer [BUFSIZ+1];int reads;memset(buffer,'\0',sizeof(buffer));//buffer是string.h的库函数fp = popen("ls","./","-a","r");//新旧进程,只能是r,w;fp = popen("ls ./ -a","r");if (fp!=NULL){reads=fread(buffer,sizeof(char),BUFSIZ,fp);if(reads>0){printf("output was:\n%s\n",buffer);}pclose(fp);esit (EXIT_SUCCESS);}exit( EXIT_FAILUER)l}2.基于文件描述符的管道注意:父进程指向提供的管道,fork 函数,子进程继承父进程,也指向系统int pipe(int fd[2]);//创建管道的函数头文件:#include <unistd.h>fd[0] :读终端fd[1] :写终端返回值:成功0;失败-1.``例子2.1:基于文件描述符的#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>int main(int argc,char argv[]){int data_len; int fd[2];const char data[]="Hello world!";char buffer [BUFSIZ+1];pid_t pid;memset(buf,'\o',sizeof(buf)); //清空函数if (pipe(fd)==0){pid = fork();fd[0] fd[1] 父 子fd[0]fd[1]switch (pid){case -1;fprintf(stderr,"Fork failure!\n");break;case 0:data_len=read(fd[0],buf,BUFSIZ);printf("Read %d bytes from fd[0] \n %s\n",data_len,buf);exit(ExIT_SUCCESS);break;default:data_len=write(fd[1],data,strlen(data));printf("write %d bytes to fd[1]\n",data_len);exit(EXIT_SUCCESS);break;}}exit(EXIT_FAILURE);}终端显示:write12 bufes 头fd[1]read 12 bufes from fd[0]hello world!例子2.2#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>int main(int argc,char argv[]){int data_len;//定义一个变量,为了存储数据长度int fd[2]; //定义一个数组,代表PIPE函数的写入端和读出端const char data[]="Hello world!"; //定义一个数组,存字符串pid_t pid; //定义一个变量,存进程号memset(buf,'\o',sizeof(buf)); //清空函数if(pipe(fd)==0)//如果pipe函数的返回值等于0,则执行以下操作,错误退出{pid = fork();//创建子进程,将返回值附给pid变量switch (pid) //根据pid的值,执行以下操作{case -1;//当pid=-1时,打印错误,并错误退出fprintf(stderr,"Fork failure!\n");exit(EXIT_FAILURE);//错误退出break;case 0://当pid=0时,在子进程中执行以下操作close(0);//关不标准输入文件dup (fd[0]);//给fd[0]重新分配一个文件描述符0close(fd[0]);//关闭文件描述符fd[0];close(fd[1]);//关闭文件描述符fd[1];execlp("0d","0d","-C",NULL);//替换子进程,处理标准输入文件exit(EXIT_FAILURE);//错误退出break;default://当pid号大于0时,执行以下操作close(fd[0]);//关闭文件描述符fd[0];data_len=write(fd[1],data,strlen(data));//在fd[1]文件中的data位置写strlen (data)这么长的数据。