Linux入门
Linux操作系统介绍
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
此内容来源于:百度百科
Linux发行版本介绍
比较知名的几个版本:
Debian:ubuntu、knopix
Slackware:OpenSUSE
Redhat:centos
Gentoo
ArchLinux
Linux发行版本概括图:
Linux基础知识与命令
使用ssh协议(secure shell)来进行远程连:
ss -tnl #查看系统是否监听于tcp协议的22号端口;
ifconfig #或者使用命令ip address list,查看IP地址
# 确保防火墙处于关闭状态,这样才能实现更好的互联互通
iptables -nL #查看防火墙规则
iptables -F #清除防火墙规则,这种清理只对当前有效
# 下面这种清理是永久生效的
# CentOS 7:
systemctl disable firewalld.service
systemctl stop firewalls.service
# CentOS 6:
service iptables stop
chkconfig iptables off
终端设备(terminal)的分类:
物理终端,控制台:console
虚拟终端:6个,tty
图形终端:
串行终端:ttyS
伪终端:pty
#查看终端设备
tty
#查看接口程序
echo $SHELL
#启动GUI,在某一虚拟终端接口运行该命令
startx &
#关机命令或重启命令
#CentOS 7:
systemctl poweroff
systemctl reboot
#*:
poweroff
halt
reboot
#查看命令类型
type ls
#查看命令文件
file /bin/ls
CLI()接口:命令行接口。
格式如下:[root@localhost ~]# COMMAND OPTIONS ARGUMENTS
root:当前用户
localhost:当前主机的主机名,非完整格式。此处的完整格式为:
~:用户当前所在的目录
#:命令行提示符
#:管理员账号,为root;拥有最高权限,能执行所有操作
$:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作
COMMAND
发起命令:请求内核将某个二进制程序运行为一个进程
程序 -->进程(静态 -->动态)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件(DLL)
注意:并非所有的命令都有一个在某目录与之对应的可执行文件,如内部命令就没有。
命令必须遵循特定格式规范:exe,msi,ELF(Linux)
OPTIONS
选项有两种表示形式:
短选项:如-a;有些命令的选项没有-。
长选项:如--help,长选项不能合并。
注意:有些选项可以带参数,此称为选项参数
ARGUMENTS
命令的作用对象。有些命令可同时带多个参数,参数之间以空白字符分隔。
#获取命令的的使用帮助
#内部命令
help COMMAND
#外部命令
#(1)命令自带简要格式的使用帮助
COMMAND --help
#(2)使用手册:manual。位置:/usr/share/man
man COMMAND
#查看在指定章节出现的命令
man 2 COMMAND
# 并非每个COMMAND在所有章节下都有手册,可以使用whatis命令查看该命令出现在哪几个章节
whatis COMMAND
#man的执行过程是查询数据库进行的。下载新程序后可以手动更新数据库
makewhatis
#(3)获取命令的在线文档
info COMMAND
#(4) 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
#README:程序的相关信息;
#INSTALL:安装帮助
#CHANGES:版本迭代时的改动信息
#(5)主流发行版官方文档
#(6)程序官方的文档
SECTION:
NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
EXAMPLES:使用示例
AUTHOR:作者
BUGS:报告程序bug的方式
SEE ALSO:参考
......
SYNOPSIP:
[]:可选内容
<>:必须提供的内容
a|b|c:多选一
...:同类内容可出现多个
使用手册manual:压缩格式的文件,有章节之分;位置:/usr/share/man/man1、man2...
man1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:文件格式(配置文件格式)
6:游戏使用帮助
7:杂项
8:管理工具及守护进行
man命令打开手册后的快捷操作:
翻屏操作:
空格键:向文件尾部翻一屏
b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
空格键:向文件尾部翻一行
k:向文件首部翻一行
G:跳转至最后一行
1G:跳转至文件首部(#G)
文本搜索:
/keyword:从文件首部向文件尾部一次查找,不区分字符大小写
?keyword:从文件尾部向文件首部一次查找
n:与查找命令方向相同
N:与查找命令方向相反
退出
q:quit
命令分为两类:
- 内置命令(builtin):由shell程序自带的命令
- 外部命令:独立的可执行程序文件,文件名即命令名
shell程序是独特/独立的程序,负责解析用户提供的命令
关机或重启命令:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h:halt
-r:reboot
-c:cancel
TIME:
now
hh:mm
+m
日期相关的命令:
Linux:系统启动时从硬件读取日期和时间信息,读取完成以后,就不再与硬件相关联。
Linux的时间分为:系统时钟、硬件时钟
date:系统时钟
显示日期时间:date [OPTIONS] [+FORMAT]
FORMAT(格式符):%F、%T、%Y、%m、%d、%H、%M、%S、%s
设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
hwclock,clock:硬件时钟
显示或设定硬件时间
-s,--hctosys:以硬件为准,把系统调整为与硬件时间相同
-w,--systohc:以系统时间为准,把硬件时间调整为与系统时钟相同
cal
dasf
Linux文件系统
思考:文件是什么?众多文件如何有效组织起来?
目录:路径映射
家目录:home,用户的起始目录,普通用户管理文件的位置
工作目录:basename(目录最右侧的文件或目录名)、dirname(basename左侧的路径)
文件:存储空间存储的一段流式数据,对数据可以做到按名存取
文件系统:具有层级结构;由索引
Linux的哲学思想之一:一切皆文件。 如硬件设备也是通过文件表示。
注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交换
管理文件的常用命令
#显示工作目录
pwd
#切换目录
cd
cd ~ #切换回自己的家目录
cd ~USERNAEM #切换至指定用户的家目录
cd - #在上一次所在目录与当前目录之间来回切换
#相关的环境变量($PWD:当前工作目录、$OLDPWD:上一次的工作目录)
#列出指定目录下的内容
ls
ls -a #显示所有文件,包括隐藏文件
ls -A #显示除.和..之外的所有文件
ls -l #--long,长格式列表,即显示文件的详细属性信息
-rw-r--r--. 1 root root 1529 Apr 1 2020 aliases
#-:文件类型,-,d,b,c,l,s,p,
#rw-r--r--
# rw-:文件属主的权限
# r--:文件属组的权限
# r--:其他用户的权限
#1:数字表示文件被硬链接的次数
#root:文件的属主
#root:文件的属组
#1528:数字表示文件的大小,单位是字节
#Apr 1 2020:文件最后一次修改的时间
#aliases:文件名
ls -h #--human-readable,以易于人类阅读的格式输出
ls -d #查看目录自身而非其内部的文件列表
ls -r #reverse,逆序显示
ls -R #recursive,递归显示
#文本文件查看工具
cat file
cat -n #给显示的文本行编号
cat -N #显示行结束符$
#逆序显示文本文件内容
tac
#查看文件内容类型
file [FILE]
#回显
echo [STRING]
echo -n #不进行换行
echo -e #让转义符\生效
#
Linux系统管理
Linux服务及安全管理
Linux的哲学思想
- 一切皆文件
把几乎所有的资源统统抽象为文件形式:包括硬件设备,甚至是通信接口等。
open(),read(),write(),close(),delete(),create() - 由众多功能单一的程序组成;一个程序只做好一件事;组合小程序完成复杂任务
- 尽量避免跟用户交互。目标:易于以编程的方式实现自动化任务
- 使用文本文件保存配置信息