Monday, December 31, 2012

Unix基础



东方易维系列培训
版本: <1.0>
Unix基础(一)日期: <2002-6-6>
<document identifier>


1.常用Unix命令

注:有些命令只有root用户才能使用。
命令解释典型用法
文件和目录操作
ls显示文件列表ls
ls –l
ls –a
ls –l ~
pwd显示当前目录pwd
cd改变当前目录cd /bin
cd ..
cd ~
cd
mkdir创建目录mkdir java
mkdir –p dir1/dir2/dir3
rm删除文件和目录rm test.java
rm –r dir1/*
rm –rf dir1/*
rmdir删除目录rmdir dir1
cp拷贝文件cp /vol/examples/tutorial/science.txt .
mv重命名文件和目录
移动文件和目录
mv dir1 dir2
mv file1 file2
find查找文件find . -name 'test*'
touch生成一个空文件touch file1
cat显示文件内容cat file1
head显示文件内容(头n行)head file1
head –n 20 file1
tail显示文件内容(最后n行)tail file1
more分页显示文件more file1
less分页显示文件less file1
sort对内容排序输出sort file1
w | sort
grep在文件内容中查找指定的字符串grep science science.txt
grep -i science science.txt
grep -i 'spinning top' science.txt
wc计算字数或行数wc -w science.txt
wc -l science.txt
ln创建符号链接或硬链接
Usage: ln [OPTION]... TARGET [LINK_NAME]
or: ln [OPTION]... TARGET... DIRECTORY
or: ln [OPTION]... --target-directory=DIRECTORY TARGET...
ls –l > list1
ln –s list1 slist1
file显示文件的类型file *
* ?文件通配符ls list*
ls ?list
编辑器
vi编辑文件vi .profile
输入、输出和重定向
|,>,<管道和输入输出重定向ls –ls | more
ls > ls.txt
ls >> ls.txt
cat >> list1
a
b
c
^D
sort < biglist.txt
sort < biglist.txt >slist
who > names.txt
sort < names.txt
who | sort
who | wc -l

ls > /dev/pts/3
帮助
man获得联机手册man ls
whatis解释命令的含义whatis ping
文件权限
chmod改变文件的权限
u user
g group
o other
a all
r read
w write (and delete)
x execute (and access directory)
+ add permission
- take away permission
drwxr-xr-x 2 root root 4096 Jun 6 09:10 dir2

chmod go-rwx biglist
chmod a+rw bigfile
chmod 777 bigfile
进程和任务
ps显示进程信息ps
ps –ef
ps –ef | grep vi
kill杀掉进程kill 1234
kill –9 1234
kill %1
&在后台运行命令sleep 20 &
^Z暂停当前进程
^C停止当前进程
jobs显示任务列表
fg把某项任务唤到前台fg %1
bg把某项任务唤到后台fg
系统信息
df磁盘剩余空间df
du目录用掉的空间du ~
sar系统运行信息(CPU、内存、磁盘读写等)sar
sar –b
top系统运行的进程信息。[linux only]top
系统维护
useradd添加用户账号useradd richard
userdel删除用户账号userdel Richard
groupadd添加用户组groupadd oracle
groupdel删除用户组groupdel oracle
passwd修改口令passwd
passwd tom
su改变当前用户身份su Richard
su – Richard
su
su -
环境
history列出以前运行过的命令history
who当前登录系统的人who
w当前登录系统的人及正在执行的操作w
who am I
whoami
当前用户的身份who am I
whoami
date当前系统时间
修改系统时间
Usage: date [OPTION]... [+FORMAT]
or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
date
date 06061240
uname当前系统的名称uname
uname –a
网络
netstat网络使用状态netstat
ping是否能够连接到某个主机ping 192.168.0.1
telnet远程登录telnet 192.168.0.14
ftp文件传输ftp 192.168.0.14
ifconfig显示IP地址信息
配置IP地址
ifconfig
系统启动和关闭
init改变系统状态
0 关闭
1 单用户/系统管理员
2 多用户
3 多用户,允许本地资源被网络访问
4 备用的多用户状态
5 关闭计算机
6 先到0,后到却省的状态(经常是3,在/etc/inittab里定义)
init 0
int 5
init 6
reboot重新启动reboot
shutdown关闭系统shutdown
sync同步磁盘缓冲区
压缩和归档
compress压缩,声称.Z文件,并删除原来文件compress science.txt
uncompress解压缩.Z文件compress science.txt.z
gzip压缩为.gz文件gzip science.txt
gunzip解压缩.gz文件gunzip science.txt.gz
tar归档文件,生成.tar文件tar –cvf test.tar *
cd dir1
tar –xvf ../test.tar
屏幕输出
echo屏幕回显echo $PATH
clear清空屏幕
文件系统
mount加载文件系统
umount卸掉文件系统
fdisk磁盘分区


趣味练习:
  1. 向某人(如richard)正在使用的的终端(远程或本地)输出文字,进行干扰。
提示:Unix对把设备当作文件使用。远程登录的设备文件为 /dev/pts/n ,本地的终端设备文件为 /dev/ttyn

2.vi的简单使用

1. vi的启动与退出
要进入 vi 可以直接在SHELL下运行

vi <文件名>

如果文件名所指定的文件存在,则打开原有文件,否则建立一个新文件。进入 vi 后,默认的是命令模式,在屏幕下方会有简单的提示,建立新文件会提示“[New File]”,编辑旧文件会提示文件名称、字符数、行数等。凡是文件中的空行,在最左端会有波浪线提示。

需要离开vi时,可以在命令模式先输入:(冒号),这时就进入到命令行状态,在屏幕最下端一行可以输入命令q(退出,quit)即可退出。如果文件被修改之后需要保存的话,在输入:之后接着输入wq(保存后退出),其中w表示写入(write),如果不保存已进行的修改,就直接使用q!命令退出。

2. 光标移动
在有些系统,可以使用键盘的箭头键来移动光标,但并不是所有的系统下都可以正确使用。在vi设计之初,很多终端还没有箭头键,因此,在vi的命令模式下,可以使用hjkl四个键来移动光标,按照正确的键盘输入指法,这四个键刚好都是右手手指的基本位置,具体的对应关系为hjkl键分别对应着向左移动一个字符、向下移动一行、向上移动一行、向右移动一个字符。

光标移动键和数字键配合使用,可以一次完成重复的移动,大大提高了光标移动的速度,nhnjnknl分别表示一次性向左移动n个字符、向下移动n行、向上移动n行、向右移动n个字符,n是一个整数。

除了这几个基本的命令之外,vi还提供了以单词、屏幕、文件为相对定位标记的光标移动命令,这里不再一一列出。

3. vi的模式转换
vi有两种模式:输入模式和命令模式。从输入模式到命令模式,是由Esc键控制的,只要按下Esc键即可,必要的情况下,多按几次,计算机会发出声音表示已经是命令模式。而从命令模式到输入模式的转换,则是由添加、插入、替换等一共十个命令(aAiIoOsScC)来实现。这里我们只介绍前六个命令:

添加(append

a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。

A 从光标所在行尾部开始新增资料。

插入(insert

i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。

I 从光标所在行的第一个非空白字元前面开始插入资料,即从行头部开始插入资料。

开始(open

o 在光标所在行下新增一行并进入输入模式。

O 在光标所在行上方新增一行并进入输入模式。

4. vi基本编辑命令
在这里我们认为编辑就是文字的新增修改以及删除,还包括文字区块的搬移、复制等等。实际上,在 vi 的原始观念里,输入跟编辑是两码事,编辑是在命令模式下操作的,先利用命令移动光标来定位要进行编辑的地方,然后才下指令做编辑。

删除与修改

x 删除光标所在字符。

dd 删除光标所在的行。

r 修改光标所在字符,r后接着输入要修改为的字符,比如原有字符为1,我们打算把它修改为5,在命令模式下,把光标移动到要替换的字符“1”处,输入““r5”即可。

R 进入替换状态,新输入的资料会覆盖原先资料,直到切换到命令模式下为止。

s 删除光标所在字符,并进入输入模式。

S 删除光标所在的行,并进入输入模式。

恢复命令(undo

只有死人和圣人才不会犯错误”,作为常人的我们,万一不小心进行了错误的操作,该怎么办。如果是错误地多输入一个字符,这比较好办,可以在输入模式下使用退格键或者在命令模式下在对应位置使用x命令来删除。对于比较严重一点的,错误地删除了一大段程序,这时,恢复命令就尤为可贵。

u 恢复最近一次所做的修改。

查找(/ ?
正则表达式:* [ ] | ^ $





No comments:

Post a Comment