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常用指令的主要内容,如果未能解决你的问题,请参考以下文章