扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在前面的两个章节中,我们主要介绍了Linux基本知识和虚拟机的安装,从当前章节开始,我们一起学习下Linux的基本命令,在当前章节,我们先简单的学习下一些系统的基本命令,慢慢的由浅入深,在后面的章节中我们将学习其他的命令比如文件操作、备份压缩等
创新互联公司专注于公安企业网站建设,响应式网站设计,商城网站制作。公安网站建设公司,为公安等地区提供建站服务。全流程按需开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
命令我们可以理解成在Windows中我们常常为了查看ip输入的ipconfig,在Linux中也有很多的命令,比如操作目录、文件、网络、磁盘等等命令
使用者权限:管理员用户
参数说明:
添加用户czbk(传智播客的首拼)执行
我们使用useradd命令创建了一个用户czbk
useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。
执行如下
由上图我们发现,我们在使用useradd新增用户的时候,出现了权限不足,也就是说我们使用用户itcast没有创建用户的权限。
我们通过管理员账号root进行创建,首先我们从控制台中切换到root
在 密码的地方输入我们的root密码【root】即可进入到root用户下。
我们在root下继续创建czbk用户
以下是useradd常用选项
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用
使用者权限:管理员用户
指定和修改用户口令的Shell命令是 passwd 。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
可使用的选项:
设置当前用户的口令
此处我们设置密码和itcast账号密码一致,为【Itheima888】
usermod 命令通过修改系统帐户文件来修改用户账户信息
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
使用者权限:管理员用户
修改已有用户的信息使用 usermod 命令,其格式如下:
下面命令将用户czbk用户名修改成czbk2019
以下是usermod常用选项
假如我们其中一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
使用者权限:管理员用户
删除一个已有的用户账号使用 userdel 命令,其格式如下:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件
此命令删除用户czbk2019
成功删除用户czbk2019
以下是userdel常用选项
引子:
为了方便用户管理, 提出了 组 的概念, 如下图所示
比如新建账户【张三】,那么它默认对应的组就是张三
一个用户可以有一个或者多个组
假如说(如上图),我们在企业级开发过程中,我们有多个组,其中一个开发组对应三个账户,张三、李四、王五、如果就像上面提到的,一个用户默认对应一个组,那么三个账户张三、李四、王五就有了三个不同的组,如果大家都操做一个文件,在进行权限分配的时候,就要对不同的三个组进行授权,显然这样是不合理的,因为太过繁琐。
所以,才有了组(新建组)的概念,我们把张三、李四、王五统一放到【开发组】,在对文件授权的时候,我们只对【开发组】进行授权由此,这样的话【张三、李四、王五】都有相等的权利操作了。
新增一个用户组(组名可见名知意,符合规范即可),然后将用户添加到组中
使用者权限:管理员用户
使用的选项有:
新增用户组czbk-it
上面的命令向系统中增加了一个新组czbk-it,新组的组标识号是在当前已有的最大组标识号的基础上加1
以下是groupadd常用选项
使用者权限:管理员用户
常用的选项有:
上面的命令将组czbk-it的组名修改为czbk-it-2019。
以下是groupmod常用选项
在查询用户所属的用户组前,我们先增加一个用户ituser-groups
要查询一个用户属于哪个用户组,使用groups命令,其格式如下
查询用户ituser-groups属于某个用户组,执行groups命令
由此可见,ituser-groups用户属于用户组ituser-groups(用户组默认与用户名一样)
使用者权限:管理员用户
要删除一个已有的用户组,使用groupdel命令,其格式如下
删除czbk-it-2019用户组
删除成功
以下是groupdel常用选项
1、创建一个新的组,并添加组ID(需要切换到root用户)
执行效果如下
2、创建3个用户(需要切换到root用户)
3、将上面三个用户添加到组itbj2020group
我们通过passwd命令将三个用户添加到组
什么是gpasswd:
gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。
语法
将上面的三个用户使用gpasswd添加到组(需要切换到root用户)
执行如下
查看用户组下所有用户(所有用户)
执行效果如下(或者直接打开/etc/group文件都可以)
由上图可知:三个用户全部都加入到了itbj2020group组。
date 可以用来显示或设定系统的日期与时间
使用者权限:所有用户
语法如下:
参数
-d字符串:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s字符串:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息
1、设置时间
用 -s选项可以设置系统时间,如下:
2、显示时间
协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。。
(2)GMT
即 格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式
外文名: Universal Time
其他外文名 G.M.T.(Greenwich Mean Time)
(3)CST
北京时间 (中国国家标准时间) 北京时间是中国采用国际时区东八时区的区时作为标准时间 。 北京时间并不是北京(东经116.4°)的地方时间,而是东经120°的地方时间,故东经120度地方时比北京的地方时早约14分半钟。因为北京处于国际时区划分中的东八区,同格林尼治时间(世界时)整整相差8小时(即北京时间=世界时+8小时),故命名为“北京时间”。东八区包括的范围从东经112.5°到东经127.5°,以东经120°为中心线,东西各延伸7.5°,总宽度为15°的区域。 而中国幅员辽阔,东西相跨5个时区(即东五区、东六区、东七区、东八区、东九区5个时区)授时台必须建在地理中心地带,从而也就产生了长短波授。“北京时间”与“北京当地时间”是两个概念, “北京时间”的发播不在北京,而在陕西蒲城(处于东七区)
(4)东八区
东八区( UTC / GMT +08:00)是比 世界协调时间 (UTC)/ 格林尼治时间 (GMT)快8小时的时区,理论上的位置是位于 东经 112.5度至127.5度之间,是东盟标准的其中一个候选时区。当格林尼治标准时间为0:00时,东八区的标准时间为08:00
pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n486" mdtype="fences" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); position: relative !important; background-position: inherit; background-repeat: inherit;"总结:
上面提到了很多知识:即UTC/GMT/CST/东八区
总结一下就是,北京时间(中国国家标准时间CST)采用东八区区时,即:
协调世界时(UTC)+8 / 格林尼治时间(GMT)+8
也就是说+8后的时间才是北京时间/pre
logname命令用于显示用户名称。
执行logname指令,它会显示目前用户的名称
语法为如下:
参数 :
显示登录账号的信息
su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法如下:
变更帐号为 root 并在执行 ls 指令后退出返回原使用者
切换到root
这样的话,我们就进入到了root用户下。
id命令用于显示用户的ID,以及所属群组的ID。
id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
使用者权限:所有用户
语法
参数说明:
显示当前用户信息
执行效果如下
sudo:控制用户对系统命令的使用权限,root允许的操作。
通过sudo可以提高普通用户的操作权限
使用者权限:普通用户
语法如下:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
参数说明 :
sudo命令使用
指定root用户执行指令
修改网卡配置文件
比如,在下面的例子中,我们使用普通用户修改网卡的配置文件,在进行保存的时候,提示我们【无法打开并写入文件】,那么此时,我们可以通过sudo命令来提升自己的写入权限
执行:
执行效果如下(保存)
然后点击回车
执行效果如下(键入itcast密码)
执行保存
top命令用于实时显示 process 的动态。
使用权限:所有使用者。
显示进程信息
执行效果如下
显示完整命令,与top命令不同的就是command属性像是进行了命令补全
执行效果如下
执行效果如下
Linux ps命令用于显示当前进程 (process) 的状态信息
使用者权限:所有用户
语法如下:
显示进程信息
显示指定用户信息
显示所有进程信息
Linux kill命令用于删除执行中的程序或工作(可强制中断)
使用者权限:所有用户
语法如下:
参数说明 :
杀死一个进程
强制杀死进程
彻底杀死进程
杀死指定用户所有进程
1.方法一 过滤出itcast用户进程
2.方法二,直接杀死
shutdown命令可以用来进行关闭系统,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机
使用者权限:管理员用户
语法如下:
参数说明 :
立即关机
指定1分钟后关机,1分钟关机并显示警告信息
指定1分钟后重启,并发出警告信息
reboot命令用于用来重新启动计算机
使用者权限:管理员、普通(需要验证)用户
语法如下:
参数 :
开始重新启动
重启效果如下
who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等
使用者权限:所有使用者都可使用。
语法如下:
参数说明 :
显示当前登录系统的用户
显示明细(标题)信息
由上图可知,截止到现在只有itcast在线。
引子:
timedatectl是用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。
在实际开发过程中,系统时间的显示会和实际出现不同步;我们一般为了校正服务器时间、时区的时候会使用timedatectl命令/pre
使用者权限:所有使用者都可使用,设置时间需要管理员,下面会标注。
几个常见的概念,进行总结如下:
显示系统的当前时间和日期,使用命令行中的timedatectl命令
执行效果如下
上图显示中国时区
MODEM的AT命令CID和VCID是设置是不是来电显示的,如果电信开通了来电显示功能
就能通过MODEM来显示对方的电话号码。那么首先设置CID=1或是VCID=1
般来说来电显示的信息为:
DATE = MMDD "来电日期 MMDD
TIME = HHMM "来电时间 HHMM
NMBR = ### "来电号码
程序实现如下,设置MSComm1的相关设置,并建两个Label为Label1和Label2
Function OpenCID(OpenCLose As Boolean) As Boolean
'打开或是关毕来电显示功能
On Error Resume Next
Dim ArrCID(1) As String
ArrCID(0) = "at#cid=" IIf(openclode, 1, 0)
ArrCID(1) = "at#vcid=" IIf(openclode, 1, 0)
MSComm1.RThreshold = 0
For i = 0 To 1
MSComm1.Output = ArrCID(i) vbCr
EndTime = Timer + 0.5
Do While bStop = False
nTemp = nTemp + 1
If MSComm1.InBufferCount = 2 Then
sTemp = MSComm1.Input
If InStr(sTemp, "OK") = 0 Then
bStop = True
OpenCID = True
Exit Function
End If
End If
If Timer = EndTime Or ErrorCode Then Exit Do
Loop
Next i
OpenCID = False
MSComm1.RThreshold = 1
End Function
下面的函数显示来电号码并在窗体上的Label1的Label2上显示出来
Private Sub MSComm1_OnComm()
On Error Resume Next
Static Buffer As String
' 收到多于 RThreshold 属性设置的字符数(RThreshold 属性必须大于 0)。
'label1 = "收到" + Str(MSComm1.InBufferCount) + "个字符"
Buffer = Buffer + MSComm1.Input
Buffer = UCase(Buffer)
' Exit Sub
If InStr(1, Buffer, "RING", vbTextCompare) Then
'收到震铃
'Comm1.Output = "ATA" + Chr(13) '命令 Modem 摘机响应
Buffer = "" '清缓冲区字符
'mciExecute "sound " SystemPath "\ringin.wav"
Label1 = "状态:收到震铃"
Zhen = True
frmCallID.Show
frmCallID.ChangRing
ElseIf InStr(1, Buffer, "CONNECT", vbTextCompare) Then
'对方应答呼叫
Buffer = "" '清缓冲区字符
Label1 = "状态:已经建立连接"
ElseIf InStr(1, Buffer, "BUSY", vbTextCompare) Then
'对方线路忙
Buffer = "" '清缓冲区字符
Label1 = "状态:对方线路忙"
ElseIf InStr(1, Buffer, "No DIA", vbTextCompare) Then
Buffer = "" '清缓冲区字符
Label1 = "状态:拨出号码错,请检查电话线"
Command1_Click
ElseIf InStr(1, Buffer, "No CARRIER", vbTextCompare) Then
'对方未摘机或未响应
Buffer = "" '清缓冲区字符
Label1 = "状态:对方未摘机"
ElseIf InStr(1, Buffer, "NMBR =", vbTextCompare) Then
tmpStr = InStr(1, Buffer, "NMBR", vbTextCompare)
CallNum = Right(Buffer, Len(Buffer) - lll - 6)
Label2.Caption = "对方电话:" + CallNum
'Buffer = "" '清缓冲区字符
ElseIf InStr(1, Buffer, "OK", vbTextCompare) And Asc(Right(Buffer, 1)) = 10 Then
If Zhen = False Then Buffer = "" '清缓冲区字符
If Command1.Caption = "挂断" Then
Label2.Caption = "状态:已经播通电话:" + txtCallNum
End If
End If
End Sub
使用以下命令:cat /sys/devices/platform/jz-msc.0/mmc_host/mmc0/mmc0:1234/cid或者使用通配符cat /sys/devices/platform/jz-msc.0/mmc_host/mmc0/mmc0:*/cid 得到32个字节的数据:0254 4d53 4130 3847 0610 ebb5 5000 a93f 在kernel/drivers/mmc/core/sd.c文件中:以下数组结构用于保存SD卡ID card-raw_cid[0];card-raw_cid[1];card-raw_cid[2];card-raw_cid[3]; linux内核中对应的代码位于: kernel/drivers/mmc/core/sd.ckernel/drivers/mmc/core/mmc.ckernel/include/linux/mmc/card.hkernel/include/linux/mmc/mmc.h 关键字: Linux MMC卡驱动读取SD卡ID如何读取SD卡ID如何获取SD卡ID如何获取SD卡序列号
Linux系统如何查看版本信息
1、查看当前操作系统内核信息
uname -a
$ uname -a
Linux vm-web 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
2、查看当前操作系统版本信息
cat /proc/version
$ cat /proc/version
Linux version 3.10.0-693.21.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Wed Mar 7 19:03:37 UTC 2018
3、查看当前操作系统发行版信息
cat /etc/issue 或 cat /etc/redhat-release
$ cat /etc/issue
\S
Kernel \r on an \m
$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
4、查看cpu相关信息,包括型号、主频、内核信息等
cat /proc/cpuinfo
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
stepping : 7
microcode : 0xffffffff
cpu MHz : 2199.998
cache size : 20480 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm xsaveopt
bogomips : 4399.99
clflush size : 64
cache_alignment : 64
address sizes : 44 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
stepping : 7
microcode : 0xffffffff
cpu MHz : 2199.998
cache size : 20480 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm xsaveopt
bogomips : 4399.99
clflush size : 64
cache_alignment : 64
address sizes : 44 bits physical, 48 bits virtual
power management:
5、列出所有版本信息
lsb_release -a
$ lsb_release -a
-bash: lsb_release: command not found
出现command not found说明没安装lsb_realease,可以执行命令yum install -y redhat-lsb安装lsb_realease,安装完成后,版本信息如下:
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流