linux常用指令

Posted 番茄炒蛋不吃西红柿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux常用指令相关的知识,希望对你有一定的参考价值。

文章目录

Linux常用指令

Linux系统下的所有指令大小写敏感;

Linux系统下的命令格式如下:

命令  [选项]   [参数]

其中,选项和参数是可选的,中间用空格隔开

ls指令

语法: ls [选项] [目录或文件]

功能
(1)对于目录,该命令列出该目录下的所有子目录与文件。

(2)对于文件,将列出文件名以及其他信息。

常用选项

(1)-a :列出目录下的所有文件,包括以 . 开头的隐含文件。

(2)-l :列出文件的详细信息。

目录也有属性,如果想查看该目录自身的内容,不想看目录里面的文件的属性,使用:ls -d 目录名

(3)-d :将目录像文件一样显示,显示目录自身的属性,而不是显示其下的文件及子目录。

ls /course 等价于ls course: 都是查看course目录下文件及其子目录的信息

ls -d course:查看course目录本身的信息

(4)-i: 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件

(5)-k :以 k 字节的形式表示文件的大小。 ls –alk 指定文件

(6)-n :用数字的 UID,GID 代替名称。

再看ls -aln指令,-n就是把文件所属用户id和所属用户组id转换成数字显示

(7)-F: 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表
示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别)

(8)-r :对目录反向排序。

(9)-t :以时间排序。

(10)-s :在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

(11)-R :列出所有子目录下的文件。 (递归)

(12)-1 :一行只输出一个文件。

which指令

语法:which 指令名称
功能:查看特定指令的系统路径

指令本身也是linux上的一些程序,指令本质也是文件(可执行文件,相当于windows的.exe文件)


alias指令

语法:alias 指令别名=‘指令’
功能:给指令起别名

但是,对指令起的别名只在本次登录有效。但是尽量不要给指令起别名。

ll指令

pwd指令

语法: pwd
功能:显示用户当前所在的目录
常用选项

cd指令

语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。叶子节点是文件或者空目录。

几乎所有的操作系统,管理文件的方式都是多叉树的形式。


为什么我们可以使用“路径”的方式来定位文件呢?

定位文件需要知道:我在哪里,我是谁
比如/home/ly/test.c
/home/ly/ —我在哪
test.c—我是谁

路径名+文件名 就能找到文件

这种文件路径具有唯一性,因为在一个多叉树中,每一个节点,都只有一个父节点,反过来从根目录开始向下找到该文件的路径具有唯一性(路径回归)。这种从根目录开始的带全路径的叫绝对路径,具有唯一性。

既然有绝对路径,就一定有相对路径。
相对路径:相对当前我所处的路径
.. 当前路径的上一级路径
.当前路径

相对路径不具备唯一性,并不能唯一的标识一个文件。比如,对于/root/course/test.c文件,我们进行编译,使用不同的相对路径都可以运行代码。



使用绝对路径就具有唯一性

指令意义
cd ..返回上级目录
cd /home/liuyan/code/绝对路径
cd ../day02/相对路径
cd ~进入用户家目
cd -返回最近访问的目录

cd -:记录最近从哪个路径来到当前路径的,并返回那个路径

cd ~:进入用户家目录
对不同的用户,~对应的路径不同,普通用户默认所处的工作路径一定是:/home/xxx,而root用户对应的工作目录是:/root.

我们使用普通用户登录:


whoami:查看当前用户是谁

echo指令

功能:输出内容到控制台

echo “hello world”
将对应的输出字符串显示到标准输出

touch指令

语法:touch [选项] 文件名
功能
(1)touch只能创建普通文件,不能创建目录。
(2)touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。

常用选项
(1)-a 或–time=atime或–time=access或–time=use:只更改存取时间。
(2)-m 或–time=mtime或–time=modify: 只更改变动时间。
(3)-c 或–no-create: 不建立任何文档。
(4)-d: 使用指定的日期时间,而非现在的时间。
(5)-f :此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
(6)-r: 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
(7)-t: 使用指定的日期时间,而非现在的时间

