【Linux必知必会】之常用命令快速入门

前言

平常大家可能使用的都是预装Windows系统的电脑,毕竟Windows系统支持丰富的图形界面,在娱乐和办公方面比较有优势,易用性也较好。用惯了Windows的人,看到Linux那黝黑的命令行窗口,可能会头皮发麻,但其实Linux是被广泛用作服务器对外提供服务的,只不过普通大众不清楚而已,通常服务器是放在比较阴凉通风的地方的,服务器只需响应转发请求,不需要丰富的图形界面,在维护时再接个显示屏对其操作命令即可。在系统的流场性而言,Linux是胜出的,不需要很高的配置就能使用,而且它的安全性也是Windows无法比拟的,因为它的权限控制机制比Windows要好很多,Linux系统下连杀毒软件都没有,当然也不需要。

对于开发者而言,熟悉一些常用的Linux系统命令是必要的,以下将分类介绍,由于篇幅有限,命令的参数不可能都一一介绍,可以使用 man 命令了解详细信息,如:

[root@localhost yekong]# man ls

文件和目录操作的基本命令

pwd命令

pwd 命令代表“print working directory”(打印工作目录)。当你键入 pwd 时,你是在请你的 Linux 系统显示 你的当前位置。例如:

[root@localhost yekong]# pwd
/home/yekong
[root@localhost yekong]# 
cd命令

cd 命令来改变工作目录。例如:

命令 功能
cd ~ 回到用户目录
cd / 回到系统的根目录
cd /root 根用户的主目录;必须是根用户才能访问该目录
cd /home 去到 home 目录,用户的登陆目录
cd .. 回到上一级目录
成cd /dir1/subdir 无论在哪个目录,这个绝对路径会直接跳到subdir中
cd ../../ 向上移动两级
ls命令

使用 ls 命令就可以显示你的当前目录的内容。ls 命令有许多可用的选项。要看到 ls 命令的所有选项,你可以 通过在 shell 提示下键入 man ls 来阅读其说明书页。下面是一个与 ls 一起使用的一些常用选项的简短列表。

参 数 功 能
-a 全部(all),列举目录中的全部文件,包括隐藏文件(.filename),位于这个列表起首处的 .. 和 . 依 次是指父目录和你的当前目录。
-l 长(long)。列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到 系统其它地方的链接,以及链接的指向。
-F 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是一个目录;@ 表 明是到其它文件的符号链接;* 表明是一个可执行文件。
-r 逆向(reverse)。从后向前地列举目录中的内容。
-R 递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容。
-S 大小(size)。按文件大小排序
locate 命令

有时候,你知道某一文件或目录存在,但却不知该到哪里去找到它。你可以使用 locate 命令来搜寻文件或目录 。
使用 locate 命令,你将会看到每一个包括搜寻条件的目录或文件。譬如,如果你想搜寻所有名称中带有 finger 这个词的文件,如键入:

locate finger

locate 命令使用数据库来定位文件或目录名中带有 finger 这个词的文件和目录。这个搜寻结果可能会包括一个 叫做 finger.txt 的文件,一个叫做 pointerfinger.txt 的文件,一个被命名为 fingerthumbnails 的目录,诸如此类 。

clear命令

clear 命令用于清除终端窗口

cat命令

cat是 concatenate(连锁)的简写,意思是合并文件。该命令可以显示文件的内容(经常和more搭配使用), 或者是将多个文件合并成一个文件。

head命令

可以使用 head 命令来查看文件的开头部分。此项命令是:

head <filename>

按照默认设置, 使用head命令只能阅读文件的前十行,但你可以通过指定一个数字选项来改变要显示的行数,如下面的命令所示:

head -20 <filename>
tail命令

与 head 命令恰恰相反的是 tail 命令。使用 tail 命令,你可以查看文件结尾的十行。这有助于查看日志文件的 最后十行来阅读重要的系统消息。你还可以使用 tail 来观察日志文件被更新的过程。使用 -f 选项,tail 会自动实时地把打开文件中的新消息显示到屏幕上。

