Linux常用命令及要点和技巧(一)
1.X Windows与命令行模式
1.1简介
(1)Linux提供6个Terminal用户登录,切换方式[Ctrl]+[Alt]+[F1]~[F6]的组合,系统将[F1]~[F6]命名为tty1~tty6的命令行界面。
(2)按[Ctrl]+[Alt]+[F7]切换至图形界面。
(3)Linux提供了7个Run Level,常用Level3和Level5,开启默认,须在/etc/inittab文件中配置,重启生效。
1.2操作
(1)重启X Windows:[Ctrl]+[Alt]+[Backspace]
(2)从命令行模式中启动图形界面:startx
前提:tty7没有被其他窗口软件运行【tty7必须是空出来的】;你必须已经安装了X Windows,且X Server能够顺利启动;
最好要有窗口管理员,如GNOME/KDE;启动X窗口所必须的服务,如字型服务器(X Font Server,XFS)
(3)用户退出登录:exit【可快速退出终端登录,只是离开所登录的系统,并非是关机】
2.常用命令
2.1命令格式及语言的支持
(1)命令格式:command [-options] parameter1 parameter2...
(2)语言支持:
显示当前所支持的语言:echo $LANG
修改语言成为英文语系:LANG=en_US,LANG=en_US.UTF-8【支持中文,通常也需要终端客户软件也需要支持中文】
2.2基础命令
2.2.1 date
(1)功能:用于显示日期与时间的命令,用于显示系统时间
(2)用法:
命令1【简易显示,默认显示日期和时间】:date
命令2【格式化显示】:date +%Y/%m/%d | date +%H:%M
示例:
[BioLife@WolHawk ~]$ date
Sun Dec 4 00:50:37 CST 2022
[BioLife@WolHawk ~]$ date +%Y/%m/%d
2022/12/04
[BioLife@WolHawk ~]$ date +%H:%M
00:50
[BioLife@WolHawk ~]$ date "+%Y-%m-%d %H:%M"
2022-12-04 00:51
[BioLife@WolHawk ~]$ date +"%Z %z %Y-%m-%H %H:%M:%S"
CST +0800 2022-12-00 00:56:06
[BioLife@WolHawk ~]$ date +"%Z %z %Y-%m-%H %H:%M:%s"
CST +0800 2022-12-00 00:56:1670086571
2.2.2 cal
(1)功能:用于显示日历
(2)用法:cal or cal 2020 or cal 9 2020
2.2.3 bc
(1)功能:简易计算器,可用于加、减、乘、除、指数、余数,对应运算符为+、-、*、/、^、%。
(2)用法:键入bc进入软件环境,退出bc使用quit或[ctrl]+c或[ctrl]+d,默认输出为整数,需输出小数,须设置scale=number。
示例:
[BioLife@WolHawk ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2+3+4
10
7-8+5
4
10*13
130
10/100
0
10%3
1
scale=3
1/3
.333
2.2.4 date
2.3热键
2.3.1 [Tab]
(1)功能:命令补齐或文件补齐【巧用tab避免出错和排查】
(2)用法:连续按两次tab键盘后有提示。
2.3.2 [Ctrl]+c
(1)功能:中断当前正在运行的命令,主要用于紧急中断错误运行的程序,尤其是中断错误的命令或耗时的命令。
(2)用法:组合键,先按 [Ctrl]键再按下c键。
2.3.3 [Ctrl]+d
(1)功能:用于代替exit的输入,退出当前环境,比如退出某个软件。
(2)用法:组合键,先按 [Ctrl]键再按下d键。
2.4命令助手
2.4.1 man
(1)功能:man是“manual”的简称,用于查询某个命令的介绍及使用方法,会弹出专用页面显示相关信息。
man page的数据一般存放在/usr/share/man,会因linux distribution不同而已。
可修改/etc/man.config(某些版本为man.conf或manpath.conf)来配置,更多信息通过man man获得。
帮助信息内容格式:
| 代号 | 内容说明 |
| NAME | 简短的命令,数据名称说明 |
| SYNOPSIS | 简短的命令执行语法(syntax)简介 |
| DESCRIPTION | 较为完整的详细说明 |
| OPTION | 针对SYNOPSIS部分中,有列举的所有可用的选项说明 |
| COMMANDS | 当这个程序在执行时,可在此程序中执行的命令 |
| FILES | 这个程序所使用或参考或连接到的某些文件 |
| SEE ALSO | 这个命令或数据有相关的其他说明 |
| EXAMPLE | 一些可以参考的范例 |
| BUGS | 是否有相关的错误 |
示例:以man date为例。
DATE(1) User Commands DATE(1) 【括号中数字很重要】
NAME 【命令名,及简单释义】
date - print or set the system date and time
SYNOPSIS 【提要,命令的基本语法】
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION 【参数的详细描述】
Display the current time in the given FORMAT, or set the system date.
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
......
ENVIRONMENT 【命令相关的环境参数】
TZ Specifies the timezone, unless overridden by command line parameters.
If neither is specified, the setting from /etc/localtime is used.
EXAMPLES 【命令用法示例】
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
Show the time on the west coast of the US (use tzselect(1) to find TZ)
$ TZ='America/Los_Angeles' date
......
DATE STRING 【命令执行结果示例】
The --date=STRING is a mostly free format human readable date string such as
"Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next
Thursday". A date string may contain items indicating calendar date, time
of day, time zone, day of week, relative time, relative date, and numbers.
An empty string indicates the beginning of the day. The date string format
is more complex than is easily documented here but is fully described in the
info documentation.
AUTHOR 【命令作者】
Written by David MacKenzie.
COPYRIGHT 【版权】
Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL
version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is
NO WARRANTY, to the extent permitted by law.
SEE ALSO 【额外还可从哪里查到,补充资料】
The full documentation for date is maintained as a Texinfo manual. If the
info and date programs are properly installed at your site, the command
info coreutils 'date invocation'
should give you access to the complete manual.
GNU coreutils 8.22 November 2020 DATE(1)
(2)用法:man查询命令显示结果中命令括号中数字编号,有特别释义。
| 代号 | 代表的内容 |
| 1 | 用户在shell环境中可以操作的命令或可执行的文件 |
| 2 | 系统内核可调用的函数与工具等 |
| 3 | 一些常用的函数(function)与函数库(library),大部分为C的函数库(libc) |
| 4 | 设备文件的说明,通常在/dev下的文件 |
| 5 | 配置文件或者是某些文件的格式 |
| 6 | 游戏 |
| 7 | 惯例与协议等,例如Linux文件系统、网络协议、ASCII code等说明 |
| 8 | 系统管理员可用的管理命令 |
| 9 | 跟kernel有关的文件 |
特别说明:
翻页,可用空格键向下翻页,可用【Page Up】与【Page Down】进行上下翻页。
检索,使用关键词快速查档,键入"/Keyword"快速定位到所要查询的位置或区域。
实用查询,较为常用且实用的文档查询辅助方法。
| 按键 | 所进行的工作 |
| 【空格键】 | 向下翻 |
| 【Page Down】 | 向下翻页 |
| 【Page Up】 | 向上翻页 |
| 【Home】 | 跳转到第一页 |
| 【End】 | 跳转到最后一页 |
| /String | 向下查询string字符串,方法:/Keyword |
| ?string | 向上查询string字符串 |
| n,N | 利用/或?查询字符串时,用n继续下一个查询【向下】,用N进行反向查询【向上】。 |
| q | 结束man page查看 |
man -f command,显示可查询到的文件,有相应编号,使用man -number command查询具体文件,如man -1 man。
whatis 【命令或数据】,相当于man -f。
apropos 【命令或数据】,相当于man -k。
whatis与apropos能够被使用,必须建whatis数据库才行,该数据库须root才能创建,创建方式为:makewhatis。
2.4.2 info
(1)功能:提供一种在线求助的方法,同man一样,都是用来查询命令的用法和文件的格式。
info同man不同的是,man page一下子输出一堆信息,而info page则将文件数据拆成一个一个的段落,每个段落均用一个页面来写,且每个页面中均有跳转链接,每个页面也称为一个页面节点。
所查询的文件数据必须以info的格式来书写,才能使用info特殊功能。
支持info命令的默认文件放置在/usr/share/info/之下。
(2)用法:info command
| 按键 | 所进行的操作 |
| 空格键 | 向下翻页 |
| 【Page Down】 | 向下翻页 |
| 【Page Up】 | 向上翻页 |
| 【Tab】 | 在节点之间移动,有节点的地方,通常会以“*”显示 |
| 【Enter】 | 当光标在节点上面时,按下【Enter】可进入该节点 |
| 【B】 | 移动光标至该info界面中的第一个节点处 |
| 【E】 | 移动光标至该info界面中的最后一个节点处 |
| 【N】 | 前往下一个节点处 |
| 【P】 | 前往上一个节点处 |
| 【U】 | 向上移动一层 |
| 【S(/)】 | 在info page中查询 |
| 【H】 | 显示求助菜单 |
| 【?】 | 命令一览表 |
| 【Q】 | 结束这次的info page |
2.4.3 其他帮助文件
(1)功能:提供其他额外的帮助文件,放置在/usr/share/doc/下。
CentOS各项信息就放置在/usr/share/doc/centos-release/下;bash各项信息就放置在/usr/share/doc/bash-4.2.46/下。
(2)用法:info command
2.5 正确的开关机方法
2.5.1 简介
Linux多任务后台运行,故一般不进行直接关机,也要避免强制断电或突然断电情况,至少应当做好应对措施。
不正常关机,很有可能造成文件损毁,导致数据来不及写回到文件中,下次启动就有可能出问题。
(1)查看系统的使用状态
查看当前谁在线:who;查看网络的联机状态:netstat -a ;查看后台执行的程序:ps -aux
借助上述和相关命令,判断当前主机是否可以关机。
(2)通知在线用户关机的时刻
关机前,通知在线用户:wall "details"
示例:wall "Hello,Please save your data.It's shut down soon."
(3)正确的关机命令使用
关机命令:shutdown和reboot;数据同步写入磁盘:sync;重启、关机:reboot,halt,poweroff。
2.5.2 数据同步写入磁盘:sync
该命令是将内存中数据同步写入磁盘,避免关机时,内存数据尚未写入磁盘,导致文件数据的不一致。
2.5.3 惯用的关机命令:shutdown
shutdown可做的工作内容:
(1)可以自由选择关机模式,如:关机、重启或进入单用户操作模式。
(2)可以设置关机时间,可以设置成立即关机,也可以设置特定时间才关机。
(3)可以自定义关机消息,在关机之前,可将自己设置的消息传送给在线用户。
(4)可以仅发出警告信息,而不是真的关机,其目的是告知其他用户需要在某个时段注意的事情。
(5)可以选择是否要用fsck检查文件系统。
shutdown关机格式:shutdown -[tarkhncfF] 时间数值 【警告信息】
-t Sec,过多少秒后关机;-h,将系统停掉关机,加上数值,为过多少分钟后关机;-r,将系统重启;
-k,发送警告信息,不是真的关机;-n,不经过init程序,直接以shutdown的功能来关机;
-f,关机并开机后,强制进行fsck磁盘检查;-F,系统重启之后,强制进行fsck磁盘检查;-c,取消正在进行的关机;
2.5.4 重启、关机:reboot、halt、poweroff
这三个命令均可进行重启与关机的任务。通常会halt先调用shutdown,shutdown会最后调用halt。poweroff较为简单,直接电源关机。
shutdown是依据目前已启动的服务来逐次关闭服务后才关机;halt是不理会目前系统状况下,进行硬件关机的特殊功能。
(1)重启命令:sync; reboot
(2)关机命令:shutdown -h now【立即关机】,shutdown -h 10【十分钟后关机】,shutdown -t 30【30秒后关机】,poweroff -h
2.5.5 切换执行等级:init
Linux共有七种执行等级模式,init可用于各个模式切换。
run level 0:关机;
run level 1:单用户工作状态,改root密码,用于系统维护,禁止远程登录;
run level 2:多用户状态(没有NFS,无网络);
run level 3:纯命令行模式,完全的多用户状态(有NFS,有网络);
run level 4:系统未使用,保留;
run level 5:含有图形界面模式,登录后进入图形GUI模式;
run level 6:重启,默认运行级别不能设为6,否则不能正常启动;
示例:[root@user ~]#init 0
2.6 开机过程的问题排解
2.6.1 系统文件错误的问题
Linux出现开机问题,有可能是硬件问题,大多是软件问题。开机过程中,最容易遇到的问题是,硬盘有可能有坏道或文件系统发生错误(数据损坏)情况,比如不当开机行为就极有可能造成文件系统错误。
(一)文件系统错误导致开机出现问题
(1)断电或不正常关机导致的文件系统发生错误,如供电跳闸,非硬件错误,属于软件数据的问题,但改原因有可能导致硬件问题。因此,主机有必要加装不断电系统或者断电保护系统,对公司而言尤为重要。
(2)硬盘使用率过高或主机所在环境不良。如使用不稳定的硬件接口设备,主机所在环境散热不良或缺少散热设备,最容易忽略的是环境湿度问题,湿度较高很容易造成硬件损坏,又很容易受天气的影响,故公司机房须专门布置。
(3)根目录没有损坏:假设某个分区发生错误,此时用root登录系统,进行单用户维护工作,然后检查错误分区,开始修复分区,修复完成重启系统即可。区分检查命令:"fsck /dev/sda*",例如"fsck /dev/sda5"。
(4)根目录损毁了,常见原因是,初学者将硬盘只划分为一个大分区,即只有根目录,文件系统错误一定是根目录的问题。其修复办法为:
方法1:将硬盘拔掉,接到另一台Linux系统的计算机上,且不要挂载(mount)该硬盘,然后以root:账户进行执行"fsck /dev/sdb*",硬盘设备文件名,须依据实际情况设置。
方法2:利用存储介质进行修复,利用刻录的Linux系统光盘或U盘进行修复,此时Linux系统最好与原系统保持一致,笔者就采用此方式多次进行了修复。使用fsck去修复原本的根目录,"fsck /dev/sda*";也可利用源系统启动自动修复程序。
(二)硬件损坏导致开机出现问题
一般以补救数据为先,可以考虑先将数据整体导出进行备份,然后启动数据修复。若无十分之必要,以更换为主。
日常应做好数据的备份。
(1)妥善保养硬盘,主机通电后不要随意搬动,避免移动或震动硬盘,尽量降低硬盘的温度,加装风扇来冷却硬盘。
(2)划分不同的分区。每个分区读写频率不同,进行分区可确保系统整体安全。
2.6.2 忘记root密码
若忘记root密码,则需要进入单位根用户维护模式,修改root账户密码。现在linux系统以grub引导装载程序作为范例。【笔者未测试】
Step1:系统重启,在读秒时,按“e”进入grub编辑模式。
Step2:将光标移至“kernel”所在行,在行末尾增加“single”,按下【Enter】,再按b就可以开机进入单位根用户模式了。
Step3:修改root密码,即键入passwd即可,输入两次密码,再重启即可。
2.7密码重置
2.7.1 root密码重置
(一)忘记root密码重置
采用单位根用户登录,修改密码。
(二)修改密码重置
passwd root
2.7.2 一般用户密码重置
(一)忘记密码重置
使用root用户修改一般用户密码。即:切换至root密码,使用"passwd user"修改密码。
(二)修改密码重置
使用passwd密码重置即可,会验证原密码,然后输入新密码即可。
浙公网安备 33010602011771号