Linux 基础知识

69
Linux 基基基基 基基基基基基 一、

description

Linux 基础知识. 一、常用基本命令. Bash Shell 常用控制符. ENTER/Ctrl m : 当前行结束 Ctrl d :终端的输入结束 Ctrl g :控制终端响铃 Ctrl h :退格键,用于改正输入的错误 DELETE/BREAK/Ctrl c :强行终止程序. Linux 常用命令. Linux 的命令(也包括文件名等等): 对大小写是敏感的 xxx --help :显示 xxx 的帮助 xxx --version :显示 xxx 的版本号 - PowerPoint PPT Presentation

Transcript of Linux 基础知识

Page 1: Linux 基础知识

Linux 基础知识一、常用基本命令

Page 2: Linux 基础知识

Bash Shell 常用控制符 ENTER/Ctrl m :当前行结束 Ctrl d :终端的输入结束 Ctrl g :控制终端响铃 Ctrl h :退格键,用于改正输入的错误 DELETE/BREAK/Ctrl c :强行终止程序

Page 3: Linux 基础知识

Linux 常用命令 Linux 的命令(也包括文件名等等): 对大小写是敏感的 xxx --help :显示 xxx 的帮助 xxx --version :显示 xxx 的版本号 man : manual ,实际上就是察看指令用法的 he

lp ;它的说明比” --help” 要详细得多 命令补齐:指当键入的字符足以确定目录中一个唯一的文件时,只须按 Tab 键就可以自动补齐该文件名的剩下部分

Page 4: Linux 基础知识

ls (list) 功能:列出目录内容(与 dir 类似) 十分类似 DOS 的 dir 指令,但功能更为强大。 单独执行 ls 指令,会显示目前目录之内容。 常用参数:

-1 :每列仅显示一个文件或目录名称 -a 或 -all :显示所有文件和目录,包括以 . 开头的隐藏文件 -A :同 -a ,但不列出 "." 及 ".." -c :按列输出,纵向排序; -x :按列输出,横向排序 -F :在列出的文件名称后加一个符号标记(可执行文件“ *” ,目录“ /” ) -l :使用详细格式列表,包括权限标示,硬连接数目、拥有者和群组名称、文件或目录大小以及更改时间 -h :以容易理解的方式打印文件大小( k M G ) -L :如遇到性质为符号连接的文件或目录,直接列出该连接所指向之原始文件或目录 -r :反向排序 -R :递归显示下层子目录 排序: -S (大小)、 -t (创建时间)、 -u (最后存取时间)、 -X (扩展名)

Page 5: Linux 基础知识

cd (change directory) 功能:切换目录 切换目录的前提是,用户必须拥有足够权限进入目的目录 当目录中含有空格时,要用” ”将整个目录标示起来: $ cd “/mnt/harddisk/Program Files” 常用参数:

cd ~ :回到工作目录 = cd . :当前目录 .. :上级目录 - :返回切换目录后的前一个目录

Page 6: Linux 基础知识

cp (copy) 功能:复制文件或目录 同时指定多个文件或目录时,若最后一个是一个存在的目录,则将前面所有文件或目录复制到该目录中;否则,则会出现错误信息 常用参数:

-a :尽可能将文件的状态、权限等信息全部复制 -b :删除、覆盖目标文件之前先备份( ~ ) -d :当复制符号连接时,将在目标目录建立符号连接;否则会直接复制该连接指向的文件或目录 -f :强行复制,不论目标文件或目录是否存在 -i :覆盖现有文件之前先询问用户 -l :对源文件建立硬连接,而非复制文件 -p :保留源文件或目录的属性,包括拥有者、群组、权限等 -r :连同子目录一同拷贝,把所有非目录文件当普通文件拷贝 -R :连同子目录一同拷贝 -s :对源文件建立符号连接,而非复制文件 -u :仅在源文件的更改时间较目标文件新,或者名称对应的目标文件不存在时,才复制文件 -x :复制的文件或目录存放之文件系统,必须与 cp 执行时所处文件系统相同,否则不予复制

Page 7: Linux 基础知识

mv (move)

功能:移动或更名现有的文件或目录 常用参数:

