首次登陆:
首次登录简介:
安装没有问题的话,开启操作系统后就是这样的
Linux中的开关机非常重要。Linux操作系统中是多人所任务的环境,所以系统随时都有很多不同的用户所执行的任务在进行,因此正确的开关机是很重要的。不正常的关机可能会导致文件系统错乱,造成数据的损毁,这也是为什么通常我们的Linux主机都会挂载一个UPS(不间断电源)的缘故。
登录界面:
- 上边是时间和日期
- 右上角是辅助功能(协助登陆的无障碍选项界面),语系、音量、关机钮
- 中间则是我们的用户
- “未列出”可供root账号登录(一般没事别root权限)
选择用户,输入密码,即可登录!
有个有趣的地方:Linux中文件是以 . 开头则为隐藏文件
活动⇒文件⇒其他位置⇒计算机
下即可看到系统文件:
- 普通目录
- 有箭头的目录:指有连接文件(类似于Windows的快捷方式)的数据
- 画×目录:当前账号无权进入的目录
目录这个概念就是Windows中的文件夹
重新启动X Window:
当我们修改X Window的配置文件后,一般需要重新启动X Window,启动方法即:注销当前账号再重新登录(重启X Window不是重启系统)
X Window与命令行的切换:
Linux默认情况下提供6个终端(tty1~tty6)来让用户登录,安装了X Window的话,第一个终端就是图形化界面模式(tty1),其余是命令行的登录(tty2~6)
按【Ctrl+Alt+F1~F6】即可完成对应的切换
在命令行环境下执行startx
即可启动图形化界面。
需要没有其他的X Window被占用,且你必须已经安装了X Window,并且X Server能够顺利启动
终端操作:
一开始系统会要求你进行登录,输入账号名称和密码即可
名词解释:
- CentOS Linux 8 (Core):显示linux发行版的名称与版本
- Kernel 4.18.0-147.e18.x86_64 on an x86_64:显示Linux的内核为4.18.0-147.e18.x86_64,且主机硬件架构为x86_64
- study login:登录用户名(study是主机名)
- Password:密码(输入时无回显)
- Last login:上一次登录信息
- [luoluo@study ~]
$
:luoluo是用户名,study是主机名,~表示家目录,$
是提示字符。(~家目录是个变量,对于root,它就是/root;对于账号luoluo,它就是/home/luoluo。在Linux中,一般用户的提示字符是$
,而root用户则是#。这也是我取名#的原因之一,管理员嘛)
命令执行:
命令行模式登陆后运行的程序成为壳(shell),这是因为这个程序负责最外面跟用户(我们)沟通,我们Linux的壳程序是最厉害的BASH。
命令的公式:
command [-options] parameter1 parameter2 ……
// 命令 选项 参数1 参数2 ……
- 一行命令的第一个输入部分绝对是命令(command)或可执行文件(shell脚本)
- 选项部分并没有中括号,这表示这个是可选的,而加入选项设置时,通常选项前会带-号,例如-h;有时候会使用选项的完整全名,则选项前带有–符号,例如:–help。
- 命令、选项、参数之间按照空格区分,不管空几格,shell都视为一格
- 回车键代表一行命令的开始启动
- 命令太长的时候,可以使用反斜杠(\)来转义回车键,使命令延续到下一行,注意,反斜杠后就立即接着特殊字符才有意义
- Linux中,英文大小写字符是不一样的
语言支持:
例如:
用locale
显示所支持的语系
LANG=en_US.utf8
export LC_ALL=en_US.utf8
即可修改语系为英语系
一些示例命令操作:
date //显示日期
SatFeb 1 20:26:14 CST 2020
date +%Y/%m/%d //格式化输出
2020/02/01
cal //显示日历
cal [mouth] [year] //显示指定日历
bc //调用计算器
注意:
- 输入bc,实际上是进入到bc这个软件的工作环境中了
- 计算器默认输出整数,scale=number指定输出小数位
- quit即可退出
重要热键:
Tab
- Tab接在一串命令的第一个字段后面,则为命令补全
- Tab接在一串命令的第二个字段后面,则为文件补全
- 若安装了Bash-completion软件,则在某些命令后面使用Tab按键时,可以进行 选项/参数的补齐 功能
Ctrl-c
- 中断正在进行的显示
Ctrl-d
- 键盘输入结束(相当于exit)
Shift-Page Down/Page UP
- 翻屏查看
出错信息:
比如输命令date时输入DATE
bash(Linux的默认壳程序)会提示你输入有误,下面会给出提示
一般输入有误,无非三种情况:
1、 命令不存在,因为对应软件还没有安装;
2、 命令所在的目录目前用户并没有将它加入命令查找路径中(类似于Win的绝对路径概念);
3、 打错字了;
问题求助:
输入几个字符,再连按两次Tab可以查看这几个字符开头的所有命令
- 输入命令后加 –help
- man page
- info page
man page:
这个man是manual(操作说明)的简写
输入
man 名词
既可以得到详细的关于这个名词字符串的解释,通常是用来查找命令的详细信息
例如这样man ls
最左上角有一个LS(1),这个1的意义参照下表:
代号 | 代表内容 |
1 | 使用者在shell环境中可以操作的指令或可执行档 |
2 | 系统核心可呼叫的函数与工具等 |
3 | 一些常用的函数(function)与函式库(library),大部分为C的函式库(libc) |
4 | 装置文件的说明,通常在/dev下的文件 |
5 | 设定档或者是某些文件的格式 |
6 | 游戏(games) |
7 | 惯例与协定等,例如Linux文件系统、网络协定、ASCII code等等的说明 |
8 | 系统管理员可用的管理指令 |
9 | 跟kernel有关的文件 |
而在man page文档中,如下按键会帮助你操作:
按键 | 进行工作 |
空白键 | 向下翻一页 |
[Page Down] | 向下翻一页 |
[Page Up] | 向上翻一页 |
[Home] | 去到第一页 |
[End] | 去到最后一页 |
/string | 向‘下’搜寻 string 这个字串,如果要搜寻 vbird 的话,就输入 /vbird |
?string | 向‘上’搜寻 string 这个字串 |
n, N | 利用 / 或 ? 来搜寻字串时,可以用 n 来继续下一个搜寻 (不论是 / 或 ?) ,可以利用 N 来进行‘反向’搜寻。举例来说,我以 /vbird 搜寻 vbird 字串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?vbird 向上查询 vbird 字串, 那我可以用 n 继续‘向上’查询,用 N 反向查询。 |
q | 结束这次的 man page |
至于在man page中,大致内容块,参考如下表:
代号 | 内容说明 |
NAME | 简短的指令、资料名称说明 |
SYNOPSIS | 简短的指令下达语法(syntax)简介 |
DESCRIPTION | 较为完整的说明,这部分最好仔细看看! |
OPTIONS | 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明 |
COMMANDS | 当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令 |
FILES | 这个程序或资料所使用或参考或连结到的某些文件 |
SEE ALSO | 可以参考的,跟这个指令或资料有相关的其他说明 |
EXAMPLE | 一些可以参考的范例 |
BUGS | 是否有相关的bug |
在出现只记得一部分关键词的情况时,可以这样去用man命令
man -f man //查找关键词含有man
-f是完全匹配
man (1) - format and display the on-line manual pages
man (7) - macros to format man pages
接下来使用man 7 man
即可找到上面第二个man的信息文档
man -k man
与-f不同,它是只要含有匹配,就可以找到
info page:
在所有UNIX-like系统当中,都可以利用man来查询信息。但是,Linux提供了一种在线求助的方法,就是info page。
info page是将文件数据拆成一个个的段落,每个段落用自己的页面来编写,并且在各个页面中还有类似网页的超链接来跳到各不同的页面中,每个独立的页面也被称为一个节点。
不过你要查询的目标数据的说明文件必须要以info的格式来写才能够使用info的特殊功能(例如超链接)。
因为info的说明文件有写成info格式,所以可以info info
info info
- File:代表这个info page的资料是来自什么文件所提供的;
- Node:代表目前的这个页面是属于什么节点。
- Next:下一个节点的名称为Stand-alone,你也可以按‘N’到下个节点去;
- Up:回到上一层的节点总揽画面,你也可以按下‘U’回到上一层;
- Prev:前一个节点。但由于Top是info.info的第一个节点,所以上面没有前一个节点的资讯。
相关操作:
按键 | 进行工作 |
空白键 | 向下翻一页 |
[Page Down] | 向下翻一页 |
[Page Up] | 向上翻一页 |
[tab] | 在 node 之间移动,有 node 的地方,通常会以 * 显示。 |
[Enter] | 当游标在 node 上面时,按下 Enter 可以进入该 node 。 |
b | 移动游标到该 info 画面当中的第一个 node 处 |
e | 移动游标到该 info 画面当中的最后一个 node 处 |
n | 前往下一个 node 处 |
p | 前往上一个 node 处 |
u | 向上移动一层 |
s(/) | 在 info page 当中进行搜寻 |
h | 显示求助选单 |
? | 指令一览表 |
q | 结束这次的 info page |
其他软件:
还有很多有用的文档在 /usr/share/doc 中,要擅于利用
简单的文本编辑器nano:
在学习大名鼎鼎的vi/vim前,可以先了解一下这个编辑器——nano
直接输入
nano 文件名
即可,当前目录有文件则它会打开文件,没有文件则它会创造文件
底下会有一些操作提示,^代表Ctrl,M代表Alt
常用操作:
[ctrl]-G:取得联机帮劣(help),很有用的!
[ctrl]-X:离开naon软件,若有修改过档案会提示是否需要储存喔!
[ctrl]-O:储存档案,若你有权限的话就能够储存档案了;
[ctrl]-R:从其他档案读入资料,可以将某个档案的内容贴在本档案中;
[ctrl]-W:搜寻字符串,这个也是很有帮助的指令喔!
[ctrl]-C:说明目前光标所在处的行数不列数等信息;
[ctrl]-_:可以直接输入行号,让光标快速移动到该行;
[alt]-Y:校正语法功能开启或关闭(单击开、再单击关)
[alt]-M:可以支持鼠标来移动光标的功能
退出时按下Ctrl+x,若不保存更改,直接按下N,若要保存更改,按下Y,然后可以修改文件名,最后按下Enter即可保存离开
正确的关机:
- Linux常常是多人多任务,在你看不到的屏幕背后其实可能有很多人同时在你的主机上面工作,所以突然关机,可能影响他人数据中断。
- 不正常关机,可能造成文件系统的损毁(因为来不及将数据回显到文件中)
因此,关机时要注意:
1、 使用who
来查看谁在线,使用netstat-a
查看网络的联机状态,使用ps-aux
来看后台执行程序,从而判断是否可以关机;
2、 利用shutdown参数,通知用户;
数据同步写入磁盘——sync:
数据读入内存后才能被CPU所处理,硬盘速度很慢,如果常常让数据在内存与硬盘中来来回回写入或读取,系统的性能不会太好
在Linux系统中,默认情况下,为了加快数据的读取速度,某些已经加载在内存中的数据不会直接被写回硬盘,而是暂存在内存中。
所以异常的关机就可能造成数据错误,所以要在关机或重启前,多执行此命令(虽然目前shutdown、reboot、halt等命令均已在关机前进行了sync这个命令的调用)。
一般用户执行sync,只是更新了自己的数据,而root用户调用,则是更新整个系统的数据。
关机——shutdown:
Linux中关机很重要,所以若你是物理终端(tty1~tty6),可以以任何账号身份关机;若你是远程管理(如通过pietty使用ssh从其他计算机登录),那就必须得root才能关机。
shutdown的命令公式:
shutdown [-krhc] [时间] [警告信息]
-k: 并不关机,只是发送警告信息
-r: 在将系统的服务停掉以后就重新启动
-h: 在系统的服务停掉后,立即关机
-c: 取消已经在进行的shutdown命令内容
时间: 以分钟为单位,若无值,则默认为1
shutdown -h now //立即关机
shutdown -h 10:25 //10点25关机
shutdown -h +10 //10分钟后关机
shutdown -k now "系统要关机" //吓唬人
重新启动:
reboot 重启
sync; reboot //常用命令
halt //系统停止,屏幕会保留系统已经停止的信息
poweroff //系统关机,屏幕空白
systemctl:
上面的命令核心都是调用这个东西:
systemctl [命令]
命令项目包括如下:
halt //进入系统停止模式,屏幕可能会保留一些信息
poweroff //进入系统关机模式,直接关机
reboot //重新启动
suspend //进入休眠模式
文件权限:
用户、组、其他人(这里先了解):
Linux是个多人多任务的系统,所以在Linux里面,每个文件都具有用户(User)、所属群组(Group)及其他人(Others)三种身份的个别权限。每个用户可以加入多个用户组。
用户身份信息存放在/etc/passwd中,个人的密码则是在/etc/shadow这个文件内,所有的组名都是在/etc/group中,这三个文件不要轻易删除。
文件属性与权限:
利用su -
命令变成root,使用ls -al
查看文件(参数l显示属性)
可以看到上图效果,每一行从左到右依次是:
权限——链接数——拥有者——用户组——文件容量——最后修改日期——文件名
权限:
第一个字符代表这个文件是目录、文件或链接文件等
- d:目录
- -:文件
- l:链接文件(link file)
- b:设备文件里面的可供存储的周边设备(可按块随机读写的设备)
- c:设备文件里面的串行端口设备,例如键盘、鼠标
后面的九个字符,每三个为一组,且均是rwx的组合
- r:可读
- w:可写
- x:可执行
- -:对应位置为-,即表示无这个权限
而这三组:第一组为文件拥有者的权限、第二组为同一用户组下账号的权限、第三组为非本人且非本用户组的其他账号的权限。
例如隐藏文件cshrc,是个文件,本人可读可写不可执行、同组账号可读、其他账号可读。而权限对应数字r——4,w——2,x——1,所以可以说,这个cshrc文件的权限为644
链接数:
每个文件都会将它的权限与属性记录到文件系统的inode中,不过,我们使用的目录树却是使用文件名来记录,因此每个文件名就会链接到一个inode,这个属性记录的就是有多少不同的文件名链接到同一个inode号码。
拥有者:
文件或目录的拥有者账号
用户组:
文件或目录所属的组
文件容量:
文件的容量大小,默认单位是Bytes
最后修改日期:
文件或目录的最后修改/创建日期(月 日 时间/年份)
可以利用ls -l --full-time
查看完整时间(出现乱码请export LC_ALL=en_US.utf8
修改语系)
文件名:
文件的名称(前面有.为隐藏文件,用ls -a
查看)
修改文件属性与权限:
修改所属用户组——chgrp:
chgrp(change group):将文件或目录修改所属组(组必须存在于/etc/group)
chgrp [-R] newgroup dirname/filename
-R:递归修改,即连同子目录下的所有文件、目录都会修改所属组
修改所属用户——chown:
chown(change owner ):将文件或目录修改所属用户(用户必须存在于/etc/passwd)
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:用户组名称 文件或目录
-R:递归处理
第二种方法也可以用来修改用户组
事实上,chown也可以使用 账号名称.用户组名称 ,但是有的账号可能中间会有.,所以建议大家用:来区分,chown也可以单独修改用户组,例如chown .newgroup test.txt
在复制文件给别的用户中,经常会用到修改用户和用户组,因为在本机复制文件会连同属性一起复制,别人可能仍无法查看文件。
修改权限——chmod:
权限数字修改:
r、w、x三种权限对应三个数字:r——4、w——2、x——1
即例如某文件是:-rwxr-xr–
即可说文件权限是:754
chmod [-R] xyz 文件或目录
-R: 递归处理连同子文件和目录
xyz:对应三组权限设置
符号类型修改:
u:拥有者
g:组
o:其他人
a:以上三种
go-r,等价于g-r o-r
权限的意义:
权限对文件的意义:
- r(read):可读取文件的实际内容,如文件的文本内容
- w(write):可以编辑、修改文件的内容(但是不能删除该文件)
- x(execute):该文件具有被系统执行的权限
在Windows中,一个文件能否被执行由扩展名判断,例如.exe、.bat,在Linux中文件能否被执行,则是借由是否具有x权限来决定,根文件名没有绝对关系
权限对目录的意义:
- r(read contents in directory):具有读取目录结构列表的权限,如ls读取(但是若只有r权限,则只能读取到文件名)
- w(modify contents in directory):具有改动目录结构列表的权限(建立新文件或目录、删除已经存在的文件或目录——与它的权限无关、重命名文件或目录、移动文件或目录)
- x(access directory):用户能否进入该目录的权限(当有x时,r就不重要了)
文件种类与扩展名:
常规文件:
在文件属性中为-:
- 纯文本文件(ASCII):这里Linux中最多的一种文件类型,几乎只要我们用来作为设置的文件都属于这一种文件类型(cat命令可以读取)
- 二进制文件(binary):Linux当中的可执行文件(Scripts,脚本文件不算)就是这种格式,比如刚刚执行的cat就是一个二进制文件
- 数据文件(data):某些程序在运行的过程当中会读取某些特定格式的文件,比如我们Linux用户登录时,都会将登录数据记录在/var/log/wtmp这个文件内,该文件就是一个数据文件,它能够通过last这个命令读出来,用cat则会乱码。
在文件属性中为d:
- 目录文件
在文件属性中为l:
- 链接文件(类似Windows中的快捷方式)
在文件属性中为b/c:
- 区块(block)设备文件:就是一些存储数据,以提供系统随机存储的接口设备,举例来说硬盘和软盘等就是。你可以随机的在硬盘的不同区块读写,这种设备就是块设备。你可以自行查一下/dev/sda看看,会发现第一个属性是b
- 字符(character)设备文件:亦即是一些串行端口的接口设备,例如键盘、鼠标等。这些设备的特色就是一次性读取,不能够截断输出。举例来说,你不可能让鼠标跳到另一个画面,而是连续性的滑动到另一个地方,第一个属性是c
在文件属性中为s:
- 数据接口文件, 这种类型的文件通常被用在网络上的数据交换了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以通过这个socket 来进行数据的沟通了。最常在/run或/tmp 这些目录中看到这种档案类型。
在文件属性中为p:
- FIFO 也是一种特殊的文件类型,它主要的目的是解决多个程序同时读写一个文件所造成的错误问题。 FIFO 是 first-in-first-out 的缩写,即管道(pipe)。
Linux文件扩展名:
一个Linux文件能不能被执行,与它的第一栏的十个属性相关,与文件名根本一点关系也没有,这个观念和Windows的情况不相同。
不过,Linux中也有一些扩展名来让用户了解这是些什么文件,下面举例:
- *.sh:脚本或批处理文件(scripts),因此批处理文件使用shell写成,所以扩展名是sh
- *.Z、*.tar、*.tar.gz、*.zip、*.tgz:经过打包的压缩文件,这是因为压缩软件分别为gunzip、tar等,由于不同的压缩软件,而取其相关的扩展名
- *.html、*.php:网页相关文件,分别代表HTML和PHP语法的网页文件。.html的文件可使用网页浏览器来直接开启,至于.php的文件,则可以通过客户端的浏览器来服务端浏览,以得到运算后的网页结果
如果你在网上下载一个可执行文件后,发现文件无法运行,那么可能就是文件的属性被修改了。从网络上下载到你的Linux环境中,文件的属性与权限确实是会被修改