Linux入门实验

实验一:终端登录软件,登录linux系统

实验目的

在win7 64位系统上安装xshell虚拟机软件,并用其连接此前安装的centos7系列发行版的linux系统。

前提准备

使用主机为win7 64位系统,且主机能访问互联网,必须使用教室有线网络。

实验步骤

1、打开此前使用过的本地ftp服务的共享目录,找到Tools目录下载Xmanager Enterprise 5 Buid 0576 & Keygen.rar软件。

img

单击下载后,在本地安装即可,在windows安装过程类似此前介绍过的省略,安装后在桌面出现如下图标:

img

2、双击该图标,打开后如下:

img

3、然后,再回到虚拟机界面,查看当前的ip地址并记录下来:

img

4、把ip地址记录下来,然后在xshell终端软件里输入:ssh 172.18.118.155回车,会弹出对话框,要求输入用户名,输入root,单击确定:

img

再输入此前装系统时设置的root管理员的密码为:root。

img

单击确定后,就成功通过xshell终端软件:

img

再下来,就可以在系统上学习linux的基础命令了。


实验二:在linux命令行执行命令

实验目的

在linux系统熟悉基本命令的使用格式和简单命令的使用。

前提准备

使用主机为win7 64位系统,且主机能访问互联网,必须使用教室有线网络,在虚拟机上安装了centos7系统、安装了xshell终端登录软件。

实验步骤

本次实验没有固定步骤,主要介绍基本命令格式的使用,大家不要纠结命令本身作用是实现什么概念,主要是熟悉命令格式及任何获取命令帮助的方法:

【例1】显示当前使用的shell

[root@Magedu ~]# echo ${SHELL}

/bin/bash

【例2】显示当前系统使用的所有shell

[root@Magedu ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

【例3】查看/etc/passwd文件最后1行内容

[root@Magedu ~]# tail -n 1 /etc/passwd

linux:x:1004:1004::/home/linux:/bin/bash

在linux系统的命令行中,即在shell中可行的命令有两类:内部命令和外部命令,判断是哪种命令:

1、type命令:判断内部或外部

格式:type COMMAND

【例4】type查看内部显示的结果

[root@Magedu ~]# type cd

cd is a shell builtin

【例5】type查看外部命令显示的结果

[root@Magedu ~]# type top

top is /usr/bin/top

2、alias命令:查看或设置命令别名

格式:alias NAME=’VALUE’

取消别名:unalias [-a] NAME

-a:表示取消所有别名。

NAME:表示自定义的命令别名名称。

如果别名同原命令同名,要执行原命令时,可使用方式有多种:

\命令名称

‘命令名称’

/PATH/COMMAND

【例6】设置命令别名为bkmysql,实现拷贝/etc/my.cnf为/home/back/my.cnf.bak,设置后查看别名

[root@Magedu ~]# alias bkmysql='cp /etc/my.cnf /hoem/my.cnf.bak'

[root@Magedu ~]# alias

alias bkmysql='cp /etc/my.cnf /hoem/my.cnf.bak'

alias cman='man -M /usr//share/man/zh_CN'

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

【例7】把上例中别名设置写在配置文件里,永久生效

有两个文件可以写,~/.bashrc文件仅当对当前用户,/etc/bashrc文件是对所有用户有效。

[root@Magedu ~]# echo "alias bkmysql='cp /etc/my.cnf /hoem/my.cnf.bak'" >>~/.bashrc

[root@Magedu ~]# tail -1 ~/.bashrc

alias bkmysql='cp /etc/my.cnf /hoem/my.cnf.bak'

【例8】不使用ls的别名

img

上例分别演示了执行4次ls命令的执行结果,第一行是使用命令别名执行,第三行、第五行、第七行都是使用ls原命令执行,观察期不同之处,很直观,别名有颜色显示的区别。


实验三:linux简单命令

实验目的

熟练使用date、cal、关机和重启、登录信息、echo、命令行扩展、Tab键使用、命令历史、命令帮助的使用、bash快捷键等基本命令并理解其功能。

前提准备

可使用的centos7操作系统,连接教室网络。

实验步骤

依次介绍各个命令的语法格式,及常用法。

1、date命令:显示日期和时间

格式:

date [OPTION]… [+FORMAT]

功能是显示日期时间

date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]

