linux简单操作笔记

合集下载

linux学习笔记31--命令route和routetrace

linux学习笔记31--命令route和routetrace

linux学习笔记31--命令route和routetraceLinux系统的route命令⽤于显⽰和操作IP路由表(show / manipulate the IP routing table)。

要实现两个不同的⼦⽹之间的通信,需要⼀台连接两个⽹络的路由器,或者同时位于两个⽹络的⽹关来实现。

在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在⼀个局域⽹中,局域⽹中有⼀个⽹关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。

要注意的是,直接在命令⾏下执⾏route命令来添加路由,不会永久保存,当⽹卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

1.命令格式:route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]2.命令功能:Route命令是⽤于操作基于内核ip路由表,它的主要作⽤是创建⼀个静态路由让指定⼀个主机或者⼀个⽹络通过⼀个⽹络接⼝,如eth0。

当使⽤"add"或者"del"参数时,路由表被修改,如果没有参数,则显⽰路由表当前的内容。

3.命令参数:-c 显⽰更多信息-n 不解析名字-v 显⽰详细的处理信息-F 显⽰发送信息-C 显⽰路由缓存-f 清除所有⽹关⼊⼝的路由表。

-p 与 add 命令⼀起使⽤时使路由具有永久性。

add:添加⼀条新路由。

del:删除⼀条路由。

-net:⽬标地址是⼀个⽹络。

-host:⽬标地址是⼀个主机。

netmask:当添加⼀个⽹络路由时,需要使⽤⽹络掩码。

gw:路由数据包通过⽹关。

注意,你指定的⽹关必须能够达到。

metric:设置路由跳数。

Command 指定您想运⾏的命令 (Add/Change/Delete/Print)。

linux 服务器常用操作命令

linux 服务器常用操作命令

linux 服务器常用操作命令1.基本命令- pwd:查看当前所在目录- ls:列出当前目录下的文件和文件夹- cd:切换目录- touch:创建文件- mkdir:创建新的目录- rm:删除文件或目录- cp:复制文件或目录- mv:重命名文件或目录,或移动文件或目录到其他位置- cat:查看文件内容- grep:在文件中搜索指定的字符串- find:查找文件并执行相应操作- chmod:修改文件和目录的权限- chown:修改文件和目录的所有者- top:实时查看系统的资源使用情况- ps:显示当前正在运行的进程信息2.文件操作- echo:输出文本内容到终端或文件- head:显示文件的前几行- tail:显示文件的后几行- less:按页查看文件内容- wget:下载文件- tar:打包和解压文件- gzip:压缩文件- unzip:解压缩文件- file:查看文件类型- scp:在本地和远程服务器之间进行文件传输- sftp:通过SSH协议在本地和远程服务器之间进行文件传输3.网络相关- ifconfig:显示网络接口配置信息- ping:测试与指定主机的连通性- netstat:显示网络连接、路由表和网络接口信息- ssh:建立安全的远程登录连接- telnet:建立与远程主机的非安全连接- nslookup:域名解析工具- traceroute:显示数据包在网络上的传输路径- ifup/ifdown:启用/禁用网络接口- iptables:配置防火墙规则4.系统管理- uname:显示系统信息- whoami:显示当前用户- id:显示用户信息- date:显示系统日期和时间- uptime:显示系统的运行时间和平均负载- free:显示内存的使用情况- df:显示磁盘空间的使用情况- du:查看文件和目录的磁盘使用情况- kill:关闭指定进程- reboot:重启系统- shutdown:关闭系统5.用户和权限管理- useradd:创建用户- userdel:删除用户- passwd:修改用户密码- su:切换用户- sudo:以超级用户权限执行命令- visudo:配置sudo的访问权限- chattr:修改文件属性- addgroup:创建用户组- delgroup:删除用户组- chmod:修改文件和目录的权限- chown:修改文件和目录的所有者6.日志管理- tail:实时显示日志文件的最后几行内容- cat:显示整个日志文件的内容- grep:在日志文件中搜索指定的字符串- systemctl:管理系统服务- journalctl:查看系统日志7.进程管理- ps:显示当前正在运行的进程信息- top:实时查看当前系统进程的资源占用情况- kill:终止指定进程- nice:调整进程的优先级- nohup:在后台运行命令,不受终端断开影响- renice:修改进程的优先级这些是Linux服务器常用的操作命令,能够实现大部分日常操作和系统管理任务。

linux笔记全(无图版)

linux笔记全(无图版)

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操作系统课程学习笔记,我的Linux学习笔记·Linux操作系统基础

linux操作系统课程学习笔记,我的Linux学习笔记·Linux操作系统基础

linux操作系统课程学习笔记,我的Linux学习笔记·Linux操作系统基础今天的笔记主要是关于Linux操作系统根底的相关学问。

