linux操作系统基础

书史足自悦,安用勤与劬。这篇文章主要讲述linux操作系统基础相关的知识,希望能为你提供帮助。
【linux操作系统基础】

Linux简介
Linux介绍
Linux特点
CentOS
Linux目录结构
Linux常用命令
Linux命令的分类
操作文件或目录常用命令
常用命令
备份压缩命令
gzip命令
bzip2命令
tar命令
关机/重启命令
学习Linux的好习惯
编程题
实战
系统管理命令
data命令
free命令

下面开始本节课的学习
Linux简介
Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。

Linux介绍?
Linux出现于1991年,是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成
Linux特点
多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面,出色的速度性能
CentOS
主流:目前的Linux操作系统主要应用于生产环境,主流企业级Linux系统仍旧是RedHat或者CentOS
免费:RedHat 和CentOS差别不大,基于Red Hat Linux 提供的可自由使用源代码的企业CentOS是一个级Linux发行版本
更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat 那样需要花钱购买支持服务!
Linux目录结构





Linux常用命令
命令格式:命令-选项-参数
如:ls-la/usr

ls:显示文件和目录列表(list)

常用参数
-l(long)
-a(all)注意隐藏文件、特殊目录.和..
-t(time)

Linux命令的分类
内部命令:属于shell解析器的一部分
cd 切换目录(change directory)
pwd 显示当前工作目录(print working directory)
help 帮助

外部命令:独立于shell解析器之外的文件程序
ls 显示文件和目录列表(list)
mkdir 创建目录(make directoriy)
cp 复制文件或目录(copy)

操作文件或目录常用命令
pwd 显示当前工作目录(print working directory)
touch 创建空文件
mkdir 创建目录(make directoriy)
-p 父目录不存在情况下先生成父目录 (parents)
cp 复制文件或目录(copy)
-r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)
mv 移动文件或目录、文件或目录改名(move)

rm 删除文件(remove)
-r 同时删除该目录下的所有文件(recursive)
-f 强制删除文件或目录(force)
rmdir 删除空目录(remove directoriy)
cat显示文本文件内容 (catenate)
more、less 分页显示文本文件内容
head、tail查看文本中开头或结尾部分的内容
head -n5a.log 查看a.log文件的前5行
tail-F b.log 循环读取(follow)

常用命令
wc 统计文本的行数、字数、字符数(word count)
-m 统计文本字符数
-w 统计文本字数
-l 统计文本行数
find 在文件系统中查找指定的文件
find /etc/ -name "aaa"
grep 在指定的文本文件中查找指定的字符串
ln 建立链接文件(link)
-s 对源文件建立符号连接,而非硬连接(symbolic)

top 显示当前系统中耗费资源最多的进程
ps 显示瞬间的进程状态
-e /-A 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
kill 杀死一个进程
kill -9 pid
df 显示文件系统磁盘空间的使用情况

du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以K,M,G为单位显示(human-readable)
-s只显示各档案大小的总合(summarize)
free 显示当前内存和交换空间的使用情况
netstat 显示网络状态信息
-a 显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-p 显示建立相关链接的程序名
ifconfig 网卡网络配置详解
ping 测试网络的连通性

备份压缩命令
gzip 压缩(解压)文件或目录,压缩文件后缀为gz
bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2
tar 文件、目录打(解)包

gzip命令
命令格式:gzip [选项] 压缩(解压缩)的文件名
-d将压缩文件解压(decompress)
-l显示压缩文件的大小,未压缩文件的大小,压缩比(list)
-v显示文件名和压缩比(verbose)
-num用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6

bzip2命令
命令格式:bzip2 [-cdz] 文档名
-c将压缩的过程产生的数据输出到屏幕上
-d解压缩的参数(decompress)
-z压缩的参数(compress)
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6

tar命令
-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-j 是否需要用 bzip2 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)

关机/重启命令
shutdown系统关机
-r 关机后立即重启
-h 关机后不重新启动
halt 关机后关闭电源 shutdown -h
reboot 重新启动 shutdown -r

学习Linux的好习惯
  • 善于查看man page等相关的文档
  • 利用好tab键
  • 掌握一些快捷键
ctrl + c(停止当前进程)
ctrl + r(查看命令历史)
ctrl + l(清屏,与clear命令作用相同)

编程题
  • 判断一个文件是不是字符设备文件,如果拷贝到/Dev目录下?
#!/bin/bash
read -p "Input file name: " FILENAME
if [ -c "$FILENAME" ]; then
cp $FILENAME /dev
fi

添加一个新组为 class1 ,然后添加属于这个组的 30 个用户,用户名的形式为 stdxx ,其中 xx 从 01 到 30 ?
#!/bin/bash
groupadd class1
for((i=1; i< 31; i++))
do
if [ $i -le 10 ]; then
useradd -g class1 std0$i
else
useradd -g class1 std$i
fi
done

  • 编写一个shell程序,实现自动删除50个账号的功能,账号名字为stud1到stud50
#!/bin/bash
for((i=1; i< 51; i++))
do
userdel -r stud$i
done

  • 写一个sed命令,修改/tmp/input.txt/文件的内容
  1. 删除所有行。
  2. 一行中,如果包含11111,则在前面插入AAA,在后面插入BBB。
例如:将0000111112222的一行改为0000AAA11111BBB2222
[root@~]## cat -n /tmp/input.txt
1000011111222
2
3000011111222222
411111000000222
5
6
7111111111111122222222222
82211111111
9112222222
101122
11

## 删除所有空行命令
[root@~]## sed /^$/d /tmp/input.txt
000011111222
000011111222222
11111000000222
111111111111122222222222
2211111111
112222222
1122

## 插入指定的字符
[root@~]## sed s#\\(11111\\)#AAA\\1BBB#g /tmp/input.txt
0000AAA11111BBB222
0000AAA11111BBB222222
AAA11111BBB000000222
AAA11111BBBAAA11111BBB11122222222222
22AAA11111BBB111
112222222
1122

实战
如何选择Linux操作系统版本
一般来讲,桌面用户首选 Ubuntu ;服务器首选 RHEL 或 CentOS ,两者中首选 CentOS 。
根据具体要求:
安全性要求较高,则选择 Debian 或者 FreeBSD 。
需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE 。
想要新技术新功能可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发布版本。
【重点】根据现有状况,绝大多数互联网公司选择 CentOS 。现在比较常用的是 6 系列,现在市场占有大概一半左右。另外的原因是 CentOS 更侧重服务器领域,并且无版权约束。
CentOS 7系列,也慢慢使用的多了起来

系统管理命令
data命令
显示或设定系统的日期与时间
命令参数:
-d< 字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s< 字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。

显示下一天
date +%Y%m%d --date="+1 day"//显示下一天的日期

-d参数使用
date -d "nov 22"今年的 11 月 22 日是星期三
date -d 2 weeks 2周后的日期
date -d next monday (下周一的日期)
date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
date -d last-month +%Y%m(上个月是几月)
date -d next-month +%Y%m(下个月是几月)

free命令
显示系统内存使用情况,包括物理内存,交互内存和内核缓冲区内存
命令参数
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s< 间隔秒数> 持续显示内存
-t 显示内存使用总合

实例:
  1. 显示内存使用情况
free
free -k
free -m

  1. 以总和的形式显示内存的使用信息
free -t

  1. 周期性查询内存的使用情况
free -s 10

下一站
面包会有的,牛奶也会有的。加油。如果累了可以躺平,但是千万不要一直躺平。













    推荐阅读