-b :覆盖文件前先行备份( -backup ) -f :若目标与现有重复,则直接覆盖现有的文 件或目录( -force ) -i :覆盖前先行询问用户( -interactive ) -u :若目标文件已存在,且其文件日期不比源 文件旧,则不覆盖目标文件( -update )

Page 8: Linux 基础知识

rm (remove) 功能:删除文件或目录 欲删除目录,必须加上参数” -r” ,否则预设仅会删除文件 常用参数:

-d :直接把欲删除目录的硬连接数目删成 0 ,然后删除目录;它将造成目录下文件失去连接,导致必须执行 fsck 指令检查磁盘 -f :强制删除文件或目录,本参数将忽略放在它前面 的” -i” 参数 -i :删除既有文件或目录之前先询问用户,本参数将忽 略放在它前面的” -f” 参数 -r :连同这个目录下面的子目录都删除

Page 9: Linux 基础知识

mkdir (make directories)

功能:建立目录 建立目录的同时可以设置目录权限 常用参数:

-m :设置目录权限,权限设置法见“ Linux下权限表示法” -p :若所要建立目录的上层目录目前尚未建 立,则会一并建立上层目录

Page 10: Linux 基础知识

rmdir (remove directory)

功能:删除目录 只能删除空目录,若目录非空,则会出现错误信息 常用参数:

-p :删除指定目录之后,若其上层目录已空, 则将其一并删除 --ignore-fail-on-non-empty :忽略非空目录的 错误信息

Page 11: Linux 基础知识

压缩及解压缩命令 tar [ 参数(常用 -xzvf ) ] [ 归档文件名 ] [ 原文件或目录 ] 功能:广泛用于建立归档文档,这个命令将文件及目录复制到归档文件中,原文件并不会有被删除的危险。同时还可通过参数调用相应的压缩工具进行压缩及解压缩 常用参数:

-c :创建文档,而不运行浏览现有文档或取出文档中的文件 -f :表示存档到文件而非磁盘,一般必选 -v :显示每个复制文件的名称 -x :解压缩 -z :使用 gzip 或 ungzip -j :使用 bzip

unzip :用于解扩展名为“ .zip” 的压缩文件。

Page 12: Linux 基础知识

gzip

功能:在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用,压缩生成文件扩展名为 .gz 常用参数:

-c :将输出写到标准输出上,并保留原有文件 -d :解压缩 -I :对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息 -r :递归处理 -t :测试,检查压缩文件是否完整

Page 13: Linux 基础知识

网络常用命令( 1 ) ifconfig 功能:显示或配置网络设备 常需设置的有:

IP地址、子网掩码、网络接口、硬件本身的 IRQ 及 I/O 等

常用参数: [设备 ] [IP] :设置目前网络设备的 IP地址 down :关闭指定的网络设备 up :启动指定的设备 netmask :设置网络设备的子网掩码 [设备 ] :指定网络设备的名称。如第一网卡为 eth0

Page 14: Linux 基础知识

网络常用命令( 2 ) talk :与在线某个使用者对话

$ talk user [tty-name]$ talk userid@hostname

write :发信息给某个人$ write user [tty]$ msg [y/n]

wall :对在线使用者广播$ wall [messages]

Page 15: Linux 基础知识

Linux 基础知识二、文件操作命令

Page 16: Linux 基础知识

cat (concatenate) ( 1 ) 功能:结合多个文件,并将它们的内容输出到标准输出设备,类似于 DOS 下面的 type 命令 $ cat file1 file2  依顺序显示 file1,file2 的内容 常用参数:

-b :列出文件内容时,在所有非空白行之开头标上编号 -E :在每一行的最后标上“ $” 符号 -n :在每一行的开头标上编号 -s :当内容某部分之空白列超过一行以上时,该处仅以一空白行表示 -T :将跳格字符( Tab )以” ^I” 表示 -v :除了增列字符( LFD )及跳格字符之外,其他控制字符皆以” ^” 表示,高位字符( ASCII>127 )则用” M-” 表示 -A = -vET , -e = -vE , -t =-vT

Page 17: Linux 基础知识

cat ( 2 ) 若不指定任何文件名称,或是所给文件名为“-”,则 cat 指令会从标准输入设备(如键盘)读取数据,然后将所得数据输出至输出设备 $ cat Linux is interesting!! 键入后按“ ENTE

