Linux的命令有几百个,对程序员来说,常用的并不多,并不需要全部掌握。如果在学习和工作中遇到了陌生的Linux命令,不要轻易放过,多查资料,掌握它,日积月累,知识面就会宽广。

本文介绍的是Linux的常用命令,对初学者来说,建议系统化的学习Linux基础知识。

推荐视频:https://www.bilibili.com/video/av18156598

这个视频非本人录制,因为好所以推荐。

1、开机

物理机服务器:按下电源开关,就像Windows开机一样。

本地虚拟机:在VMware中点击“开启此虚拟机”。

2、登录

启动完成后,输入用户名和密码,一般情况下,不要用root用户登录,root用户的权限太大,如果产生了误操作,后果相当严重。

3、切换用户

在命令提示符下输入:su - root ,然后按提示输入root的密码后将切换到root用户。

从root用户切换到其它普通用户不需要输入密码,从普通用户切换到任何用户都需要输入密码。

在这里插入图片描述

4、重启和关机

重启和关机需要系统管理员用户权限。

1)重启。

1
init 6 或 reboot

2)关机。

1
init 0 或 halt

如果没有执行关机命令,强制断电或关闭本地虚拟机的窗口,会导致Linux操作系统文件的损坏,严重的可能导致系统无法正常启动。

5、清屏

1
clear

清除当前屏幕上显示的内容。

6、查看服务器的ip地址

1
ifconfig

在这里插入图片描述

上图中,框中显示的就是IP地址。

7、时间操作

普通用户可以查看时间,但设置时区和时间要系统管理员用户登录 。

1)查看时间。

1
date

2)设置时区为中国上海时间(注意不是北京时间)。

1
cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

3)设置时间。

1
date -s "yyyy-mm-dd hh:mi:ss"

例如:date -s "2020-01-02 12:35:28"

4)把操作系统的时间写入CMOS。

1
clock -w

8、目录和文件

文件系统是像一棵树,树干是/(根)目录,树枝是子目录,树枝后面还有树枝(子目录中还有子目录),树枝最后是树叶,目录的最后是文件。

在这里插入图片描述

严谨的说,文件名是由目录+文件名组成的。

对于目录和文件,有一些约定的表述,我们以/usr/etc/readme.txt为例。

1)全路径文件名包含了完整的目录名和文件名,即/usr/etc/readme.txt,还有一个称呼是“绝对路径文件名”。

2)readme.txt是文件名,它在/usr/etc目录中。

3)目录和文件的绝对路径是从根(/)算起,在任何时候都不会有岐义。

4)登录Linux后,一定处在目录树的某个目录中,这个目录称之为当前工作目录,简称当前目录

5)目录和文件的相对路径是从当前目录算起,如果当前目录是/usr,etc/readme.txt等同于/usr/etc/readme.txt;如果当前目录是/usr/etc,readme.txt等同于/usr/etc/readme.txt。

6)用Linux的命令操作目录和文件的时候,采用绝对路径和相对路径都可以。

7)一个圆点.表示当前目录;

8)两个圆点…表示当前目录的上一级目录。

理解绝对路径和相对路径的概念非常重要,在日常操作中,绝对路径和相对路径会同时使用,但是程序员在编写的程序中极少使用相对路径。

9、正则表达式

正则表达式又称规则表达式、通配符,目录和文件名都支持正则表达式,正则表达式的规则比较多,在这里我只介绍最常用的两种:星号“*”和问号“?”。

星号“*”:匹配任意数量的字符。

问号“?”:匹配一个的字符。

示例:

当前目录下有以下几个文件:

1
book15  book15.c  book1.c  book5.c  makefile

1)列出全部的文件。

在这里插入图片描述

2)列出文件名以book打头,.c结尾,中间可以是任意数量的字符的文件。

在这里插入图片描述

3)列出文件名以book打头,.c结尾,中间只能有一个字符的文件。

在这里插入图片描述

10、查看当前目录

1
pwd

在这里插入图片描述

11、改变当前目录

1
cd 目录名

示例:

1)进入/tmp目录

1
cd /tmp

2)进入上一级目录

1
cd ..

3)进入用户的主目录

1
cd

