Linux常用命令

213 阅读16分钟

一、su

su命令是最基本的命令之一,常用于不同用户间切换。例如,如果登录为 user1,要切换为user2,只要用如下命令:

$su user2(不带“-”的su切换不会切换用户的环境变量,带上“-”会切换环境变量)

然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可以用exit命令返回到user1。

su命令的常见用法是变成根用户或超级用户。如果发出不带用户名的su命令(su -) ,则系统提示输入根口令,输入之后则可切换为根用户。

如果登录为根用户,则可以用su命令成为系统上任何用户而不需要口令。

注:aix下使用su – user2格式

二、pwd

Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 

简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。 

在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

三、cd

cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。  

cd ..可进入上一层目录

cd -可进入上一个进入的目录

cd ~或者直接cd 可进入用户的home目录

cd / 可以进入系统根目录

四、ls

ls用于显示当前目录的内容。

如果想取得详细的信息,可用ls -l命令, 这样就可以显示目录内容的详细信息,包括权限、内节点数量、分组、修改日期等内容。

如果目录下的文件太多,用一屏显示不了,可以用ls -l |more分屏显示 。

查看隐藏文件可以使用ls –a命令

按照时间对文件进行显示 ls -ltr  (倒序排列)

五、find

find命令用于查找文件。这个命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用户)、文件长度或文件类型进行搜索。

find命令的基本结构如下:

$ find path -option [ -print ] [ -exec -ok command ] {} ;

其中path指定从哪个目录开始搜索。指定搜索条件。表示找到文件怎么处理。Option参数表示find中的一些属性值,常用的有-name, -type, -mtime, -ctime, -atime, -user, -group, -nouser, -nogroup, -perm等。一般来说,要用-print动作,显示 整个文件路径和名称。如果没有这个动作,则find命令进行所要搜索而不显示结果,等于白费劲。

例如,要搜索系统上所有名称为ye的文件,可用如下命令:

$find / -name ye -print 其中“/“表示系统根目录,也可以从其他目录搜索,比如/bizware表示从bizware目录下搜索需要的文件

这样就可以显示出系统上所有名称为ye的文件。

find /bizware -group demo –print表示查看bizware目录下属于demo分组的文件

find ~ -name "*.txt" –print查看用户主目录下的txt格式的文件

find . -name "demo*" –print查看当前目录下demo开头的文件

find /bizware -name demo -print | cpio -pdv newdir会在bizware目录查找到demo文件并在当前目录新建newdir文件夹然后将demo文件复制进去

六、tar

tar最初用于建立磁带备份系统,目前广泛用于建立文件发布档案。可用如下方法建立tar包:

$tar cvf

 例如,如果要将当前目录中所有文件存档到ye.tar中,可用如下命令:

$tar -cvf ye.tar .

要浏览档案内容,将c选项变成t。如果要浏览ye.tar档案中的内容,可用如下命令:

$tar -tvf ye.tar

要取出档案内的内容,将c选项变成x。如果要将ye.tar档案中的内容取到当前目录中,可用如下命令:

$tar -xvf ye.tar

注意:在linux下可以直接用tar命令解压 .gz格式的压缩包,在aix下需要先用gzip命令解压出tar的文件,然后再用tar命令解压该tar的文件

七、gzip

gzip命令用于压缩文件。 例如,如果要将ye.txt文件压缩,可用如下命令:

$gzip ye.txt

这样就可以压缩文件并在文件名后面加上gz扩展名,变成文件ye.txt.gz。

主要参数:

-d 用于解压文件

$gzip -d ye.txt.gz

这样就可以解压缩文件并删除gz扩展名。除此之外还可以用gunzip命令来解压缩文件,效果跟用gzip -d命令一样。

八、mkdir

这个命令很简单,用于建立目录,如mkdir test1。

主要参数:

-m, 创建目录时同时设定权限

$mkdir –m 777 test1

创建权限为777的目录

-p, 一次可以建立多个目录; 

$ mkdir  -p test1/test2

