本文详细列举了一些Linux常用基础命令
Linux系统的文件
1、文件与文件夹(目录)
Linux一切皆文件
2、Linux系统的文件目录结构
目录结构:
Bin:全称binary,含义是二进制,存储的都是一些二进制文件。
Dev:主要存放的是外接设备。例如:盘、其他的光盘等。不能直接使用,需要挂载。
Etc:主要存储一些配置文件。
Home:家。除了root用户以外其他用户的家目录。
Proc:process,表示进程,存储的是Linux运行时候的进程。
Root:是root用户自己的家目录。
Sbin:全称:super binary,存储一些可执行的二进制文件,但必须有super权限的用户才能执行。
Tmp:“临时的”,存放系统运行时候产生的临时文件。
Usr:存放用户自己安装的软件 。
Var:存放程序或系统的日志文件。
Mnt:挂载的时候,需要挂载到mnt目录下。
Linux 的基本指令
指令与选项
完整指令标准格式:
#指令 【选项】 【操作对象】
基础指令
1、ls 指令
含义:ls(list),列出当前工作目录下的所有文件或文件夹的名称。
用法2: #ls 路径
含义:指定路径下的所有文件或文件夹的名称。
绝对路径:直接从根目录下开始
相对路径
相对路径的写法,用到2个符号,“./”表示当前目录下, “../“表示上一级目录下
用法3:#ls 选项 路径 含义:以指定的格式进行显示
常见语法:
#ls -l 路径 表示以详细列表的形式进行展示
#ls -a 路径 表示显示所有的文件或文件夹(包含隐藏文件或文件夹)
#ls -h 路径 表示在显示文档大小的时候以可读性较高的形式显示
可以同时使用 #ls -lah 路径
第一列字符表示文档的类型,其中”-“表示为文件,”d“表示为文件夹。
Linux中隐藏文件一般都是以”.“开头。
ls列出的结果颜色说明
蓝色表示文件夹,黑色表示文件,绿色的其权限为拥有所有权。
2、pwd 指令
用法:(print-working-directory) 打印当前工作目录
3、cd 指令
(change directory)切换当前工作目录
语法:#cd 路径
在Linux中有一个特殊的符号”~“,表示当前用户的家目录
切换方式:#cd ~
4、mkdir 指令
创建目录
语法:#mkdir 路径 (路径可以是文件夹名称,也可以是一个完整路径)
例: #mkdir /root/new 在指定目录下创建文件夹。
语法2: #mkdir -p 路径
#mkdir -p 实现多层创建
当一次性创建多层不存在的目录的时候,添加 -p参数,否则报错
-v 参数 能够输出详细的过程
语法3: #mkdir 路径1 路径2 一次性创建多个文件目录
5、touch 指令
作用:创建文件
语法:#touch 文件路径(可为文件,可为路径)
6、cp 指令
作用:复制文件或文件夹到指定的位置
语法:#cp 被复制的文档路径 指定位置
复制过去可以通过命令改名字
例:linux.txt 存在于 /home/123 下面
cp linux.txt /home/123/linux1.txt
注意:当使用cp命令进行文件夹复制操作的时候,
需要添加选项”-r“,否则目录将被忽略。
(-r 表示递归复制)
7、mv 指令
(move移动,复制)作用:移动文档到新的位置
语法:#mv 需要移动的文档 新位置
移动后原始文件不在原来的位置
补充:在Linux中重命名的命令也是mv,语法和移动的语法一样
8、rm 指令
作用:移除或删除文档/文件/文件夹
语法:#rm 选项 需要移除的文档路径
在删除的时候如果不带选项,会提示是否删除
-f 表示强制
-r 表示递归删除
可同时删除多个,用空格隔开即可
一般将 -fr 连着用
删除一个目录下有公共特性的文档,如都以linux开头,则用:#rm -rf linux* ,用”“,”“ 称为通配符
9、vim 指令
指令:vim(是一款文本编辑器)
语法:#vim 文件的路径
作用:打开一个文件
10、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析统计,则这时候需要使用到输出重定向技术。
: > 覆盖输出(会覆盖掉原先的文件内容)
》 追加输出(不会覆盖掉原始文件的内容,会在原始内容末尾继续添加)
语法:#正常执行的指令 >或》文件的路径
注意:文件可以不存在,不存在则新建
例:使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的 ls.txt
语法为:#ls -la > ls.txt
11、cat 指令
作用1:cat 有直接打开一个文件的功能
语法:#cat 文件的路径
作用2:对文件进行合并
语法:#cat 待合并文件路径1 待合并文件路径2 > 合并后的文件路径
三、进阶指令
1、df 指令
作用:查看磁盘的空间 (列出文件系统的整体磁盘使用量)
语法:#df -h
-h 表示以可读性较高的形式展示大小
-a 列出所有的文件系统,包括系统特有的 /proc等文件系统
-T 连同该硬盘分区的文件系统名称(如xfs)也列出
du 指令:查看文件系统的磁盘使用量(常用在查看目录所占磁盘空间)
-a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量
-s:仅列出总量,而不列出每个各别的目录占用容量
与df不一样的是,du这个命令其实会直接到文件系统内去查找所有的文件数据。
2、free 指令
作用:查看内存使用情况
语法:# free -m
-m 表示以mb(兆)为单位进行查看
3、head 指令
作用:查看一个文件的前n行,如果不指定n,则默认是显示前10行
语法:#head -n 文件路径 (n用具体数字表示)
4、tail 指令
作用:查看一个文件的末尾n行,如果n不指定,则默认为后10行
语法:tail -n 文件路径 (n用具体数字表示)
作用2:可以通过tail指令来查看一个文件的动态变化
语法:#tail -f 文件路径
5、less 指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键查看更多
语法:#less 需要查看的文件路径
6、wc 指令
作用:统计文件内容信息,包括行数、单词数、字节数
语法:wc -lwc 需要统计的文件路径
-l :行数
-w:单词数(依照空格来判断单词数量)
-c:字节数
如: ls -l | grep “^-“ |wc -l
7、date 指令
作用:表示操作时间日期(读取、设置)
语法1:#date(直接date)
语法2:#date +%F 输出形式 2021-03-17 等价于 #date +“%Y-%m-%d”
语法3:#date “+%F%T” 输出年月日时分秒
语法4:#date -d “-1 day”表示1天前的时间
获取之前或者之后的某个时间 +表示之后 -表示之前 year,day,month
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
8、cal 指令
作用:用来操作日历
语法1:#cal 等价于 #cal -1
直接输出当前月份的日历
语法2:#cal -3
表示输出上一个月、本月+下一个月3个月份的日历
语法3:#cal -y 年份
表示输出某一个年份的日历
例: #cal -y 2020 输出2020年的日历
9、clear/ctrl +L 指令
作用:清除终端中已经存在的命令和结果或信息
注意:该命令并不是真的清除了之前的信息,而是把之前的信息隐藏到了最上面,通过滚动条可以继续查看以前的信息
10、管道
管道符: | (竖线)
作用:管道一般可用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须要配合前面所讲的一些指令来一起使用,起作用主要是辅助作用
过滤案例:需要通过管道查询出根目录下包含“y”字母的名称
#ls /| grep y
针对上面这个命令说明:
1> 管道作为分界线,前面的命令的输出就是后面命令的输入,然后再过滤输出
2>grep 指令,主要用于过滤
11、ss 指令
用于查看端口号
ss -tanl
12、stat 指令
stat指令:文件/文件系统的详细信息显示。
stat命令主要用于显示文件或文件系统的详细信息,
13、 which 指令
which指令会在环境变量 $PATH 设置的目录里查找符合条件的文件。
14、 locate指令
locate 要搜索的文件或目录名,非实时的从数据库里快速搜索文件或目录。
15、 nl 指令
nl命令在linux]系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
1.命令格式:
nl [选项]… [文件]…
2.命令参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。
四、高级指令
1、hostname 指令
作用:操作服务器的主机名(读取)
语法:#hostname 表示输出完整的主机名
语法2:#hostname -f 表示输出当前主机名中的 FQDN(全限定域名)
2、id 指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id)
该指令如果不指定用户则默认为当前用户
#语法:#id 默认显示当前执行该命令的用户的基本信息
#语法2:#id 用户名 显示指定用户的基本信息
3、whoami 指令
作用:“我是谁”?显示当前登录的用户名
语法:#whoami
4、ps -ef 指令
指令 ps,作用主要是查看服务器的进程信息。
选项含义:
-e:表示列出全部的进程
-f :表示显示全部的列(显示全字段)
执行结果:
各列的含义:
UID:该进程执行的用户id
PID:进程id
PPID:该进程的父级进程id
C:CPU的占用率
TIME:进程的执行时间
CMD:该进程的名称或者对应的路径
STIME:进程的启动时间
5、top 指令
作用:查看服务器的进程占用的资源
语法:进入命令 #top 动态显示
退出命令:按下q键
输出的结果:
表头含义:
PID:进程id
USER:该进程对应的用户
PR:优先级
VIRT:虚拟内存
在运行top的时候,可以按下方便的快捷键
M:表示将结果按照内存(MEM)从高到低进行排列;
P:表示将结果按照cpu使用率从高到低排列;
1:服务器拥有多个CPU的时候可以使用“1”,快捷键来切换是否展示各个CPU的详细信息;
6、du -sh 指令
作用:查看目录的大小
选项含义:
-s:只显示汇总的大小;
-h:以高可读性的形式进行显示;
7、find 指令
作用:用于查找文件(其参数有55个之多)
语法:#find 路径范围 选项 选项值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档类型进行搜索
文档类型:“-”表示文件,(在使用find的时候需要用f来替换)
“d”表示文件夹
示例:使用find来搜索 httpd.conf
#find / -name httpd.conf
示例:搜索etc目录下所有的.conf后缀文件
#find /etc -name *conf
8、service 指令
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
例如:
需要重启本机安装的Apache(网站服务器软件),其服务名为httpd
#service httpd start
9、kill 指令
作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法:#kill 进程ID (语法需要配合ps一起使用)
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:#killall 进程名称
10、ifconfig 指令
作用:用于操作网卡相关的指令
简单语法:#ifconfig 获取网卡信息
11、reboot 指令
作用:重新启动计算机
语法:#reboot
语法2:#reboot -w 模拟重启,但是不重启,只写关机与开机的日志信息
12、shutdown 指令
作用:关机(慎用)
语法:shutdown -h now 或者 shutdown -h 15:25 (指定关机时间)
如果想要取消关机计划的话,则可以用命令 shutdown -c
除了shutdown关机以外,还有以下几个关机命令:
#init 0
#halt
#poweroff
13、up time 指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#up time
14、uname 指令
作用:获取计算机操作系统相关信息
语法:#uname
语法2:#uname -a 表示获取全部的系统信息
语法3: #uname -r 输出内核发行版本
15、netstat 指令
作用:查看网络连接状态
语法:netstat -tnlp
选项:
-t:表示只列出tcp协议的连接
-n:表示将地址从字母组合转化程ip地址,将协议化成端口号来显示
-l:表示过滤出”stat(状态)“列中其值为LISTEN(监听)的连接
-p:显示发起连接的进程pid和进程名称
16、man 指令
作用:manual,手册(包含了Linux中全部命令手册,英文)
语法:#man 命令 (退出按下q键)
例:通过man命令查询cp 指令的用法
#man cp
前面讲过,Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。
因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。
挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
纠正一个误区,并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。
17、scp 指令
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 Linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
- -p:保留原文件的修改时间,访问时间和访问权限。
- -q: 不显示传输进度条。
- -r: 递归复制整个目录。
- -v:详细方式显示输出。
1 | |
- 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
- 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
18 、nl命令
nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
1.****命令格式:
nl [选项]… [文件]…
2.****命令参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。