tail -f /var/log/yum.log
grep命令

grep 命令对于在文件中查找指定的字串很有用途。例如,如果你想在 example.txt 文件中查找每一个提到“ hello”的地方,你可以键入:

grep hello example.txt

你就会看到文件中带有“hello”的每一行。

chmod命令

chmod命令用于改变文件或目录的访问权限。

[root@localhost ~]# ls -l text.txt
-rw-r--r--. 1 root root 0 Aug 10 23:51 text.txt

从上面的信息可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(test),所有者 所在的组群(test)。在组群右侧的信息包括文件大小、创建的日期和时间,以及文件名。

第一列显示了当前的权限;它有十位。第一位代表文件类型。其余九位实际上是用于三组不同用户的三组权限 。

-(rw-)(r–)(r–). 1 root root
那三组是:文件的所有者,文件所属的组群,和“其他人”。
第一个项目指定文件类型,它可以显示以下几种:
d — 目录
-(短线)— 常规文件(而不是目录或链接)
l — 到系统上其它位置的另一个程序或文件的符号链接
在第一个项目之后的三组中,你可以看到下面几种类型:
r — 文件可以被读取
w — 文件可以被写入
x — 文件可以被执行(如果它是程序的话)
当你在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。可以看出以下这句:

-rw-r--r--. 1 root root 0 Aug 10 23:51 text.txt

文件的所有者(即root)有读取和写入该文件的权限。组群root有读取的权限,其他群组有读取的权限,该文件不是一个可执行程序,因此所有者和群组都没有执行它的权限。

可用 chmod 来改变文件的权限,如下:

chmod o+2 text.txt

o+w 命令告诉系统你想给其他人写入文件 text.txt 的权限。查看结果,比上面多了个w(写权限):

[root@localhost ~]# ls -l text.txt 
-rw-r--rw-. 1 root root 0 Aug 10 23:51 text.txt

要从 text.txt 中删除读写权限,使用 chmod 命令来取消读取和写入这两个的权限

chmod o-rw text.txt

通过键入 o-rw,将告诉系统删除文件 text.txt 中其他人的读取和写入权限。结果与下面的输出相似:

-rw-r-----. 1 root root 0 Aug 10 23:51 text.txt

当你想用 chmod 命令来改变权限时,把它们当做速记符号来记忆,因为你实际要做的只是记住几个符号而已 。下面是一个速记符号含义的列表:

身份 说明
u 拥有文件的用户(所有者)
g 所有者所在的群组
o 其他人(不是所有者或所有者的群组)
a 每个人或全部(U、g 和 o)
权限 说明
r 读取权限
w 写入权限
x 执行权限
符号 说明
+ 添加权限
- 删除权限
= 使它成为唯一权限

另外,也可以通过使用数字来改变权限。每种权限设置都可以用一个数值来代表:
r = 4, w = 2, x = 1, - = 0

当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,你会得到一个 值为 6 的总和;4(读取)+ 2(写入)= 6。

如text.txt 文件的数字权限设置如下:
- (rw-) (rw-) (r–)
4+2+0 4+2+0 4+0+0
所有者的总和为6,组群的总和为6,其他人的总和为4。这个权限设置读作 664。

给 text.txt 设置全权限,用数字来改变权限,例如:

[root@localhost ~]# chmod 777 text.txt 
[root@localhost ~]# ls -l text.txt 
-rwxrwxrwx. 1 root root 0 Aug 10 23:51 text.txt
cp命令

cp(copy)命令可以将文件或目录复制到其他目录中,就如同DOS下的copy命令一样,功能非常强大。在使用cp 命令时,只需要指定源文件名与目标文件名或目标目录即可。格式:cp <源> <目标>

mv命令

