Solaris 基本命令

【Solaris 基本命令】
(一)基本命令

命令格式: 命令 参数

1.ls 显示文件名 , 等同于Dos下dir命令

命令格式:ls [option] file

option:

-l 显示详细列表

域1 :文件类型和文件权限

域2 :文件连接数

域3 :文件所有者名字

域4 :文件用户组名字

域5 :文件长度

域6-8 :最近修改日期

域9 :文件名

-a 显示所有文件 , 包含隐藏文件(以. 起头的文件名)

-R 显示文件及所有子目录

-F 显示文件(后跟*)和目录(后跟/)

-d 与l选项合用 , 显示目录名而非其内容




2.cd 目录转换 , 等同于dos下cd命令

注意目录分隔符为“/” , 与dos相反

命令格式:cd dirname

3.pwd 显示当前路径

4.cat 显示文件内容,等同于dos下type命令

命令格式:cat filename

5.more 以分页方式查看文件内容.

命令格式:more filename

6.rm 删除文件

命令格式: rm [-r] filename (filename 可为档名 , 或档名缩写符号.)

例子 :

rm file1 删除档名为 file1 之文档.

rm file? 删除档名中有五个字元 , 前四个字元为file 之所有文档.

rm f* 删除档名中 , 以 f 为字首之所有文档.

rm -r dir1 删除目录 dir1 , 及其下所有文档及子目录.

7.mkdir 创建目录

命令格式: mkdir [-p] Directory-name

Exmaple :

mkdir dir1 建立一新目录 dir1.

mkdir -p dir/subdir 直接创建多级目录

8.rmdir 删除目录

目录必须首先为空

命令格式: rmdir directory


9.cp 文档复制

命令格式: cp [-r] source destination

例子:

cp file1 file2 将文档 file1 复制成 file2

cp file1 dir1 将文档 file1 复制到目录 dir1 下 , 文件名仍为 file1.

cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下 ,

档名仍为 file1.

cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下 , 档名

为file2

cp -r dir1 dir2 (recursive copy) 复制整个目录.

若目录 dir2 不存在 , 则将目录dir1 , 及其所有文档和子目录 ,

复制到目录 dir2 下 , 新目录名称为dir1.若目录dir2不存在 ,

则将dir1 , 及其所有文档和子目录 , 复制为目录 dir2.



10.mv 文件移动

命令格式: mv source destination

例子:

mv file1 file2 将文档 file1 , 更改档名为 file2.

mv file1 dir1 将文档 file1 , 移到目录 dir1 下 , 档名仍为 file1.

mv dir1 dir2 若目录 dir2 不存在 , 则将目录 dir1 , 及其所有档

案和子目录 , 移到目录 dir2 下 , 新目录名称为 dir1.

若目录 dir2 不存在 , 则将dir1 , 及其所有文档和子

目录 , 更改为目录 dir2.




11.du 查看目录所占磁碟容量

命令格式: du [-sk] directory

例子 :

du dir1 显示目录 dir1 的总容量及其次目录的容量

du -sk dir1 显示目录 dir1 的总容量,以k bytes为计量



12.find 文件查找

命令格式: find dir -name filename command

例子:

find . -name hello -print 寻找目前目录及所有的子目录内叫

hello的文档.

find . -ctime7 -print 找出七天内未被更动的文档

find . -size2000m -print 找出大小超过2000 bytes的文档

find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档

find 删除所有的.c档

find . -name test* -print 显示当前目录及其子目录文件名前4

位为test的文件名


13.vi 编辑器

命令状态:

j,k,h,l:上下左右

0: 行首

$: 行尾

i,I :插入命令 , i 在当前光标处插入 I 行首插入

a,A:追加命令 , a 在当前光标后追加 , A 在行末追加

o,O:打开命令 , o 在当前行下打开一行 , O在当前行上插入一行

r,R :替换命令 , r 替换当前光标处字符 , R从光标处开始替换

数字s: 替换指定数量字符

x: 删除光标处字符

dd: 删除当前行

d0: 删除光标前半行

d$: 删除光标后半行

ctrl f :后翻页

ctrl b:前翻页

G : 文件尾

数字G: 数字所指定行

/string 查找字符串

n 继续查找

N 反向继续查找

% 查找对应括号

u 取消上次操作

ex命令状态

:set number 显示行号

:set smd 显示显示状态

:0 文件首

:1,5 copy 7 块拷贝

:1 , 5 del 块删除

:1 , 5 move 7 块移动

:1 , $s/string1/string2/g 全文件查找string1并替换为string2

:wq! 存盘退出


