你的位置:首页 > 操作系统

[操作系统]Linux命令之必须掌握的十条命令


必须掌握的十条命令

Linux现如今已经成为了软件行业最流行的操作系统,掌握Linux就成为了每一个开发者必备的专业技能。

为了方便大家学习,大学君在此为大家整理了在使用Linux时必须掌握的十条命令,希望大家能熟练掌握。

1、cd命令

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,”~” 也表示为 home 目录 的意思,”.” 则是表示目前所在的目录,”..” 则表示目前目录位置的上一层目录。

语法

cd [dirName]

dirName:要切换的目标目录。

实例

跳到 /usr/bin/ :

cd /usr/bin

跳到自己的 home 目录 :

cd ~

跳到目前目录的上上两层 :

cd ../..

2、ls命令

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法

ls [-alrtAFR] [name…]

参数

-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出

实例

 

列出根目录(\)下的所有目录:
# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var
列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :
ls -ltr s*
将 /bin 目录以下所有目录及文件详细资料列出 :
ls -lR /bin
列出目前工作目录下所有文件及目录;目录于名称后加 “/”, 可执行档于名称后加 “*” :
ls –AF

3、grep命令

Linux grep命令用于查找文件里符合条件的字符串。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为”-“,则grep指令会从标准输入设备读取数据。

语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

常用参数

-a :将binary文件以text文件的方式查找数据 

-c :计算找到‘查找字符串’的次数 

-i :忽略大小写的区别,即把大小写视为相同 

-v :反向选择,即显示出没有‘查找字符串’内容的那一行 

示例 

# 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色 

grep –color=auto ‘MANPATH’ /etc/man.config 

# 把ls -l的输出中包含字母file(不区分大小写)的内容输出 

ls -l | grep -i file 

4、find命令

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法

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

参数说明

find 根据下列规则判断 path 和 expression,在命令列上第一个 – ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去 n 天过读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去 n 天过修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。

d: 目录

c: 字型装置文件

b: 区块装置文件

p: 具名贮列

f: 一般文件

l: 符号连结

s: socket

-pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

实例

将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

# find . -name "*.c"

将目前目录其其下子目录中所有一般文件列出

# find . -ftype f

将目前目录及其子目录下所有最近 20 分钟内更新过的文件列出

# find . -ctime -20

查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

$ find . -type f -perm 644 -exec ls -l { } ;

为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:

$ find / -type f -size 0 -exec ls -l { } ;

查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

5、cp命令

Linux cp命令主要用于复制文件或目录。

语法

cp [options] source dest

cp [options] source... directory

参数说明

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

-f:覆盖已经存在的目标文件而不给出提示。

-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-l:不复制文件,只是生成链接文件。

实例

使用指令”cp”将当前目录”test/”下的所有文件复制到新目录”newtest”下,输入如下命令:

$ cp –r test/ newtest     

注意:用户使用该指令复制目录时,必须使用参数”-r”或者”-R”。

6、mv命令

Linux mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法

mv [options] source destmv [options] source... directory

参数说明

-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;

-f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

mv参数设置与运行结果

命令格式

运行结果

mv 文件名 文件名
将源文件名改为目标文件名

mv 文件名 目录名
将文件移动到目标目录

mv 目录名 目录名
目标目录已存在,将源目录
移动到目标目录;目标
目录不存在则改名

mv 目录名 文件名
出错

实例

将文件 aaa 更名为 bbb :

mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs 

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/student/* . 

7、rm命令

Linux rm命令用于删除一个文件或者目录。

语法

rm [options] name...

参数

-i 删除前逐一询问确认。

-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

-r 将目录及以下之档案亦逐一删除。

实例

删除文件可以直接使用rm命令,若删除目录则必须配合选项”-r”,例如:

# rm test.txt rm:是否删除 一般文件 "test.txt"? y # rm homework rm: 无法删除目录"homework": 是一个目录 # rm -r homework rm:是否删除 目录 "homework"? y 

删除当前目录下的所有文件及目录,命令行为:

rm -r * 

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

8、ps命令

Linux ps命令用于显示当前进程 (process) 的状态。

语法

ps [options] [—help]

常用参数

-A :所有的进程均显示出来 

-a :不与terminal有关的所有进程 

-u :有效用户的相关进程 

-x :一般与a参数一起使用,可列出较完整的信息 

-l :较长,较详细地将PID的信息列出 

常用组合

ps aux # 查看系统所有的进程数据 

ps ax # 查看不与terminal有关的所有进程 

ps -lA # 查看系统所有的进程数据 

ps axjf # 查看连同一部分进程树状态

9、kill命令

Linux kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

语法

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

参数说明

-l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。

-s <信息名称或编号>  指定要送出的信息。

[程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

实例

杀死进程

# kill 12345

强制杀死进程

# kill -KILL 123456

发送SIGHUP信号,可以使用一下信号

# kill -HUP pid

彻底杀死进程

# kill -9 123456

杀死指定用户所有进程

#kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 #kill -u hnlinux //方法二

10、cat命令

cat命令用于把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)

使用权限

所有使用者

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明

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

  -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号

  -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

  -v 或 –show-nonprinting

实例

把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

cat -b textfile1 textfile2 >> textfile3

清空/etc/test.txt档案内容

cat /dev/null > /etc/test.txt

本文固定链接:linux学习网--Linux命令之必须掌握的十条命令