要移动文件,使用 mv 命令。mv 的常见选项包括:
-i — 互动。如果你选择的文件会覆盖目标中的现存文件,它会提示你。这是一个实用的选项,因为它象 cp 中 的 -i 选项一样,会给你一个确认替换已存文件的机会。
-f — 强制。它会超越互动模式,不提示地移动文件。除非你知道自己在干什么,这个选项很危险。在你对系统 信心十足之前,请谨慎使用这个选项。
-v — 详细。显示文件的移动进度。
如果你想把文件从你的主目录中移到另一个现存的目录中,键入以下命令(你需要位于你的主目录内):

mv text.txt temp

另外的方法是,用同一个命令,但使用绝对路径,如

mv text.txt /home/yekong/temp
mkdir命令

mkdir(make directory)命令用来建立目录。例如在系统中建立 data 子目录:

[root@localhost ~]# mkdir data
rm命令

对于系统中过时或无用的文件,用户可以用rm命令将其删除。该命令可以删除目录中的文件或目录本身,对于链接文件,只是删除了该链接,原有文件保持不变。删除文件和目录的选项包括:
-i — 互动。提示你确认删除。这个选项可以帮助你避免误删文件。
-f — 强制。代替互动模式,不提示地删除文件。除非你知道自己在干什么,使用这个选项通常不是明智之举。
-v — 详细。显示文件的删除进度。
-r — 删除目录
-r — 递归。将会删除某个目录及其中所有的文件和子目录

要使用 rm 命令来删除文件 text.txt,键入:

[root@localhost ~]# rm text.txt

使用 rm 命令来删除目录 data 及其目录下的所有文件键入:

rm -rf data

另一个比使用 rm 更安全的删除目录的命令是 rmdir 命令。这个命令不允许你使用递归删除,因此不能删除包 含文件的目录。

文件压缩和有关归档的命令

compress,uncompress命令

此命令用于压缩或解压缩数据

gzip,gunzip命令

此命令用于压缩或解压缩文件,其中gzip是在Linux系统中经常使用的压缩和解压缩命令。

rpm 命令

rpm命令用于启动RPM软件包管理操作。

tar命令

tar命令用于启动文件打包程序

unzip

该命令用于解压缩扩展名为.zip的文件,即可以在Linux下解压Windows中用Winzip压缩的文件。

zip命令

zip命令用于打包和压缩文件。

文件系统的命令

dd

用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

edquota

此命令可用于设置用户与用户组的磁盘空间限制。

fdisk

此命令用于执行Linux下的磁盘分区。

mkfs

此命令用于建立一个Linux文件系统。

mount

该命令用于装配一个文件系统。

quota

此命令用于限制和显示用户可用的磁盘空间。

与系统管理相关的命令

free

该命令用于查看当前系统内存的使用情况,它可以显示系统中剩余及已用的物理内存、交换内存、共享内存和 内核缓冲区。

shutdown

该命令用于关机或进入单人维护模式。

date

data命令可以显示当前系统的日期和时间。clock命令也可以用于显示系统当前的日期与时间(默认情况下,普 通用户无法执行clock命令,必须用root帐号登录执行)。例如:

[root@localhost ~]# date
Sat Aug 11 00:38:53 CST 2018
[root@localhost ~]# clock
Sat 11 Aug 2018 12:38:57 AM CST  -0.261170 seconds
cal

该命令可显示计算机中的月历或年历。例如:


[root@localhost ~]# cal
     August 2018    
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
write

该命令用来向系统中的某一个用户发送消息。用户如果想退出信息发送状态,按组合键Ctrl+C即可。例如:

[root@localhost ~]# write yekong

用户管理命令

groupadd

该命令用于创建新的用户组

groups

该命令用于显示当前用户所在的组。

passwd

passwd(password)命令可让用户修改帐户的密码。一般来说,设置帐户密码失败有几种情况:密码太简单、密 码太短、密码中的字符多数相同。

su

这个命令非常重要,它可以使一个一般用户拥有超级用户或其他用户的权限,也可以使超级用户以一般用户的 身份做些事情。但一般用户使用该命令时必须有超级用户或其他用户的口令。如果要退出当前用户的登录,可 以输入exit。

useradd

该命令是建立用户帐号最快最简单的方法。

userdel