一次建立两个目录,test1目录里有test2

九、cp

cp指令用于在拥有可以读文件的权限的情况下复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

cp命令一次复制多个文件,例如:

$cp *.txt *.doc *.bak /home

将当前目录中扩展名为txt、doc和bak的文件全部复制到/home目录中。

如果要复制整个目录及其所有子目录,可以用cp -R命令。

十、rm

rm命令用于删除文件或目录。

rm命令会强制删除文件,如果想要在删除时提示确认,可用rm -i命令。 (aix下不会有删除提示)

  如果要删除目录,可用rm -r命令。rm -r命令在删除目录时,每删除一个文件或目录都会显示提示,如果目录太大,响应每个提示是不现实的。

这时可以用 rm -rf命令来强制删除目录,这样即使用了-i标志也当无效处理。

十一、mv

mv命令用于在拥有可以读文件的权限的情况下移动文件和更名文件。例如:

  $mv ye.txt /home

  将当前目录下的ye.txt文件移动到/home目录下,

  $mv ye.txt ye1.txt

  将ye.txt文件改名为ye1.txt。

  类似于跟cp命令,mv命令也可以一次移动多个文件,可以参照cp命令

十二、tail

tail命令可以输出文件的尾部内容,默认情况下它显示文件的最后十行。它常用来动态监视文件的尾部内容的增长情况,比如用来监视日志文件的变化。与tail命令对应的是head命令,用来显示文件头部内容。

tail file #输出指定文件file的尾部内容,默认输出最后十行。

tail file1 file2 #指定多个文件会显示每个文件的名称,再显示文件的尾部内容。

tail –a file/tail –n a file/tail --lines=a file #显示文件最后a行,a是想要显示的行数。

tail –n +a file #表示显示文件从第a行的内容开始,从1开始计数。

tail –f file #动态跟踪文件file的增长情况,tail会每隔一秒去检查一下文件是否增加新的内容,如果增加就追加在原来的输出后面显示,但这种情况必须保证tail的文件存在,想要终止的话,按Ctrl+c中断即可。

十三、more

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

命令参数:****

+n   从笫n行开始显示

-n  定义屏幕大小为n行

+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示  

-c  从顶部清屏,然后显示

-d  提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

-l 忽略Ctrl+l(换页)字符

-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s  把连续的多个空行显示为一行

-u   把文件内容中的下画线去掉

常用操作命令:****

Enter  向下n行,需要定义。默认为1行

Ctrl+F  向下滚动一屏

空格键 向下滚动一屏

Ctrl+B 返回上一屏

=    输出当前行的行号

:f 输出文件名和当前行的行号

V  调用vi编辑器

!命令   调用Shell,并执行命令 

q   退出more

主要参数:

-n, 对输出的所有行编号,由1开始对所有输出的行数编号

-s, 有连续两行以上的空白行,就代换为一行的空白行

十四、cat

cat主要有以下几个功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 用来创建新文件,如果作用在已有文件会将文件原来的内容全部清空。在新建文件后会让用户输入文件内容,直到按下Ctrl+D保存输入内容并结束编辑。

3.将几个文件合并为一个文件:cat file1 file2 > file此时会新建文件file并把file1和file2的内容输入到文件file中,如果原来file文件已经存在,file文件里原来的内容将被清空

4.向文件中追加内容:cat >> filename<<EOF (EOF为输入 结束的标志,可以用其他符号代替,退出编辑状态)

十五、less

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

命令功能:

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

命令参数:

-b <缓冲区大小> 设置缓冲区的大小

-e  当文件显示结束后,自动离开

-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-g  只标志最后搜索的关键词

-i  忽略搜索时的大小写

-m  显示类似more命令的百分比

-N  显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-Q  不使用警告音

-s  显示连续空行为一行

-S  行过长时间将超出部分舍弃

-x <数字> 将“tab”键显示为规定的数字空格

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

b  向后翻一页

d  向后翻半页

h  显示帮助界面

Q  退出less 命令