R” Linux is interesting!! 系统回应

Page 18: Linux 基础知识

cat ( 3 ) 可以运用 shell 的重定向字符“ >” 和“ >>” ,将多个文件的内容合并成一个文件 e.g. 将 file1 和 file2合并成一个文件 file3 : $ cat file1 file2 > file3 若 file3已经存在,则其内容会被覆盖。欲避免之,可用” >>” ,新的内容会附在原有内容之后,而不会覆盖它 “>>” 比“ >” 更加常用

Page 19: Linux 基础知识

用 cat编辑文本文件 cat > file1

结果是会“空出一行空白行”,等待你输入文字,输入完毕后再按 Ctrl+c 或 Ctrl+d ,就会结束编辑,并产生 file1 这个文件,而 file1 的内容就是你刚刚输入的内容

Page 20: Linux 基础知识

Linux 下的文件详细信息-rw-r--r-- 1 root root 15228 2003-01-25 a2ps.cfg-rw-r--r-- 1 root root 2562 2003-01-25 a2ps-site.cfg-rw-r--r-- 1 root root 47 12 月 26 23:39 adjtimedrwxr-xr-x 2 root root 4096 2005-05-16 aep-rw-r--r-- 1 root root 688 2003-02-04 aep.conf

文件类型

文件权限 链接个数文件属主

名 用户分组名

文件长度 文件上次被修改的时间和日期

文件名

Page 21: Linux 基础知识

Linux 文件权限表示法 十位表示符意义如下:

第一位表示文件类型: - :常规文件; d :目录; b :块特殊设备c :字符特殊设备; p :有名管道s :信号灯; m :共享存储器

后九位表示文件权限: 权限由三个字符串组成,这三个字符串分别表示:该文件所有者的权限、组中其他人的权限和系统中其人的权限 每个字符串又由三个字符组成,依次表示对文件的读(用字符 r 表示)、写(用字符 W 表示)和执行权限(用字符 x 表示)。当用户没有相应的权限时,该权限的对应位置用短线“ -” 来表示。

Page 22: Linux 基础知识

查找文件命令 find [路径 ] [ 参数 ] [查找相关内容 ]

功能:对某个特定文件、某些特定文件和某种类型的文件进行检索,可以根据名字、类型、文件属主以及上次修改时间来检索 常用参数:

-name :检索文件名中包含查找内容字符串的文件 -type :检索相应类型的文件( d 、 c 、 l 等) -user :检索创建用户为查找内容的文件

whereis 文件名 locate  文件名

Page 23: Linux 基础知识

查看文件 more/less 命令:显示长文本文件的指令

more 指令可以使超过一页的文件临时停留在屏幕,等你按任何的一个键以后,才继续显示 less 除了有 more 的功能以外,还可以用方向键往上或往下的滚动文件 阅读文章时, less 是个非常好的选择

clear 命令:用来清除屏幕的 pwd 命令:显示用户当前的工作路径 tail – 显示文件最后几行

tail –f /var/log/exp 预设 10 行 tail –30 /var/log/exp

head – 显示文件开始几行 head –10 /var/log/exp

Page 24: Linux 基础知识

在文件中查找 grep :在文件中查找符合条件的字符串 若不指定文件,或文件名为” -” ,则会从标准输入设备读取数据 常用参数:

-i :忽略字符大小写之差别 -I :列出内容符合所给范本的文件名 -L :列出内容不符合所给范本的文件名 -r :连同子目录中的文件一起进行查找 -v :反转查找,即查找所有不含所给范本的行的内容 -w :只显示全字符合的行 -x :只显示全行符合的行

Page 25: Linux 基础知识

文件内容统计 wc ( word count ):统计指定文件中的字节数、字数、行数,并将统计结果显示输出。 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。

wc 同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。 常用参数:

-c :统计字符数。 -l :统计行数。 -w :统计字数。

Page 26: Linux 基础知识

文件权限控制命令 chmod :改变文件权限 文件权限设定的方法:

使用字符串设置权限 使用八进制数设置权限另外,文件和目录的权限还可用八进制数字模式来表示。三个八进制数字分别代表 user 、 group 、 others 的权限。执行、读和写所对应的数值分别是 1 , 2 和 4 。