该命令用来删除用户帐号及其相关文件。
##### who
该命令可以查看当前计算机有哪些用户登录,例如:

[root@localhost ~]# who
yekong   :0           2018-08-10 22:13 (:0)
yekong   pts/0        2018-08-10 22:13 (:0)
yekong   pts/1        2018-08-10 22:14 (192.168.25.

##### whoami
该命令是用来查看当前用户的登录名。例如:

[root@localhost ~]# whoami
root

网络管理命令

finger

该命令可以用来查询用户信息,也能查看默认的用户环境。例如:

[root@localhost ~]# finger
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
yekong    yekong    *:0             Aug 10 22:13                           (:0)
yekong    yekong     pts/0    2:33  Aug 10 22:13                           (:0)
yekong    yekong     pts/1          Aug 10 22:14                           (192.168.25.1)
[root@localhost ~]# finger -l root
Login: root                     Name: root
Directory: /root                        Shell: /bin/bash
Last login Fri Aug 10 22:16 (CST) on pts/1
No mail.
No Plan.
ftp

该命令是标准的文件传输协议的用户接口,是在 TCP/IP 网络上传输文件最简单有效的办法。

host

改命令用于 DNS 查询

hostname

该命令用于显示或设置系统的主机名

mail

该命令用来发送和接收邮件

netstat

该命令用于显示网络连接、路由表和网络接口信息,用户可以知道目前有哪些网络连接正在运行。一般常用的参数有:

-a: 显示所有socket,包括正在监听的。
-c: 每隔1秒钟就重新显示一遍网络信息,直到用户中断它。
-I:显示所有网络接口的信息
-n: 以IP地址代替名称,显示网络连接信息。
-r: 显示核心路由表,格式同“route-e”命令。
-t: 显示TCP协议的连接信息。
-u: 显示UDP协议的连接信息。
-v: 显示正在进行的网络协议。
-p: 显示pid(进程号)。

[root@localhost ~]# netstat -nltup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1360/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1140/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1141/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1300/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1140/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1141/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1300/master         
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           751/avahi-daemon: r 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           715/chronyd         
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1360/dnsmasq        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1360/dnsmasq        
udp        0      0 0.0.0.0:68              0.0.0.0:*                           939/dhclient        
udp        0      0 0.0.0.0:52337           0.0.0.0:*                           751/avahi-daemon: r 
udp6       0      0 ::1:323                 :::*                                715/chronyd  
ping

该命令可用来测试计算机和网络上的其他计算机是否连通.例如:

[root@localhost ~]# ping baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from baidu.com (123.125.115.110): icmp_seq=1 ttl=128 time=41.1 ms
64 bytes from baidu.com (123.125.115.110): icmp_seq=2 ttl=128 time=48.4 ms
64 bytes from baidu.com (123.125.115.110): icmp_seq=3 ttl=128 time=38.2 ms
rsh

rsh(remote shell) 命令是远程shell命令.该命令在指定的远程主机上启动一个shell并执行rsh命令,如果rsh没有 指定具体命令,就启用rlogin命令登录到远程主机上。

telnet

telnet 命令用于通过网络登录远程计算机,如同操作本地计算机一样。

wget

Wget命令用于Linux环境下从WWW上下载文件,支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,查找合乎要求的文件并下载到本地硬盘上,Wget命令可在后台运行,截获并忽略 HANGUP信号,因此在用户退出登录之后,仍可继续运行。

进程管理命令

kill

该命令用于终止一个程序。例如:

[root@localhost ~]# kill 4468
bash: kill: (4468) - No such process
ps

该命令用于显示程序的状态。例子如下:

[root@localhost ~]# ps
   PID TTY          TIME CMD
  2763 pts/1    00:00:00 sudo
  2769 pts/1    00:00:00 su
  2770 pts/1    00:00:00 bash
  5307 pts/1    00:00:00 ps

ps 命令可配合grep命令实现查找某一进程的信息,如:

[root@localhost ~]# ps -ef|grep java

猜你喜欢

转载自blog.csdn.net/qq_23483671/article/details/81570716