12、列出目录和文件信息

1
ls [-lt] 目录或文件名

ls是list的缩写,通过ls命令不仅可以查看目录和文件信息,还可以目录和文件权限、大小、主人和组等信息。

选项-l列出目录和文件的详细信息。

选项-lt列出目录和文件的详细信息,按时间降序显示。

示例:

1)列出当前目录下全部的目录和文件名信息。

1
ls

在这里插入图片描述

2)列出当前目录下全部的目录和文件名详细的信息。

1
ls -l

在这里插入图片描述

3)列出/tmp目录下全部的目录和文件。

1
ls /tmp

在这里插入图片描述

4)列出/tmp目录下以匹配exp*.dmp的目录和文件。

1
ls /tmp/exp*.dmp

在这里插入图片描述

5)列出/tmp目录下匹配*.log的目录和文件,按时间降序显示。

1
ls /tmp/*.log

在这里插入图片描述

13、创建目录

1
mkdir 目录名

示例:

1)在当前目录下创建aaa目录。

1
mkdir aaa

2)在当前目录的aaa目录下创建bbb目录。

1
mkdir aaa/bbb

3)创建/tmp/aaa目录。

1
mkdir /tmp/aaa

14、删除目录和文件

1
rm [-rf] 目录或文件列表

选项-r可以删除目录,如果没有-r只能删除文件。

选项-f表示强制删除,不需要确认。

目录和文件列表中间用空格分隔。

示例:

1)删除当前目录下匹配*.log的文件。

1
rm *.log

2)强制删除当前目录下匹配*.log的文件。

1
rm -f *.log

3)删除/tmp/aaa目录和文件。

1
rm -r /tmp/aaa

4)强制删除/tmp目录下匹配exp*的全部目录和文件。

1
rm -rf /tmp/exp*

5)强制删除当前目录下的book和book.c文件

1
rm -rf book book.c

15、移动目录和文件

1
mv 旧目录或文件名 新目录或文件名

如果第二个参数是已经存在的目录,则把第一个参数(旧目录或文件名)移动到该目录中。

示例:

1)把当前目录中的book.c文件重命名为book1.c

1
mv book.c book1.c

2)如果/tmp/test3是一个已经存在的目录,以下命令将把当前目录下的book.c文件移动到/tmp/test3目录中。

1
mv book.c /tmp/test3

3)如果/tmp/test3目录不存在,以下命令将把当前目录下的book.c文件改名为/tmp/test3。

1
mv book.c /tmp/test3

16、复制目录和文件

1
cp [-r] 旧目录或文件名 新目录或文件名

选项-r可以复制目录,如果没有选项-r只能复制文件。

示例:

1)把当前目录下的book1.c文件复制为book2.c

1
cp book1.c book2.c

2)把当前目录下的aaa目录复制为bbb

1
cp -r aaa bbb

3)把当前目录下的book1.c文件复制为/tmp/book1.c

1
2
cp book1.c /tmp/book1.c
cp book1.c /tmp/.

以上两个命令的效果相同。

4)把当前目录下的aaa目录复制为/tmp/aaa

1
2
cp -r aaa /tmp/aaa
cp -r aaa /tmp/.

以上两个命令的效果相同。

17、修改用户的密码

1
passwd [用户名]

修改用户的密码,按提示两次输入新密码,如果两次输入的密码相同就修改成功。

普通用户只能修改自己的密码,只输入passwd就可以了,不能指定用户名。

系统管理员可以修改任何用户的密码,passwd后需要指定用户名。

18、打包压缩和解包解压

tar命令用来打包压缩和解包解压文件,类似windows的winrar工具。

打包压缩的语法:

1
tar zcvf压缩包文件名 目录或文件名列表

示例:

1)把当前目录的aaa、bbb和ccc目录打包压缩成123.tgz文件。

1
tar zcvf 123.tgz aaa bbb ccc

2)把/home/oracle/aaa、/home/oracle/bbb和/home/oracle/ccc目录打包压缩成/tmp/123.tgz文件。

1
tar zcvf /tmp/123.tgz /home/oracle/aaa /home/oracle/bbb /home/oracle/ccc

解包解压的语法:

1
tar zxvf压缩包文件名

示例:

1)把/tmp/123.tgz压缩包文件在当前目录下解压。

1
tar zxvf /tmp/123.tgz

2)把/tmp/123.tgz压缩包文件在/tmp/aaa目录下解压。

1
2
cd /tmp/aaa
tar zxvf /tmp/123.tgz

注意:

1)用tar命令打包和解包的目录和文件没有绝对路径的说法,都成了相对的,在包中相对的。

2)用tar命令打包的文件,用winrar可以解开。

3)在Linux系统中,还有其它的打包压缩和解包解压命令,例如zip/unzip和gzip/gunzip。

19、判断网络是否连通

Windows系统:

1
ping -n 包的个数 ip地址或域名

Linux系统:

1
ping -c 包的个数 ip地址或域名

ping用于确定本地主机是否能与另一台主机成功交换数据包,判断网络是否通畅。

127.0.0.1是指本地的ip地址,ping 127.0.0.1总是可以通的。

示例:

1)向本地主机(127.0.0.1)ping五个包。

1
ping -c 5 127.0.0.1

在这里插入图片描述

2)向新浪的服务器(www.sina.com.cn)ping五个包。

在这里插入图片描述

新浪的服务器是可以ping通的。

3)向谷歌的服务器(www.google.com)ping 五个包。

在这里插入图片描述

谷歌的服务器是ping不通的。

20、显示文本文件的内容

显示文本文件的内容有三个命令:cat、more和tail。

1)cat命令

1
cat 文件名

cat命令一次显示整个文件的内容。

1
cat book1.c

在这里插入图片描述

2)more命令

1
more 文件名

为了方便阅读,more命令分页显示文件的内容,按空格键显示下一页,按b键显上一页,按q键退出。

3)tail命令

1
tail -f 文件名

tail -f用于显示文本文件的最后几行,如果文件的内容有增加,就实时的刷新。对程序员来说,tail
-f极其重要,可以动态显示后台服务程序的日志,用于调试和跟踪程序的运行。

21、统计文本文件的行数、单词数和字节数

1
wc 文件名

示例:

1)统计当前目录处book2*.c文件的行数、单词数和字节数。

1
wc book2*.c

在这里插入图片描述

22、搜索文件中的内容

1
grep "内容" 文件名

注意,如果内容中没有空格等特殊字符,可以不用双引号括起来。

示例:

1)在*.c文件中搜索max

1
grep max *.c

在这里插入图片描述

23、搜索文件

1
find 目录名 -name 文件名 -print

参数说明:

目录名:待搜索的目录,搜索文件的时候,除了这个目录名,还包括它的各级子目录。

文件名:待搜索的文件名匹配的规则。

示例:

1)从/tmp目录开始搜索,把全部的*.c文件显示出来。

1
find /tmp -name *.c -print

2)从当前目录开始搜索,把全部的*.c文件显示出来。

1
find . -name *.c -print

24、增加/删除用户组

1)增加用户组

1
groupadd 组名

例如:

1
groupadd dba

2)删除用户组

1
groupdel 组名

例如:

1
groupdel dba

25、增加/删除用户

1)增加用户

1
useradd -n 用户名 -g 组名 -d 用户的主目录

例如增加一个用户,用户名为wucz,属于dba组,用户的主目录是/home/wucz,各位兄弟,wucz是我的名字,您可以改为您自己的名字。

1
useradd  -n  wucz  -g  dba  -d  /home/wucz

2)删除用户

1
userdel 用户名

例如删除wucz用户。

1
userdel wucz

26、修改目录和文件的主人和组

1
chwon [-R] 用户名:组名 目录或文件名列表

chown将目录或文件的拥有者修改为参数指定的用户名和组,目录或文件名列表用空格分隔。

-R 选项表示处理各及子目录。

示例:

1)把/oracle/home和/oracle/base及其子目录的主人改为oracle,组改为dba。

1
chown -R oracle:dba /oracle/home /oracle/base

27、查看系统磁盘空间

1
df [-h] [-T]

选项-h 以方便阅读的方式显示信息。

选项-T 列出文件系统类型。

示例:

在这里插入图片描述

在这里插入图片描述

28、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net
作者:码农有道