若要 rwx 属性则 4+2+1=7 ; 若要 rw- 属性则 4+2=6 ; 若要 r-x 属性则 4+1=5 。

chown :改变文件的拥有者或群组 -R :递归处理

Page 27: Linux 基础知识

链接文件命令 ln :链接文件或目录。 这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。 用法:

ln [选项 ] 目标 [链接名 ] ln [选项 ] 目标 目录

默认情况下, ln产生硬链接 如果 [链接名 ] 是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件

Page 28: Linux 基础知识

链接简介 符号链接 (软链接 ) Symbolic Link

在文件内存储连接路径 ln -s 源文件 目标文件

硬链接 HardLink 相当于文件的别名 ln 源文件 目标文件 不能建立指向目录的硬链接链接文件和被链接文件必须位于同一文件系统中

查看文件 / 目录的 inode ls -i

Page 29: Linux 基础知识

Linux 基础知识三、系统管理命令

Page 30: Linux 基础知识

基本管理命令( 1 ) login/logout

用户登入、退出系统命令 dmesg

察看开机的讯息 ( 按 shift+PageUp 、 shift+PageDown 翻页 ) su

切换成为 root 系统管理员 一般使用者切换成为其它身份使用者需要输入该欲切换使用者密码。若是执行者为 root 系统管理员的话,则不需要输入密码即可切换。

passwd 变更使用者密码 passwd [userid] : 设定 userid 该账号密码。

Page 31: Linux 基础知识

基本管理命令( 2 ) shutdown

进行关机或者是进入单人维护模式 $ shutdown 直接进入单人维护模式 $ shutdown –h now (关机后停止系统 )= halt $ shutdown –r now (关机后重新开机 ) $ shutdown –h +10 “System will reboot after ten min”

who :查询目前有哪些人登入系统主机内 whoami :查询自己登入的账号名称 chsh :设定或者是修改使用者所使用的 shell chfn :设定或是修改使用者数据 chown :改变文件目录拥有者 chgrp :改变文件目录群组 chmod :改变文件权限

Page 32: Linux 基础知识

了解所用系统的信息 mount 所挂装分区 fdisk -l /dev/hda 硬盘分区状况 df -h 硬盘分区的使用情况 du -sh 目录占用空间 uname -a 所用 Linux 的版本号 echo $SYMBOL 显示变量 SYMBOL 的内容

$ echo $PATH

Page 33: Linux 基础知识

文件系统的挂载 mount 功能:挂入文件系统 mount 可将指定设备中的文件系统挂载到 Linux 的目录下 在 /etc/fstab 中,设置了一些经常使用的设备,以方便挂入。 与其对应的是 umount 指令 常用参数:

mount 直接回车是显示当前所 mount 的状态 -a :挂载 /etc/fstab 中设置的所有设备 -n :挂载时不将信息记录于 /etc/mtab 中 -o :指定挂载文件系统时的选项,详见man -r :以只读方式挂载 -t < 文件系统类型 > :指定设备的文件系统类型,常用类型见man

Page 34: Linux 基础知识

mount 的机制 在一些操作系统(如 Windows )中,计算机通过设备名来识别设备 而 Linux采用单一的目录树,通过mount 到目录树的分支上来查找存储设备(实际上就是文件)的内容 mount配合服务能完成许多看起来 Mission impo

ssible 的事情。所有的设备在 Linuxer眼里都是文件。读盘(无论什么盘)=读文件,甚至可以从内核级支持虚拟光盘镜像 mount 在挂载文件系统时会记录信息于 /etc/mtab中。

Page 35: Linux 基础知识

一些常用设备的 mount mount fat32 分区: mount -o codepage=936, iocharset=cp936 /dev/hda7 /mnt/cdrom

mount iso 文件: mount -o loop /ex.iso /mnt/cdrom

mount软盘: mount /dev/fd0 /mnt/floppy

mount光盘: mount -t iso9660 /dev/cdrom /mnt/cdrom

mount USB闪存: mount /dev/sda1 /mnt/cdrom

mount Samba : mount -t smbfs -o codepage=cp936 //192.168.0.123/smbshare /home/usr/smb

Page 36: Linux 基础知识

umount

