Red Hat Enterprise Linux 讲义

本文是为一名客户定制的 Red Hat Enterprise Linux,客户在医院使用企业版的红帽 Linux,对可靠性和安全性的要求比较高,所以本讲义强化了权限、用户管理等内容。

Bash Terminal

1)目录和文件操作,cd,ls,pwd,rm,mv,cp,mkdir,touch,gedit。选项 -i,-r,-f

mkdir myTest
touch test1
touch .test1
ls 
ls -a
touch myTest/test
cp -i test1 myTest/
cd myTest
gedit test1
mv test1 test1.old
cd ..
rm -r myTest

2)Tab 键自动补全。键入 history 查看命令行历史记录,再用 !n(n 是命令编号)就可以再次执行。键入 clear 清屏

3)ctrl+c 终止当前正在执行的命令。ctrl+z 暂停当前正在执行的命令,键入 fg 恢复暂停的命令

4)用 & 在后台执行命令,用 >, >> 输出重定向

ping 114.114.114.114 > log.pingTest &Code language: CSS (css)

5)alias 定义别名

alias rm = "rm -i"
alias l = "ls"Code language: JavaScript (javascript)

6)sudo 以其他用户的身份执行命令

cd /
sudo touch remvoeMe
rm removeMe

7)man 查看手册

man ascii
man ls

文本编辑器 vim

1)vimtutor 互动式 vim 教程

vimtutor

课上看完 lesson 1,其余课后完成。

2)类似 vim 的轻量级文本处理器 less

3)vim 的快捷键被用在很多其他应用上,比如 Chrome 浏览器安装插件后支持 hjkl 翻页

软件包管理器 yum

1)机制,软件源、软件包、镜像站

2)常用命令 install,provides,remove

sudo yum provides htop
sudo yum install htop
sudo yum remove htop

.bashrc 文件

1)bash terminal 的配置文件,每次打开终端都会被执行

2)source 命令,在当前终端读取并执行文件中的命令

source ~/.bashrc
. ~/.bashrc

3)一些别名建议添加到这个文件,比如

alias 'mv = mv -i'
alias 'l = ls'Code language: JavaScript (javascript)

4)为什么装完某些程序要重新打开一个终端才能运行?

5).bashrc 包含了许多个性化的设置,为了在新的电脑上使用这些配置,应该用 GitHub 同步 .bashrc 等文件。一个例子 fotinakis/bashrc

shell 编程

阅读《Linux 系统管理与网络管理》13.1 Shell 编程简介

Git 和 GitHub

1)https://youtu.be/w3jLJU7DT5E,各个角色如何互动

2)一个例子,在 GitHub 上保存 .bashrc 配置。先新建一个项目

cd ~
mkdir src
cd src
gedit bash_alias

然后配置 git

git config --global user.name "Your Name Comes Here"
git config --global user.email you@yourdomain.example.comCode language: CSS (css)

将刚才新建的项目导入 git

git init
git add .
git commit

修改文件后再提交

gedit bash_profile
git add bash_profile
git status
git commit

在 GitHub 上新建项目,按提示完成,例如

git remote add origin https://github.com/phresher/src.git
git push -u origin masterCode language: JavaScript (javascript)

3)课后作业,注册 GitHub。阅读并完成 Hello World · GitHub Guides或观看视频https://youtu.be/FyfwLX4HAxM

用户管理

1)建议使用 GUI 进行基本的用户管理

2)更复杂的配置,使用 /etc/sudoers 配置文件,这个文件的功能是设置“谁有权以谁的身份做什么”。必须用特别的命令编辑

sudo visudo -f /etc/sudoers

浏览一下这个文件,了解大概功能

3)用户组的概念

文件

1)文件类型:普通文件、目录文件、链接文件、特殊文件

ls -l .bashrc
ls -ld ./
ln -s .bashrc mybashrc
ls -l mybashrc
ls -l /dev/nullCode language: JavaScript (javascript)

2)文件的权限

回忆一下上次课程用到的 chmod 命令

chmod +x HelloWorld.shCode language: CSS (css)

还有用 sudo touch 创建新文件后普通用户无法删除的情形

sudo touch remvoeMe
rm removeMe

这都涉及到文件的权限。