u  向前滚动半页

y  向前滚动一行

空格键 滚动一行

回车键 滚动一页

[pagedown]: 向下翻动一页

[pageup]:   向上翻动一页

十六、grep

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

grep ‘test’ d* 显示所有以d开头的文件中包含 “test”的行。
grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的

在查看日志时这个命令很有用途,因为有很多人在往日志里写东西,很可能你的日志和别人的日志有重叠的情况,这时候我们可以用这个命令搜索你执行进程的进程号来只查看你的进程的执行日志(进程号是日志里紧挨着时间后面的那个字段)

  $grep 进程号 日志文件名>filename

把该进程执行的日志写到新建立的filename文件中

  $grep 进程号 日志文件名|more

用more命令查看该进程执行的日志

十七、netstat

该命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

主要参数:

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-s 按各个协议进行统计

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等

$ netstat –at

 列出所有tcp端口的信息

$netstat –lu

只列出所有监听 udp 端口的信息

十八、ps

ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,不能动态的查看进程的状态

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

主要参数:

-A 显示所有进程

-u  指定用户的所有进程

-au 显示较详细的资讯

十九、chmod

变更文件或目录的权限。Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。

chmod [ugoa][+-=][rwx] demo.txt 其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
+表示增加权限,-表示取消权限,=表示唯一设定权限。
r表示可读取,w表示可写入,x表示可执行。

如:chmod u+rw demo.txt表示给demo.txt文件的拥有者读写的权限,另外r=4 w=2 x=1

所以此表达式可以写为chmod 6 demo.txt

chmod ugo+rwx demo.txt同chmod 777 demo.txt

二十、usermod

修改用户账号,需要在root用户下操作

usermod –g dba bizware将bizware用户分到dba分组里面

usermod –L bizware 锁定账号bizware

usermod –U bizware解除对bizware账号的锁定

usermod –l newname name更改name 账户名为newname

二十一、ln

该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名。而且,即使我们删除这个链接,也不会破坏原来的目录。

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接/软链接(Symbolic Link),现在大多数使用软连接。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

基本语法为:

ln -s file softlink #建立软链接
ln file hardlink #建立硬链接

ln /home/bizware/demo/demo.txt DEMO.txt #默认创建DEMO.txt指向/home/bizware/demo/demo.txt的硬连接

ln –s /home/bizware/demo DEMO #将/home/bizware/demo产生一个软连接,这样直接cd到DEMO就可以访问/home/bizware/demo

ln –f file1 file2 #强制创建file1的链接file2,如果file2已存在会将其覆盖

二十一、kill

kill命令用来终止一个进程

kill -9 pid #强行终止一个进程号为pid的进程,如kill -9 324

9 用于强行杀死进程;

当一个程序崩溃,并且处于死锁的状态。首先用top命令查出该程序的 PID,然后使用kill命令停止这个程序:

kill –SIGKILL/-9 PID

二十二、groups

查看用户所在分组

二十三、reboot

重启命令,不必多说

二十三、halt

关机命令不必多说

二十四、vi编辑器常用命令

x      删除游标所在字元。

dd    删除游标所在的列。

r      修改游标所在字元,r 后接着要修正的字元。

R     进入取代状态,新增资料会覆盖原先资料,直到按 [ESC] 回到指令模式下为止。

s     删除游标所在字元,并进入输入模式。

S     删除游标所在的列,并进入输入模式。

当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的资料,而 U 指令则可以恢复游标所在列的所有改变。

二十五、vi进阶编辑命令

这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。

 

指令列表如下:

 

d 删除(delete)

 

y 复制(yank)

 

p 放置(put)

 

c 修改(change)

 

范围可以是下列几个(用的相对较少):

 

$ 游标所在位置到该列的最后一个字母

 

0(零) 游标所在位置到该列的第一个字母

 

) 游标所在位置到下个句子的第一个字母

 

( 游标所在位置到该句子的第一个字母

 

} 游标所在位置到该段落的最后一个字母

 