功能是设定日期时间

常用选项:

-s:指定时间和日期

FORMAT格式为:

%F:日期,显示为数字,格式为:2016-03-02;

%D:显示英制格式,月日年,显示格式为:03/02/16;

%T:时间,显示为数字,格式为:15:52:16;

%Y:年份,只显示完整年份数字(4位数字),显示格式为:2016;

%y:显示年份的后两位,显示格式为:16;

%m:月份,只显示数字,显示格式为:03;

%d:日期,只显示数字,显示格式为:02;

%H:小时,只显示数字,显示格式为(00..23):15;

%k:小时,显示格式为(0..23);

%I:小时,格式为(01..12);

%l:小时,显示格式为(1..12);

%h:显示月份,显示格式为:3月;

%M:分钟,只显示数字,显示格式为:52;

%S:秒钟,只显示数字,显示格式为:16;

%a:缩写星期;

%A:完整星期;

%b:缩写月份;

%B:完整月份;

%r:显示格式为(11:11:04 PM);

%R:同%H%M,格式为(23:37)

%s:从1970年1月1日至此刻所经历的秒数;timestamp;显示格式为:1456905397。

【例9】设定日期为2018年5月24日,11点27份30秒

[root@Magedu ~]# date -s "2018-5-24 11:27:30"

Thu May 24 11:27:30 EDT 2018

【例10】显示当前时间

[root@Magedu ~]# date

Thu May 24 11:28:47 EDT 2018

2、cal命令:显示日历

格式:cal [options] [[[day] month] year]

常用选项:

-y:显示整年日历。

【例11】显示当前月的月历

img

【例12】显示当前年的年历

img

关机命令:haltpoweroff

重启命令:reboot

以上命令,不予示例演示了,执行后就会生效。

3、shutdown命令:关机或重启命令

格式:shutdown [OPTIONS…] [TIME] [WALL…]

常用选项:

-h:相当于halt关机命令。

由于此命令演示后立即生效,所以不便执行。

4、用户登录信息查看命令

Whoami命令

Who命令

W命令

这几个命令都能查看用户登录信息,稍有区别。

【例13】whoami命令查看当前登录系统的用户

[root@Magedu ~]# whoami

root

【例14】使用who命令查看当前所有系统登录的用户

[root@Magedu ~]# who

root     pts/0        2018-05-23 20:38 (172.18.116.232)

root     tty2         2018-05-23 21:29

root     pts/1        2018-05-23 21:53 (172.18.116.232)

root     pts/2        2018-05-23 22:25 (172.18.116.232)

【例15】使用w显示系统当前使用登录会话及所做操作

[root@Magedu ~]# w

 11:43:10 up  3:10,  4 users,  load average: 0.00, 0.01, 0.05

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    172.18.116.232   Wed20   13:53m  0.06s  0.06s -bash

root     tty2                      Wed21   14:13m  0.10s  0.10s -bash

root     pts/1    172.18.116.232   Wed21    6.00s  0.12s  0.00s w

root     pts/2    172.18.116.232   Wed22   11:58   0.03s  0.03s -bash

5、echo命令:显示字符

格式:

echo [SHORT-OPTION]… [STRING]...

echo LONG-OPTION

常用选项:

-n:不自动换行;

-e:启用\字符的解释功能。

【例16】显示字符abc

[root@Magedu ~]# echo "abc"

abc

【例17】显示PATH变量的值