那就从我⾯前的电脑开端讲起。

计算机和操作系统计算机主要包括五个部分:运算器,控制器,存储器,输⼊设备和输出设备。

通常,运算器,控制器再加上其他⼀些部件如寄存器等构成了我们通常所说的CPU(central processing unit),存储器则主要是内存。

运算器,控制器和存储器可以实现数据的处理.但是数据从何⽽来,运算之后的结果去往哪⾥?这就需要输⼊设备和输出设备(I/O设备)。

我们通常⽤到的输⼊设备包括键盘⿏标等,输出设备为屏幕,打印机等。

值得⼀提的是,计算机中有个叫做硬盘的东西,它并不是存储器,⽽是⼀个I/O设备。

在将数据读取到内存时,它是⼀个输⼊设备;⽽将结果保存到磁盘时,它就变成了⼀个输出设备。

这么多设备整合在⼀起,就成了⼀台计算机。

它可以接收我们的指令(键盘⿏标),通过运算(CPU),把结果展⽰给我们(屏幕,硬盘等)。

但是这么多硬件是如何协调作⽤,共同完成⼀个任务⽽不会我⾏我素地乱来呢?我们需要⼀个东西,它可以控制硬件有序地⼯作,各⾃执⾏⾃⼰的任务,这个东西就是操作系统(Operating System)。

操作系统是⼀个特殊的软件,它的任务就是硬件管理—控制CPU的运算,控制内存的分配,控制计算机的⼏乎⼀切。

假如⼀台电脑没有操作系统,它可能只是⼀个艺术品,或者⼀堆废铁。

⼀个完整的操作系统包括内核和⼀些辅助软件。

内核的主要任务就是进⾏硬件管理,它是⼀个操作系统最基础最底层的东西。

内核若想很好地控制硬件并使其发挥相应的功能,需要和硬件相识相知相爱,他俩可以成为完美的⼀对,全都仰仗于驱动的帮忙。

驱动是硬件的灵魂,它向操作系统提供了访问和使⽤硬件的接⼝,以便在某项任务中最⾼效地调⽤硬件。

什么是LinuxLinux就是⼀个操作系统,它可以管理整个计算机硬件,并且可以接收我们的指令,来指挥硬件完成相应的任务,并把结果反馈给我们。

linuxvim操作笔记

linuxvim操作笔记

