① 说说常用的UNIX命令
下文列出了常用的unix命令。
more less:
less的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用者往回卷动以浏览已经看过的部份,同时因
为less并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如 vi)来的快速。
unix种类[图]
>> linux ‖ BSD ‖ Solaris ‖ SCO ‖ HP-UX ‖ AIX ‖ AS400 ‖ Tru64 ‖ IRIX ‖ MacOsX
UNIX命令
一、UNIX命令格式
1、UNIX命令提示符
在命令行下,操作系统会显示一提示符,提示用户在此提示符后可以输入一行命令。不同的Shell有不同的缺省提示符:
B Shell和K Shell的缺省提示符为"$";
C Shell的缺省提示符为"%";
但当以root用户登录时,系统提示符统一缺省为"#"。
用户可以更改自己的缺省Shell和提示符。
2、基本命令格式
在Shell提示符下,就可以输入UNIX命令。UNIX命令的基本格式如下:
command 参数1 参数2 ... 参数n
UNIX命令由一个命令(command)和零到多个参数构成,命令和参数之间,以及参数与参数之间用空格隔开。UNIX的命令格式和DOS的命令格式相似,但UNIX的命令区分大小写,且命令和参数之间必须隔开。如:对DOS来说是以下四条命令是相同的:
cd\tmp
cd \tmp
CD \tmp
cd \Tmp
对UNIX操作系统来说,改变目录的命令也是cd命令,以下是正确的UNIX cd命令:
cd /tmp
cd /Tmp
但tmp和Tmp是两个不同的目录。以下两条命令:
cd/tmp
CD /tmp
已经不是cd命令了。
3、在一行中运行多个命令
可以在一行中输入多个命令,命令间用“;”分开,如:
mkdir tmp ; cp file1 tmp/file2 ; ls -l tmp
UNIX会顺序执行以上三条命令。
4、在后台运行程序
要让程序在后台执行,只需在命令行的最后加上“&”符号。
[例1] 在后台运行find命令,在当前目录及其子目路下查找文件名为abc的文件。
执行命令和立即显示的内容如下:
$ find . -name abc -print&
10722
$
...
10722表示进程号(PID)。当find命令在后台执行完后,会显示结果。
当在后台运行命令时,最好将其输出重定向输出到一个文件中去,以便以后检查。
[例2] 在后台运行find命令,在当前目录及其子目路下查找文件名为abc的文件并将结果存到myfind文件中。
执行命令如下:
$ find . -name abc -print>;myfind&
在运行后台程序的同时可以继续输入命令。
5、nohup命令
当终端退出后,由该终端启动的后台程序自动退出。要想终端退出后程序不停止运行,则要用nohup命令启动后台程序。如对于例2的命令加入nohup后变为:
$ nohup find . -name abc -print>;myfind&
二、特殊按键
在UNIX命令操作中有一些特殊键,列表如下:
Ctrl + d 结束键盘输入或退出当前shell
Del 中断键,停止当前动作回到shell
Ctrl+s 暂停屏幕输出
Ctrl+q 继续屏幕输出
Ctrl+u kill键,删除光标所在行的所有字符
Esc 结束当前的操作状态(如vi)
三、UNIX常用简单命令
下表列出了几个简单的UNIX命令:
解释 UNIX命令 命令举例
查看帮助信息 man mandate
查看日期 date date
显示日历 cal cal1998
显示大写大字 bannerbanner “ABCD”
计算器 bc bc
修改口令 passwdpasswd
查看谁在使用系统 whowho
查看我是谁 who am iwho am i
显示用户信息 fingerfinger 用户名
清除屏幕 clearclear
1、man命令 - 查看帮助信息
举例:
查看man的使用方法: man
查看finger命令的帮助信息: man finger
2、date命令 - 显示、修改日期和时间
显示时间的命令如下:
date
显示如下:
Mon Aug 17 13:43:14 NST 1998
表示NST标准时间,1998年8月17日13:43:14,星期一。
3、cal命令 - 显示日历
举例:
显示1998年全年日历: cal 1998
显示1998年8月日历: cal 8 1998
4、banner命令 - 显示大写大字
举例:在屏幕上用大字显示“HUAWEI”,命令如下
banner "HUAWEI"
5、bc命令 - 简单计算器
bc命令可以进行加、减、乘、除、求模、乘方运算,运算符分别为“+”“-”“*”“/”“%”“^”。bc使用举例如下
bc
以后输入算式即可,如:
1234 * 3 + 2^4
按回车显示结果,以后等待输入其它算式。按<Ctrl>;+d键退出bc。
6、passwd命令 - 修改口令
要修改自己的口令,只需运行:
passwd
以后系统会提示输入原来口令,并输入新口令。
7、who命令 - 查看正在使用UNIX的用户
用法如下:
who
系统会显示正在使用UNIX的用户名、终端号和登录时间。要查看使用者自己的信息,运行:
who am i
8、finger命令 - 显示用户信息
finger命令比who命令显示的信息量大,功能强。基本使用方法如下:
显示登录信息: finger
显示smith用户详细信息: finger smith
9、clear命令 - 清除屏幕
clear
四、UNIX用户间简单通讯命令
UNIX提供许多方式让用户相互通信,它允许你以文本的方式发送及接收信息。你可以传递信息给其他用户、所有用户、或自己。信息来源可以是文本文件或直接由键盘输入的内容。
(一)write 命令
可使用write 实用程序向已登录的另一个用户发送一条报文,当对方也使用write 命令时,双方之间就建立了通信。
当用户使用write 命令时,就在对方用户终端上显示提示信息。write 命令的格式如下:
write destination-user [terminal]
其中,destination-user是你想与之通信的用户注册名,通常使用who 命令查看其注册名。如果对方在多台终端上登录,可通过用terminal 来控制write 的报文送向指定的终端。为了建立与其他用户的双向通话,用户和对方每次必须执行write 命令,且必须指定注册名。一般在使用UNIX 进行通话时,通信双方有一些约定:用“o” 表示结束一条报文,“oo” 表示结束这次通信,用ctrl-d 退出write 命令。
[例1] UNIX上两用户alex 和jenny 通过write命令通信。
在alex的所在终端上(<CR>;表示回车):
$ write alex <CR>;
Hi Alex, are you there? o<CR>;
Message from Alex (tty11)[Sat Jan 5 15]….
Yes Jenny, I’m here. o<CR>;
……
Thank you ,Alex, bye! oo<CR>;
Ctrl-d
$
该例说明了使用write 命令实现Alex 和Jenny 的通信过程。首先Jenny 使用前两行向Alex发送了一条报文,接下来的两行是Alex 发送的报文Jenny 收到了,省略号表示他们的通信继续。最后,Jenny 用thank you,Alex,bye!oo 告诉Alex没有话要说了,并在下一行开始键入ctrl-d 来退出write 并回到shell。
(二)使用talk双方对话
talk 命令是一个虚拟通信命令,它允许登录双方通过键盘实时对话,其格式如下:
talk user-name [terminal]〈CR〉
注意,使用talk 进行双方对话时,双方使用的机器体系结构必须相同。当对方给出响应的talk命令后,双方终端上都显示
[connect established]
时,双方可双工通信了。双方可以以任意的速度从键盘输入,talk 把你的输入一行一行的显示在你和对方的屏幕上。用<Delete>;退出talk 。
(三)使用mesg 拒绝和允许接收报文
mesg 命令允许或拒绝接收由其它终端发来的write 和talk通讯信息。mesg命令在本地终端运行,其使用格式如下:
mesg [y] [n]〈CR〉
其中,y 表示允许接收,n 表示拒绝接收。如既不给出y 也不给出n ,则报告现在的许可状态。例:
[例1] 显示状态:
$mesg <CR>;
则命令的执行结果为:
is y
或 is n
[例2] 拒绝接收由其它终端发来的write和talk通讯信息:
$mesg n
$mesg
is n
(四)wall 广播式消息传递
所有登录用户都可收到该消息。仅超级用户使用该命令。wall命令有以下几种格式:
# wall
# wall filename
# wall “send a messageto all the people。”
2.4 注销(退出UNIX系统)
在每次使用完后,一定要进行注销,以防他人通过你的帐号进入系统,并保证系统的完整性。注销过程如下:在UNIX提示符下,运行:
$ exit
或
$ logout
或直接按键:
Ctrl+d。
由于UNIX操作系统的不同,注销的命令也可能不同。
--------------------------------------------------------------------------------
3.5 UNIX文件存取权限
一、文件的存取权限
UNIX文件的存取有三种权限:
权限 普通文件的存取权限目录的存取权限
R 具有读取文件的权利能读取文件名称
W 具有写入文件的权利能建立和删除文件,可以改变文件名
X 具有执行文件的权利能使用该目录下的文件(如cd命令)搜索文件等
二、能够存取文件的用户类型
有三种类型的用户可以存取文件:
用户类型 说明
owner 文件的属主(拥有者)
group 用户组内成员
other 其他用户(非owner和非group)
每种类型的用户都有三种文件存取权限:r、w、x。
三、文件存取权限的显示
可以通过”ls -l”命令显示,如:
$ ls -l file1
显示如下:
-rwxr-xr-- 2 wjm newservice 321 Oct 1709:33 file1
上行中:
第2-4字符”rwx”表示此文件属主wjm对文件file1的权利为”可读、可写、可执行”;
第5-7字符”r-x” 表示此用户组newservice内的用户对文件file1的权利为:
”可读、不可写、可执行”;
第8-10字符”r--” 表示其他用户对文件file1的权利为”可读、不可写、不可执行”
四、文件存取权限的修改
用chmod命令修改文件的存取权限,chmod命令的格式如下:
格式1:chmod symbolic_mode file…
格式2:chmod absolute_mode file…
(一)格式1:符号模式(symbolic_mode), 符号模式的命令格式如下:
chmod [who] op permision file…
who项表示用户类型,它的内容为以下一项或多项:
U 文件属主(user --- owner)
G 用户组(group)
O 其他人(other)
A 所有人(all)
op项表示动作:
+ 表示要加上permission指定的权利
- 表示要取消permission指定的权利
permission项为存取权限,它的内容为以下一项或多项:
r 表示可读
w 表示可写
x 表示可执行
举例:
chmod u+w test report 属主对test和report文件“可写”
chmod u-x abc.c 属主对abc.c文件不可执行
chmod u+rwx myfile1 属主对myfile1“可读、可写、可执行”
chmod ugo+rwx myfile2 任何人都对myfile1“可读、可写、可执行”
(二)格式2:绝对模式(absolute_mode), 符号模式的命令格式如下:
chmod xyz file…
x、y、z分别是0-7的数字,分别表示属主、用户组、其他人对该文件的存取权限。x、y、z的取值公式均为:
a*4 + b*2 +c
其中,
a=1分别表示可读,a=0表示不可读;
b=1分别表示可写,b=0表示不可写;
c=1分别表示可执行,c=0表示不可执行;
举例:
chmod 751 ncp 属主对ncp拥有“可读、可写、可执行”的全部权利;组内成员对ncp只有“可读、可执行”的权利;其他用户对ncp只有“可执行”的权利。
五、改变文件属主及文件所在组
改变文件属主的格式如下:
chown 属主名 文件名
必须对文件具有write权利才可改变文件的属主。
改变文件所在组的格式如下:
chgrp 组名 文件名
必须是文件的属主或supervisor才能改变文件组别的归属。
举例:
chown wjm test1 将文件test1的属主改为wjm
chgrp newservice test1 将文件test1的用户组改为newservice
3.6 UNIX重定向与管道
UNIX重定向 将文件的标准输出重新定向输出到文件,或将数据文件作为另一程序的标准输入内容。重定向符号如下:
< 重定向输入
>; 重定向输出
>;>; 重定向输出并追加到尾部
例如:
ls -l >; file1 将ls -l命令显示的内容存到file1中,
ls >;>; file1 将ls 命令显示的内容附加存到file1的尾部
grep abc < file1 将file1的内容作为grep abc命令的输入
其中,">;"和">;>;"为输出重定向符,">;"将输出内容存到重定向文件中,若文件存在,则先删除原有内容;">;>;"将输出内容存到重定向文件的尾部。
UNIX管道 将一文件的输出作为另一文件的输入。管道符号如下:
| 将左边命令的输出,作为右边命令的输入
例如:
ls|more 将ls的输出作为more命令的输入
ps -ef|grep smith ps -ef的输出作为grep smith命令的输入
3.7 UNIX文件系统常用命令
UNIX命令 UNIX命令举例 类似DOS命令
显示当前目录 pwd pwdcd
改变目录 cd cd/usr cd c:\usr
进入家目录 cd cd
创建目录 mkdirmkdir abc md abc
删除空目录 rmdirrmdir abc rd abc
删除目录及其内容 rm -rrm -r abc deltree abc
显示目录内容 ls lsabcls -l abc(文件长列表)ls -aabc(所有类型文件)ls -d *(不进子目录) dir abc
显示文本文件内容 catcat file1.c type file1.c
一次一屏显示文本文件内容more more file1.c
拷贝文件 cp cpfile1 file2 file1 file2
移动(重命名)文件 mv mv call.test call.listmove call.tst call.lstren call.test bbb
删除文件 rm rmcall.list delcall.lst
一、pwd命令
pwd命令用来显示当前目录路径,命令如下:
pwd
二、cd命令
cd命令用于改变当前的目录,如:
命令举例 说明
cd /usr/smith 改变到/usr/smith目录
cd ../wjm 改变到父目录下的wjm子目录
cd exam1 改变到当前目录下的exam1子目录
cd 改变到家目录
不带参数的cd命令表示进入家目录,这点与DOS有本质区别。
三、rm命令
rm命令可以删除文件及目录,举例如下:
命令举例 说明
rm file2 删除当前目录下的文件file2
rm file* 删除当前目录下以file开头的文件
rm -r /usr/wjm/exam2 删除目录/usr/wjm/exam2及其内容
四、ls命令
ls命令可以显示目录内容,命令格式如下:
ls -选项 文件名
其中的常用选项说明如下:
-l 长列表显示目录内容
-a 显示所有类型文件,包括隐含文件
-d 如果显示内容包含目录名,则只显示目录名字不显示目录内容
命令举例如下:
命令举例 说明
ls 显示当前目录内容
ls file* 显示除当前目录下以file开头的文件
ls -l /usr/wjm/exam2 长列表显示目录/usr/wjm/exam2内容
ls -adl 显示当前目录内容(同时带-l、-d、-a参数)
[注] ”ls -l”命令显示格式如下:
drwxrwxr-x 2 smith group 48 Jan 05 1998 john
-rwxr-xr-- 1 wjm newservice 321 Oct 17 09:33 file2
上面每行中:
第一列:
第1个字符表示文件的类型(d表示目录,-表示普通文件);
第2-4字符表示文件属主对此文件的访问权限(如:“rwx”和“rwx”);
第5-7字符表示用户组对此文件的访问权限(如:“rwx”和“r-x”);
第8-10字符表示其他用户对此文件的访问权限(如:“r-x”和“r--”);
其中,访问权限用三个字符表示,顺序是“rwx”,“r”表示可读、“w”表示
可写、“x”表示可执行。若某项禁止访问则为“-”,如:“r-x”表示可读、
不可写、可执行;
第二列:此文件的链接数(如:2和1);
第三列:此文件的属主名(如:smith和wjm);
第四列:用户组名(如:group和newservice);
第五列:文件所占字节数(如:48和321);
第六至八列:最后修改的日期和时间(如:“Jan 05 1998”和“Oct 17 09:33”);
第九列:文件名(如:john和file2)。
五、mkdir、rmdir、cat、more、cp、mv命令
这些命令和DOS的相应命令功能和用法基本一致,它们和DOS命令的对应关系如下:
UNIX命令 DOS命令
mkdir mkdir或md
rmdir rmdir或rd
cat type
more more
cp
mv move或ren
本文来自CSDN博客:http://blog.csdn.net/chinayuan/archive/2008/10/14/3072562.aspx
② awk命令怎么处理特殊字符
0x0A0D ,写成两个十六进制应该颠倒次序:RS="x0Dx0A" 这和数据存放的高位、底位有关,对应的字符就是 ,也就是通常说的Windows/DOS下面的回车换行符
测试:
③ linux 下查看网络负载命令
用 netstat 查看 Linux 网络状况。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
前面的 netstat -n是netstat的命令,Windows和Linux都可以用,结果显示内容差不多
后面的 awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 是Linux下的命令,主要作用是对netstat输出的结果进行过滤和处理:
运行这一句之后,显示的结果类似如下:
TIME_WAIT 27
FIN_WAIT1 435
FIN_WAIT2 89
ESTABLISHED 82
SYN_RECV 64
CLOSING 4
LAST_ACK 90
内容解释如下:
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
ESTABLISHED:代表一个打开的连接
SYN-RECV:再收到和发送一个连接请求后等待对方对连接请求的确认
SYN-SENT:再发送连接请求后等待匹配的连接请求
CLOSING:等待远程TCP对连接中断的确认
CLOSED:没有任何连接状态
CLOSE-WAIT:等待从本地用户发来的连接中断请求
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
LISTEN:侦听来自远方的TCP端口的连接请求
④ linux和dos下换行的不同表示
关于回车和换行的历史。
回车和换行关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
Unix系统里,每行结尾只有“<换行>”,即“
”;Windows系统里面,每行结尾是“<回车><换行>”,即“
”;Mac系统里,每行结尾是“<回车>”,即“
”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾会多车一个^M字符。
Dos和windows采用回车+换行CR/LF表示下一行,即^M$
而UNIX/Linux采用换行符LF表示下一行,即$
苹果机(MAC OS系统)则采用回车符CR表示下一行,即^M
CR用符号' '表示, 十进制ASCII代码是13, 十六进制代码为0x0D;
LF使用' '符号表示, ASCII代码是10, 十六制为0x0A. 所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.
一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件. 在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错. 很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.
在不同平台间使用FTP软件传送文件时, 在ascii文本模式传输模式下, 一些FTP客户端程序会自动对换行格式进行转换. 经过这种传输的文件字节数可能会发生变化. 如果你不想ftp修改原文件, 可以使用bin模式(二进制模式)传输文本.
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
一、windows的文件到linux下的转换方法:
1. 用sed命令替换
sed -e 's/^M//g' original.txt > target.txt (注意^M 在Linux/Unix下是这样输入的:先按CTRL+v,接着按CTRL+SHIFT+m)
2. 在vi中替换
:%s/^M//g
3.在命令行下
tr -d " "<dosfile > unixfile
4.使用dos2unix命令
# dos2unix -k hosts
5.用sed命令
也可使用unix2dos命令。
三、其他
Mac -> UNIX:tr "
" "
"<macfile > unixfile
UNIX -> Mac:tr "
" "
"<unixfile > macfile
Microsoft DOS/Windows 约定,文本的每行以回车字符(
)并后跟换行符(
)结束。为了纠正这个问题,可以使用下列命令:
DOS -> UNIX:tr -d "
"<dosfile > unixfile
UNIX -> DOS:在这种情况下,需要用awk,因为tr不能插入两个字符来替换一个字符。要使用的 awk 命令为 awk '{ print $0"
" }'<unixfile > dosfile
⑤ 如何把一个文件夹中所有文件的文件名导出
利用命令行:
在“开始”菜单的“程序”中的“附件”里面,找到命令行模式的快捷方式,双击打开,就出现一个命令行界面,黑色的背景窗口那个。然后在里面输入下面的命令(假设你要导出的文件夹是D盘的temp目录):
cd d:\temp
d:
tree /f >>d:\a.txt
输入这三行命令就好了,然后D盘temp文件夹里面的所有文件夹名称和文件名就都出现在D盘根目录下的a.txt文件中了。
用你需要导出文件名的那个文件夹路径替换掉第一行里面的d:\temp然后用你的盘符替换掉上面三行中的d:即可。
或输入指令ls -lR | grep '^-' | awk '{print $9}' > filenamelist.txt
利用python获取:
import os
文件夹下的所有文件名的列表=os.listdir(‘文件夹名称’
有的时候我们会需要将文件夹中的文件名导出做成一个目录,接下来小编就教大家怎样将文件夹中的文件名导出。
具体如下:
1. 首先我们打开电脑进入到桌面,然后按住WINDOWS图标加上r键,然后在我们的桌面中就会打开运行窗口。
2. 然后我们再运行窗口中输入cmd命令,点击确定。
3. 接下来在我们的桌面中就会打开命令提示符窗口。
以导出D盘Demo1中的文件名为例
1. 接下来小编以D盘中的demo1文件夹中的文件名作为演示,首先我们在窗口中输入“D:”,敲击回车运行命令。
2. 然后我们继续在窗口中输入 cd d:\demo1 ,敲击回车运行命令。
3. 接下来我们继续在窗口中输入 dir >d:\demo1\1.txt,输入完成之后交际回车运行命令。
4. 然后在我们的桌面中就会出现txt的记事本文件,我们打开之后就可以看到所有的文件名。
以上就是在电脑中间文件夹中文件名导出的方法
⑥ 怎样查看局域网内的所有DHCP服务器
用抓包工具,当你客户机,发送一个DHCP,DISCOVER包的时候,网络上,所有的,包括做过DHCP中继代理的服务器,都会向你提供一个REQUEST包,然后你分析一下包源,就可以找出所有的DHCP的IP地址了。
⑦ 如何查看某个端口被谁占用
如何查看某个端口被谁占用
一、通过命令查找端口被谁占用
1、开始---->运行---->cmd,或者是window+R组合键,调出命令窗口
2、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。