功能:卸载文件系统 常用参数:

-a :卸载 /etc/mtab 中记录的所有文件系统 -n :卸载时不将信息存入 /etc/mtab 中 -r :若无法成功卸载,则尝试以只读的方式重新挂入文件系统 -t :仅卸载选项中所指定的文件系统

除了直接指定文件系统外,也可以用设备名称或挂载点来表示目标文件系统

Page 37: Linux 基础知识

Linux 基础知识四、系统配置文件

Page 38: Linux 基础知识

目录 /etc 这个目录是 Linux 系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统, x 系统配置文件,设备配置信息,设置用户信息等都在这个目录下。 passwd 、 fstab 、 hosts 、 lilo.conf 、 pro

file 、 services 、 shadow 、 shells

Page 39: Linux 基础知识

passwd

是用户配置文件,即用户数据库,所含的域有:用户名、实际名称、该用户主目录、密码(如果未被 shadow 程序加密过 )以及有关各个用户的其它一些信息。

有关更详细的信息,请看” /man{passwd} manual page”

Page 40: Linux 基础知识

fstab

列出了在系统启动时由” mount –a” 命令自动加载的文件系统(在 /etc/rc 或者同等的启动文件中)。 同时也包含由” swapon –a” 自动使用的的交换区的信息。 有关更详细的信息,请看 mount 的 manua

l page 。

Page 41: Linux 基础知识

hosts

定义了主机名和 ip地址的对应,其中也有将要运行 DNS 的电脑的 ip地址和主机名 即本地网络中已知主机的全部列表 内容格式: 127.0.0.1 localhost.localdomain localhost

Page 42: Linux 基础知识

lilo.conf

包含系统的缺省引导命令行参数,还有启动时使用的不同映象。 在 LILO 引导提示的时候按 Tab 键就可以看到这个列表。

Page 43: Linux 基础知识

/etc/profile

Bourne Shell 在登录或启动时所执行的文件。系统管理员可以使用它为所有用户设置全局设置值。 其中典型的处理内容是: PATH , USER等重要的环境变数的设定,程序异常终了时 croe 文件的大小的限制,新建文件的读写属性等。

Page 44: Linux 基础知识

services

将网络服务名转换为端口号/协议。 由 inetd 、 telnet 、 tcpdump 和一些其它程序读取。 有一些 C访问例程。

Page 45: Linux 基础知识

shadow 安装了影子( shadow )口令软件的系统中的影子口令文件,包含加密后的用户帐号密码信息,还可以包括密码时效信息 。 影子口令将加密的口令从 /etc/passwd 中移入 /et

c/shadow 中。 影子口令控制:

pwconv :启用影子口令 pwunconv :恢复原状态

shadow 只有 root 用户才能读取,这使得破解口令变的极其困难。

Page 46: Linux 基础知识

shells

列出可信赖的 shell 。 chsh 命令允许用户改变他们的登录 shell为 shells 中所列出的 shell 之一。 提供 FTP服务的服务器进程 ftpd 将检查用户的 shell 是否在 /etc/shells 中被列出,否则系统将阻止该用户的登录。

Page 47: Linux 基础知识

Linux 基础知识五、 /proc 文件系统

Page 48: Linux 基础知识

/proc 文件系统 文件夹 /proc 下为系统的相关信息 是一个假的文件系统。它不存在于磁盘某个磁盘上。而是由核心在内存中产生 是作为独立但虚拟的文件系统提供的一个接口:

用来显示一些它的数据结构 .这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。 很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。 可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的;除非你把它拷贝到什么地方, /proc目录下没有任何东西占用任何磁盘空间

Page 49: Linux 基础知识

重要文件( 1 ) /proc/x :进程号为 x 的进程信息目录

每个进程在 /proc 下均拥有一个名为其进程号的目录 /proc/cpuinfo :处理器信息,如类型、制造商、型号和性能 /proc/devices :当前运行的核心配置的设备驱动的列表 /proc/dma :当前使用的 DMA 通道 /proc/filesystems :核心配置的文件系统,即查看当前 Linux 所支持的所有文件系统

Page 50: Linux 基础知识