(二) 增强命令

1. ln 文档连结

命令格式:ln -s oldname newname ( Hard link )

同一文档 , 可拥有一个以上之名称 , 可将文档做数个连结.

例子 :

ln -s file1 file2 将名称 file2 , 连结至文档 file1.



2.grep 搜索字符串

命令格式:

grep string filename


寻找字串的方法很多 , 比如说我想找所有以M开头的行.此时必须引进pattern的观

念.以下是一些简单的□例 , 以及说明:


^M 以M开头的行 , ^表示开始的意思

M$ 以M结尾的行 , $表示结束的意思

^[0-9] 以数字开始的行 , []内可列举字母

^[124ab] 以1,2,4,a,或b开头的行

^b.503 句点表示任一字母

* 星号表示0个以上的字母(可以没有)

加号表示1个以上的字母

. 斜线可以去掉特殊意义


cat passwd | grep ^b 列出大学部有申请帐号者名单

cat passwd | grep ^s 列出交换学生申请帐号者名单

cat passwd | grep "^b.503" 列出电机系各年级...

grep "^." myfile.txt 列出所有以句点开头的行



3.fgrep 搜索字符串

命令格式:fgrep string file

4.file 显示文件类型

命令格式:file fileall

文件类型为shell script,ELF 32bit,ASCII text,data or tar file

5.diff 比较文档或目录之不同内容

命令格式:diff [-r] name1 name2 ( name1 name2 可同时为档名 , 或目录名称.)

例子 :

%diff file1 file2

比较文档 file1 与 file2 内 , 各行之不同处.

%diff -r dir1 dir2

比较目录 dir1 与 dir2 内 , 各文档之不同处.

6.cmp 比较文档相同部分

命令格式:cmp file1 file2




7.ftp 远程文件传输

命令格式: ftp [hostname|IP address]


在进入 ftp 之後 , 如果与 remote host 连接上了 , 它将会询问你 username

与密码 , 如果输入对了就可以开始进行文档传输.

注意:如用户无密码 , 无法注册

(1) ftp 命令

ascii 将传输模式设为 ascii 模式.通常用於传送文字档.

binary 将传输模式设为 binary 模式 , 通常用於传送执行档 , 压缩档与影像

档等.

cd remote-directory 将远程主机上的工作目录改变.

lcd [ directory ] 更改本地主机的工作目录.

ls [ remote-directory ] [ local-file ] 列出远程主机上的文档.

get remote-file [ local-file ] 取得远方的文档.

mget remote-files 可使用通用字元一次取得多个文档.

put local-file [ remote-file] 将本地主机的文档送到远程主机.

mput local-files 可使用通用字元一次将多个文档放到远程主机上.

help [ command ] 线上辅助指令.

mkdir directory-name 在远程主机创建一个目录.

prompt 更改交谈模式 , 若为 on 则在 mput 与 mget 时每作一个文档之传

输时均会询问.

quit/bye 离开ftp .

(2) 后台执行ftp


1.首先 , 将过程所用到的指令依顺序放入文档中 , 如下:

蕋 ftp_command

!mkdir test

lcd test

cd test

prompt

binary

mget *.*

bye

2.其次 , 建一个.netrc档 , 属性为400 , 让ftp 自动到此读取Username

与PassWord , 方可顺利login 到的主机 , 如下:

蕋 .netrc

Machine remote login anonymous password guest

3.最後再执行下面指令即可.

%nohup ftp remote < ftp_command > message &


8.telnet 远程终端访问

命令格式:

telnet [hostname|IP address]



9.IO 重新导向

Unix所有的程式执行时 , 均需要资料的输入以及输出资料.一般而言 , 资料是

从键盘输入 , 并将资料输出到萤幕上 , 这就叫做标准输入及标准输出 , 而我们

可以更改标准出输出入.

A. 更改标准输入 —— 在命令後方加"< " , 即可从这

个文档输入资料.

B. 更改标准输出 —— 在命令後方加"> " , 即可将萤幕输出的资

料导向到这个文档上.

C. 更改标准输出 —— 在命令後方加">> " , 功能与B.相似 , 只不

过这会将资料加在文档後方.

D. 管道 —— 在两个命令中间加上"|" , 即可将前方指令的输出当成後方指令


D. 管道 —— 在两个命令中间加上"|" , 即可将前方指令的输出当成後方指令

的输入.


例:

cd /tmp

ls -l > /tmp/ls.out

cat /tmp/ls.out

more /tmp/ls.out

rm /tmp/ls.out

ls | more

ls | wc -l (word count, count line number,算出文档数目)