{ 游标所在位置到该段落的第一个字母

 

对于整列操作, vi 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令dd 就是其中一个;cc 可以修改整列文字;而 yy 则是复制整列文字;指令 D 则可以删除游标到该列结束为止所有的文字。

二十六、vi编辑器的几种模式

a) 切换至插入模式(Insert mode)编辑文件

 

    在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insertmode)」,这时候你就可以开始输入文字了。

 

b) Insert 的切换

 

    您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。

 

c) 退出vi及保存文件

 

    在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:

 

: w filename (输入 「w filename」将文章以指定的文件名filename保存): wq (输入「wq」,存盘并退出vi)

 

: q! (输入q!, 不存盘强制退出vi)

 

 

命令行模式功能键****

 

1). 插入模式******

 

    按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

 

    按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

 

    按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

 

2). 从插入模式切换为命令行模式******

 

    按「ESC」键。

 

3). 移动光标******

 

    vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、j」、「k」、「l」,分别控制光标左、下、上、右移一格。

 

    按「ctrl」+「b」:屏幕往“后”移动一页。

 

    按「ctrl」+「f」:屏幕往“前”移动一页。

 

    按「ctrl」+「u」:屏幕往“后”移动半页。

 

    按「ctrl」+「d」:屏幕往“前”移动半页。

 

    按数字「0」:移到文章的开头。

 

    按「G」:移动到文章的最后。

 

    按「$」:移动到光标所在行的“行尾”。

 

    按「^」:移动到光标所在行的“行首”

 

    按「w」:光标跳到下个字的开头

 

    按「e」:光标跳到下个字的字尾

 

    按「b」:光标回到上个字的开头

 

    按「#l」:光标移到该行的第#个位置,如:5l,56l。

 

4). 删除文字

 

    「x」:每按一次,删除光标所在位置的“后面”一个字符。

 

    「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

 

    「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

 

    「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

 

    「dd」:删除光标所在行。

 

    「#dd」:从光标所在行开始删除#行

 

5). 复制

 

    「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

 

    「#yw」:复制#个字到缓冲区

 

    「yy」:复制光标所在行到缓冲区。

 

    「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

 

    「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

 

6). 替换

 

    「r」:替换光标所在处的字符。

 

    「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

 

7). 回复上一次操作

 

    「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。

 

8). 更改

 

    「cw」:更改光标所在处的字到字尾处

 

    「c#w」:例如,「c3w」表示更改3个字

 

9). 跳至指定的行

 

    「ctrl」+「g」列出光标所在行的行号。

 

    「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

Last line mode下命令简介

在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「commandmode」下后,再按「:」冒号即可进入「last line mode」。

 

1).  列出行号

 

  「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

2).  跳到文件中的某一行

  「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

3).  查找字符

  「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」/「N」往前会往后寻找到您要的关键字为止。

  「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前/「N」往后寻找到您要的关键字为止。

4).  保存文件

  「w」:在冒号输入字母「w」就可以将文件保存起来。

  5).  离开vi  

  「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

aix环境下的一个小技巧

aix下如何运行之前使用过的命令:先ESC进入VI选择模式,然后输入/加上CA然后回车,会查出来最近一次包含CA的命令,然后回车就会运行该命令,或者按j/k向上或向下寻找运行过的命令,如果想对查出来的命令加以修改的话,需要敲a或者i或者o等进入编辑模式然后修改查出来的命令,或者使用h/l移动光标然后使用VI命令修改,然后回车运行(相当于在VI环境下进行编辑)。

系统定时器----crontab

使用权限 : 所有使用者

使用方式 :

  crontab file [-u user]-用指定的文件替代目前的crontab。

  crontab -[-u user]-用标准输入替代目前的crontab.

  crontab-1[user]-列出用户目前的crontab.

  crontab-e[user]-编辑用户目前的crontab.

  crontab-d[user]-删除用户目前的crontab.

  crontab-c dir- 指定crontab的目录。

  crontab文件的格式:M H D m d cmd.   分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令