本文整理和介绍 Linux 常用的一些指令。

一、文件基本操作命令

1. ls 命令

简介:ls命令的功能是显示指定目录下的文件目录清单相当于dos下的dir命令,而且其参数更加丰富多样。
参数说明:

  1. 不带参数 显示指定目录中的文件清单,如果没有指定任何目录,则默认为当前目录。(ls)
  2. -a 表示查看所有的文件,包含隐藏文件。(ls -a)
  3. -l 以长格式列表输出指定目录中的文件清单,显示文件具体信息包括权限、日期、名称等信息。(ls -l)
  4. -R 递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单。(ls -R)

2. pwd 命令

示例:pwd
功能:显示当前目录。

3. mkdir 命令

示例:mkdir abc
功能:在当前目录下创建文件夹abc

4. cd 命令

示例:cd /etc/bin
功能:将当前文件路径设置为 /etc/bin 使用命令 pwd 显示的路径为:/etc/bin, 不带参数的 cd 命令直接将当前的工作目录切换为该用户的主目录。
注意:字符 “~” 代表(当前)用户的主目录。

5. touch 命令

示例:touch myfile.txt
功能:如果当前路径下文件 myfile.txt 不存在,则创建一个大小为0字节名为 myfile.txt 的空文件, 如果 myfile.txt 已存在,则将改变 myfile.txt 的最后修改时间。

6. cp 命令

示例:cp /etc/abc.txt bcd
功能:将/etc/目录下的文件abc.txt复制到文件夹录bcd中。
注意:“*” 和 “?” 是通配符。“*”:可以匹配多个字符;“?”:只能匹配一个字符。

7. mv 命令

示例一(将文件移动到目录中):mv file mydir1
功能:如果mydir1存在且是个目录,则将文件file移动到目录mydir1中。

示例二:(文件改名):mv myfile myFile2
功能:将文件(或目录)myfile 改名为 myfile2。

8. rmdir 命令

示例:rmdir mydir1
功能:删除指定的空目录。

9. rm 命令

示例一(删除文件):rm php.ini
功能:删除指定的文件 php.ini。

示例一(删除目录):rm -rf abc
功能:参数-r是递归的意思,即可以删除非空目录;参数-f是强制的意思。

10. cat 命令

示例一(查看文件内容):cat myfile 示例二(写入文件):

  1. 追加写入文件:cat » myfile.txt « end
  2. 覆盖写入文件:cat > myfile.txt « end
    注意:上文中的 end 为结束的标记, end 不会在文件中显示出来

二、用户、组管理命令

— Linux采用组来组织和管理用户
— 在Linux中每个用户有唯一的用户标识符UID,该UID是一个无符号整数。
— 同时每个用户也必须至少属于一个组,也有组标识符GID。
— 其中UID与GID独立编号。

1. groupadd 命令

示例一(创建组账号):groupadd mygroup1
功能:创建一个新组mygroup1,其GID号为已存在GID号的下一个顺序编号。
说明:创建一个组的同时会在/etc/group文件中为该组增加相应的一行,用来记录该组的名称、GID号及成员等信息。

示例二(创建组账号并设置其GID号):groupadd -g 5000 mygroup2
功能:创建一个新组mygroup2,并指定其GID号为5000,其中-g用来设置用户的主要组,每个用户都有一个主要组。

2. useradd 命令

示例一(创建用户账号): useradd user1
功能:创建一个用户user1,同时在 /etc/passwd 文件和 /etc/shadow 文件增加一行, 并自动为用户创建相应的主目录:/home/user1。
说明:/etc/passwd 文件记录了系统中每个用户的用户名、UID号、GID号、主目录、shell等信息。
注意:用户的口令原来也存放在此文件中,现在为了保证安全采用了影子口令文件 /etc/shadow 来保存每个用户的口令。

示例二(创建用户账号并设置相应属性值):useradd -u 600 -g mygroup1 -G mygroup2 -d /home/student1 s1
功能:创建用户s1,其中参数
-u指定UID号为600;
-g指定用户的主要组为mygroup1;
-G指定用户的附加组为mygroup2,每个用户可以有多个附加组;
-d 指定用户的主目录为/home/student1。

三、文件属性操作命令

chmod 命令

chmod示例一(字母方式):chmod u+x host.conf
功能:为文件 host.conf 的属主增加执行权限。
权限字母含义:

  1. 字母 u 针对属主、g 针对属组、o 针对其他用户、a 针对所有用户;
  2. = 表示赋予(设置)指定权限,要注意它会覆盖原权限,+ 表示在原有权限的基础上增加指定权限,- 表示在原有权限的基础上去掉指定权限;
  3. r、w、x 三种权限,既可以单独使用也可以组合使用

