在了解Linux 常用命令之前,有必要知道以下两个概念。
1、Linux 终端
Linux 把显示器和键盘合称为终端,因为它们可以对系统进行控制并且可以用软件的方式来实现,所以又称为虚拟控制台。
2、Linux Shell
在终端上,通过输入Shell 命令来控制和使用计算机。Shell 是一个命令解释器,它通过接受用户输入的命令来启动、暂停、停止程序的运行或对计算机进行控制。
Shell有两种提示符:以**#**为提示符表明该终端是由root 用户打开的,root用户具有系统最高权限,因此可以输入任何可用的命令,而一般用户打开的终端的提示符是 $ 。提示符的其他部分分别表示:[登录用户名@主机名当前目录]。
Shell命令的基本格式是:
命令名 [选项] <参数1> <参数2>.……
其中方括号中的选项对命令来说是可选的,一条命令可以有0个或多个参数。选项是对命令的特别定义,也可以理解为选项告诉命令具体做什么。选项通常以“-”开始,后接一个或多个字母,如 ls-al,有的选项以“–”开头,后面一般跟着一个单词,比如–number。很多“–”格式的选项可以用“-”加上第一个字母来替代,如–number_可以用-n来替代。在 Shell下输入相应的命令并按回车键,Shell就执行命令。如果没有此命令,Shell会提示·“command not found”,表明没有这个命令。Shell 命令是区分大小写的,一条命令只要有一个字母的大小写发生变化,系统就认为是一条不同的命令。可以用分号“;”来连接多个命令,Shell 会依次执行这些命令。
3、man page 与 info page
Linux命令数量众多,你能完全掌握它们的功能吗?你能了解它们的每一个选项,每一个参数吗?这个时候就需要用到强大的在线求助 man page
man 也是命令,为manual(操作说明)man command
即可显示此命令的操作说明。
举个例子:
man ls 即可显示关于 ls 命令的所有内容,包括其用法,等级,相关环境参数等一系列信息
而使用 man命令时会进入一个界面,此即所谓的 man page,在其中也可以使用许多快捷键进行操作。
可以说,通过man命令即可了解到所有的命令相关的操作说明。虽然Linux中有许多许多的命令,你背不完所有的命令,你也不需要背所有的命令,记住平时常用的命令,然后灵活使用man 与 Tab键补全即可完成许多操作。
info page的用法与 man page基本类似,但是,在info中将文件数据折叠成一个个段落,更方便使用者的查询与查看。
4、几个简单命令
date
显示当前日期与时间cal
显示本月日历;cal [month] [year]
显示指定时间日历bc
打开计算器(数据默认整型);可通过scale = number
保留小数位数,number即为要保留的小数位数;quit
退出计算器pwd
显示当前目录的路径du -h file
查看文件大小useradd zhang3
创建新用户张三passwd zhang3
设置用户密码chpasswd zhang3
更改用户密码userdel zhang3
删除用户张三
5、几个常用热键
- < Tab >键补全
输入命令、目录名或文件名的开头一个或几个字母后按下 < Tab >键,Shell 会在相应目录里进行匹配,自动补齐命令、目录名或文件名。在命令、目录名或文件名很长或难以记忆时,自动补齐功能会很有用。
- <↑>和<↓>键
可以通过按<↑>或<↓>键来显示执行过的命令,这在重复执行某些命令时会给用户带来很大的便利。
- < Ctrl > + C 终止进程
有时候避免不了的,会进行了错误的进程,那么怎么办?按下< Ctrl> + C可以解决这个而问题,会强制终止进程。虽然好用,但是有的时候,也需要谨慎使用,不能肆意使用,否则会引起重大错误的出现。
- < Ctrl > + D 结束输入
使用< Ctrl > + D可迅速结束从键盘的输入,相当于输入exit()一样。
- < Ctrl > + L 清理屏幕
6、文件与目录管理常用命令
6.1、cd 改变当前目录命令
格式:cd <目录名>
例如:执行命令 cd/home/admin
,则切换到目录/home/admin 下。
例如:执行命令 cd~
,则当前目录位于用户的主目录下。
例如:执行命令 cd..
,切换到当前目录的父目录。
例如:执行命令 cd -
,切换到前一个目录。
6.2、ls 显示目录或文件信息命令
格式:ls [选项] <目录或文件名>
主要选项如下:
-a:显示所有的文件和目录。
-l:以长格式显示文件信息。
-t:将结果按修改时间进行排序,新的文件或目录排在前面。
6.3、cat 文件内容查看和连接命令
格式:cat [选项] <文件1> <文件2> …
该命令用于把几个文件的内容连接后显示在屏幕上。主要选项如下:
-n:对内容进行按行编号输出。
例如:执行命令cat -n test.c
,表示将文件test.c的内容加上行号后显示输出。
例如:执行命令cat test1.c test2.c
,表示将文件test1.c和 test2.c的内容串接在一起并输出。
针对比较大的文件,我们就可以使用
less
命令打开某个文件。类似vim,less可以在输入/
后进入查找模式,然后按n
(N)向下(上)查找。空格
向下滚屏翻页,b
向上滚屏翻页,q
退出less
6.4、cp 文件复制命令
格式:cp [选项] <源文件或目录> <目标文件或目录>
该命令用于把一个文件拷贝到另一个文件或将多个文件拷贝到一个目录下。主要选项如下:
-r:若源目录下还有文件或目录,则都拷贝到目的地。
-f:若目标目录下已经有同名的文件,则把它删除并把源文件拷贝到目标目录下。
例如:执行命令cp test.c tmp/program.c
,表示把当前目录下的test.c文件拷贝到/tmp目录下并命名为program.c
6.5、mkdir 创建目录命令
格式:mkdir [选项] <目录>
如果指定目录不存在则创建它。主要选项如下:
-p:若要建立的目录的上层目录不存在,则先创建它。
例如:执行命令mkdir-p dir1/dir2
,表示在当前目录下创建dir1/dir2,如果dir1不存在则先创建它。
6.6、touch 创建文件命令
格式:touch <文件>
例如:执行命令touch test.c
在当前目录下创建一个文件test.c,前提是test.c文件不存在。
6.7、rm 删除文件命令
格式:rm [选项] <文件或目录>
该命令用于删除文件,主要选项如下:
-r:若目录非空,则删除目录下所有的文件。
-f:强制删除。
例如:执行命令rm *.c
,表示删除当前目录下所有以.c结尾的文件。
例如:执行命令rm -rf tyq
,表示强制删除 tyq目录下所有的文件和子目录,子目录下的文件或目录都被删除。
6.8、rmdir 删除目录命令
格式:mkdir [选项] <目录>
如果指定目录为空就删除它,若不为空则出现错误信息。主要选项如下:
-p:当删除指定目录后,若该目录的父目录为空,则也将其删除。
例如:执行命令rmdir -p dir1/dir2
,表示在当前目录下的dir1目录中删除dir2子目录,若删除dir2后dir1变为空目录,则也将其删除。
6.9、mv 移动或重命名文件命令
格式:mv [选项] <源文件或目录> <目的文件或目录>
该命令用于对一个文件或目录进行重命名或将几个文件移到另一目录。主要选项如下:
-f:强制移动,若目标目录下有同名的文件则覆盖它。
例如:执行命令mv test.c program.c
,则将当前目录下的test.c文件重命名为program.c。
7、压缩命令
为了减小传输文件的大小,一般都开启压缩。linux下常见的压缩文件有tar、bzip2、zip、rar等,7z这种用的相对较少。
.tar 使用tar命令压缩或解压
.bz2 使用bzip2命令操作
.gz 使用gzip命令操作
.zip 使用unzip命令解压
.rar 使用unrar命令解压
最常用的就是.tar.gz
文件格式了。其实是经过了tar打包后,再使用gzip压缩。
创建压缩文件
tar -zcvf test.tar.gz ./
解压
tar -zxvf test.tar.gz
8、vi/vim编辑器的简单使用
Vi (visual interface) 是Linux上主要的文本编辑软件。它可以进行文本输入、删除、查找、替换、块操作等诸多文本操作。但是目前我们使用比较多的是 vim 编辑器(vi的增强版)。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。基本操作如下图:
9、gcc 编译器的简单使用
Linux 下最常用的C 语言编译器是 gcc (GNU Compiler Collection)。
编译过程:
(1)预处理
(2)编译
(3)汇编
(4)链接
源文件 test.c 生成可执行文件 test 命令
gcc test.c -o test
如果未指定文件名,默认生成可执行文件 a.out
10、apt 命令与 yum 命令
apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 命令执行需要超级管理员权限(root)。
sudo su root #su命令用于切换用户
10.1、apt 语法
apt [options] [command] [package ...]
- **options:**可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- **command:**要进行的操作。
- package:安装的包名。
10.2、apt 常用命令
-
列出所有可更新的软件清单命令:sudo apt update
-
升级软件包:sudo apt upgrade
-
安装指定的软件命令:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
-
更新指定的软件命令:sudo apt update <package_name>
-
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
-
删除软件包命令:sudo apt remove <package_name>
-
清理不再使用的依赖和库文件: sudo apt autoremove
-
移除软件包及配置文件: sudo apt purge <package_name>
-
列出所有已安装的包:apt list --installed
-
列出所有已安装的包的版本信息:apt list --all-versions
yum( Yellow dog Updater, Modified)是一个在 Fedora、CentOS和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
10.3、yum 语法
yum [options] [command] [package ...]
- **options:**可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
- **command:**要进行的操作。
- **package:**安装的包名。
10.4、yum 常用命令
- 列出所有可更新的软件清单命令:yum check-update
- 更新所有软件命令:yum update
- 仅安装指定的软件命令:yum install <package_name>
- 仅更新指定的软件命令:yum update <package_name>
- 删除软件包命令:yum remove <package_name>
- 清除缓存命令: yum clean all
11、服务相关命令
systemctl start apache2
(service apache2 start
) 启动apache服务systemctl stop apache2
(service apache2 stop
) 停止apache服务systemctl restart apache2
(service apache2 restart
) 重启apache服务systemctl status apache2
(service apache2 status
) 查看apache运行状态systemctl enable apache2.service
设为开机自动运行服务systemctl disable apache2.service
取消开机自动运行服务
12、查看系统状态命令
登陆一台linux机器,有些命令能够帮助你快速找到问题。这些命令涵盖内存、cpu、网络、io、磁盘等。
uname
命令可以输出当前的内核信息,让你了解到用的是什么机器。
uname -a
Linux linux 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ps
命令能够看到进程/线程状态。
# 找到java进程
ps -ef|grep java
top
系统状态一览,主要查看cpu load负载、cpu占用率,使用内存或者cpu最高的一些进程。df
命令用来查看系统中磁盘的使用量,用来查看磁盘是否已经到达上限。df -h
可以以友好的方式进行展示。ifconfig
查看ip地址ping
检测网络连接netstat
虽然ss
命令可以替代netstat
了,但现实中netstat仍然用的更广泛一些。比如,查看当前的所有tcp连接。
#查找本地端口相关
netstat -ant
待补充。。。
参考资料: