基本操作

一、 字符界面下如何和 Linu 交流

如何让计算机帮你干活

在字符界面下,基本只能通过键盘和 Linux 系统交流。

所以我们要想让 Linux 帮我们干活,就需要掌握和它沟通交流的方式,这个方式就是 Shell ,具体的来说是 Bash 。后面我们会详细介绍 Bash Shell,接下来先了解一些最简单的。

下达命令

下达命令需要遵循一定的规则

[shark@loalhost ~]$ command  [-options]  parameter1  parameter2 ...
                     指令     选项        参数(1)     参数(2)

详细说明如下:

  1. 一行命令中第一个输入的部分绝对是命令(command)可执行文件(通常是一个脚本文件)

  2. command 为命令的名称,例如变换工作目录的指令为 cd 等等;

  3. 中刮号[] 中是关于这个命令的选项,这个不是必须的。而当使用选项时,通常选项前会带 - 符号为选项值的前缀,例如 -h;有时候会使用选项的完整全名,则选项前带有 -- 符号,例如 --help

  4. parameter1 parameter2 ... 为依附在选项后面的参数,或者是 command的参数;

  5. 命令, 选项, 参数 等这几个中间需要以空格来区分,不论空几个空格 shell 都视为一个空格。所以空格是很重要的特殊字符!;

  6. 按下回车[Enter]按键后,该指令就立即执行。[Enter]按键代表着一行指令的开始运行。

  7. 指令太长的时候,可以使用反斜线 (\) 来进行续行输出,使指令连续到下一行。注意!反斜线后就立刻接特殊字符,才能跳脱!

  8. 命令、选项、参数 这些字符都是区分大小写的,比如 cdCD 是不同的。

  9. 也可以在一行中输入多个命令,每个命令用英文的分号 ; 隔开。比如
    cd /tmp; ls

值的注意的是, 当使用多个选项的情况,可以把选项值连在一起写,也可分开写。比如,下面用 ls 这个命令举例说明,ls 命令是查看路径下都有哪些文件和目录。

下面的两种写法,得到的效果是一样的。

ls   -l    -h
或
ls   -lh

二、Bash

1 什么是 Shell

管理整个计算机硬件的其实是操作系统的核心 (kernel),这个核心是需要被保护的! 所以我们一般使用者就只能通过 shell 来跟核心沟通,以让核心达到我们所想要达到的工作。

2 Bash

Bash 【Bouren Again SHell】的简称,也是基于GNU的架构下发展出来的
是众多shell中的一个.

Linux系统中的shell保存在 /etc/shells 这个文件中
可以这样查看:

cat   /etc/shells
或者
chsh -l //查看目前系统安装的shell

改变当前的 SHELL

例如:

/bin/sh

3 命令别名: alias

alias //显示目前终端的全部别名
alias ll=“ls -l” // 设置别名
unalias ll //取消别名设置

Bash shell 的内建命令 type

用途: 用来测试命令的类型
type [-tpa] name
选项和参数:
:不加任何选项,会显示name是外部命令,还是bash内置命令
-t //会将name以下面这些关键字来表示出他的意义:
file :外部命令
alias :命令别名
builtin :bash内置命令
不显示任何数据时,表示name不是任何命令

-p //后面接外部命令时,才会显示出命令的完整文件名
-a //会由PATH变量定义的路径中,将所有含name的指令都列出来,包括alias

4 历史命令:history

查看及操作:

history //列出全部历史命令记录
history 10 //显示最近10条执行过的命令
history -c //清除目前 shell 中的所有历史命令
history -w //即刻写入 .bash_history

使用执行:

!25 //执行第25条历史命令
! ser  //执行最近一次以 “ser”开头的命令
!!   //执行上一条命令

注意history的安全问题,历史命令的记录数量上要控制好

注意:同一帐号同时多次在线执行命令时,这样会产生多个bash,那么会以最后一个登出的命令历史记录为准
建议使用一个用户登入bash,再用[Ctrl]+z fg bg 来控制前后台来切换不同的工作

history 无法记录时间
解决方法:可以透过~/.bash_logout来进行history的记录,并加上date来增加时间参数

三、基础命令

ls 查看文件和目录属性信息

属性信息:

  • 文档类型
  • 文档权限
  • 文档容量大小
  • 目录的节点数
  • 文档的用户和组信息
  • 文档名称
参数:
-l    列出长数据串,包含文件的属性
-h   显示容量大小

-d   只是列出目录本身,而不是目录内的文件数据

-t    按时间排序

-r   倒序排序输出

-a   全部文件,包含隐藏的文件

-i    列出inode的位置,而非文件属性
-R   与子目录内容一起列出来
-S   按文件容量大小排序,大于 4096 字节才有效

--full-time 完整的呈现文件的修改时间 (modification time)

示例:

  1. 列出所有文件,包括隐藏的