linuxvim操作笔记V1. 默认字符编码为utf8,打开使⽤gb2312编码的⽂件,中⽂全为乱码,如何恢复正常显⽰? 输⼊ edit ++enc=cp936V2. 如何在vim系统中执⾏命令?输⼊ !cmdV3. 使⽤vim直接打开并编辑.*gz⽂件,⽽⽆须解压,读取,编辑,再压缩.压缩⽂件的⽀持是通过pluginvim ls-lrR.txt.gzV4. 如何Vim⽀持语法加亮?⼀劳永逸的⽅法,在~/.vimrc中增加如下语句syntax on临时性的⽅法, 输⼊命令:syntax onV5. Vim如何在结构⽂档中快速切换,⽐如 C语⾔{ }块之间切换.输⼊在{}之间,输⼊%即可V6. 如何让Vim记下我的编辑状态,以便下次快速恢复⼯作?输⼊ :mksession file_name_your_sessionV7. 如何让Vim告诉你编辑⽂件的字节数,字数,当前位置信息?输⼊ g CTRL_GV8. 输⼊help,打开了帮助窗⼝,如何快速关闭?输⼊CTRL-W ,然后再输⼊CTRL-Q,或者输⼊CTRL-W qV9. 我要每天编辑⽇志,我不想去输⼊⽇期与时间,该怎么办?现要如这样的⽇期形式Mon Sep 19 23:19:03 CST 2005,简单,定义⼀个快捷键F2,在vim中做这样⼀个映射:map gg:read !dateV10. 如何使⽤Vim改变⽂本⽂件的编码?⽐如,原有1个⽂档为utf-8编码的,现在要将它改为cp936编码,可⽤如下指令:set fileencoding=cp936然后再保存⽂件:wV11. 如何将vim记住我的配置选项(⽐如默认的编码⽅式,⽂件类型等)?请将你的配置命令写到~/.vimrc配置脚本⽂件中V12. 如何查看当前编辑的C/C++源⽂件所有include⽂件路径?输⼊:checkpathV13. 如何保存全局的配置选现(对所有⽤户都可⽤)?先输⼊:version, 查看系统vimrc配置⽂件的值再编辑系统vimrc配置⽂件,加⼊你想要vim执⾏的命令V14. 如何快速复制Buffer中的⼀⾏⽂字?输⼊yy先记录到缓冲区, 移动光标到想要粘贴处,按pV15. 如何利⽤宏命令,⽣成数字顺序列表?1. Create the first list entry, make sure it starts with a number.2. qa - start recording into buffer ‘a’3. Y - yank the entry4. p - put a copy of the entry below the first one5. CTRL-A - increment the number6. q - stop recording7. @a - repeat the yank, put and increment timesV16. 如何实现⽂本的折叠(Fold)?⾃动Fold,假设你的⽂件是C源⽂件,输⼊:set foldmethod=indent:set foldenable⼿动Fold,选中你要折的⾏,在Normal模式下输⼊命令 zf当Fold创建后,移动光标到Fold所在⾏输⼊ zo, 打开相应的Foldzc, 关闭相应的FoldzM, 关闭⽂件中所有的FoldzR, 打开⽂件中所有的Foldza, ⾃动打开或关闭相应的FoldV17. 如何查看当前⽂件中的字,字符个数?输⼊g CTRL-G 即可,所有字节数按UTF-8的形式进⾏计数.V18. 如何在Visual模式下快速搜索当前选中的⽂字?为了不改变⽤户使⽤习惯,我们依然沿⽤*和#这两键vnoremap * y/“vnoremap # y?“注: 指令插⼊命名寄存器的内容V19. 如何在源代码中不同块/段落间来回跳跃?输⼊ { , 前进⾄上⼀段落输⼊ } , 前进⾄后⼀段落V20. 如何⽂本中的TAB转化为固定长度的空格?输⼊ :set expandtab输⼊ :set tabstop=4输⼊ :retabV21. vim中paste剪贴板中的数据如何让它不缩进,保持原格式?paste时,输⼊的⽂本⼤多会包含换⾏字符,还有⼀些特殊字符,vim会⾃动对⽂本缩进,并且⾃动换⾏等,为了避免这些智能选项的影响,可以把paste开关打开V22. 有趣的⼏个功能gg 到⽂件⾸gd 到变量声明gg=G 全篇⾃动缩进 , =G 单⾏缩进K(shift+k) mancrl+] 函数原型处 crl+t 回 ( ctags )ctl+p ⾃动补全( 编辑状态 ):X 加密保存( 要输⼊密码 )使⽤说明:以下的例⼦中 xxx 表⽰在命令模式下输⼊ xxx 并回车以下的例⼦中 :xxx 表⽰在扩展模式下输⼊ xxx 并回车⼩括号中的命令表⽰相关命令.在编辑模式或可视模式下输⼊的命令会另外注明.1. 查找/xxx(?xxx) 表⽰在整篇⽂档中搜索匹配xxx的字符串, / 表⽰向下查找, ? 表⽰向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.⼀般来说是区分⼤⼩写的, 要想不区分⼤⼩写, 那得先输⼊:set ignorecase查找到以后, 再输⼊ n 查找下⼀个匹配处, 输⼊ N 反⽅向查找.*(#) 当光标停留在某个单词上时, 输⼊这条命令表⽰查找与该单词匹配的下(上)⼀个单词. 同样, 再输⼊ n 查找下⼀个匹配处, 输⼊ N 反⽅向查找.g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, ⽽是匹配包含该单词的所有字符串.gd 本命令查找与光标所在单词相匹配的单词, 并将光标停留在⽂档的⾮注释段中第⼀次出现这个单词的地⽅.% 本命令查找与光标所在处相匹配的反括号, 包括 () [] {}f(F)x 本命令表⽰在光标所在⾏进⾏查找, 查找光标右(左)⽅第⼀个x字符.找到后:输⼊ ; 表⽰继续往下找输⼊ , 表⽰反⽅向查找2. 快速移动光标在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很⽅便的进⾏光标定位和编辑. 因此能更快⼀点移动光标是很有⽤的.w(e) 移动光标到下⼀个单词.b 移动光标到上⼀个单词.0 移动光标到本⾏最开头.^ 移动光标到本⾏最开头的字符处.$ 移动光标到本⾏结尾处.H 移动光标到屏幕的⾸⾏.M 移动光标到屏幕的中间⼀⾏.L 移动光标到屏幕的尾⾏.gg 移动光标到⽂档⾸⾏.G 移动光标到⽂档尾⾏.c-f (即 ctrl 键与 f 键⼀同按下) 本命令即 page down.c-b (即 ctrl 键与 b 键⼀同按下, 后同) 本命令即 page up.” 此命令相当有⽤, 它移动光标到上⼀个标记处, ⽐如⽤ gd, * 等查找到某个单词后, 再输⼊此命令则回到上次停留的位置.‘. 此命令相当好使, 它移动光标到上⼀次的修改⾏.`. 此命令相当强⼤, 它移动光标到上⼀次的修改点.3. 拷贝, 删除与粘贴在 vi 中 y 表⽰拷贝, d 表⽰删除, p 表⽰粘贴. 其中拷贝与删除是与光标移动命令结合的, 看⼏个例⼦就能够明⽩了.yw 表⽰拷贝从当前光标到光标所在单词结尾的内容.dw 表⽰删除从当前光标到光标所在单词结尾的内容.y0 表⽰拷贝从当前光标到光标所在⾏⾸的内容.d0 表⽰删除从当前光标到光标所在⾏⾸的内容.y$ 表⽰拷贝从当前光标到光标所在⾏尾的内容.d$ 表⽰删除从当前光标到光标所在⾏尾的内容.yfa 表⽰拷贝从当前光标到光标后⾯的第⼀个a字符之间的内容.dfa 表⽰删除从当前光标到光标后⾯的第⼀个a字符之间的内容.特殊地:yy 表⽰拷贝光标所在⾏.dd 表⽰删除光标所在⾏.D 表⽰删除从当前光标到光标所在⾏尾的内容.关于拷贝, 删除和粘贴的复杂⽤法与寄存器有关, 可以⾃⾏查询.4. 数字与命令在 vi 中数字与命令结合往往表⽰重复进⾏此命令, 若在扩展模式的开头出现则表⽰⾏号定位. 如:5fx 表⽰查找光标后第 5 个 x 字符.5w(e) 移动光标到下五个单词.5yy 表⽰拷贝光标以下 5 ⾏.5dd 表⽰删除光标以下 5 ⾏.y2fa 表⽰拷贝从当前光标到光标后⾯的第⼆个a字符之间的内容.:12,24y 表⽰拷贝第12⾏到第24⾏之间的内容.:12,y 表⽰拷贝第12⾏到光标所在⾏之间的内容.:,24y 表⽰拷贝光标所在⾏到第24⾏之间的内容. 删除类似.5. 快速输⼊字符在 vi 中, 不要求你输⼊每⼀个字符, 可以有很多种⽅法快速输⼊⼀些字符.使⽤ linux/unix 的同学⼀定有⼀个经验, 在命令⾏下输⼊命令时敲⼊头⼏个字符再按TAB 系统就会⾃动将剩下的字符补齐, 假如有多个匹配则会打印出来. 这就是著名的命令补齐(其实windows中也有⽂件名补齐功能). vi 中有许多的字符串补齐命令, ⾮常⽅便.c-p(c-n) 在编辑模式中, 输⼊⼏个字符后再输⼊此命令则 vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输⼊此命令则循环查找. 此命令会在所有在这个 vim 程序中打开的⽂件中进⾏匹配.c-x-l 在编辑模式中, 此命令快速补齐整⾏内容, 但是仅在本窗⼝中出现的⽂档中进⾏匹配.c-x-f 在编辑模式中, 这个命令表⽰补齐⽂件名. 如输⼊:/usr/local/tom 后再输⼊此命令则它会⾃动匹配出:/usr/local/tomcat/abbr 即缩写. 这是⼀个宏操作, 可以在编辑模式中⽤⼀个缩写代替另⼀个字符串. ⽐如编写java⽂件的常常输⼊ System.out.println, 这很是⿇烦, 所以应该⽤缩写来减少敲字. 可以这么做::abbr sprt System.out.println以后在输⼊sprt后再输⼊其他⾮字母符号, 它就会⾃动扩展为System.out.println6. 替换替换是 vi 的强项, 因为可以⽤正规表达式来匹配字符串.以下提供⼏个例⼦.:s/aa/bb/g 将光标所在⾏出现的所有包含 aa 的字符串中的 aa 替换为 bb:s/\/bb/g 将光标所在⾏出现的所有 aa 替换为 bb, 仅替换 aa 这个单词:%s/aa/bb/g 将⽂档中出现的所有包含 aa 的字符串中的 aa 替换为 bb:12,23s/aa/bb/g 将从12⾏到23⾏中出现的所有包含 aa 的字符串中的 aa 替换为 bb :12,23s/^/#/ 将从12⾏到23⾏的⾏⾸加⼊ # 字符:%s= *$== 将所有⾏尾多余的空格删除:g/^\s*$/d 将所有不包含字符(空格也不包含)的空⾏删除.7. 多⽂件编辑在⼀个 vim 程序中打开很多⽂件进⾏编辑是挺⽅便的.:sp(:vsp) ⽂件名 vim 将分割出⼀个横(纵)向窗⼝, 并在该窗⼝中打开新⽂件.从 vim6.0 开始, ⽂件名可以是⼀个⽬录的名称, 这样, vim 会把该⽬录打开并显⽰⽂件列表, 在⽂件名上按回车则在本窗⼝打开该⽂件, 若输⼊ O 则在新窗⼝中打开该⽂件, 输⼊ ? 可以看到帮助信息.:e ⽂件名 vim 将在原窗⼝中打开新的⽂件, 若旧⽂件编辑过, 会要求保存.c-w-w vim 分割了好⼏个窗⼝怎么办? 输⼊此命令可以将光标循环定位到各个窗⼝之中.:ls 此命令查看本 vim 程序已经打开了多少个⽂件, 在屏幕的最下⽅会显⽰出如下数据:1 %a “usevim.html” ⾏ 1622 # “xxxxxx.html” ⾏ 0其中:1 表⽰打开的⽂件序号, 这个序号很有⽤处.%a 表⽰⽂件代号, % 表⽰当前编辑的⽂件,# 表⽰上次编辑的⽂件“usevim.html” 表⽰⽂件名.⾏ 162 表⽰光标位置.:b 序号(代号) 此命令将指定序号(代号)的⽂件在本窗⼝打开, 其中的序号(代号)就是⽤ :ls 命令看到的.:set diff 此命令⽤于⽐较两个⽂件, 可以⽤:vsp filename命令打开另⼀个⽂件, 然后在每个⽂件窗⼝中输⼊此命令,就能看到效果了.8. 宏替换vi 不仅可以⽤ abbr 来替换⽂字, 也可以进⾏命令的宏定义. 有些命令输起来很费劲, 因此我把它们定义到 - 上, 这样就很⽅便了.这些配置可以预先写到 ~/.vimrc (windows 下为 $VIM/_vimrc) 中, 写进去的时候不⽤写前⾯的冒号.:nmap :nohls 取消被搜索字串的⾼亮:nmap w 命令模式下转移光标到不同窗⼝:imap 输⼊模式下运⾏:nmap :%s= *$== 删除所有⾏尾多余的空格.:imap 同上:java 中: (注, 这⾥为什么说 java 中, 因为以下定义对其他⽂件格式不起作⽤, 下⽂会说到如何实现这⼀点):nmap :comp javac:mak -d . %此命令⽤ javac 编译 java ⽂件, 它会⾃动将光标定位到出错点. 不过这需要定义⼀个 javac.vim ⽂件在 $VIM/compiler 下, 在 javac.vim ⾥⾯只有两⾏字:setlocal makeprg=javacsetlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#:nmap :comp ant:mak此命令⽤ ant 编译 java ⽂件, 它会⾃动将光标定位到出错点. ⼀般来说, 安装vim 后已经有了compiler/ant.vim⽂件, 因此这个命令可以直接使⽤. 但是需要在当前⽬录下有 build.xml ⽂件, 当然还必须安装 ant 才⾏.:nmap :cl 此命令⽤于查看所有的编译错误.:imap:nmap :cc 此命令⽤于查看当前的编译错误.:imap:nmap :cn 此命令⽤于跳到下⼀个出错位置.:imap:nmap :cp 此命令⽤于跳到上⼀个出错位置.:imap:nmap :JavaBrowser此命令⽤于在窗⼝左部分割出⼀个新窗⼝, ⾥⾯的内容是 java 的资源树, 包括本⽂件中出现的类, 类的成员变量及成员⽅法, 就好像 JCreator 表现的那样.在这个窗⼝中输⼊ ? 会看到帮助. 嘿嘿, 很好⽤, 不过需要 ctags ⽀持.:imap9. TABTAB 就是制表符, 单独拿出来做⼀节是因为这个东西确实很有⽤.<< 输⼊此命令则光标所在⾏向左移动⼀个 tab.>> 输⼊此命令则光标所在⾏向右移动⼀个 tab.5>> 输⼊此命令则光标后 5 ⾏向右移动⼀个 tab.:12,24> 此命令将12⾏到14⾏的数据都向右移动⼀个 tab.:12,24>> 此命令将12⾏到14⾏的数据都向右移动两个 tab.那么如何定义 tab 的⼤⼩呢? 有⼈愿意使⽤ 8 个空格位, 有⼈⽤4个, 有的⽤2个.有的⼈希望 tab 完全⽤空格代替, 也有的⼈希望 tab 就是 tab. 没关系, vim 能帮助你.以下的设置⼀般也都先写⼊配置⽂件中, 免得⽼敲.:set shiftwidth=4 设置⾃动缩进 4 个空格, 当然要设⾃动缩进先.:set sts=4 即设置 softtabstop 为 4. 输⼊ tab 后就跳了 4 格.:set tabstop=4 实际的 tab 即为 4 个空格, ⽽不是缺省的 8 个.:set expandtab 在输⼊ tab 后, vim ⽤恰当的空格来填充这个 tab.10. autocmd这个命令⼗分的强⼤, 可以⽤这个命令实现对不同的⽂件格式应⽤不同的配置; 可以在新建⽂件时⾃动添加上版权声明等等. 这些命令⼀般定义在 ~/.vimrc 这样的配置⽂件⾥⾯. 由于他很强⼤, 所以我不能给出很具体的说明, 只能举⼏个例⼦, 详细的请看帮助. :autocmd! 删除所有之前的⾃动命令.autocmd FileType java source ~/.vim/files/java.vimautocmd FileType java source ~/.vim/files/jcommenter.vim以上两条命令让我在打开 java ⽂件时才应⽤后⾯提到的两个配置⽂件.autocmd BufNewFile *.java 0r ~/.vim/files/skeletons/java.skel以上这条命令让我在新建 java ⽂件时⾃动加⼊ java.skel ⽂件的内容.autocmd BufNewFile *.java normal gnp以上这条命令让我在新建 java ⽂件时⾃动运⾏ gnp 命令, 这个命令进⾏⼀些特殊化处理, ⽐如将新 java ⽂件中的 __date__ 替换成今天的⽇期什么的.11. 常⽤脚本在 你可以发现很多脚本(script), 这些脚本常常有让你意想不到的作⽤.我常⽤的有:jcommenter.vim ⾃动加⼊ javadoc 风格的注释.JBrowser.vim 类资源浏览. C, C++ 等可以⽤ Tlist还有许多有⽤的, ⽐如 checkstyle.vim 可以检验你的编程风格, jad.vim 可以直接反编译 .class ⽂件等等.12. 常⽤配置在~/.vimrc 配置⽂件中你常常需要⼀些个性化配置. ⽐如上⾯写的⼀些宏定义, ⼀些autocmd 定义等等. ⽐如:set suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc这样在vim中打开⽂件时, 按 tab 键补齐⽂件名时它会忽略上述⽂件.set nu 显⽰⾏号set ai 设置⾃动缩进map Y y$ 让 Y 和 D ⼀样, 要不然 Y 的本意和 yy ⼀样.13. 其他还有许多有意思的命令, 记录在这⾥免得忘记.. 重复上次编辑命令.:g/^/exec “s/^/”.strpart(line(”.”).” “, 0, 4) 在⾏⾸插⼊⾏号:runtime! syntax/2html.vim 转换 txt 成 html, 会按照你的颜⾊配置来转。