chmod示例二(数字方式):chmod 764 hosts.conf
功能:将文件 host.conf 的权限设置为:属主拥有全部权限、属组拥有读写权限、其他用户拥有只读权限。

数字来源:这种方式是先将每个权限位化成二进制数,其中如果某权限位是“-”则用0来表示,否则用1来表示;接着,将这9列权限分为三组(每三位一组),再将每组化成一个八进制数。
例如:某文件有如下权限rwxrw-r–,则转换为二进制数为111110100,再化为八进制数则为764;反之,当看到八进制数764时也应该很快转化为相应权限。

四、查找命令

1. which 命令

示例:which mydir
功能:显示文件夹 mydir 的绝对路径。
注意:该命令只能在命令搜索路径指定的目录中去查找命令或程序。

2. whereis 命令

示例:whereis ln
功能:查询指定命令所在目录以及帮助文档所在目录。

3. find 命令

示例一(—按文件名查找):find / -name “dhcpd*”
功能:参数-name 指明按文件名进行查找,即从/目录开始查找以dhcpd开头的所有文件。

示例二(按文件大小查找):find /etc -size 8
功能:从/etc下开始查找大小为8块的文件,此处默认512字节为1块。若认为块大小为1k,则应写为8k。其它可以使用的单位有c(字节)、w(双字节)、M(兆字节)和G(吉字节)。

示例三(按文件类型查找):find /var -type d -print
功能:从/var目录下开始查找类型为目录的文件,其中参数-print是显示到屏幕上的意思,经常省略。

示例四(按文件的修改时间查找):find . -cmin -5
功能:从当前目录下查找5分钟之内修改过的文件。如果把“-5”改为 “+5”,则表示查找5分钟以前修改过的文件。不带“+”或“-”,则认为整5分钟。

示例五(按文件的权限查找):ind mytmp -perm +755 功能:查找 mytmp 目录下的满足755中任何一种权限的文件,即符合任何一个指定的权限位即可。若为"-“表示权限至少满足755的文件,不带则表示权限刚好为755的文件。

五、压缩与打包命令

1. tar命令

tar命令是经典的备份/还原命令,几乎所有最新的软件包都是通过tar包发布的。
示例一(打包(备份)):tar -cvf myetc.tar /etc
功能:将目录 /etc 打包为一个名为 myetc.tar 的文档。
说明:

  1. 参数-c的功能是打包(创建),
  2. 参数-v是显示处理过程,
  3. 参数-f是用来指定文档名;

示例二(打包(备份))并压缩:tar -zcvf myetc.tar.gz /etc
功能:将目录 /etc 打包并压缩为一个名为 myetc.tar.gz 的文档。
说明:

  1. 其中参数-z是调用gzip命令来压缩,扩展名为gz,
  2. 参数-Z是调用compress命令来压缩,扩展名为Z,
  3. 参数-j是调用bzip2命令来压缩,扩展名为bz2。

六、查看进程命令

1. ps 命令

示例一(不带参数):ps
功能:查询在当前控制台上运行的进程。

示例二(查看所有进程):ps -aux
功能:查询系统中所有运行的进程,包括后台进程,其中参数a是所有进程,参数x包括不占用控制台的进程,参数u显示用户。

示例三(查看所有进程):ps -ef
功能:查询系统中所有运行的进程,包括后台进程,而且可以显示出每个进程的父进程号。

2. pstree命令

示例一(树状格式显示进程列表):pstree
功能:以树状格式显示系统的进程列表。

示例二(带进程号的树状格式显示进程列表):pstree -p
功能:以树状格式显示系统的进程列表,并标识出每个进程的进程号。

3. top命令

示例:top
功能:动态地显示系统中的进程。

4. kill命令

示例一(杀掉指定进程):kill 3029
功能:kill命令可以杀掉一个进程,当然普通用户只能杀掉自己的进程。
说明:上述命令中3029是进程号;一般在执行kill命令之前,先用ps或pstree来查询一下将要被杀掉的进程的进程号。

示例二(强制杀掉指定进程):kill -9 3029 功能:强制终止 3029 号进程的运行,其中参数 -9 代表强制的意思。
说明:实际上 kill 命令是向该进程发送信号,该进程接到信号后决定是否停止运行,有些守护进程必须要收到参数 9 才终止运行。