[root@Magedu ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

【例18】显示abc不换行

[root@Magedu ~]# echo -n "abc"

abc[root@Magedu ~]#

6、命令行扩展:$()或

【例19】把一个命令的输出打印给另一个命令的参数

[root@Magedu ~]# echo "i am `whoami`"

i am root

[root@Magedu ~]# echo "i am $(whoami)"

i am root

[root@Magedu ~]# echo "i am whoami"

i am whoami

7、大括号扩展:{}

【例20】数子、字符扩展

[root@Magedu ~]# echo {1..10}

1 2 3 4 5 6 7 8 9 10

[root@Magedu ~]# echo {a..f}

a b c d e f

8、Tab键补全

功能:为了减少用户输入完整的命令或路径,而自动显示出来。系统会根据现有环境,自动搜寻匹配的字符,如果单击一次Tab键,能找出匹配项,则显示;如果不能,可以敲击两次Tab键,列出可选择的项目,但如果没有列出项目,则说明无匹配项。

9、命令历史使用方法

在linux系统里,所有敲击过的命令,会有历史记录,这个历史记录由配置文件设定相关的属性。命令历史的配置文件在~/.bash_histroy。

重复前一个命令:

  1. 按方向键上,调出,按回车即执行

  2. 输入!!并回车执行

  3. 输入!-1并回车执行

  4. history命令查看命令历史记录

  5. 输入!n,执行history命令输出对应序号n的命令

  6. !string:

【例21】分别演示以上几种方法

[root@Magedu ~]# ll test.txt 

-rw-r--r-- 1 root root 39 May 22 05:33 test.txt

[root@Magedu ~]# !!

ll test.txt 

-rw-r--r-- 1 root root 39 May 22 05:33 test.txt

[root@Magedu ~]# !-1

ll test.txt 

-rw-r–r– 1 root root 39 May 22 05:33 test.txt

[root@Magedu ~]# history

...

1050  ll test.txt 

1051  history

[root@Magedu ~]# !1050

ll test.txt 

-rw-r--r-- 1 root root 39 May 22 05:33 test.txt

[root@Magedu ~]# !his

history

54  echo -e 'abcd eaaa\n'|tr -d '[[:space:]]'

55  yum install nginx

56  yum install nginx -y

57  systemctl start nignx

58  systemctl start nginx

10、调用上一次命令最后一个参数:有多种方法

1.输入:!$

2.按Esc键松开后,再按.(点号)

【例22】调用上一次命令最后一个参数

[root@Magedu ~]# ll /etc/ssh/sshd_config 

-rw-------. 1 root root 3907 Apr 11 00:21 /etc/ssh/sshd_config

[root@Magedu ~]# file !$

file /etc/ssh/sshd_config

/etc/ssh/sshd_config: ASCII text

11、命令历史环境变量

系统默认的环境变量都使用大写字母,显示环境变量的内容,则需要使用echo $环境变量名称的形式查看其值。而要想修改或设置环境变量,有两种方法,一种是可直接在命令行使用export命令方式设置环境变量,则立即生效,退出shell登录或服务器重启失效,另一种是把export命令设置环境变量代码写到配置文件里,重读配置文件则永久生效。重读配置文件生效有两种方法:一种是使用source命令重读配置文件生效,另一种使用点号。

HISTISIZE:命令历史记录条数

【例23】查看命令历史记录条数

[root@Magedu ~]# echo $HISTSIZE

1000

【例24】临时修改环境变量历史记录条数为2000

[root@Magedu ~]# export HISTSIZE=2000

[root@Magedu ~]# echo $HISTSIZE

2000

【例25】永久修改环境变量历史记录条数为2000

[root@Magedu ~]# echo "export HISTSIZE=2000" >> ~/.bash_profile 

[root@Magedu ~]# source ~/.bash_profile

或使用点号使配置文件永久生效:

[root@Magedu ~]# . ~/.bash_profile

HISTFILE:历史文件保存的变量

【例26】显示历史文件保存的完整路径

[root@Magedu ~]# echo $HISTFILE

/root/.bash_history

当然也可随意设置,方法同上。

HISTFILESIZE:历史文件记录历史的条数

【例27】查看历史文件记录历史的条数

[root@Magedu ~]# echo $HISTFILESIZE

1000

HISTTIMEFRMAT:历史命令记录的格式

【例28】设置历史命令显示执行的日期和时间

[root@Magedu ~]# export HISTTIMEFORMAT="%F %T "

[root@Magedu ~]# history 

...

69  2018-05-23 21:53:35 cman ls

70  2018-05-23 21:53:35 . .bashrc

71  2018-05-23 21:53:35 tail  .bashrc

72  2018-05-23 21:53:35 man passwd

...

12、Bash中常用快捷键

Ctrl+l:清屏,相当于clear命令。

Ctrl+c:终止命令。

Ctrl+z:挂起命令。

Ctrl+a:光标移到命令行首,相当于Home键。

Ctrl+e:光标移到命令行尾,相当于End键。

Ctrl+u:从光标处删除至命令行首。

Ctrl+k:从光标处删除至命令行尾。

Alt+r:删除当前命令行整行。注意在xshell软件中Alt键冲突,若想要使用则需要重置。

13、命令的使用帮助

在日常学习命令中,如果遇到不熟悉的命令或要了解一个命令的详细参数功能,就需要查找相关手册,知道如何获取相关命令帮助,就显得尤为重要,下面为大家介绍几种获取帮助的命令和方法。

【例29】使用man命令查看man命令的使用手册

[root@Magedu ~]# man man

回车后,将显示:

img

解释在该界面内容表示的意义:

各部分功能说明:

SECTION:

name:命令的名称及功能描述;

SYNOPSIS:命令使用格式摘要;

DESCRIPTION:详细描述信息;

OPTIONS:选项详细说明;

AUTHOR:作者;

BUGS:报告程序bug的途径;

EXAMPLES:使用示例;

SEE ALSO:额外参考;

FILES:相关配置文件。

SYNOPSIS:

[]:可选内容;

<>:必须提供的内容;

a|b|c:多选一;

…:同类内容可出现多次。

man章节:

1 Executable programs or shell commands用户命令帮助文档;

2 System calls (functions provided by the kernel)系统调用帮助文档(由内核提供的函数);

3 Library calls (functions within program libraries)库调用帮助文档(由库程序提供的函数);

4 Special files (usually found in /dev)特殊文件帮助文档;

5 File formats and conventions eg /etc/passwd配置文件的格式的帮助文档;

6 Games游戏帮助文档;

7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)杂项帮助文档;