鸟哥的linux私房菜(基础篇)学习笔记

鸟哥的linux私房菜(基础篇)学习笔记

鸟哥的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 Kernel学习笔记——启动

Linux Kernel学习笔记——启动

Linux Kernel学习笔记——启动启动当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码。

BIOS先进行一系列的系统自检,然后初始化位于地址0的中断向量表。

最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处的代码.这就是对内核初始化过程的一个最简单的描述。

最初,Linux核心的最开始部分是用8086汇编语言编写的。

当开始运行时,核心将自己装入到绝对地址0x90000,再将其后的2k字节装入到地址0x90200处,最后将核心的其余部分装入到0x10000。

当系统装入时,会显示Loading...信息。

装入完成后,控制转向另一个实模式下的汇编语言代码boot/Setup.S。

Setup部分首先设置一些系统的硬件设备,然后将核心从0x10000处移至0x1000处。

这时系统转入保护模式,开始执行位于0x1000处的代码。

接下来是内核的解压缩。

0x1000处的代码来自于文件Boot/head.S,它用来初始化寄存器和调用decompress_kernel()程序。

decompress_kernel( )程序由Boot/inflate.c, Boot/unzip.c和Boot/misc.c组成。

解压缩后的数据被装入到了0x 处,这也是Linux不能在内存小于2M的环境下运行的主要原因。

