Linux常用命令及使用技巧
课程学习安排
一、shell基础入门与语法分析二、系统管理与维护命令
三、文件管理与编辑命令四、压缩与解压缩命令 五、磁盘管理与维护命令六、网络设置与维护命令七、文本编辑工具vi/vim
一、Shell基础入门与语法分析
1、 Linux下的shell简介
shell的本意是“壳”的意思,其实已经很形象地说明了shell在Linux系统中的作用。 shell就是围绕在Linux内核之外的一个“壳”程序,用户在操作系统上完成的所有任务都是通过shell与Linux系统内核的交互来实现的。
Linux下除了默认的Bourne again shell(bash),还有很多其他的shell,例如C shell(csh)、Korn shell(ksh)、Bourne shell(sh)和Tenex C shell(tcsh)等。每个版本的shell功能基本相同,但各有千秋,现在的Linux系统发行版一般都以bash作为默认的 shell。
一、Shell基础入门与语法分析
1、 Linux下的shell简介
为了加快命令的运行,同时更有效地定制shell程序,shell中定义了一些内置的命令,一般我们把shell自身解释执行的命令称为内置命令,例如下面我们将要讲到的cd、pwd、 exit和echo等命令,都是属于bash的内置命令。
除了内置命令,Linux系统上还有很多可执行文件。可执行文件类似于Windows下 的.exe文件,这些可执行文件也可以作为shell命令来执行。其实Linux上很多命令都不是shell的内置命令,例如ls就是一个可执行文件,存放在/bin/ls中。这些命令与shell内置命令不同,只有当它们被调用时,才由系统装入内存执行。
shell执行命令解释的具体过程为:用户在命令行输入命令提交后,shell程序首先检测是否为内置命令,如果是,就通过shell内部的解释器将命令解释为系统调用,然后提交给内核执行;如果不是shell内置的命令,那么shell会按照用户给出的路径或者根据系统环境变量的配置信息在硬盘寻找对应的命令,然后将其调入内存,最后再将其解释为系统调用,提交给内核执行。
一、 Shell基础入门与语法分析
2、shell语法分析
- 、shell的命令格式
用户登录系统后,shell命令行启动。shell遵循一定的语法格式将用户输入的命令进行分析解释并传递
给系统内核。shell命令的一般格式为:
command [options] [arguments]
根据习惯,我们一般把具有以上格式的字符串称为命令行。命令行是用户与shell之间对话的基本单位。
command:表示命令的名称。 options:表示命令的选项。 arguments:表示命令的参数
在命令行中,选项是包含一个或多个字母的代码,主要用于改变命令的执行方式。一般在选项前面有一个“-”符号,用于区别参数。
一、 Shell基础入门与语法分析
2、shell语法分析
- 、shell的通配符
通配符主要是为了方便用户对文件或者目录的描述,例如用户仅仅需要以“.sh”结尾的文件时,使用通配符就能很方便地实现。各个版本的shell都有通配符,这些通配符是一些特殊的字符,用户可以在命令行的参数中使用这些字符,进行文件名或者路径名的匹配。
“*”、匹配任意一个或多个字符 “?”、匹配任意单一字符
“[]”、匹配任何包含在方括号内的单字符
[root@WEBServer ~]#ls [0-9]?.conf
列出当前目录下以数字开头,随后一个是任意字符,接着以“.conf”结尾的所有文件。
[root@WEBServer ~]#ls [xyz]*.txt
列出当前目录下以x、y或z开头,最后以“.txt”结尾的文件。
一、 Shell基础入门与语法分析
2、shell语法分析
- 、shell的重定向
Linux下系统打开3个文件,即标准输入、标准输出和标准错误输出。用户的shell将键盘设为默认的标准输入,默认的标准输出和标准错误输出为屏幕。也就是用户从键盘输入命令,然后将结果和错误信息输出到屏幕。
所谓的重定向,就是不使用系统默认的标准输入输出,而是重新指定,因此重定向分为输入重定向、输出重
定向和错误输出重定向。要实现重定向就需要了解重定向操作符,shell就是根据重定向操作符来决定重定向操作的。
- 输入重定向
输入重定向用于改变命令的输入源,利用输入重定向,就可以将一个文件的内容作为命令的输入,而不从键
盘输入。
用于输入重定向的操作符有“<”和“<<”。例如:
[root@WEBServer ~]#wc </etc/shadow 40 40 1169
一、 Shell基础入门与语法分析
2、shell语法分析
(3)、shell的重定向
- 输出重定向
输出重定向是将命令的输出结果不在屏幕输出,而是输出到一个指定文件中。用于输出重定向的操作符有“>”和“>>”。例如:
[root@WEBServer ~]#ps –ef >ps.txt
将ps –ef输出的系统运行进程信息全部输入到了ps.txt文件,而不输出到屏幕,可以用more命令查看ps.txt
文件中系统运行的进程信息。
如果在“>”后面指定的文件不存在的话,shell就会自动重建一个;如果文件存在的话,那么这个文件原有的内容将被覆盖;如果不想覆盖存在的文件,可以使用“>>”操作符。例如:
[root@WEBServer ~]#ls –al /etc/* >>/root/install.log
一、 Shell基础入门与语法分析
2、shell语法分析
(3)、shell的重定向
- 错误重定向
错误重定向和标准输出重定向一样,可以使用操作符 ”2>”和 ”2>>”实现对错误输出的重定向。例如:
[root@WEBServer ~]#tar zxvf text.tar.gz 2> error.txt
tar是打包命令,可以在屏幕上看到tar的解压过程。如果“text.tar.gz”是个损坏的压缩包,就会把错误信息输出到error.txt文件。
一、 Shell基础入门与语法分析
2、shell的语法分析
、shell的管道
管道可以把很多命令连接起来,可以把第1个命令的输出当作第2个命令的输入,第2个命令的输出当作第3个命令的输入,依此类推。因此,管道的作用就是把一个命令的输出当作下一个命令的输入,而不经过任何中间文件。
通过管道符“|”可以建立一个管道连接,例如:
[root@WEBServer ~]# ls -al /etc/* |more
表示将/etc目录以及子目录下的所有文件分屏显示。
[root@WEBServer ~]#ps -ef|grep httpd|wc –l
这个命令是查看系统中正在运行的httpd进程,并计算httpd的进程数。
一、 Shell基础入门与语法分析
2、shell的语法分析
(4)、shell的引用
在bash中有很多特殊字符,这些字符本身就具有特殊含义。如果在shell的参数中使用它们,就会出现问题。Linux中使用了“引用”技术来忽略这些字符的特殊含义,引用技术就是通知shell将这些特殊字符当作普通字符处理。shell中用于引用的字符有转义字符 “\”、单引号” ‘’ ”、双引号 “ " “ “。
- 转义字符 “ \ “
如果将”\”放到特殊字符前面,shell就忽略这些特殊字符的原有含义,当作普通字符对待,例如:
[root@WEBSe rve r ~]#ls abc?* C:\ba ckup
[root@WEBSe rve r ~]#mv abc\?\* abc [root@WEBSe rve r ~]#mv C\:\\backup backup
上面是将abc?*重命令为abc,将C:\backup重命名为backup。因为文件名中含有特殊字符,所有都使用了转义字符“\”。
一、 Shell基础入门与语法分析
2、shell的语法分析
(4)、shell的引用
- 单引号 ” ‘ ”
将字符串放到一对单引号之间,那么字符串中所有字符的特殊含义将被忽略,例如:
[root@WEBServer ~]#mv C\:\\backup backup [root@WEBServer ~]#mv 'C:\backup' backup上面两条命令完全等效。
- 双引号 “ " “ ”
双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符可以当作普通字符处理,但是仍
有一些特殊字符即使用双引号括起来,也仍然保留自己的特殊含义,比如“$”、“\”和“`”。
二、系统管理与维护命令
1、 ls命令
显示指定工作目录下的内容,列出工作目录所含的文件及子目录。此命令与Windows下的dir类似。另外,Linux也提供了dir命令,用户也可以用dir命令代替ls命令。ls的语法如下:
ls [选项] [路径或文件]
常用选项:
-a 显示指定目录下的所有文件以及子目录,包含隐藏文件(Linux下将“.”开头的文件或者目录视为隐藏文档)
-l 除文件名称外,同时将文件或者子目录的权限、使用者和大小等信息详细列出
-S 以文件大小排序
-pF 在每个文件名后附上一个字符以说明该文件的类型。 “*”表示可执行的普通文件,“/”表示目录, “@” 表示符号链接,“|”表示FIFOs,“=”表示套接字(sockets)
常用组合:
ls –al、ll(ls –l) 、ls –Sl、 ls -apF
二、系统管理与维护命令
、 passwd命令
功能说明:
用于设置用户口令。语法格式如下:
passwd [用户名]
- 普通用户要修改自己的口令,可使用以下命令:
passwd
然后根据提示连续两次输入口令即可。
- 超级用户root修改某个用户的口令时,使用以下命令:
passwd [用户名]
然后根据提示连续两次输入口令即可。root修改自己的密码时,只需输入:
passwd
或者
passwd root
然后根据提示连续两次输入口令即可。
二、系统管理与维护命令
- 、 su命令
su命令主要用于改变用户身份,其格式如下: su [选项] [用户名]
- 加载相应用户下的环境变量
-l 使目前的shell成为改变身份后用户默认的shell
-c 改变身份运行一个指令后就结束
举例:
- 普通用户要成为超级用户,可执行如下命令。
$su -
根据系统提示输入超级用户口令,即可转变为超级用户。
注意:su后面的“-”就是加载root环境变量,如果直接输入su也可以转变为超级用户,但是由于没有加载root环境变量,因此某些指令可能无法执行,会提示“command not found”。
- 在普通用户A下修改超级用户root的口令,可以使用下面的命令。
$su -c passwd
然后根据提示输入root口令,接着连续两次输入root用户新的密码。执行完毕,系统自动退出到普通用户A下。
二、系统管理与维护命令
4、 dmesg命令
功能说明
显示开机信息。内核会将开机信息存储在系统缓冲区(ring buffer)中,如果开机来不及查看相关信息,可以在开机后利用dmesg命令查看,也可以在/var/log/目录中查看dmesg文件。其格式如下:
dmesg [选项]
-c 显示开机信息后,清除ring buffer信息
-s 设置缓冲区大小,默认设置为8192
主要用途:
dmesg经常用于系统异常诊断,当系统出现问题时,会第一时间将异常信息写入dmesg内存中,注意dmesg命令和/var/log/dmesg的区别
二、系统管理与维护命令
5、 free命令
功能说明
free命令用来显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存。其格式如下:
free [选项] [-s (间隔秒数)]
-b 以Byte为单位显示内存使用情况
-m 以MB为单位显示内存使用情况
-K 以kB为单位显示内存使用情况
-s(间隔秒数) 根据指定的间隔秒数持续显示内存使用情况
使用技巧:
理解used、free、shared、buffers、cached、buffers/cache、Swap含义以及内在关系
二、系统管理与维护命令
6、 ps命令
功能说明
ps命令显示系统进程在瞬间的运行动态,其格式如下: ps [选项]
ps的选项非常之多,这里我们仅仅介绍常用的选项
-a 显示所有用户的进程,包含每个程序的完整路径
-x 显示所有系统程序,包括那些没有终端的程序
-u 显示使用者的名称和起始时间
-f 详细显示程序执行的路径
-e 将除内核进程以外所有进程的信息写到标准输出
常用组合:
ps -ef、ps –aux
必须熟练掌握ps命令的使用,能够读懂ps命令输出结果的每项含义。
二、系统管理与维护命令
6、 ps命令
ps 命令可以查看进程状态,如下是进程的几种状态:
stat中的参数意义如下:
- D 不可中断 进程
- R 正在运行,或在队列中的进程
- S 处于休眠状态
- T 停止或被追踪
- Z 僵尸进程
- X 死掉的进程
- < 高优先级
- N 低优先级
- s 包含子进程
• + 位于后台的进程组
二、系统管理与维护命令
7、top命令
top命令提供了实时的对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用状况。该命令可以按照对CPU的使用、内存使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式命令进行设定显示。
功能说明
查看即时活跃的进程,类似于Windows的任务管理器。
top的输出可以分为统计信息区和进程信息区两个部分,即前5行显示为统计信息区,下面为进程信息区。
对top命令的输出要求能够熟练说出每项输出的含义。
二、系统管理与维护命令
8、其它命令
- pwd命令功能说明
显示当前的工作目录,执行pwd指令可立刻得知目前所在的工作目录的绝对路径名称
- cd命令
改变当前工作目录,其用法与Windows下的cd类似。具体的语法格式如下:
cd [目录名]
cd [目录] 切换到有目录名指定的目录下,注意Linux下文件和目录是区分大小写的
cd 或者cd ~ 返回当前用户的默认工作目录,注意cd与“~”之间有一个空格 cd ~[用户名] 返回指定用户的工作目录下,注意这里“~”和用户名之间没有空格 cd ..或者cd ../ 返回到上级工作目录下
cd / 返回到根目录下
二、系统管理与维护命令
8、其它命令
- date命令
显示或者修改系统时间与日期。只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。
date命令的语法如下:
date [选项] 显示时间格式 (以+开头,后面接时间格式)
显示两天前的时间。
[root@mylinux /]# date '+%Y-%m-%d' 2018-04-08
[root@server108 /]# date -d "2 days ago" +%Y-%m-%d 2018-04-06
- who/w命令
who命令显示目前登录到系统的用户
二、系统管理与维护命令
8、其它命令
- uname命令
uname命令用来显示操作系统相关信息
- uptime命令
uptime命令用来输出系统任务队列信息
- last命令
列出目前与过去登入系统的用户相关信息。当执行last指令时,它会默认读取位于
/var/log目录下名称为wtmp的文件,并把该给文件记录的登入系统的用户名单全部显
示出来。
标签:shell,语法分析,课线,用户,命令,Linux,root From: https://www.cnblogs.com/TessCat/p/16833423.html