linux 基础篇之一:

Week 1


linux 基础篇:


1. 计算机基础及发展历史
2. 操作系统发展历史及Linux系统
3. Linux发行版及哲学思想
哲学思想:一切皆文件;包括硬件也是通过文件表示的
常见的开源协议:
GNU GPL(GNU General Public License,GNU通用公共许可证)
BSD(Berkeley Software Distribution,伯克利软件发布版)
Apache许可证版本(Apache License Version)
主流发行版、常用操作系统介绍:
RedHat Enterprise Linux,RHEL #Redhat
Community Enterprise Operating System,CentOS #RHEL系统重新编译并发布给用户免费使用,已被
Redhat收购
Fedora #Redhat发布的桌面版系统套件
OpenSUSE #源自德国的一款著名的Linux系统
Debian #稳定性、安全性强,提供了免费的基础支持,国外用的比较多
Ubuntu #派生自Debian的操作系统
Aix #IBM开发的一套UNIX操作系统
HP-UX #HP开发的一套UNIX操作系统
Windows Server 2008/2012/2016 #Microsoft
4. Linux使用入门
VMwareWorkStation 11/12,虚拟机软件。#VMware,桌面虚拟计算机软件,能够让用户在单一主机同时运
行多个不同的操作系统
#虚拟机软件安装步骤
1.运行下载完成的Vmware Workstation虚拟机软件包
2.在虚拟机软件的安装向导界面单击“下一步”
3.在最终用户许可协议界面选中“我接受许可协议中的条款”复选框,然后单击“下一步”
4.选择虚拟机软件的安装位置(可选择默认),选中“增强型键盘驱动程序”复选框后单击“下一步”
5.根据自身情况适当选择“启动时检查产品更新”与“帮助完善VMware Workstation Pro”复选框,然后单击“下一
步”
6.选中“桌面”和“开始菜单程序文件夹”复选框,然后单击“下一步”
Community Enterprise Operating System,CentOS7 #操作系统镜像文件
远程终端 #远程终端管理工具
SecureCRT+SecureFX 、MobaXterm、Xshell、Xmanager
Vnc、Teamview(远程桌面)
以上软件正常安装即可,并无难点,省略
5. Linux SHELL
Shell就是的一个命令行工具。Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一
些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。系统默认使用的终端是Bash(Bourne-
Again SHell)解释器
7.准备就绪后,单击“安装”按钮
8.进入安装过程,此时要做的就是耐心等待虚拟机软件的安装过程结束
#注意事项
0.安装虚拟机软件前,需要检测CPU是否支持VT(Virtualization Technology,虚拟化技术),BIOS中查看此
选项(BIOS为计算机提供最底层的、最直接的硬件设置和控制)
1.根据操作系统平台,选择相应的软件版本32bit,64bit
2.在安装完虚拟机之后,不能立即安装Linux系统,因为还要在虚拟机内设置操作系统的硬件标准
3.虚拟机网络模式,详解
桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网
NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外
网,在真机中NAT虚拟机网卡对应的物理网卡是VMnet8
仅主机模式:仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式模拟网卡对应的物理网卡
是VMnet1
4.安装
导入提前下载好的镜像文件,安装即可
5.安装分区事项
/boot #boot分区,一般为200MB
SWAP #交换分区,一般为物理内存1.5~2倍;64G以一下按2倍,64G以下按1倍
/ #根分区
#镜像下载
#注意选择操作系统类型
1.官方镜像
https://www.centos.org/download/
2.国内镜像
https://mirrors.aliyun.com/centos/7.4.1708/isos/x86_64/
3.镜像类型说明
Everything ISO:对完整版安装盘的软件进行补充,集成所有软件
Dvd ISO:标准安装版,一般下载这个
其它则可忽略
SHELL的优点:
通过上下方向键来调取之前执行过的命令;
命令仅需要输入前几位就可以使用Tab补全;
具有强大的批处理脚本;
具有实用的环境变量功能
查看系统支持哪些SHELL?
cat /etc/shells
6. Linux查看帮助命令
要想高效完成各种任务,仅仅靠命令本身是不够的,还应该根据实际情况来灵活调整各种命令的参数,此时
就要多使用帮助
命令使用方法: 命令 [选项参数] [文件或目录] #以空格分割
命令帮助方法:
command --help
man command
info command
7. Linux常用系统命令
echo #用于在终端输出字符串或变量提取后的值
date #用于显示及设置系统的时间或日期
reboot #用于重启系统,其格式为reboot
poweroff #用于关闭系统
shutdown #用于关闭系统
wget #用于终端中下载文件
ps #用于查看系统中进程状态
top #用于动态地监视进程活动与系统负载等信息,类型Windows任务管理器
pidof #于查询某个指定服务进程的PID值,所谓进程ID
kill #用于终止某个指定PID的服务进程,所谓杀掉进程
killall #用于终止某个指定名称的服务所对应的全部进程,所谓父加子
8. Linux系统状态命令
ifconfig #用于获取网卡配置与网络状态等信息
uname #用于查看系统内核与系统版本等信息
uptime #用于查看系统的负载信息
free #用于显示当前系统中内存的使用量信息
who #用于查看当前登入主机的用户终端信息
last #用于查看所有系统的登录记录
history #用于显示历史执行过的命令,记得使用上下键
sosreport #用于收集系统配置及架构信息并输出诊断文档
9. Linux文件、目录相关命令
pwd #用于显示用户当前所处的工作目录
cd #用于切换工作路径
ls #用于显示目录中的文件信息
cat #用于查看纯文本文件
more #用于查看纯文本文件
head #于查看纯文本文档的前N行
tail #用于查看纯文本文档的后N行;或持续监控内容
tr #用于替换文本文件中的字符
cat anaconda-ks.cfg | tr 'a-z' 'A-Z' #把小写字母转换为大写
wc #用于统计指定文本的行数、字数、字节数
stat #用于查看文件的具体存储信息等信息
cut #用于按“列”提取文本字符
cut -d ':' -f2 /etc/passwd #以:分割,截取第2列
diff #用于比较多个文本文件的差异
touch #用于创建空白文件
mkdir #用于创建空白目录
mkdir -p /dir1/dir2/dir3
cp #用于复制文件或目录
mv #用于移动文件或将文件重命名 #rename == mv
rm #用于删除文件或目录
file #用于查看文件类型
10. Linux访问控制台
# #管理员模式
$ #普通用户模式
虚拟控制台 由六个文本控制台和一个图形化控制台组成
Ctrl-Alt-F[1-6] #文本控制切换快捷键
Ctrl-Alt-F7 #图形化控制台
tty #用于查看当前终端的信息
11. Bash的基础特性及用法
命令命令(历史记录)
history
命令、路径补全
tab
查找机制:按 PATH 环境变量中设定的目录,自左而右逐个搜索目录下的文件名
命令执行"状态结果"
Bash通过状态返回值来输出此结果;成功:输出0,失败:输出非0,1-255之间,其返回值保存于bash
的特殊变量 $? ;只能获取最近一次
键盘常用快捷键
ctrl+a #跳转至命令行行首
ctrl+e #跳转至命令行行尾
ctrl+u #删除行首至光标所在处之间的所有字符
ctrl+k #删除光标所在处至行尾之间的所有字符
ctrl+l #相当于clear
ctrl +w #删除光标前一段
ctrl +d #推出当前会话
12. Bash特性之输入、输出、重定向和管道
多个命令进行组合,高效地处理数据
Linux的三种重定向:
标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入
/dev/console #物理终端
/dev/tty[1-6] #虚拟终端
/dev/ttys #串行终端
/dev/pts/ #伪终端
echo $HISTSIZE #可保留的命令历史的条数
cat /root/.bash_history #用户历史文件
history -c #清空history所有记录
history -d his_no #删除指定历史记录
!num按照history命令输出中的序号来重复对应命令
!! 重复前一个命令
ctrl-r 来在命令历史中搜索命令
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕
Linux输入重定向符号:
命令 < 文件 #将文件作为命令的标准输入
命令 << tag #从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2 #将文件1作为命令的标准输入并将标准输出到文件2
wc -l < /root/anaconda-ks.cfg #<实际用的较少
wc -l < /root/anaconda-ks.cfg > output
tr 'a-z' 'A-Z' < /root/.bash_profile
Linux输出重定向符号:
命令 > 文件 #将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件 #将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 #将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件 #将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1 #将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
echo 'hello,world' > output
man ls > ls_help_text
ls -l aaa 2> stderr
ifconfga 2> stderr
ls -l aaa 2>> stderr
ifconfga 2>> stderr
ifconfig >> stderr 2>&1
ifconfiga >> stderr 2>&1
ifconfig >> /dev/null 2>&1 #/dev/null是一个特殊的文件,写入到它的内容都会被丢弃。黑洞文
件,只进不出
Linux的管道符号:
管道:把前一个命令的结果当成后一个命令的输入(|:连接命令)
grep "/sbin/nologin" /etc/passwd | wc -l
ls -l /etc/ | more
echo 'centos' | passwd --stdin root #一条命令设置密码
echo "test email" | mail -s "subject100" root #需要安装mailx包
(cal 2007; cal 2008) | more
Here Document重定向: 是Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或
程序
13. Linux命令行通配置符
查看相关联的文件信息
ll /dev/sda
ll /dev/sda1
ll /dev/sda2
ll /dev/sda* #(*)代表匹配零个或多个字符
ll /dev/sda? #(?)代表匹配单个字符
ll /dev/sda[0-9] #代表匹配0~9之间的单个数字的字符
练习:
cat >> file <<eof
> first line,
> second line,
> end.
> eof
ls file
如何通过命令行重启linux操作系统?
如何在命令行中快速删除光标前的内容?
如何删除/tmp下所有A开头的文件?
如何把/etc复制到/tmp下并保持原属性不变?
如何把/tmp/etc/man.conf移动到/tmp下并改名为test?
如何统计当前系统中一共有多少账户?
如何在末行模式中删除test文档中20-50之间所有的行?
如何查看/etc/passwd的头3行 和 尾3行?
如何查看当前工作目录?
如何一次性创建 text/1/2/3/4/?
如何查看/etc下的所有文件?
如何最快的返回到当前账户的宿主目录?
如何删除/tmp下所有的文件?
Week 2
1. Linux文件及文本管理工具
Vi文文本编辑器(无敌编辑器)
Vim它是Vi的增强版(vim需安装)
Vi的三种模式:
命令模式,控制光标移动,可对文本进行复制、粘贴、删除和查找等
输入模式,正常的文本录入
末行模式,保存或退出文档
Vi的常用命令:
命令 作用
dd 删除(剪切)光标所在整行
10dd 删除(剪切)从光标处开始的10行
yy 复制光标所在整行
10yy 复制从光标处开始的10行
p 删除(dd)或复制(yy)过的数据粘贴到光标后面
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
ctrl+f 向文件尾翻一屏
ctrl+b 向文件首翻一屏
a 在当前字符后添加文本
i 在当前字符前添加文本
o 在当前后面插入一空行
h、j、k、l 左、下、上、右
shirf + $ 4==$ 行尾
shift + ^ 6==^ 行首
shift + G 尾部
gg 首部
  