解压后的代码在0x处开始执行,紧接着所有的32位的设置都将完成: IDT、GDT 和LDT将被装入,处理器初始化完毕,设置好内存页面,最终调用start_kernel过程。

这大概是整个内核中最为复杂的部分。

[系统开始运行]Linux kernel最早的C代码从汇编标记startup_32开始执行|startup_32:|start_kernel|lock_kernel|trap_init|init_IRQ|sched_init|softirq_init|time_init|console_init|#ifdef CONFIG_MODULES |init_modules|#endif|kmem_cache_init|sti|calibrate_delay|mem_init|kmem_cache_sizes_init |pgtable_cache_init|fork_init|proc_caches_init|vfs_caches_init|buffer_init|page_cache_init|signals_init|#ifdef CONFIG_PROC_FS|proc_root_init|#endif|#if defined(CONFIG_SYSVIPC)|ipc_init|#endif|check_bugs|smp_init|rest_init|kernel_thread|unlock_kernel|cpu_idle·startup_32 [arch/i386/kernel/head.S]·start_kernel [init/main.c]·lock_kernel [include/asm/smplock.h]·trap_init [arch/i386/kernel/traps.c]·init_IRQ [arch/i386/kernel/i8259.c]·sched_init [kernel/sched.c]·softirq_init [kernel/softirq.c]·time_init [arch/i386/kernel/time.c]·console_init [drivers/char/tty_io.c]·init_modules [kernel/module.c]·kmem_cache_init [mm/slab.c]·sti [include/asm/system.h]·calibrate_delay [init/main.c]·mem_init [arch/i386/mm/init.c]·kmem_cache_sizes_init [mm/slab.c]·pgtable_cache_init [arch/i386/mm/init.c]·fork_init [kernel/fork.c]·proc_caches_init·vfs_caches_init [fs/dcache.c]·buffer_init [fs/buffer.c]·page_cache_init [mm/filemap.c]·signals_init [kernel/signal.c]·proc_root_init [fs/proc/root.c]·ipc_init [ipc/util.c]·check_bugs [include/asm/bugs.h]·smp_init [init/main.c]·rest_init·kernel_thread [arch/i386/kernel/process.c]·unlock_kernel [include/asm/smplock.h]·cpu_idle [arch/i386/kernel/process.c]start_kernel( )程序用于初始化系统内核的各个部分,包括:*设置内存边界,调用paging_init( )初始化内存页面。

