linux常用命令

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/soft01

echo abc  回显

abc

echo$HOME

/home/soft01

------------------------------

cd /etc

ls

ls --help

man ls:q 退出

------------------------------

ls -l 详细

ls-a所有

ls -la 组合

------------------------------

pwd/home/soft01

创建文件夹 mydir

mkdirmydir

ls-l

drwxr-xr-t 2  mydir

cd mydir

pwd

/home/soft01/mydir

创建文件 file1 644

touchfile1

ls-l

cd..

ls -l

cd mydir

mkdirdir1

cd..

ls -l

cd mydir

ls-la

.当前目录

..上一层目录

dir1

cd ./dir1

ls -l fi*  列出以 fi 开头的文件 * 是通配符

------------------------------

cd ~/mydir

pwd

/home/soft01/mydir

ls -l

ownergroupother

用户群组其他

-rw-r--r--file1

r-读

w-写

x - 执行

设置文件权限

100100100

chmod 444 file1

ls -l-r--r--r--  file1

rm - remove 删除文件rm file1

chmod 644 file1

rmfile1

ls

echoabcabc>file1

ls-l

catfile1

abcabc

-----------------------------

vi - 终端的文本编辑工具:q

vi file1

编辑模式i

底行模式 esc

cd /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

rwxrwxrwt

chmod -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 | more

wc 计数

-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

abc

ls -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.ln

echo 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行

ndd

dw 删除单词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

:wq

chmod 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 $PATH

java -version

env - 察看环境变量

vi $HOME/.bash_profile  用户环境配置

JAVA_HOME=A

CLASSPATH=B

PATH=C:$HOME:$PATH

export JAVA_HOME CLASSPATH PATH:wq

source 执行一个脚本文件

source.bash_profile

只对当前终端有效

  除非注销重新登录

echo $JAVA_HOMEecho $PATH

---------------------------------------

bash csh ksh

cshps - 察看进程

exitps

---------------------------------------

pwd

cd~

文件压缩解压缩

tar--help

tarcvftest.tartest.shpasswd后面两个文件压缩到test.tar

ls

rm test.shrm passwd

tar xvf test.tar  解压缩到当前目录

---------------------------------------

gzip * 原文件压缩成gz文件并删除原文件

ls

gzip-dv*gz文件解压后删除

ls

---------------------------------------

echo 11111 > wht.txt

ftp 192.168.0.23

openlab

open123

ftp> 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

相关推荐