Vi末行模式常用命令:
命令 作用
:w 保存
:q 退出
:q! 强制退出
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:s/one/two 当前光标所在行的第一个one替换成two
:s/one/two/g 当前光标所在行的所有one替换成two
:%s/one/two/g 将全文中的所有one替换成two
?str 在文本中从下至上搜索该字符串
/str 在文本中从上至下搜索该字符串
更多可参考
练习:
1.请把/etc/init.d/iptables 复制到/root/目录下,并重命名为test.txt
2.用vim打开test.txt并设置行号
3.分别向下、向右、向左、向右移动5个字符
4.分别向下、向上翻两页
5.把光标移动到第49行
6.让光标移动到行末,再移动到行首
7.移动到test.txt文件的最后一行
8.移动到文件的首行
9.搜索文件中出现的 iptables 并数一下一共出现多少个
10.把从第一行到第三行出现的iptables 替换成iptable
11.还原上一步操作
12.把整个文件中所有的iptables替换成iptable
13.把光标移动到25行,删除字符 “$”
14.还原上一步操作
15.删除第50行
16.还原上一步操作
17.删除从37行到42行的所有内容
18.还原上一步操作
19.复制48行并粘贴到52行下面
20.还原上一步操作(按两次u)
21.复制从37行到42行的内容并粘贴到44行上面
22.还原上一步操作(按两次u)
23.把37行到42行的内容移动到19行下面
24.还原上一步操作(按两次u)
25.光标移动到首行,把/bin/sh 改成 /bin/bash
参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD  #默认创建用户无过期
-u 指定该用户的默认UID #系统创建时默认给用户分配的ID
-g 指定一个初始的用户基本组(必须已存在)#主组
-G 指定一个或多个扩展用户组 #附加组
-s 指定该用户的默认Shell解释器
参数 作用
-c 填写用户账户的备注信息
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
2. Linux用户、组、权限管理
Linux多用户、多任务操作系统!
多用户同时登录一个系统而执行不同的任务,而互不影响,不同的用户可具有不同的权限,每个用户在权限
允许的范围内完成不同的任务
为方便管理属于同一组的用户,方便为组中的用户统一规划权限或指定任务;在Linux系统中创建每个用户
时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户自己
useradd #用于创建用户
groupadd #用于创建组
usermod #用于修改用户属性
passwd #用于修改用户密码
26.在第一行下面插入新的一行,并输入”# Hello!”
27.保存文档并退出
参数 作用
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 通过标准输入修改密码
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
参数 作用
-f 强制删除用户
-r 同时删除用户及用户家目录
userdel #用户删除用户
su #切换用户
su - root
su - user1
当用户被创建后,保存在哪里,以什么形式保存,有哪此配置文件有关?
more /etc/passwd #用户信息;#USERNAME:PASSWORD:UID:GID:COMMENT:HOMEDIR:SHELL
uid(user identification):
管理员UID为0,系统管理员用户
系统用户UID1~999,系统默认服务用户
普通用户UID>1000,普通用户
UID不能冲突!
more /etc/shadow #用户密码信息
more /etc/group #组信息 #GROUPNAME:PASSWORD:GID:MAMBERS
more /etc/gshadow #组密码信息 #GROUPNAME:PASSWORD:ADMINISTRATORS:MEMBERS
测试:
1.创建用户user1,附加组为bin和root,默认shell为/bin/bash,注释信息为"user1_info"
2.创建admins的组
3.创建用户natasha,使用admins 作为附加组
4.创建用户harry,也使用admins 作为附加组
5.创建用户sarah,不可交互登录系统,且不是admins 的成员
6.natasha,harry,sarah密码都是centos7
7.创建user2 uid为10000,辅助组root,home目录为/home/user200
8.删除user1 用户及所在家目录
9.创建用户user100,并将该用户添加到group200组中
10.修改user100用户名为user1000
11.锁定用户user1000,进行测试及结果
12.解锁用户user1000,进行测试及结果
useradd user1 -G bin,root -s /bin/bash -c "user1_info"
groupadd admins
useradd natasha -G admins
useradd harry -G admins
useradd sarah -s /sbin/nologin
echo centos | passwd --stdin natasha #其它两个密码省略
useradd user1 -u 10000 -G root -d /home/user100
userdel -r user1
groupadd user200; useradd user100; usermod -G group200 user100
usermod -l user1000 user100
usermod -L user1000
usermod -U user1000
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值