linux操作系统知识点

linux操作系统知识点

Linux 操作系统基础知识概览以下是一些关于Linux 操作系统的常见知识点:1.Linux 基础:●Linux 的起源和发展历史●Linux 的主要组成部分:内核、Shell、文件系统等●常见的Linux 发行版(如Ubuntu、Debian、CentOS 等)●常用的命令行工具和基本命令(如ls、cd、mkdir、rm 等)2.用户和权限管理:●用户账户的创建和管理●用户组的概念和使用●文件和目录的权限设置和管理●sudo 权限和root 用户的重要性3.文件系统:●Linux 文件系统的层级结构●常见的文件系统类型(如ext4、XFS、Btrfs 等)●挂载和卸载文件系统●磁盘和分区管理工具(如fdisk、parted 等)4.进程管理:●进程的概念和属性●进程的创建、终止和管理●进程状态的了解和监控●进程间通信的方式(如管道、信号、共享内存等)5.网络和安全性:●网络配置和网络接口管理●网络命令和工具(如ifconfig、ping、ssh 等)●防火墙和安全性措施(如iptables、SELinux 等)●远程访问和远程管理(如SSH、SCP、rsync 等)6.软件包管理:●软件包管理系统(如apt、yum、dnf 等)●软件包的安装、升级和卸载●软件包的依赖关系和解决依赖问题●软件源和仓库的管理7.Shell 脚本编程:●Shell 脚本的基础语法和结构●变量、条件语句、循环和函数的使用●Shell 命令和管道的组合●脚本的调试和错误处理以上只是Linux 操作系统知识的一些常见方面,涵盖了基础知识、用户和权限管理、文件系统、进程管理、网络和安全性、软件包管理以及Shell 脚本编程等。