重要文件( 2 ) /proc/interrupts :显示使用的中断 /proc/ioports :当前使用的 I/O 端口 /proc/kcore :系统物理内存映象,与物理内存大小完全一样,但不实际占用这么多的内存 /proc/kmsg :核心输出的消息(同时还会被送到 syslog ) /proc/ksyms :核心符号表

Page 51: Linux 基础知识

重要文件( 3 ) /proc/loadavg :系统的“平均负载” /proc/meminfo :存储器使用信息,包括物理内存和 swap /proc/modules :当前所加载的核心模块 /proc/net :网络协议信息 /proc/stat :系统的不同状态 /proc/uptime :系统启动的时间长度

Page 52: Linux 基础知识

/proc/sys 目录 其中存放的是一些内核可调参数,只有超级用户才拥有对所有这些文件的写访问权限;其他用户只有读权限。 此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。 注意:在更改其中任何文件的任何值之前,必须确保自己全面了解该文件(或者做好重装的准备),以避免对系统造成不可修复的损害。

Page 53: Linux 基础知识

/proc/sys/kernel threads-max :内核可运行的最大任务数。 ctrl-alt-del :如果值为 1 ,那么顺序按下这几个键将重新引导系统。 sysrq :如果值为 1 , Alt-SysRq 则为激活状态。 ostype :显示操作系统的类型。 hostname :系统的主机名。 domainname :网络域,系统是该网络域的一部分。 modprobe :常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;当然也有列出内核所有模块和移除模块的功能

Page 54: Linux 基础知识

Linux 基础知识六、 vi 的使用

Page 55: Linux 基础知识

vi 简介 vi 是 Linux 下自带的一个终端模式下的编辑器 vi主要有三种模式

命令模式( Command mode )vi启动时的默认模式 键盘输入操作当作命令

插入模式( Insert mode ) “~” 表示未使用部分ESC 回到命令模式

最后一行模式( Last line mode )

Page 56: Linux 基础知识

基本操作指令 进入 Insert mode

i : 插入 , 从目前游标所在之处插入所输入之文字。 a : 增加 , 目前游标所在之下一个字开始输入文字。 o : 从新的一行行首开始输入文字。

移动光标 h 、 j 、 k 、 l 分别为左、下、上、右 - :向上移一行; + :向下移一行 n- :向上移 n 行; n+ :向下移 n 行 Ctrl f :向后一页; Ctrl b :向前一页 Ctrl d : 向后移动半页; Ctrl u : 向前移动半页 G :移动至文件最末一行 也可以通过键盘上的方向键来移动光标

Page 57: Linux 基础知识

Last line mode

列出行号 : set nu ---- 为文件中每一行编号

查找字符串 : /string ---- 向下查找 string 字符串 : ?string ---- 向上查找 string 字符串

:help ---- vi 的说明 离开 vi 及存档在 Command mode 下可按 ':' 键进入 Last line mode: w filename ( 存入指定文件 ) : wq (写入并离开 vi) : q! (离开并放弃编辑的文件 ) Ctrl z ---- 暂时离开 vi 回到 shell fg ---- 在 shell 执行 fg 回到 vi 中

Page 58: Linux 基础知识

删除指令 X 或 Delete 键 ---- 删除光标前一个字符 x ---- 删除光标所在字符 #x ---- 删除 # 个字符,例如 5x d ---- 删除标记区的数据 D ---- 删除光标到结尾的所有字符 dd ---- 删除光标所在的行 #dd ---- 删除包括光标行所在行的下几行 :n,md ---- 删除第 n ~ m 行

Page 59: Linux 基础知识

复制指令 yw ---- 复制光标处一个字 #yy/#Y ---- 复制光标处所在 # 行 P ---- 将复制好的内容粘贴到光标处(之上) p ---- 将复制好的内容贴于游标所在行之下 :n1,n2 m n3 ---- 把 n1 ~ n2 行 move 到第 n3 行后 :n1,n2 c n3 ---- 把 n1 ~ n2 行数据复制第 n3 行后 标记指令:

v ---- 字符标记; V ---- 行标记; Ctrl V ---- 矩形标记 y ---- 复制标记区的数据

Page 60: Linux 基础知识

