xingzhegu 2012-02-09
Linux - unix
系统 -> 应用程序 -> 终端
pwd - 察看当前所在的位置(文件夹)
/home/soft01 主目录ls - 察看当前目录下的文件列表
cd .. cd 切换目录 “..”表示上一层目录
pwd
/home
cdsoft01切换到当前目录下的soft01
相对路径(相对于当前路径)
cd/home/soft01绝对路径(从根目录开始写)
pwd
/home/soft01用相对路径切换到 /opt
cd../../opt
pwd
/opt回到用户主目录
cd
cd~
cd$HOME
pwd
/home/soft01echo abc 回显
abc
echo$HOME
/home/soft01------------------------------
cd /etc
ls
ls --helpman ls:q 退出
------------------------------
ls -l 详细
ls-a所有
ls -la 组合------------------------------
pwd/home/soft01
创建文件夹 mydir
mkdirmydir
ls-l
drwxr-xr-t 2 mydircd mydir
pwd
/home/soft01/mydir创建文件 file1 644
touchfile1
ls-l
cd..
ls -lcd mydir
mkdirdir1
cd..
ls -lcd mydir
ls-la
.当前目录
..上一层目录
dir1cd ./dir1
ls -l fi* 列出以 fi 开头的文件 * 是通配符
------------------------------
cd ~/mydir
pwd
/home/soft01/mydirls -l
ownergroupother
用户群组其他
-rw-r--r--file1
r-读
w-写
x - 执行设置文件权限
100100100
chmod 444 file1ls -l-r--r--r-- file1
rm - remove 删除文件rm file1
chmod 644 file1
rmfile1
lsechoabcabc>file1
ls-l
catfile1
abcabc-----------------------------
vi - 终端的文本编辑工具:q
vi file1
编辑模式i
底行模式 esccd /etcpwd
按esc输入 :wq
批处理程序
./file1
./file1:权限被否定
chmodu+x,g+wx,o+wxfile1
./file1-----------------------------
拷贝文件
cpfile1file2
ls
cp/etc/passwd.
catpasswd
more passwd 分页察看移动文件(剪切、改名)
mvfile2flie3
mvflie3dir1
ls
lsdir1
pwd
/home/soft01/mydir删除文件
rmdir1
rm:dir1是目录
rm--help
rm-Rdir1删除文件夹加-R
ls创建多层目录
mkdirdir1/a/b
mkdir-pdir1/a/b创建多层文件夹加-p
cddir1/a/b
pwd
cd../../../
pwd-----------------------------
修改密码passwd
登录login
以超级用户身份(root)登录su
退出登录exit
-----------------------------
察看分区df -k
swap - 虚拟内存分区
清屏
clear察看文件类型
filefile1
filedir1
file passwd-----------------------------
1,在 dir1/a/b 文件夹中创建 file1
2,修改b文件夹的权限为只读444
cdb
pwd
/home/soft01/dir1/a
lsb
moreb/file1
3,修改b文件夹中的file1文件内容
4,b文件夹中创建文件file2
5,删除file1文件6,b读权限去掉 333 wx
cdb
ls不可以
echoaaa>>file2
morefile2
7,列出b目录中的文件s100101s100160
telnet 192.168.0.26
密码用 soft01
pwd
mkdirmydir
chmod666mydir
cd mydir只有自己可以进入该目录,其他人不允许进入
chmod766mydir
cdmydir
cd/user/sd1001/s100102/mydir
----------------------------------------u
g
o
rwx
t - 只有自己可以删除cd $HOME
chmod1777mydir
ls-l
rwxrwxrwtchmod -t mydirchmod +t mydir
---------------------------------------
cp/etc/passwd.
ls
cp/etc/passwd.
cp-i/etc/passwd.-i参数提示覆盖
rm-ipasswd-i参数提示是否删除
chmod444passwd
rmpasswd
rm-fpasswd-f强制删除
rm -Rf dir1 -Rf 目录中的只读文件不会一个一个提示---------------------------------------
head数据的前几行(10)
tail 数据的后几行 (10)ls
cp/etc/passwd.
headpasswd前十行
head-5passwd前五行
tailpasswd末十行
tail -5 passwd 末十行tail -f passwd 监视文件的修改ctrl + c 中断命令
另一终端中执行
echo eeeeeeeeeee >> passwd---------------------------------------
cal - 显示日历cal 1 2010
---------------------------------------
正则表达式
.匹配任意单个字符
.*abcabcde
abc匹配abc
[a-z]匹配任意单个小写字母
[a-z]*abcabcde
[^a-z]除了小写字母之外
[a-zA-Z0-9]任意单个字母或数字
^a以小写字母a开头
a$ 以小写字母a结尾以非数字开头^[^0-9]
more passwds100160
grep '^s1001' passwd
grep's1001.*'passwd
---------------------------------------管道 | 把一个命令运行的结果交给另一命令进行处理
ls -l /etc | grep ^d
ls -l /etc | grep ^d | more
---------------------------------------
sort排序
cat passwd | sort | morewc 计数
-l行
-w词
-c字数
catpasswd|wc-l
s1001开头的用户数量
cat passwd | grep '^s1001' | wc -l/etc 文件夹中文件的数量ls -l /etc | grep '^[^d]' | wc -l
---------------------------------------
察看当前登录的用户
id察看所有登录的用户who
who | sort
用户登录的次数
who|greps100142|wc-l
---------------------------------------tee -输出终端中的数据
tee
abc
abcls -l /etc | tee file1 终端中显示结果输出至文件
ls
morefile1
---------------------------------------ln - 创建文件连接
原文件的备份副本-硬连接
lnpasswdpasswd.ln
ls-l
-rw-r--r--2openlabother707422月1日11:27passwd
-rw-r--r-- 2 openlab other 70742 2月 1日 11:27 passwd.lnecho 111111111111 >> passwdtail -5 passwd.ln
rm passwd 删除原文件tail -5 passwd.ln 之后连接文件仍然可用
mv passwd.ln passwdls
软连接(快捷方式)
ln-spasswdpasswd.sln
ls-l
-rw-r--r--1openlabother707422月1日11:27passwd
lrwxrwxrwx1openlabother62月1日11:36passwd.sln
echo22222222>>passwd.sln
tail -5 passwd.sln删除原文件后,快捷方式无效
rmpasswd
tail -5 passwd.sln$: exit$: exit
---------------------------------------
vi
:q
vi file1进入编辑状态,esc 回到命令状态
i当前光标前面插入数据
a当前光标后面插入数据
o当前行下面新起一行
O 当前行上面新起一行: 底行模式
:w写入
:q退出
:q!强制退出不保存
:wq写入并退出
dd删除当前一行
3dd删除当前行之后3行
ndddw 删除单词ndw 删除n个单词
x 删除单个字符nx 删除n个字符
yy 复制当前行
nyy复制n行
p 粘贴到下一行u undo
^ 跳到行头
$跳到行尾
G跳到文件末尾
nG 跳到第n行:set number 显示行号:set nonu 不显示行号
:q!
cp/etc/passwd.
vipasswd
:setnumber
G/soft01 搜索soft01
n搜索下一个位置
/soft.* 正则表达式搜索:1,$ s/s/-/g 把从第一行到最后一行中的s替换为-
把从第10行到20行中的u-r替换为usr:10,20 s/u-r/usr/g
每行行首加 #:1,$ s/^/# /g
-----------------------------------------------
vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。
:s/vivian/sky/替换当前行第一个vivian为sky
:s/vivian/sky/g替换当前行所有vivian为sky
:n,$s/vivian/sky/替换第n行开始到最后一行中每一行的第一个vivian为sky
:n,$s/vivian/sky/g替换第n行开始到最后一行中每一行所有vivian为sky
n为数字,若n为.,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每一行的第一个vivian为sky
:%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每一行中所有vivian为sky
可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:s#vivian/#sky/#替换当前行第一个vivian/为sky/
:%s+/oradata/apras/+/user01/apras1+(使用+来替换/):/oradata/apras/替换成/user01/apras1/
1.:s/vivian/sky/替换当前行第一个vivian为sky
:s/vivian/sky/g替换当前行所有vivian为sky
2.:n,$s/vivian/sky/替换第n行开始到最后一行中每一行的第一个vivian为sky
:n,$s/vivian/sky/g替换第n行开始到最后一行中每一行所有vivian为sky
(n为数字,若n为.,表示从当前行开始到最后一行)
3.:%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每一行的第一个vivian为sky
:%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每一行中所有vivian为sky
4.可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:s#vivian/#sky/#替换当前行第一个vivian/为sky/
5.删除文本中的^M
问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
。使用命令:catfilename1|tr-d“^V^M”>newfile;
。使用命令:sed-e“s/^V^M//”filename>outputfilename.需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M.你必须要手工进行输入,而不是粘贴。
。在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//.
。:%s/^M$//g
如果上述方法无用,则正确的解决办法是:[Page]
。tr-d\"\\r\"<src>dest
。tr-d\"\\015\"dest
。stringsA>B
6.替换确认
我们有很多时候会需要某个字符(串)在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认,vi的查找替换同样支持
例如
:s/vivian/sky/g替换当前行所有vivian为sky
在命令后面加上一个字母c就可以实现,即:s/vivian/sky/gc
顾名思意,c是confirm的缩写
7.其它
利用:s命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/用字符串str2替换行中首次出现的字符串str1
:s/str1/str2/g用字符串str2替换行中所有出现的字符串str1
:。,$s/str1/str2/g用字符串str2替换正文当前行到末尾所有出现的字符串str1
:1,$s/str1/str2/g用字符串str2替换正文中所有出现的字符串str1
:g/str1/s//str2/g功能同上
从上述替换命令可以看到:g放在命令末尾,表示对搜索字符串的每次出现进行替换;不加g,表示只对搜索
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作
---------------------------------------
环境变量
$PATH=/oracledata/oracle10g/product/10g/bin:/usr/sbin:/usr/local/bin:/usr/bin:/usr/ucb:/etc:/usr/openwin/bin:/usr/ccs/bin:.
当执行一个命令时(ls),
1当前目录找有没有ls可执行文件
2 $PATH变量制定目录下依次查找$PATH 的作用是操作系统在其中找可执行文件
vitest.sh
cal
:wqchmod u+x test.sh./test.sh
cd mydir
./test.sh
./test.sh: 命令没有找到export PATH=/home/soft01:$PATH
echo $PATH/home/soft01:/oracledata/oracle10g/product/10g/bin:/usr/sbin:/usr/local/bin:/usr/bin:/usr/ucb:/etc:/usr/openwin/bin:/usr/ccs/bin:.
在 /home/soft01/mydir 目录下test.sh - 该文件在 /home/soft01 下
---------------------------------------
vi /etc/profile - 系统环境配置:q
echo $JAVA_HOME
echo$CLASSPATH
echo $PATHjava -version
env - 察看环境变量
vi $HOME/.bash_profile 用户环境配置
JAVA_HOME=A
CLASSPATH=B
PATH=C:$HOME:$PATHexport JAVA_HOME CLASSPATH PATH:wq
source 执行一个脚本文件
source.bash_profile
只对当前终端有效
除非注销重新登录echo $JAVA_HOMEecho $PATH
---------------------------------------
bash csh kshcshps - 察看进程
exitps
---------------------------------------
pwd
cd~
文件压缩解压缩
tar--help
tarcvftest.tartest.shpasswd后面两个文件压缩到test.tar
lsrm test.shrm passwd
tar xvf test.tar 解压缩到当前目录
---------------------------------------
gzip * 原文件压缩成gz文件并删除原文件
ls
gzip-dv*gz文件解压后删除
ls---------------------------------------
echo 11111 > wht.txt
ftp 192.168.0.23
openlab
open123ftp> pwd
ftp>ls
ftp>cdunix
ftp>pwd
ftp>ls
ftp>lcd/home/soft01/mydir切换本地目录
ftp>getunix.pdf下载文件
ftp>lcd/home/soft01
ftp>putwht.txt上传文件
ftp>ls
ftp> quit 退出ftp---------------------------------------
ifconfig - 察看ip地址ifconfig -a
---------------------------------------
ping 192.168.0.23ctrl + c
ping localhost 会解析为 127.0.0.1ping 127.0.0.1 本机回环地址
---------------------------------------
文件管理器
文件系统-/
主目录-/home/soft01
右键点test.sh 配置权限/opt/eclipseeclipse 菱形图标
cd Desktopln -s /opt/eclipse/eclipse eclipse
= -1)//对指定路径进行判断。while //遍历文件夹下的文件。if (strFileName =="." && strFileName == ".." != 0)//排除当前目录和上一级目录。