要深入学习Linux,建议进一步学习和实践这些知识点,并探索更多高级主题,如网络服务配置、系统性能优化等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.创建一个目录文件/data。

解答:方法一:[root@localhost ~]# cd / #切换到根[root@localhost /]# mkdir data #在根目录下创建data目录方法二:使用绝对路径[root@localhost ~]# mkdir /data方法三:使用;分号连接多个命令,顺次执行[root@localhost ~]# cd /;mkdir data递归创建目录mkdir –p /tmp/new/ldh #在tmp目录下创建目录new,在new目录下创建ldh 目录ll /tmp/new #查看ldh目录的属性2.在/data下面创建一个名叫shizhi.txt的文件。

解答:[root@localhost ~]# touch /data/shizhi.txttouch:创建空文件如果文件已经存在更新时间戳touch后所跟文件名,可使用绝对路径或相对路径[root@localhost ~]# cd /data ; touch shizhi.txt3.为shizhi.txt文件增加内容为“I am studying linux.”。

解答:方法一:[root@localhost ~]# vim /data/shizhi.txt按i、a或o进入插入模式,输入文字I am studying linux.按Esc键退出插入模式,输入:wq,保存并退出。

[root@localhost ~]# cat /data/shizhi.txtI am studying linux.方法二:使用Here Document功能[root@localhost ~]# cat >>/data/shizhi.txt<<EOF #EOF是输入的结束标志> I am studying linux too. #键盘输入> EOF#键盘输入[root@localhost ~]# cat /data/shizhi.txtI am studying linux.I am studying linux too.方法三:使用输入重定向[root@localhost ~]# echo 'I am studying linux.' >/data/shizhi.txt[root@localhost ~]# echo 'I am studying linux.' >>/data/shizhi.txt> 输出重定向(箭头的朝向就是数据的流向),如果文件不存在,会创建文件,并将内容写入;如果文件存在,会覆盖源文件内的所有内容。

