Unix & Linux 大学教程 学习总结

两年前我看这本书时,是一本812页的厚书,现在我总结成了40句话,什么时候成了1句话就好了。

Unix & Linux 大学教程    Harley Hahn 0,操作系统最重要功能 控制计算机并在计算机启动或者重新启动时初始化计算机 支持与计算机交互所使用的界面 为需要使用计算机资源(磁盘空间、文件位置、处理时间、内存等)的程序提供接口 管理计算机的内存 维护并管理文件系统 调度工作 提供账户和安全服务 1,内核提供服务: 内存管理(虚拟内存管理,包括分页) 进程管理(进程创建、终止、调度) 进程间通信(本地,网络) 输入输出 文件管理 安全和访问控制 网络访问(如TCP/IP) 2,Unix=内核+使用工具(包括shell和gui) 3, Linus Torvalds 4,计算机系统: 计算机=终端+主机 终端=输入设施+输出设施 5,抽象层次 应用程序/用户 桌面环境 窗口管理器 X Window 内核中的设备驱动程序 硬件 6,进程线程 在Unix系统中,每个对象或者用文件表示,或者用进程表示。简单地讲,文件存放数据或者允许访问资源,而进程是正在执行的程序。 进程可以分成更小的单元,称为线程,线程是一组运行在进程环境中的指令。因此可以将程序的结构描述为,在一个进程之内,不止一个线程在同时进行。 7,运行级别 0    关机 1    单用户 2    非标准化 3    多用户:CLI 4    非标准化 5    多用户:GUI 6    重启 8,快捷键 Ctrl + Alt + Left/Right 工作区的切换(基于gnome桌面) 9,终端 stty -a 获取当前终端行设置 intr = ^C(停止正在运行程序); quit = ^\(停止程序并保存core文件); erase = ^?; kill = ^U(删除整行); eof = ^D(提示已经没有数据); start = ^Q(开始屏幕显示);erae = ^H(删除一个字符);stop = ^S(暂停屏幕显示); susp = ^Z(暂停,fg恢复到前台); rprnt = ^R(搜索history命令); werase = ^W(删除一个单词); lnext = ^V; flush = ^O; infocmp 打印终端信息  infocmp vt100 | less  (infocmp需要安装ncurses) echo $TERM 得到的默认终端是xterm export IGNOREEOF=5  可以按^D提示logout或者exit退出 10,which type whereis type 是 shell 内嵌,查看内置命令,bash 69个 help打印一些内置命令列表 11,cal -j 5 2014 查看2014年5月的每一天 12,uptime,uname 13,users,who,finger,w(谁正在做什么) 14,bc -l (支持+,-,*,/,%,^,sqrt(x),s(x),c(x),a(x),ln(x),j(n,x)) 15,RTFM(Read the fucking manual),xman (1).命令  (2).系统调用  (3).函数库  (4).特殊文件  (5).文件格式  (6).游戏  (7).杂项信息  (8).系统管理   man -f 快速查寻命令用法    whatis man -k 关键字        apropos man builtin man bash 16,环境变量 env perintenv set/unset(csh)    set term=vt100 setenv/unsetenv(csh) setenv TEST hello export(bash) set -/+o 显示shell选项控制(bash) 17,引用和转义 使用反斜线引用单个字符(称为转义了这个字符) 使用单引号引用一串字符 使用双引号引用一串字符,但是保留$,`,\的特殊意义 18,搜素路径 export PATH="/...:/..." set path=(/... /...) PS1  shell 提示 export PS1="\u\w\@\$" prompt(csh) ``命令替换 19,fc -l history 20,自动补全 文件名补全 命令补全 变量补全 用户标识补全 主机名补全(bash) 21,别名 alias,umalias alias 'a=alias' 22,初始化文件 .profile文件 .rc文件 登陆shell(.bash_profile) 非登陆shell(.bashrc) 23,输入输出 <重定向标准输入(同0<) >重定向标准输出(同1>) >>追加标准输出(同1>>) 2>重定向标准错误 2>>追加标准错误 2>&1将标准错误重定向到标准输出 >&或者&>重定向标准输出+标准错误(只适用于Bash) |管道 2>&1 |所有输出到管道 set -o noclobber 可以禁用>,但是可以用>|(强制重写) 24,编组和子shell (cd directory; command) 25,管道线分流tee(从标准输入读取数据发送屏幕和文件各一份) cat 1 2 3 |tee 123|grep hh (tee可以输出保存不止一个副本) 26,条件执行 command1 && command2(命令1成功执行后执行命令2) command1 || command2(命令1没有成功后执行命令2) 27,过滤器 cat|grep|sort|less (1)分析问题 (2)选择工具 (3)与他人讨论 (4)选择选项 28,文件简单操作 split 分割文件 tac 反转文本行顺序 rev 反转字符 colrm 删除指定的数据列,然后将剩余的数据写入标准输出 29,比较和抽取 cmp 逐字节地比较两个文件 comm 一行一行比较两个有序文本 diff    比较无序文本文件 cut -f 1,3-5 -d ':' /etc/passwd | sort (f列,d分隔符) cut -c1-8(c按字符) paste 可以将几个文件(其中每个文件都包含一列数据)组成一个大表 paste 水平组合数据,cat垂直组合数据 30,统计和格式化 nl 创建行号 wc 统计行、单词和字符 :set list 可视化制表符和空格 expand将制表符转换成空格(unexpand) fold分割行  fold -s -w 40 file  (40个字符一行,单词不分割) 31,选取、排列、组合及变换 grep (global re  print) ls -F /etc |grep -c "/" (c统计) -in(忽略大小写并按行号) -l (列出文件名) -v(reverse,相反) -x (占整行) -r(recursive,递归) -s(suppress,抑制) -E(egrep) look sort -dfnu(sort -u = sort|uniq = cat|sort|uniq) uniq -cdu(d只看重复行,u只看唯一行,c统计行数) join 合并有序数据 strings在二进制中搜索字符串 strings /usr/bin/sort tr A-Z a-z < old > new大小写转换 [:upper:] [:lower:] [:digit:] 32,非交互式文本编辑sed sed 's/h/H/g'ole >new   (-i in-place可以改变原始文件) (1)从输入流中读取一行 (2)执行指定的命令,对该行进行必要的交换 (3)将该行写入到输出流中 number [,number] |/regex/ 对指定行进行操作或者包含特定字符串的行 5,10s(5到10行) $s(最后一行) /OK/(字符串OK所在行) [0-9][0-9]包含两个连续数字的行 -e 多条更改 -f 文件 33,正则表达式 元字符 . ^ $ \<    匹配单词的开头 \>    匹配单词的结尾 [abc]    匹配abc中的任何字符 [^abc]    匹配不在abc中的任何字符 ()    组:视为一个单独的单元 |    匹配选择之一 \    引用:从字面上解释元字符 运算符 *    0或多次 +    1或多次 ?    0或1次 {n}    n次       (xyz){5}匹配字符"xyz"5次 {n,}    最少n次 {,m}    最多m次 {n,m}    n,m之间次  [0-9]{3,5}匹配3到5个数字 类 [:lower:]    a-z [:upper:]    A-Z     [:alpha:]    A-Za-z [:alnum:]    A-Za-z0-9 [:digit:]    0-9 [:punct:]    标点符号 [:blank:]    空格或制表符 grep -w 'cat' data grep '\<cat\>'data    \<和\>是整个数字或者单词,没有就是对字符串 grep '\bcat\b'data man ascii locale -a 34,显示文件 hexdump   hexdump -C /bin/grep |less   显示二进制文件 -C 文件 od      od -Ax -txlz /bin/grep |less 35,vim文本编辑器 命令模式 h j k l w e b r R x X D dd u U yy yw y10w y2) y5} 10yy p P xp    调换两个字符 ddp    调换两行 deep    调换2个单词 输入模式 i a o I A O 搜索模式 :/keywords :set number :set all .vimrc 36,文件系统 基于磁盘的文件系统 ext3、ext4,FAT32,HFS+(层次式文件系统),ISO 9660(CD-ROM),NTFS,UDF(可重写CD和DVD),UFS2(BSD,Solaris) 网络文件系统 NFS,SMB 特殊文件系统 devpts  伪终端的设备界面(PTY) procfs    proc文件系统 sysfs    系统数据文件系统(设备与驱动器) tmpfs    临时存储文件系统 37,目录操作 . .. ~ pushd popd dirs ls -CrR1F(C列,r字母表从大到小显示,R全部子目录,1文件名占一行,F带标志) ls -lrtu显示最近访问过得文件 -普通 d目录 l符号 b块 c字符 p管道 dumpe2fs /dev/sda1   | grep "Block size" tree    文件树 38,文件操作 setuid setgid umask shred -fvuz filename  清空文件内容 stat   file ls -i ln -s whereis locate find find  path ... test ... action... test如下: -name -iname -type -perm -user -group -empty -size -atime -ctime -mtime action如下: -print -fprint file -ls -exec command{} \;执行命令,{}指示匹配的文件名 -ok command{} \;同上,但是运行命令之前确认 -delete    删除文件 -fls file xargs处理查找到的文件 find ~ -type f | xargs ls -s (whoami;date) |xargs 39, 进程和作业控制 echo $$ 显示当前shell的PID echo $! 显示上一条移至后台的命令的PID sleeep (sleep 20;cat /etc/passwd) && vim /etc/termcap jobs ps fg bg suspend    挂起当前shell ^Z kill top prtstat pstree fuser nice

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEdge

Java线程状态NEW状态RUNNABLE状态BLOCKED状态等待TIMED _WAITINGTERM_INATED等待队列锁池状态几个方法的比较疑问

NEW状态 实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态 英文翻译过来是线程还是没有开始执行。 首...

50611
来自专栏蘑菇先生的技术笔记

探索c#之storm的TimeCacheMap

2147
来自专栏青玉伏案

iOS开发之再探多线程编程:Grand Central Dispatch详解

Swift3.0相关代码已在github上更新。之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread、操作队列以及GCD,介绍的不够深入。今...

1957
来自专栏风口上的猪的文章

.NET面试题系列[17] - 多线程概念(2)

当我们创建了一个线程后,线程里面主要包括线程内核对象、线程环境块、1M大小的用户模式栈和内核模式栈。

3412
来自专栏小詹同学

Python 4 种不同的存取文件骚操作

前言:最近开始学习tensorflow框架,选修课让任选一种框架实现mnist手写数字的识别分类。小詹也就随着大流选择了 tf 框架,跟着教程边学边做,小詹用了...

1513
来自专栏技术博客

C#简单的面试题目(六)

76.HashMap和Hashtable的区别。 答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于H...

842
来自专栏分布式系统和大数据处理

.Net Remoting(分离服务程序实现) - Part.3

在上面Remoting基本操作的范例中,我们发现了这样一个情况:即是 客户应用程序 仍然需要引用 服务程序集(ServerAssembly),因为它需要Demo...

911
来自专栏H2Cloud

C++任务队列与多线程

摘要:       很多场合之所以使用C++,一方面是由于C++编译后的native code的高效性能,另一方面是由于C++优秀的并发能力。并行方式有多进程 ...

5634
来自专栏青玉伏案

Objective-C中的Block回调模式

        在前面的博客中提到了Block的概念和使用方法,个人感觉Block最爽的用法莫过于在回调时用block。感觉比委托回调和目标方法回调用着要顺手,...

2515
来自专栏钟绍威的专栏

linux常用命令之查阅文件用法选项功能键用法选项DEMO用法选项选项注意选项注意选项注意用法选项

CAT cat – concatenate print files 连续的输出文件内容 用法 cat [-nbA] file 选项 -n line number...

1975

扫码关注云+社区

领取腾讯云代金券