ls  -a
.           b.txt              .bash_history  
..          .bash_logout       .bash_profile   
.bashrc

Linux 系统中以 . 为开头的文件或者目录为隐藏的文档。

  1. 以列表的形式展示路径中的文件和目录信息
ls  -l  /tmp
  1. 只查看目录本身的信息
ls   -d   /tmp
  1. 查看路径中的文件,并以日期时间进行排序,以过去到现在的顺序排序
ls   -lrt    /tmp
  1. 按照容量从小到大排序列
ls    -lrS   /tmp
  1. 文件分行显示
ls     -1

1 是数字 1

我是谁?

id

id

输出
uid=0(root) gid=0(root) groups=0(root)

我在哪儿?

pwd (print working directory) 显示当前所在目录的路径

参数:
-P 显示出实际路径,而非使用的软连接(link)路径

pwd

输出
/root

我要去哪儿?

cd (change directory) 你想去哪里

cd  ~               到自己的家目录
cd  ~shark        到  shark 用户的家目录
cd  -              到上次离开的工作目录

系统时间

date 打印出当前 Linux 系统的时间

date

输出
Fri Jul 19 07:15:48 UTC 2019

上面的输出的信息是:
周五 七月 19 日 7 点 15 分 48 秒 UTC 时区 2019 年

输出更多的格式:

假如想输出 2019-07-19, 只需要在命令后面加上具体的格式符号就可以。

date +"%Y-%m-%d"

输出
2019-07-19
格式 含义
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%m 月份(01 - 12)
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%M 分钟数(00 - 59)
%S 秒(00 - 59)
%F 输出 yyyy-mm-dd 的格式
%T 输出 hh:mm:ss 的格式
%c 本地相应的日期和时间表示
%I 大写的 i 第几个小时(24小时制)
%j 一年中的第几天(001 - 366)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符

四、 获取帮助

命令的 --help 选项

date   --help

man page

man    date

注意: man page 是命令的帮助文档,这个文档是在安装软件的时候一起安装到系统当中的,并且这个是不是必须安装的。


以下了解即可

man page 的内容也分成好几个部分来加以介绍该指令呢!就是上头man date那个表格内, 以NAME作为开始介绍,最后还有个SEE ALSO来作为结束。基本上,man page大致分成下面这几个部分:

代号 内容说明
NAME 简短的指令、数据名称说明
SYNOPSIS 简短的指令下达语法(syntax)简介
DESCRIPTION 较为完整的说明,这部分最好仔细看看!
OPTIONS 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明
COMMANDS 当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令
FILES 这个程序或数据所使用或参考或链接到的某些文件
SEE ALSO 可以参考的,跟这个指令或数据有相关的其他说明!
EXAMPLE 一些可以参考的范例

有时候除了这些外,还可能会看到Authors与Copyright等,不过也有很多时候仅有NAME与DESCRIPTION等部分。

软件的说明文档

一般软件的开发者都会在软件的安装包中包含软件的说明文档,这种说明文件一般会有比较详细的说明。

说明文档的目录是在:

/usr/shark/doc/

三种帮助方式使用规则

  • 在终端机模式中,如果你知道某个指令,但却忘记了相关选项与参数,请先善用 --help 的功能来查询相关信息;

  • 当有任何你不知道的指令或文件格式这种玩意儿,但是你想要了解他,请赶快使用 man 来查询!

  • 而如果你想要架设一些其他的服务,或想要利用一整组软件来达成某项功能时,请赶快到 /usr/share/doc 下面查一查有没有该服务的说明文档喔!

五、关机的正确方式

[root@study ~]# shutdown -h now
立刻关机,其中 now 相当于时间为 0 的状态
[root@study ~]# shutdown -h 20:25
系统在今天的 20:25 分会关机,若在21:25才下达此指令,则隔天才关机
[root@study ~]# shutdown -h +10
系统再过十分钟后自动关机
[root@study ~]# shutdown -r now
系统立刻重新开机
[root@study ~]# shutdown -r +30 'The system will reboot' 
再过三十分钟系统会重新开机,并显示后面的讯息给所有在线上的使用者
[root@study ~]# shutdown -k now 'This system will reboot' 
仅发出警告信件的参数!系统并不会关机啦!吓唬人!

执行同步硬盘数据后,重启

[root@study ~]# sync; sync; sync; reboot

了解

新增的

[root@study ~]# systemctl [指令]
指令项目包括如下:
halt       进入系统停止的模式,屏幕可能会保留一些讯息,这与你的电源管理模式有关
poweroff   进入系统关机模式,直接关机没有提供电力喔!
reboot     直接重新开机
suspend    进入休眠模式

[root@study ~]# systemctl reboot    # 系统重新开机
[root@study ~]# systemctl poweroff  # 系统关机

你可能感兴趣的:(基本操作)