>> 追加重定向(箭头的朝向就是数据的流向),如果文件不存在,会创建文件,将内容写入;如果文件存在,在源文件的末尾添加内容。

4.把shizhi.txt文件拷贝到/tmp目录下。

解答:[root@localhost ~]# cp /data/shizhi.txt /tmp #tmp目录下复制得到文件shizhi.txtcp 复制文件或目录默认情况下不能拷贝目录参数:-r 递归使之能拷贝目录-a=all -a=-rdp -d 保存link属性-p保存文件属性练:将data目录复制到/tmp/new目录中cp –r /data /tmp/newll /tmp/new/data5.把/data目录移动到/root目录下。

解答:[root@localhost ~]# mv /data /rootmv 移动或重命名文件(目录)源文件和目标文件在同一个目录下,为改名源文件和目标文件不在同一个目录下,为剪切。

将/root/data目录名修改为/root/datanew[root@localhost ~]# mv ./data ./datanew #将data目录修改为datanew 6.进入/root目录下的datanew目录,删除shizhi.txt文件。

解答:方法一:rm命令使用比较危险,使用之前一定确认好要删除的内容不与系统文件相关。

[root@localhost ~]# cd /root/datanew/[root@localhost datanew]# pwd/root/datanew[root@localhost datanew]# rm shizhi.txtrm 删除文件或目录-f force 强制-r 递归(使之能删除目录)如果对相对路径和绝对路径非常肯定,也可以这样用:[root@localhost datanew]# touch shizhi.txt#当前目录下重新创建空文件[root@localhost datanew]# rm –rf ./datanew/shizhi.txt删除也可以使用find 结合rm方法二:[root@localhost datanew]# cd ~ #回到家目录[root@localhost ~] touch ./data/shizhi.txt[root@localhost ~]# find /root -name "shizhi.txt" |xargs rm -f7.在第6题的基础上,退出到上一级目录,删除data目录。

解答:.当前目录.. 上一级目录方法一:[root@localhost ~]# cd ./data #切换目录到/root/data[root@localhost data]# cd .. #cd与..之间需要敲一个空格[root@localhost ~]# pwd/root[root@localhost ~]# rm -r data #这种方法更常用方法二:rmdir 删除空目录[root@localhost ~]# rmdir data8.已知/root/test.txt文件的内容为hangzhoushizhixinxi要求打印test.txt内容时,不显示包含该hangzhou字符串。

解答:1.创建文件test.txt,将内容写入方法一:vi test.txt进入插入模式,输入文字,保存退出。

方法二:echo “hangzhou” >>test.txtecho “shizhi” >>test.txtecho “xinxi” >>test.txt[root@localhost ~]# cat test.txthangzhoushizhixinxi2.按要求过滤不需要显示的内容[root@localhost ~]# grep -v hangzhou test.txtshizhixinxigrep 过滤-v 排除非常重要的命令***** linux三剑客之老三方法二:[root@localhost ~]# tail -2 test.txt #显示尾部两行(本题的特殊性决定)shizhixinxi9.请使用一条命令完成创建目录/shizhi/text,即同时创建/shizhi目录与text目录。

解答:mkdir -p /shizhi/test目录的递归创建,注意-p选项。

10.已知ett.txt文件内容共有100行,现在要求只查看第20行到30行的内容,如何操作?解答:方法一:[root@localhost ~]# sed -n '20,30p' ett.txt2021222324252627282930方法二:[root@localhost ~]# head -30 ett.txt |tail -11head 默认查看文件头10行;-n 30 或将n省略,直接使用-30tail 默认查看文件尾10行;可使用tail -n 11或将n省略使用tail -11| 管道符11.用户的添加和删除新建用户test,为该添加密码,删除该用户12.权限的设置当前目录下,创建文件/test/a.txt,使属主有读写执行权限,属组,有读写,其他账户无权限touch ./test/a.txtchmod 760 /test/a.txt如何把/etc复制到/tmp下并保持原属性不变?cp -rp /etc /tmp (-p 保持文件本身属性不变)如何把/tmp/etc/man.conf移动到/tmp下并改名为test.conf设置所有人都有读写执行权限mv /tmp/etc/man.conf /tmp/test.confchmod 777 /tmp/test.conf修改/tmp/test.conf的属主为u1,属组为u2chown u1:u2 /tmp/test.conf13.编写一个脚本,要求使用键盘键入两个数字,求两个数字的加、减、乘、除运算。

解答:1.创建文件2.编写脚本3.运行脚本,并测试切换目录练习使用root用户登录1.在/root下创建working目录2.切换到/root/working目录3.切换到/usr/src目录下4.在usr目录下创建abc目录,长格式形式查看该目录属性5.切换到/usr/abc目录6.切回到root用户的家目录。

相关文档
最新文档