stat指令

语法:stat 文件名
功能:查看文件属性

有3种时间属性:
Access、Modify、Change

mkdir指令

语法: mkdir [选项] dirname
功能:在当前目录/指定目录下创建一个名为 “dirname”的目录

常用选项
(1)-p, --parents :可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此-p/–parents选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录(创建多级目录


tree指令: 当前目录下所有的文件以树形结构展现出来
安装tree指令:以root用户登录,然后执行yum install -y tree ,yum install -y epel -release

mkdir –p p1/p2/p3/p4 : 递归建立多个目录
创建目录的本质是在树路径中,新增路径或者结点

rmdir指令

rmdir是一个与mkdir相对应的命令。 mkdir是建立目录,而rmdir是删除命令。

语法: rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能删除空目录

常用选项
(1)-p :当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除


rm 指令

功能:rm命令可以同时删除文件或目录

语法: rm [选项] [dirName/dir]
适用对象:所有使用者

常用选项

(1)-f : 即使文件属性为只读(即写保护),亦直接删除(force强制删除)
(2)-i :删除前逐一询问确认
(3)-r : 删除目录及其下所有文件(不管目录为空或者非空)

linux没有回收站,删除就是删除了,没有办法恢复

rm -rf / : 删除根目录,电脑中所有文件都没有了,Linux中一切皆文件,千万不要这样操作!!!rm -rf 慎用!!!

man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man

语法: man [选项] 命令

常用选项
(1)-k: 根据关键字搜索联机帮助
(2)num :只在第num章节找
(3)-a :将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

安装man手册
yum install -y man-page

man man指令可以查看man手册介绍

解释一下,man手册分为8章

1 是普通的命令(默认查找第1章
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
4 特定文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfi

手册1,2,3是最常用的。

help指令

功能:获得 shell 内置命令的帮助信息

ifconfig --help:查看网卡信息

cp指令

语法: cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。

若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

常用选项
(1)-f 或 --force: 强行复制文件或目录, 不论目的文件或目录是否已经存在

(2)-i 或 --interactive :覆盖文件之前先询问用户

(3)-r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

(4)-R 或 --recursive:递归处理,将指定目录下的文件及子目录一并处理

示例

拷贝单个文件到当前路径下(文件不存在,自动创建,若文件已经存在,则覆盖原文件的内容)

将test.c的内容拷贝到txt.txt中

拷贝单个文件到指定路径下

拷贝多个文件到已经存在的目录下(该目录必须已经存在)

cp默认只能拷贝文件,要想拷贝目录,要使用-r选项

course目录下的所有子目录以及文件都拷贝到course2目录下

mv指令

mv命令是move的缩写,可以用来为文件或目录重命名、或将文件或目录移入其它位置。(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

命令格式运行结果
mv source_file(文件) dest_file(文件) 将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录)将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录) 若目录名 dest_directory 已存在,则将 source_directory 移动到目录名 dest_directory 中;若目录名 dest_directory 不存在,则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件) 出错

常用选项:
(1)-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

(2)-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

完成剪切功能:
剪切文件

剪切目录

完成重命名功能:

cat指令