3)改变文件的权限

chmod 命令,记住数字表达法,原理是二进制转为十进制

3)了解根目录下各个文件夹的功能,《Linux 系统管理与网络管理》表8.2。

远程登录

1)跨平台的远程登录软件 teamviewer

2)内网穿梭

代理服务器、子网、公网IP

3)ssh 远程登录。以 23.235.133.192 为例,这是一台位于香港的主机

ssh -l root 23.235.133.192Code language: CSS (css)

可通过修改 ssh 配置,简化登陆指令,编辑/新建 .ssh/config,一个例子

Host hk
  Hostname 23.235.133.192
  User root
  IdentityFile ~/.ssh/MumbaiOF.pemCode language: JavaScript (javascript)

4)在 Windows 上使用 ssh 远程登录,Bitvise SSH Client

5)免密码登录

在自己的 Linux 系统上生成 SSH 密钥和公钥

ssh-keygen -t rsa

原理,RSA 算法 – 维基百科

生成 SSH Key 的过程中会要求你指定一个文件来保存密钥,按Enter键使用默认的文件,然后需要输入一个密码来加密你的 SSH Key,直接按回车不设置密码,SSH 密钥会保存在 home 目录下的 .ssh/id_rsa 文件中,SSH 公钥保存在 .ssh/id_rsa.pub 文件中

将SSH公钥上传到Linux服务器

ssh-copy-id username@remote-serverCode language: CSS (css)

输入远程用户的密码后,SSH 公钥就会自动上传了,SSH 公钥保存在远程 Linux 服务器的 .ssh/authorized_keys 文件中

上传完成后,SSH 登录就不需要再次输入密码了,但是首次使用 SSH Key 登录时需要输入一次SSH密钥的加密密码

更多细节,SSH无密码登录:只需两个简单步骤 (Linux) – Linux大神博客

5)安全性

改变默认端口以防暴力破解管理员密码,修改服务器的 /etc/ssh/sshd_config,执行 /etc/init.d/sshd restart,编辑防火墙配置 /etc/sysconfig/iptables

限制可登录的 IP 地址,不推荐

6)文件传输

使用 scp 命令可以在本地和远程服务器之间加密传输文件。使用前建议配置好 .ssh/config。

scp ~/.vimrc aws:~/
scp -r ~/OpenFOAM aws:~/Code language: JavaScript (javascript)

VPS

1)是否值得购置一台 VPS

2)VPS 可以用来做什么?git 服务器、个人网站、VPN 服务器、SS 服务器

3)知名的 VPS 服务商,阿里云、腾讯云、亚马逊

Red Hat Subscription Manager (RHSM)

Subscription Manager 是 Red Hat 为付费用户提供的软件源管理器,主要功能是注册和订阅。添加必要的软件源后,可以解决用 yum 安装软件时,yum 找不到软件的问题。这节的命令都需要用管理员权限。

1)这些功能可通过 GUI 实现,运行命令

subscription-manager-gui

打开窗口,按提示操作即可。遇到困难可以联系 Red Hat 客服。

2)列出软件源

subscription-manager repos --listCode language: PHP (php)

命令要执行数秒。执行完屏幕上会显示很多 ID 和订阅状态,ID 类似 rhel-7-workstation-optional-rpms、rhel-7-workstation-extras-rpms,这两个库是工作站平台最常用的两个库,一般要订阅。如果是在服务器平台,相应的 ID 是 rhel-7-sever-optional-rpms、rhel-7-sever-extras-rpms。

3)订阅软件源的命令是

subscription-manager repos --enable rhel-7-workstation-extras-rpms
subscription-manager repos --enable rhel-7-workstation-optional-rpms

4)添加了这两个软件源后,还有些常用的第三方软件没有被包含进来,往往还需要安装 epel-release,EPEL – Fedora Project Wiki

yum install epel-release

5)添加完这些软件源后,可以用 yum update 更新一下。安装第三方软件,如 teamviewer 时,遇到问题也可以用这个命令更新下。

6)未尽内容,详见 怎样使用 Red Hat Subscription Manager (RHSM) 将系统注册到红帽客户门户网站?

常恭

作者: 常恭

略懂 OpenFOAM

发表评论