- 一、常用基本命令
- Bash Shell常用控制符
- ENTER/Ctrl m:当前行结束
- Ctrl d:终端的输入结束
- Ctrl g:控制终端响铃
- Ctrl h:退格键,用于改正输入的错误
- DELETE/BREAK/Ctrl c:强行终止程序
- Linux常用命令
- Linux的命令(也包括文件名等等):
对大小写是敏感的
- xxx –help:显示xxx的帮助
- xxx –version:显示xxx的帮助
- man: manual,实际上就是察看指令用法的help;它的说明比”–help”要详细得多
- 命令补齐:指当键入的字符足以确定目录中一个唯一的文件时,只须按 Tab 键就可以自动补齐该文件名的剩下部分
- 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(扩展名)
- cd ~:回到工作目录 = cd
- .:当前目录
- ..:上级目录
- -:返回切换目录后的前一个目录
- -a:尽可能将文件的状态、权限等信息全部复制
- -b:删除、覆盖目标文件之前先备份(~)
- -d:当复制符号连接时,将在目标目录建立符号连接;否则会直接复制该连接指向的文件或目录
- -f:强行复制,不论目标文件或目录是否存在
- -i:覆盖现有文件之前先询问用户
- -l:对源文件建立硬连接,而非复制文件
- -p:保留源文件或目录的属性,包括拥有者、群组、权限等
- -r:连同子目录一同拷贝,把所有非目录文件当普通文件拷贝
- -R:连同子目录一同拷贝
- -s:对源文件建立符号连接,而非复制文件
- -u:仅在源文件的更改时间较目标文件新,或者名称对应的目标文件不存在时,才复制文件
- -x:复制的文件或目录存放之文件系统,必须与cp执行时所处文件系统相同,否则不予复制
- -b:覆盖文件前先行备份(-backup)
- -f:若目标与现有重复,则直接覆盖现有的文
- cd (change directory)
- 功能:切换目录
- 切换目录的前提是,用户必须拥有足够权限进入目的目录
- 当目录中含有空格时,要用” ”将整个目录标示起来:
- $ cd “/mnt/harddisk/Program Files”
- 常用参数:
- cp (copy)
- 功能:复制文件或目录
- 同时指定多个文件或目录时,若最后一个是一个存在的目录,则将前面所有文件或目录复制到该目录中;否则,则会出现错误信息
- 常用参数:
- mv (move)
- 功能:移动或更名现有的文件或目录
- 常用参数:
件或目录(-force)
- -i:覆盖前先行询问用户(-interactive)
- -u:若目标文件已存在,且其文件日期不比源
文件旧,则不覆盖目标文件(-update)
- rm (remove)
- 功能:删除文件或目录
- 欲删除目录,必须加上参数”-r”,否则预设仅会删除文件
- 常用参数:
- -d:直接把欲删除目录的硬连接数目删成0,然后删除目录;它将造成目录下文件失去连接,导致必须执行fsck指令检查磁盘
- -f:强制删除文件或目录,本参数将忽略放在它前面
的”-i”参数
- -i:删除既有文件或目录之前先询问用户,本参数将忽
略放在它前面的”-f”参数
- -r:连同这个目录下面的子目录都删除
- -m:设置目录权限,权限设置法见“Linux下权限表示法”
- -p:若所要建立目录的上层目录目前尚未建
- mkdir (make directories)
- 功能:建立目录
- 建立目录的同时可以设置目录权限
- 常用参数:
立,则会一并建立上层目录
- rmdir (remove directory)
- 功能:删除目录
- 只能删除空目录,若目录非空,则会出现错误信息
- 常用参数:
- -p:删除指定目录之后,若其上层目录已空,
则将其一并删除
- –ignore-fail-on-non-empty:忽略非空目录的
错误信息
- 压缩及解压缩命令
- tar [参数] [归档文件名] [原文件或目录]
- 功能:广泛用于建立归档文档,这个命令将文件及目录复制到归档文件中,原文件并不会有被删除的危险。同时还可通过参数调用相应的压缩工具进行压缩及解压缩
- 常用参数:
- -c:创建文档,而不运行浏览现有文档或取出文档中的文件
- -f:表示存档到文件而非磁盘,一般必选
- -v:显示每个复制文件的名称
- -x:解压缩
- -z:使用gzip或ungzip
- -j :使用bzip
- -c:将输出写到标准输出上,并保留原有文件
- -d:解压缩
- -I:对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息
- -r:递归处理
- -t:测试,检查压缩文件是否完整
- IP地址、子网掩码、网络接口、硬件本身的IRQ及I/O等
- [设备] [IP]:设置目前网络设备的IP地址
- down:关闭指定的网络设备
- up:启动指定的设备
- netmask:设置网络设备的子网掩码
- [设备]:指定网络设备的名称。如第一网卡为eth0
- $ talk user [tty-name]
- $ talk userid@hostname
- $ write user [tty]
- $ msg [y/n]
- $ wall [messages]
- -b:列出文件内容时,在所有非空白行之开头标上编号
- -E:在每一行的最后标上“$”符号
- -n:在每一行的开头标上编号
- -s:当内容某部分之空白列超过一行以上时,该处仅以一空白行表示
- -T:将跳格字符(Tab)以”^I”表示
- -v:除了增列字符(LFD)及跳格字符之外,其他控制字符皆以”^”表示,高位字符(ASCII>127)则用”M-”表示
- -A = -vET,-e = -vE,-t =-vT
- 结果是会“空出一行空白行”,等待你输入文字,输入完毕后再按Ctrl+c或Ctrl+d,就会结束编辑,并产生file1这个文件,而file1的内容就是你刚刚输入的内容
- 第一位表示文件类型:
- unzip:用于解扩展名为“.zip”的压缩文件。
- gzip
- 功能:在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用,压缩生成文件扩展名为.gz
- 常用参数:
- 网络常用命令(1)
- ifconfig功能:显示或配置网络设备
- 常需设置的有:
- 常用参数:
- 网络常用命令(2)
- talk:与在线某个使用者对话
- write:发信息给某个人
- wall:对在线使用者广播
- Linux基础知识
- 二、文件操作命令
- cat (concatenate)(1)
- 功能:结合多个文件,并将它们的内容输出到标准输出设备,类似于DOS下面的type命令
- $ cat file1 file2 à 依顺序显示file1,file2的内容
- 常用参数:
- cat(2)
- 若不指定任何文件名称,或是所给文件名为“-”,则cat指令会从标准输入设备(如键盘)读取数据,然后将所得数据输出至输出设备
- $ cat
- Linux is interesting!! à键入后按“ENTER”
- Linux is interesting!! à系统回应
- cat(3)
- 可以运用shell的重定向字符“>”和“>>”,将多个文件的内容合并成一个文件
- e.g. 将file1和file2合并成一个文件file3:
- $ cat file1 file2 > file3
- 若file3已经存在,则其内容会被覆盖。欲避免之,可用”>>”,新的内容会附在原有内容之后,而不会覆盖它
- “>>” 比“>”更加常用
- 用cat编辑文本文件
- cat > file1
- Linux下的文件详细信息
- Linux文件权限表示法
- 十位表示符意义如下:
¡ -:常规文件;d:目录;b:块特殊设备
¡ c:字符特殊设备;p:有名管道
¡ s:信号灯;m:共享存储器
- 后九位表示文件权限:
¡ 权限由三个字符串组成,这三个字符串分别表示:该文件所有者的权限、组中其他人的权限和系统中其人的权限
¡ 每个字符串又由三个字符组成,依次表示对文件的读(用字符r表示)、写(用字符W表示)和执行权限(用字符x表示)。当用户没有相应的权限时,该权限的对应位置用短线“-”来表示。
- Linux文件类型分类
- Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。
- Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;现在我们进行一个简要的说明;
- 1 普通文件
[root@localhost ~]# ls -lh install.log
-rw-r–r– 1 root root 53K 03-16 08:54 install.log
我们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r–r– ,值得注意的是第一个符号是 – ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具… …. 或 cp工具等。这类文件的删除方式是用rm 命令; - Linux文件类型分类
- 2 目录
[root@localhost ~]# ls -lh
总计 14M
-rw-r–r– 1 root root 2 03-27 02:00 fonts.scale
-rw-r–r– 1 root root 53K 03-16 08:54 install.log
-rw-r–r– 1 root root 14M 03-16 07:53 kernel-6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17
drwxr-xr-x 2 root root 4.0K 04-19 10:53 mydir
drwxr-xr-x 2 root root 4.0K 03-17 04:25 Public
当我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。 - 3 字符设备或块设备文件
如时您进入/dev目录,列一下文件,会看到类似如下的;
[root@localhost ~]# ls -la /dev/tty
crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty
[root@localhost ~]# ls -la /dev/hda1
brw-r—– 1 root disk 3, 1 2006-04-19 /dev/hda1
我们看到/dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备
我们看到 /dev/hda1 的属性是 brw-r—– ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备;
这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。 - Linux文件类型分类
- 4 套接口文件
当我们启动MySQL服务器时,会产生一个mysql.sock的文件。
[root@localhost ~]# ls -lh /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock
注意这个文件的属性的第一个字符是 s。我们了解一下就行了。 - 5 符号链接文件
[root@localhost ~]# ls -lh setup.log
lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log -> install.log
当我们查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln -s 源文件名 新文件名。上面是一个例子,表示setup.log是install.log的软链接文件。怎么理解呢?这和Windows操作系统中的快捷方式有点相似。 - 符号链接文件的创建方法举例;
[root@localhost ~]# ls -lh kernel-6.15-1.2025_FC5.i686.rpm
-rw-r–r– 1 root root 14M 03-16 07:53 kernel-6.15-1.2025_FC5.i686.rpm
[root@localhost ~]# ln -s kernel-6.15-1.2025_FC5.i686.rpm kernel.rpm
[root@localhost ~]# ls -lh kernel*
-rw-r–r– 1 root root 14M 03-16 07:53 kernel-6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root 33 04-19 11:27 kernel.rpm -> kernel-6.15-1.2025_FC5.i686.rpm - 查找文件命令
- find [路径] [参数] [查找相关内容]
- 功能:对某个特定文件、某些特定文件和某种类型的文件进行检索,可以根据名字、类型、文件属主以及上次修改时间来检索
- 常用参数:
¡ -name:检索文件名中包含查找内容字符串的文件
¡ -type: 检索相应类型的文件(d、c 、l等)
¡ -user:检索创建用户为查找内容的文件
- whereis 文件名
- locate 文件名
- 查看文件
- more/less命令:显示长文本文件的指令
- more指令可以使超过一页的文件临时停留在屏幕,等你按任何的一个键以后,才继续显示
- less除了有more的功能以外,还可以用方向键往上或往下的滚动文件
- 阅读文章时,less是个非常好的选择
- tail –f /var/log/exp 预设 10 行
- tail –30 /var/log/exp
- head –10 /var/log/exp
- -i:忽略字符大小写之差别
- -I:列出内容符合所给范本的文件名
- -L:列出内容不符合所给范本的文件名
- -r:连同子目录中的文件一起进行查找
- -v:反转查找,即查找所有不含所给范本的行的内容
- -w:只显示全字符合的行
- -x:只显示全行符合的行
- -c:统计字符数。
- -l:统计行数。
- -w:统计字数。
- 使用字符串设置权限
- 使用八进制数设置权限
- 另外,文件和目录的权限还可用八进制数字模式来表示。三个八进制数字分别代表user、group、others的权限。执行、读和写所对应的数值分别是1,2和4。
- clear命令:用来清除屏幕的
- pwd命令:显示用户当前的工作路径
- tail – 显示文件最后几行
- head – 显示文件开始几行
- 在文件中查找
- grep:在文件中查找符合条件的字符串
- 若不指定文件,或文件名为”-”,则会从标准输入设备读取数据
- 常用参数:
- 文件内容统计
- wc(word count):统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
- 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。
- 常用参数:
- 文件权限控制命令
- chmod:改变文件权限
- 文件权限设定的方法:
¡ 若要rwx属性则4+2+1=7;
¡ 若要rw-属性则4+2=6;
¡ 若要r-x属性则4+1=5。
- chown:改变文件的拥有者或群组
- -R:递归处理
- 链接文件命令
- ln:链接文件或目录。
- 这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。
- 用法:
- ln [选项] 目标 [链接名]
- ln [选项] 目标 目录
- 在文件内存储连接路径
- ln -s 源文件 目标文件
- 相当于文件的别名
- ln 源文件 目标文件
- 不能建立指向目录的硬链接
- 链接文件和被链接文件必须位于同一文件系统中
- ls -i
- 用户登入、退出系统命令
- 察看开机的讯息 (按 shift+PageUp、shift+PageDown 翻页)
- 切换成为 root 系统管理员
- 一般使用者切换成为其它身份使用者需要输入该欲切换使用者密码。若是执行者为 root 系统管理员的话,则不需要输入密码即可切换。
- 变更使用者密码
- passwd [userid] : 设定 userid 该账号密码。
- 进行关机或者是进入单人维护模式
- $ shutdown 直接进入单人维护模式
- $ shutdown –h now (关机后停止系统)=halt
- $ shutdown –r now (关机后重新开机)
- $ shutdown –h +10 “System will reboot after ten min”
- $ echo $PATH
- mount 直接回车是显示当前所mount 的状态
- -a:挂载/etc/fstab中设置的所有设备
- -n:挂载时不将信息记录于/etc/mtab中
- -o:指定挂载文件系统时的选项,详见man
- -r:以只读方式挂载
- -t <文件系统类型>:指定设备的文件系统类型,常用类型见man
- -a:卸载/etc/mtab中记录的所有文件系统
- -n:卸载时不将信息存入/etc/mtab中
- -r:若无法成功卸载,则尝试以只读的方式重新挂入文件系统
- -t:仅卸载选项中所指定的文件系统
- 用户名、实际名称、该用户主目录、密码(如果未被 shadow 程序加密过 )以及有关各个用户的其它一些信息。
- pwconv:启用影子口令
- pwunconv:恢复原状态
- 用来显示一些它的数据结构.这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。
- 每个进程在/proc下均拥有一个名为其进程号的目录
- 命令模式(Command mode)
- 默认情况下,ln产生硬链接
- 如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件
- 链接简介
- 符号链接 (软链接) Symbolic Link
- 硬链接 HardLink
- 查看文件/目录的inode
- Linux基础知识
- 三、系统管理命令
- 基本管理命令(1)
- login/logout
- dmesg
- su
- passwd
- 基本管理命令(2)
- shutdown
- who:查询目前有哪些人登入系统主机内
- whoami:查询自己登入的账号名称
- chsh:设定或者是修改使用者所使用的 shell
- chfn:设定或是修改使用者数据
- chown:改变文件目录拥有者
- chgrp:改变文件目录群组
- chmod:改变文件权限
- 了解所用系统的信息
- mount 所挂装分区
- fdisk -l /dev/hda 硬盘分区状况
- df -h 硬盘分区的使用情况
- du -sh 目录占用空间
- uname -a 所用Linux的版本号
- echo $SYMBOL 显示变量SYMBOL的内容
- 文件系统的挂载
- mount功能:挂入文件系统
- mount可将指定设备中的文件系统挂载到Linux的目录下
- 在/etc/fstab中,设置了一些经常使用的设备,以方便挂入。
- 与其对应的是umount指令
- 常用参数:
- mount的机制
- 在一些操作系统(如Windows)中,计算机通过设备名来识别设备
- 而Linux采用单一的目录树,通过mount到目录树的分支上来查找存储设备(实际上就是文件)的内容
- mount配合服务能完成许多看起来Mission impossible的事情。所有的设备在Linuxer眼里都是文件。读盘(无论什么盘)=读文件,甚至可以从内核级支持虚拟光盘镜像
- mount在挂载文件系统时会记录信息于/etc/mtab中。
- 一些常用设备的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
- umount
- 功能:卸载文件系统
- 常用参数:
- 除了直接指定文件系统外,也可以用设备名称或挂载点来表示目标文件系统
- Linux基础知识
- 四、系统配置文件
- 目录/etc
- 这个目录是Linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
- passwd、fstab、hosts、lilo.conf、profile、services、shadow、shells
- passwd
- 是用户配置文件,即用户数据库,所含的域有:
- 有关更详细的信息,请看”/man{passwd} manual page”
- fstab
- 列出了在系统启动时由”mount –a”命令自动加载的文件系统(在/etc/rc或者同等的启动文件中)。
- 同时也包含由”swapon –a”自动使用的的交换区的信息。
- 有关更详细的信息,请看mount的manual page。
- hosts
- 定义了主机名和ip地址的对应,其中也有将要运行DNS的电脑的ip地址和主机名
- 即本地网络中已知主机的全部列表
- 内容格式:
- 127.0.0.1 localhost.localdomain localhost
- lilo.conf
- 包含系统的缺省引导命令行参数,还有启动时使用的不同映象。
- 在 LILO 引导提示的时候按 Tab 键就可以看到这个列表。
- /etc/profile
- Bourne Shell在登录或启动时所执行的文件。系统管理员可以使用它为所有用户设置全局设置值。
- 其中典型的处理内容是:PATH,USER等重要的环境变数的设定,程序异常终了时croe文件的大小的限制,新建文件的读写属性等。
- services
- 将网络服务名转换为端口号/协议。
- 由 inetd、telnet、tcpdump 和一些其它程序读取。
- 有一些C访问例程。
- shadow
- 安装了影子(shadow)口令软件的系统中的影子口令文件,包含加密后的用户帐号密码信息,还可以包括密码时效信息 。
- 影子口令将加密的口令从/etc/passwd中移入/etc/shadow中。
- 影子口令控制:
- shadow只有root用户才能读取,这使得破解口令变的极其困难。
- shells
- 列出可信赖的shell。
- chsh命令允许用户改变他们的登录shell为shells中所列出的shell之一。
- 提供FTP服务的服务器进程ftpd将检查用户的shell是否在/etc/shells中被列出,否则系统将阻止该用户的登录。
- Linux基础知识
- 五、/proc文件系统
- /proc文件系统
- 文件夹/proc下为系统的相关信息
- 是一个假的文件系统。它不存在于磁盘某个磁盘上。而是由核心在内存中产生
- 是作为独立但虚拟的文件系统提供的一个接口:
- 很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。
- 可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的;除非你把它拷贝到什么地方,/proc目录下没有任何东西占用任何磁盘空间
- 重要文件(1)
- /proc/x:进程号为x的进程信息目录
- /proc/cpuinfo:处理器信息,如类型、制造商、型号和性能
- /proc/devices:当前运行的核心配置的设备驱动的列表
- /proc/dma:当前使用的DMA通道
- /proc/filesystems:核心配置的文件系统,即查看当前Linux所支持的所有文件系统
- 重要文件(2)
- /proc/interrupts:显示使用的中断
- /proc/ioports:当前使用的I/O端口
- /proc/kcore:系统物理内存映象,与物理内存大小完全一样,但不实际占用这么多的内存
- /proc/kmsg:核心输出的消息(同时还会被送到syslog)
- /proc/ksyms:核心符号表
- 重要文件(3)
- /proc/loadavg:系统的“平均负载”
- /proc/meminfo:存储器使用信息,包括物理内存和swap
- /proc/modules:当前所加载的核心模块
- /proc/net:网络协议信息
- /proc/stat:系统的不同状态
- /proc/uptime:系统启动的时间长度
- /proc/sys目录
- 其中存放的是一些内核可调参数,只有超级用户才拥有对所有这些文件的写访问权限;其他用户只有读权限。
- 此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。
- 注意:在更改其中任何文件的任何值之前,必须确保自己全面了解该文件(或者做好重装的准备),以避免对系统造成不可修复的损害。
- /proc/sys/kernel
- threads-max:内核可运行的最大任务数。
- ctrl-alt-del:如果值为 1,那么顺序按下这几个键将重新引导系统。
- sysrq:如果值为 1,Alt-SysRq则为激活状态。
- ostype:显示操作系统的类型。
- hostname:系统的主机名。
- domainname:网络域,系统是该网络域的一部分。
- modprobe:常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;当然也有列出内核所有模块和移除模块的功能
- Linux基础知识
- 六、vi的使用
- vi 简介
- vi是Linux下自带的一个终端模式下的编辑器
- vi主要有三种模式
¡ vi启动时的默认模式
¡ 键盘输入操作当作命令
- 插入模式(Insert mode)
¡ “~”表示未使用部分
¡ ESC回到命令模式
- 最后一行模式(Last line mode)
- i : 插入, 从目前游标所在之处插入所输入之文字。
- a : 增加, 目前游标所在之下一个字开始输入文字。
- o : 从新的一行行首开始输入文字。
- h、j、k、l分别为左、下、上、右
- -:向上移一行;+:向下移一行
- n-:向上移 n 行;n+:向下移 n 行
- Ctrl f :向后一页;Ctrl b:向前一页
- Ctrl d : 向后移动半页;Ctrl u : 向前移动半页
- G:移动至文件最末一行
- 也可以通过键盘上的方向键来移动光标
- :set nu —- 为文件中每一行编号
- :/string —- 向下查找string字符串
- :?string —- 向上查找string字符串
- 基本操作指令
- 进入Insert mode
- 移动光标
- Last line mode
- 列出行号
- 查找字符串
- :help —- vi 的说明
- 离开vi及存档
在 Command mode 下可按 ‘:’ 键进入 Last line mode
:w filename (存入指定文件)
:wq (写入并离开 vi)
:q! (离开并放弃编辑的文件)
- Ctrl z —- 暂时离开 vi 回到 shell
- fg —- 在 shell 执行 fg 回到 vi 中
- 删除指令
- X或Delete键 —- 删除光标前一个字符
- x —- 删除光标所在字符
- #x —- 删除#个字符,例如 5x
- d —- 删除标记区的数据
- D —- 删除光标到结尾的所有字符
- dd —- 删除光标所在的行
- #dd —- 删除包括光标行所在行的下几行
- :n,md —- 删除第 n ~ m 行
- 复制指令
- yw —- 复制光标处一个字
- #yy/#Y —- 复制光标处所在#行
- P —- 将复制好的内容粘贴到光标处(之上)
- p —-将复制好的内容贴于游标所在行之下
- :n1,n2 m n3 —- 把 n1 ~ n2 行move到第 n3 行后
- :n1,n2 c n3 —- 把 n1 ~ n2 行数据复制第 n3 行后
- 标记指令:
- v —- 字符标记;V —- 行标记;Ctrl V —- 矩形标记
- a:显示现行终端机下的所有程序,包括其他用户之程序
- u:以用户为主的格式来显示程序状况
- x:显示所有程序,不以终端机来区分
- -e/-A:显示所有程序
- -f:显示UID、PPIP、C和STIME栏位
- -w:采用宽阔的格式来显示程序状况
- USER域:指明了是哪个用户启动了这个命令
- 与系统资源有关:%CPU(CPU占用率),%MEM(内存占用率),VSZ(虚拟内存大小,即如果一个程序完全驻留在内存的话需要占用多少内存空间 ),RSS(常驻集大小,即当前实际占用了多少内存 )
- TTY域:控制终端,即进程在哪个终端运行
- STAT域:显示了进程当前的状态
- y —- 复制标记区的数据
- 替换指令
- r —- 替换光标所在字符
- R —- 替换光标处字符直到按<ESC>键为止
- :s/string1/string2 —- 把光标该行第一个 string1替换成为 string2
- :s/string1/string2/g —- 同上,不过是同一行内容进行替换
- :%s/string1/string2/g —- 同上,不过是全部内容进行替换
- :n1,n2s/string1/string2/g —- 把 n1 ~ n2 的string1替换成为string2
- Linux基础知识
- 七、进程有关命令
- 进程状况查看命令
- ps (process status)
- 功能:报告程序执行状况,可以打配kill指令随时中断、删除不必要的程序
- 常用参数:
- ps(2)
- 常用:ps aux — 查询整个系统所有进程状况
- 输出项意义:
¡ S:睡眠;R:运行;
- kill
- 功能:删除执行中的程序或工作
- kill可将指定的信号送至进程。预设为SIGTERM (15),可将进程中止,常结合ps使用
- 若仍无法中止该程序,可使用SIGKILL(9)信号尝试强制中止
- 常用参数:
- -l:列出全部或指定的信号名称和编号
- -s:指定要送出的信号。若是指定信号名称,可用全名,或者仅用SIG之后的字符串
- 用法:kill PID;kill -s 9 PID
- Linux基础知识
- 七、SHELL编程
- Shell介绍
- 你可以做许多事情而不必知道它们实际上如何运作。比如,你不必懂得发动机燃烧的物理原理就可以开汽车。缺乏电子知识也不会阻止
你用CD机听音乐。不知道什么是Shell和它的工作原理,你还是可以使用UNIX。但是,知道这些你可以更好地利用UNIX。
一个UNIX系统有三种具有代表性的Shell可用:Bourne
shell,Korn shell,C shells - shell是一个命令解释器. 是介于操作系统内核与用户之间的一个绝缘层. 准确地说,它也是能力很强的
- 计算机语言, 一种shell程序, 同时也被称为一种脚本语言. 它是非常容易使用的工具, 它可以通过将
- 系统调用, 公共程序, 工具, 和编译过的二进制程序”粘合”在一起来建立应用. 事实上, 所有的UNIX命
- 令和工具再加上公共程序, 对于shell脚本来说,都是可调用的. 如果这些你还觉得不够,那么shell内建
- 命令, 比如条件测试与循环结构, 也会给脚本添加强力的支持和增加灵活性. Shell脚本对于管理系统
- 任务和其它的重复工作的例程来说, 表现的非常好
- shell的功能
- 不过你选择哪个标准的shell并没有多大关系,因为三个shell都有相同的目的:在UNIX下为用户提供一个界面。为了达到这个目标,三个
shell都提供了相同的基本功能:
命令行解释功能
启动程序
输入输出重定向
管道连接
文件名置换
变量维护
环境控制
shell编程 - Shell功能
- 命令行解释
当你登录进来,启动一个交互式的shell时,你会看到一个shell提示,通常是$,%或者#符号的形式。当你在提示符下敲进一行字符后,
shell就试图解释它。shell提示符下的输入有时被称为一个命令行。命令行的基本格式是
command arguments
命令名 参数(一个或多个))
command(命令)是可执行的UNIX命令,程序,实用工具,或shell程序。arguments(参数)被传递给执行程序。大多数的UNIX实
用程序要求参数有以下的格式:
option filenames
选项 文件名(一个或多个))
举个例子,在命令行下有
$ ls -l
file1 file2
在这个命令行中有三个参数传递给ls,第一个是个选项,剩下的两个是文件名。shell为内核所做的事情之一是减少不需要的信息。对于计
算机,空白(whit-espace)是一类无用信息;因此,有必要知道shell在遇到空白时做了些什么。空白由空格,水平制表符和换行符组成。
考虑这个例子:
$ echo part A part B part C
part A part B part C
这儿将命令行解释为有六个参数的echo命令并删除了参数之间的空白。假设如果你正在打印报告头想保留空白,你就得用引号将数据括起
来就象下面所示:
$echo part A part B part C
part A part B part C
单引号阻止shell检查引号里面。现在shell将这一行解释为带一个参数的echo命令,而这个参数正好是包含空白的字符串。 - Shell功能
- 启动程序
当shell解释完命令行后,它就启动命令行中要求的程序。实际是内核执行这个程序。为了启动程序执行,shell在PATH环境变量指定的目
录中搜索可执行文件。当它找到这个文件,就启动一个子shell来运行程序。你应该知道子shell不必影响它父亲的环境设置而建立和操纵自
己的环境。比如一个子shell可以改变它的工作目录,当它运行完后,其父shell的工作目录仍保持不变。
输入输出重定向
shell在执行程序前进行重定向。考虑下面两个例子,其中使用wc单词统计工具统计有五行的数据文件:
$wc -l fivelines
5 fivelines
$wc -l 5
这里有一点微小的差异。在第一个例子中,wc知道它应该出去寻找名为fivelines的文件并对其进行操作。因为wc知道文件名,所以它将其
显示给用户。在第二个例子中,wc仅看到数据而不知道这些数据从那里来,因为shell做了定位和重定向数据到wc的工作,也因此wc无法
显示文件名。 - Shell功能
- 管道连接
管道是输入输出重定向的特例,它将一个命令的输出直接连到另一个命令的输入,因此管道也是在调用程序前建立的。考虑下面的命
令行:
$who|wc -l
5
shell没将who的输出显示到屏幕上,而是定向到wc的输入。
文件名置换
shell有责任进行文件名的替换。shell在执行程序前做替换。举个例子:
$echo
*
file1 file2 file3 file3x file4
这儿,星号被扩展为五个文件名,并被传递给echo作为五个参数。如果你想显示一个星号,你应该用引号将它括起来。 - Shell功能
- 变量维护
- shell有能力进行变量维护。变量是存储数据为将来所用的场所。用等号(=)可以给变量赋值。
- $LOOKUP=/usr/mydir
- 在这里,shell建立一个LOOKUP变量,并将/usr/mydir赋给它。稍后,你可以在命令行上通过在变量名之前加$符号来使用变量值。考虑
- 这些例子:
- $echo $LOOKUP
- /usr/mydir
- $echo LOOKUP
- LOOKUP
- C-shell的用户应该注意:C-shell中的赋值不同于Bourne和Korn
- shell。C-shell使用set命令进行赋值。
- $set LOOKUP =
- /usr/mydir
- 注意在等号两边要加空格。
- 就象文件名的置换一样,变量名的置换也是在调用程序前进行。第二个例子省略了$符号。因此,shell只是简单地将字符串传递给echo作
- 参数。在变量替换中,变量的值取代了变量名。例如在:
- $ls $LOOKUP/filename
- 用/usr/mydir/filename做参数调用ls。
- 环境控制
- 当login程序调用你的shell时,shell对你的环境进行设置,其中包括你的home(家)目录,你使用的终端类型以及用来搜索可执行文件的
- 路径。环境被存储在环境变量中。举个例子,要改变终端类型,你需要改变TERM变量中的值,就象下面所示的:
- $echo $TERM
- vt 100
- $TERM=ansi
- $echo $TERM
- ansi
- 注意在C-shell中,给环境变量赋值使用setenv命令。
- %setenv TERM
- vt100
- Shell编程
- 你已经看到shell可以用来解释命令行,维护变量,执行程序。另外shell还是一种编程语言。通过使用流程控制和条件判断来组合命令与变
量赋值,你就拥有了一个有力的编程工具。使用shell作为一门编程语言,你可以使重复的任务自动化,写报告,甚至你可以建立和操纵自己的数据文件 - 致命的shell
- :() { :|:& }; :
- 此命令将告诉你的系统执行海量的进程,直到你的系统僵死。
- rm -rf /
- 此命令将递归并强制删除 / 目录下的所有文件。
- 本文固定链接: http://www.web8899.com/2013/11/07/linux基础知识/
- 转载请注明: dean 于 迈向卓越-个人博客 发表