语法: cat [选项][文件]
功能: 查看目标文件的内容(默认会打印到控制台

常用选项
(1)-b :对非空输出行编号
(2)-n :对输出的所有行编号
(3)-s :不输出多行空行


cat不跟文件名:默认从键盘读取内容 类似C语言的scanf,C++的cin。

Linux 中还有一个 nl 的命令和 cat -b 的效果等价。

tac指令

语法:tac 文件名
功能:逆序输出文本

more指令

语法: more [选项][文件]
功能: more命令,功能类似 cat

常用选项
(1)-n :显示前n行就不再显示了,按enter继续向下显示
(2)q : 退出more

ctrl+b:返回上一屏
ctrl+f: 向下滚动一屏

less指令

语法: less [选项] 文件
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件

可以使用上下箭头进行上移和下移。

选项
(1)-i :忽略搜索时的大小写
(2)-N :显示每行的行号
(3)/字符串:向下搜索“字符串”的功能
(4)?字符串:向上搜索“字符串”的功能
(5)n:重复前一个搜索(与 / 或 ? 有关)
(6)N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit



如果查看大文件,但是又不想打开它,不要使用cat,使用more/less指令,比如查看日志文件,系统中是存在各种日志的,就是保存软件在运行中过程中对应的数据。

head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的
开头至标准输出中,而 tail 想当然就是看档案的结尾。

语法: head [选项] [文件]

功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:
(1)-n<行数> 显示的行数

tail指令

tail 命令从指定点开始将文件写到标准输出

使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

语法: tail [必要参数] [选择参数] [文件]
功能: 用于显示指定文件末尾内容,不指定文件时作为输入信息进行处理。常用查看日志文件。

选项
(1)-f :循环读取
(2)-n<行数> 显示行数

默认情况下 tail 指令显示文件的后 10 行内容。


head和tail是从文件头部或者尾部查看,那么如何查看中间部分呢?

重定向

假如有一个文件共有100行内容,如何取出50-70行呢?

先介绍一个重定向的概念:


echo “hello world”:本来是将字符串打印到标准输出上,>是输出重定向,也就是把本应该显示到显示器上的数据,重定向写入目标文件中,这里就是写入了log.txt文件,如果log.txt不存在,会自定义创建。


我们发现输出重定向会清空原始文件内容,如果想在原来内容后面追加内容,如何操作?

>>:追加重定向,不会覆盖原来文件的内容,而是追加到文件的尾部。

输入重定向:<

下面来讲解如何读取文件的中间部分,取myfile.txt20-30行的内容:

方式1:

1.head -30 myfile.txt > tmp.txt
把内容保存到临时文件中

2.tail -10 tmp.txt
取临时文件的后10行

方式2:使用管道

管道|

|:管道

管道用于传输资源,管道有输入有输出,将前一个命令的处理结果输出传递给后面的命令处理

使用管道时,默认隐式的发生了重定向

时间相关指令date

date指令

1.在显示方面

date 指定格式显示时间: date +%Y:%m:%d

使用者可以设定想显示的格式,格式设定为一个加号后接数个标记,其中常用的标记如下:

%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%d
%s:打印时间戳

打印年
打印月

打印日

打印年月日

打印年月日时分秒

注意:第1个+不能省略,后面的格式可以自己定义

2.在设定时间方面

date 设置时间用法: date [OPTION]… [+FORMAT]

date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间

3.时间戳

时间->时间戳: date +%s
时间戳->时间: date -d @时间戳

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始到现在所经过的秒数,不考虑闰秒。

打印时间戳

把时间戳转换为时间,格式可以自己设定


在日志中,涵盖时间信息,时间戳是给程序看的,时间(年月日时分秒)是给程序员看的。

cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳
历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

命令格式: cal [选项] [月份] [年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

常用选项
(1)-3: 显示系统前一个月,当前月,下一个月的月历
(2)-j: 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
(3)-y: 显示当前年份的日历

默认显示当月的日历

显示指定年份的日历

显示当前年份的日历

显示今天在今年中的第几天

指定月份年份 在当年的第几天

显示2020年9月,10月,11月的日历

显示上个月,这个月,下个月的日历

显示指定年月的日历

find指令

特别重要!!!

Linux下find命令是在目录结构中搜索文件,并执行指定的操作。

Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只要你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

语法: find 【pathname】 【-options】 文件名或目录名
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘),将满足条件的文件或者目录显示在终端

常用选项
(1)-name :按照文件名查找文件
(2)-perm xxxx:权限为 xxxx的文件或目录
(3)-user: 按照文件属主来查找文件。
(4)-size n : n单位,b:512位元组的区块,c:字元数,k:kilo bytes,w:二个位元组
(5)-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
(6)-amin n : 在过去 n 分钟内被读取过
(7)-anewer file : 比文件 file 更晚被读取过的文件
(8)-atime n : 在过去n天内被读取过的文件
(9)-cmin n : 在过去 n 分钟内被修改过
(10)-cnewer file :比文件 file 更新的文件
(11)-ctime n : 在过去n天内被修改过的文件
(12)-empty : 空的文件
(13)-gid n or -group name : gid 是 n 或是 group 名称是 name
(14)-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
(15)-iname filename : 文件名称符合 filename 的文件,iname 会忽略大小写
(16)-type 查找某一类型的文件

  • b - 块设备文件
  • d - 目录
  • c - 字符设备文件
  • p - 管道文件
  • l - 符号链接文件
  • f - 普通文件

(17)-exec 命令名 \\ (注意:“”和“\\”之间有空格)


示例:
find ./ -name ‘*.c’ 查找当前目录下所有后缀为.c的文件
find ./ -name “[A-Z]*” 查找当前目录下所有以大写字母开头的文件
find ./ -size 1M 查找当前目录下等于1M的文件
find ./ -size +1M 查找当前目录下大于1M的文件
find ./ -size -1M 查找当前目录下小于1M的文件
find ./ -size +1k -size -3M 查找当前目录下大于1k,小于3M的文件
find ./ -perm 0777 查找当前目录下权限为 777 的文件或目录

whereis指令

whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

grep指令

语法: grep [选项] 搜寻字符串 文件名
功能在文件中搜索字符串,将找到的行打印出来

常用选项
(1)-i :忽略大小写的不同,所以大小写视为相同
(2)-n :顺便输出行号
(3)-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
(4)-r: 递归处理,在指定目录及其子目录下的所有文件中 查找 指定的字符串,该选项同时会给出包含该字符串的文件名

示例:
在文件myfile.txt中查找字符串9,并打印相应的行

-n打印行号

locate指令

locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () `/var/lib/mlocate/mlocate.db’: No such file or directory该错误!updatedb即可!

语法:locate 搜索文件

zip指令

语法: zip  [选项]  XXX.zip   目录或文件

功能: 将目录或文件压缩成XXX.zip格式

常用选项
(1)-r 递归处理,将指定目录下的所有文件和子目录一并处理

示例:
将test2目录压缩: zip test2.zip test2/*

zip可以直接压缩普通文件,但是如果要压缩目录,要使用-r选项

unzip指令

语法:unzip   [选项] [目录]  XXX.zip
功能:将XXX.zip解压到指定目录下

常用选项
(1)-d:指定解压后文件的存放目录

示例:
解压到tmp目录: unzip test2.zip -d /tmp


使用zip/unzip会保留原来的文件。

tar指令

打包/解包,不打开它,直接看内容

(1)打包
语法:tar   [-czvf]   新的文档名.tgz  要打包的内容

(2)解包
语法**:tar   [-xzvf]  要解包文档名.tgz   -C   解压到的目录

常用选项
(1)-c :建立一个压缩文件的参数指令(create 的意思,压缩);
(2)-x :解开一个压缩文件的参数指令!(解压)
(3)-t :查看 tarfile 里面的文件!
(4)-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
(5)-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
(6)-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
(7)-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!就是后面直接跟文档名
(8)-C : 解压到指定的目录

示例:
打包文件夹

打包文件

解包到指定目录下

打包VS压缩
打包并不会减少空间,把所有东西分门别类的放在一起;压缩目的是减少空间。

bc指令

bc命令可以很方便的进行浮点运算


wc指令

wc命令用于计算字数。

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据

语法
wc [-clw] [–help] [–version] [文件…]

参数:

-c或–bytes或–chars 只显示Bytes数。

-l或–lines 显示行数。

-w或–words 只显示字数。

–help 在线帮助。

–version 显示版本信息。

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

wc filename

查看当前目录下文件的个数:

ls -l | grep “^-” | wc -l

查看当前目录下文件的个数,包括子目录里的:

ls -lR| grep “^-” | wc -l

查看某目录下文件夹(目录)的个数,包括子目录里的:

ls -lR| grep “^d” | wc -l

显示当前目录下所有.c文件的总行数:

wc -l `find . -name *.c`

uname指令

语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。

补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项
(1)-a或–all 详细输出所有信息,依次为内核名称主机名内核版本号内核版本硬件名处理器类型硬件平台类型操作系统名称

(2)-r或–release  显示操作系统的发行编号

查看内核版本:

查看发行版:

内核版和发行版

内核是系统的心脏,是linux中最基层的代码,比如版本号为 Linux version 3.10.0-1160.45.1.el7.x86_64

发行版本是在内核的基础上,开发不同应用程序,组成的一个完整的操作系统。目前估计各种发行版本有数十种,比如Centos Linux release 7.6.1810 (Core).

(3)-s或–sysname  显示操作系统名称

(4)-v  显示操作系统的版本

(5)-n或–nodename  显示在网络上的主机名称

(6)-m或–machine  显示电脑类型

(7)–version  显示版本信息

hostname指令

查看当前机器的主机名

ping 指令

一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢

语法:ping ip地址

需要手动终止Ctrl+C

ifconfig指令

可以查看/配置计算机当前的网卡配置信息

常用热键

[Tab]按键—具有『命令补全』和『档案补齐』的功能

[ctrl+r]按键–查看历史命令

[Ctrl]-c按键—让当前的程序『停掉』

[Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 或者 End OfInput)』的意思;另外,他也可以用来取代exit (该热键可以关掉远程主机和xshell)

history指令

查看历史命令

file指令

功能:用于辨识文件类型。
语法:file [选项] 文件或目录

常用选项
(1)-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
(2)-z 尝试去解读压缩文件的内容

关机指令

1.立刻关机(需要root用户)

shutdown -h now

2.10 分钟后自动关机

shutdown -h 10

3.立刻关机

halt

4.立刻关机

poweroff

5.sync : 把内存的数据同步到磁盘,就是关机前要保存

重启指令

1、使用 reboot 命令(需要root用户)

reboot

2、也可以使用 shutdown 命令

shutdown -r now

3、5分钟后重启

shutdown -r 5

ps指令

ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

语法:ps [options] [–help]

ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义

常用选项

(1)-A 列出所有的进程
(2)-w 显示加宽可以显示较多的资讯
(3)-au 显示较详细的资讯
(4)-aux 显示所有包含其他使用者的行程


对于该指令,以后学习进程管理时再详细学习。

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?要特别了解操作系统才能和操作系统直接沟通,对于不熟悉操作系统的用户,不可能直接和操作系统进行沟通。

广义上来说:Linux发行版 = Linux内核 + 外壳程序(也就是命令行程序)
狭义上来说:linux = Linux内核

从技术角度, Shell的最简单定义:命令行解释器(command Interpreter),主要包含:将使用者的命令翻译给核心(kernel)处理,同时,将核心的处理结果翻译给使用者。

对比windows GUI(图形化界面,类似linux的shell),我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核,通过内核运行出结果,反馈结果再通过shell解析给用户。

shell和bash的关系:
shell是所有外壳程序的统称,bash是具体的某个外壳程序(类似于,程序员和具体的某个程序员的关系),centos中用的是bash。

shell的作用

1.传递请求,让操作系统执行命令
2.保护内核,拒绝非法请求

程序运行起来就是一个进程,shell本身在系统中就是一个进程,shell创建子进程来执行具有风险的事情,shell不做命令行解释的工作,但是它帮助完成这个工作。

以上是关于linux常用指令的主要内容,如果未能解决你的问题,请参考以下文章

linux命令大全之cal命令详解(显示日历)

Linux命令篇之cal命令和file命令

Linux常用指令及操作

Linux | Linux常用指令学习笔记 #yyds干货盘点#

Linux 日常常用指令

Linux常用指令