8 System administration commands (usually only for root)系统管理命令使用帮助文档;

9 Kernel routines [Non standard]内核程序代码的帮助文档。

注意:当一个命令在多个章节都有时,默认显示第一个检索到的章节;

知道了里面内容分别表示什么意思后,再查询的相关操作:

因为man命令里面查询翻页等功能,是调用less命令的功能实现的,因此,打开的man命令手册界面,查询操作同less命令使用:

翻屏:

​ 空格键,Ctrl+f:向文件尾部翻一屏;

​ b:向文件首部翻一屏;

​ d:向文件尾部翻半屏;

​ u:向文件首部翻半屏;

​ 回车键,Ctrl+#:向文件尾部翻一行;

​ y,k:向文件首部翻一行;

​ G:跳转至最后一行;

​ #G:跳转至第#行;

关键字搜索:

​ /KEYWORD:可使用模式搜索:向文件尾部搜索;

​ ?KEYWORD:向文件首部搜索;

​ n:与查找命令方向相同;

​ N:与查找命令方向相反。

退出:

​ q:退出。

14、COMMAND -help:查询命令的简要帮助

【例30】查询top命令的简要帮助

[root@Magedu ~]# top --help

top: inappropriate '-help'

Usage:

  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

在日常学习中,有时使用网络非常方便,通过互联网查询相关的知识也是一种能力,例如使用google搜索引擎。还有就是直接访问发行版或linux相关技术社区的官方站点。相信大家可自行在网络搜索各种技术站点。