替换指令 r ---- 替换光标所在字符 R ---- 替换光标处字符直到按 <ESC> 键为止 :s/string1/string2 ---- 把光标该行第一个 string1替换成为 string2 :s/string1/string2/g ---- 同上,不过是同一行内容进行替换 :%s/string1/string2/g ---- 同上,不过是全部内容进行替换 :n1,n2s/string1/string2/g ---- 把 n1 ~ n2 的 strin

g1替换成为 string2

Page 61: Linux 基础知识

Linux 基础知识七、进程有关命令

Page 62: Linux 基础知识

进程状况查看命令 ps (process status) 功能:报告程序执行状况,可以打配 kill 指令随时中断、删除不必要的程序 常用参数:

a :显示现行终端机下的所有程序,包括其他用户之程序 u :以用户为主的格式来显示程序状况 x :显示所有程序,不以终端机来区分 -e/-A :显示所有程序 -f :显示 UID 、 PPIP 、 C 和 STIME栏位 -w :采用宽阔的格式来显示程序状况

Page 63: Linux 基础知识

ps ( 2 ) 常用: ps aux --- 查询整个系统所有进程状况 输出项意义:

USER域:指明了是哪个用户启动了这个命令 与系统资源有关: %CPU(CPU占用率 ) , %MEM

( 内存占用率 ) , VSZ(虚拟内存大小,即如果一个程序完全驻留在内存的话需要占用多少内存空间 ) , RSS( 常驻集大小,即当前实际占用了多少内存 )

TTY域:控制终端,即进程在哪个终端运行 STAT域:显示了进程当前的状态

S :睡眠; R :运行;

Page 64: Linux 基础知识

kill 功能:删除执行中的程序或工作 kill 可将指定的信号送至进程。预设为 SIGTERM

(15) ,可将进程中止,常结合 ps 使用 若仍无法中止该程序,可使用 SIGKILL(9) 信号尝试强制中止 常用参数:

-l :列出全部或指定的信号名称和编号 -s :指定要送出的信号。若是指定信号名称,可用全名,或者仅用 SIG 之后的字符串

用法: kill PID ; kill -s 9 PID

Page 65: Linux 基础知识

Linux 基础知识七、 GNU编译器 gcc

Page 66: Linux 基础知识

GNU 基础知识 GNU 是由“ GNU’s Not Unix” 所递归定义出的首字母缩写语,它的发音为“ guh-NEW” GNU汇编器 as ,编译器 gcc ,链接器 ld gcc ( GNU Compiler Collection ),是多种 GN

U编译器的集合,包含一系列针对不同语言和不同目标平台,以及可运行在不同主机系统上的编译器 其中的 C编译器并不完全符合 ANSI C 标准 gcc 先将高级语言代码转化为一种内部语言,再将其优化后生成可执行代码,使其便于移植以及新语言的添加

Page 67: Linux 基础知识

gcc 起步 $ cat >hello.c

#include <stdio.h>int main(void){printf (“Hello world, Linux programming!\n”);return 0;}

然后执行下面的命令编译和运行这段程序: $ gcc hello.c -o hello$ ./helloHello world, Linux programming!

Page 68: Linux 基础知识

gcc 程序编译四阶段 预处理 (Pre-Processing) 编译 (Compiling) 汇编 (Assembling) 链接 (Linking)

Page 69: Linux 基础知识

gcc 常用参数 -c :只预处理,编译和汇编生产 obj 文件,而不连接成为可执行文件,通常用于编译不包含主程序的子程序文件。 -o :指定输出文件名,如果不给出这个选项, gcc 就给出预设的可执行文件 a.out 。 -g :在可执行文件中输出调试信息,通常是为调试器 gdb 所用,要想对源代码进行调试,我们就必须加入这个选项。 -O :对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 -O2 :比 -O 更好的优化编译、连接,当然整个编译、连接过程会更慢 -Wall :打开警报信息开关,在编译的过程中如果 gcc 遇到一些它认为可能会发生错误的地方就会提出一些相应的警告和提示信息。提示我们注意这个地方是不是有什么失误导致的错误。 -ldirname :指定头文件搜索目录。

gcc foo.c –I/home/chen/include –o foo -Ldirname :指定在目录中需要搜索的库 ( 动态库 .so 和静态库 .a)

gcc foo.c –L/home/chen/lib –lfoo –o foo