Linux系统简介
什么是Linux
Linux在设计之初,是一个基于POSIX的多用户、多任务并且支持多线程和多CPU的操作系统,它是由世界各地成千上万的程序员设计和开发实现当初开发Linux系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类Unix操作系统兼容产品。
什么是Unix?
Unix是一种计算机操作系统,具有多任务、多用户的特征IBM---AIX、HP---HP-UX、SUN---Solaris
计算机是一台机器按照用户的要求接受信息、储存数据、处理数据,然后再将处理结果输出(文字,图片,音频、数据等)。计算机由硬件和软件组成:
硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等
软件会按照用户的要求协调整台计算机的工作,比如Windows、Linux、Mac OS、Android等操作系统,以及Office、QQ、迅雷,微信等应用程序
操作系统(Operating System, OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)
操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同操作系统时还提供一些基本的服务程序, 例如:文件系统、设备驱动、用户界面、系统服务等
操作系统使得应用程序无法直接与硬件打交道,而是必须经由操作系统的内核,协调多个程序运行避免恶意程序破坏其他进程独占资源,保证了多任务平稳的运行。
操作系统向外提供系统调用,然后系统调用被封装成库向外提供库调用,程序员只需要根据库的API接口进行编程,不用关心底层硬件的不同,便于程序的移植。
在当今社会, Linux 系统主要被应用于服务器端大型、超大型互联网企业(百度、腾讯、Sina、 阿里等)都在使用Linux系统作为其服务器端的程序运行平台,全球及国内排名前1000的90%以上的网站使用的主流系统都是Linux系统。因为:
- Linux 不仅是免费的,更是开源的,所以今天有非常强大的Linux生态
- Linux与Unix系统兼容,具备Unix几乎所有的优秀特性
- Linux 让开展各种实际有用且具有创造性的事情成为可能
- Linux提供了复杂的软件包管理系统,可以放心地安装和维护每一个在线资源库中的软件应用。
Linux的特点
- 由目的单一的小程序组成;组合小程序完成复杂任务
- 一切皆文件
- 尽量避免捕获用户接口
- 配置文件保存为纯文本格式
- Linux的shell, 是人机接口。Linux 的shell包括GUI和CLI两种类型。
- GUI指图形界面, 与windows类似。比较常见的有gnome. KDE和xface等
- CLI是命令行界面。比较常见的有bash,csh. zsh. ksh和tcsh等,我们通常使用用bash.
Linux基础命令
Linux命令行结尾的提示符有“#”和“$”两种符号
- “$”号是使用普通用户登陆后的提示符
- “#”号是使用超级用户root登陆后的提示符
命令行快捷键
- Ctrl+c:终止当前的输入,如在命令行中输入大量内容后,发现输入有误,或要执行其他任务。按下Ctrl+c后,会自动终止当前输入,跳转到下一行
- TAB键:补全当前命令,Linux中有很多命令或者路径比较长,初学者记不住,就可以借助TAB键来补全
- Ctrl+A:使光标移到最前
- Ctrl+E:使光标移动到最后
- Ctrl+D:退出当前终端
- Ctrl+L:清除当前屏幕
- Ctrl+Z:暂停当前进程,与Ctrl+C不一样的是Ctrl+Z暂停后可以恢复进程
- ipconfig:查看当前接口状态,默认为自动ip,默认网口名
ss -lnt:查看当前开放的tcp端口
SSH(secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登陆以及安全的数据传送
Linux命令
- 创建目录:mkdir
- 删除目录或文件: rm
- 删除非空目录: rm -rf file目录
- 删除日志rm *log (等价: $find ./ -name“*log" -exec rm {} ;)
- 移动(剪切) : mv原文件目标文件
- 复制文件: cp原文件目标文件
- 复制目录: cp-r原目录目标目录
- 找到文件/目录位置: cd
- 切换到上一个工作目录: cd -
- 工换到父目录: cd ..
- 切换到home目录: cd or cd~
- 切换到/root目录: cd /root
- 显示当前路径: pwd
- 更改当前工作路径为path: $cd path
- Is:显示当前目录下的文件,常用选项:
- -a 列出所有文件,包含隐藏文件
- -l以列表形式显示
- -1(数字1) 以分行显示
- -t按时间排序
- -r排倒序
- -R 包含目录的子目录及文件
- 按时间排序, 以列表的方式显示目录项ls -Irt如果Is -Irt使用非常频繁,我们可以给他设置一下别名,在.bashrc 中设置命令别名: alias IsI='ls -Irt'
- ln:创建链接文件 ln -s 文件A 文件B
绝对路径:从Linux的根目录、开始写;
相对路径:路径不是从根目录写起,而是相当于当前pwd的目录
命令基本语法格式
命令 空格 选项(空格)选项2 参数
ls -l /root
有时候命令会带有一个或者多个选项,通常选项由单个字母构成,并在字母前加一个连接符“-”
有时候因为选项太多,我们可以使用更简单的写法如:
ls -a -l -t 和 ls -alt 是一种含义
--help 是是多数命令的帮助选项,可以查看命令的基本使用方法
Shell History是一个记录以前所输入的命令列表;通过history命令可以查看以前执行过的命令
!(数字)执行history中指定编号的命令
!! 执行上一条命令
!?is执行history中包含is的命令;也可以通过键头上下来选择历史命令
Linux系统安装
Centos 7
- 先创建新的虚拟机
- 选择自定义(高级);下一步
- 选择虚拟机硬件兼容性
- 选择镜像
- 设置虚拟机文件位置
- 配置处理器内存,默认就行
- 配置网络和硬盘,默认就行
- 最后傻瓜式下一步,都是默认就行
- 点击完成,启动
Linux目录结构
在Linux系统中,任何东西都可以简化为文件;比如分区对应到/dev/sda1;硬件部件对应到/dev/cdrom
ls / 显示Linux根目录下的文件; / 是Linux所有路径的开始,是所有目录的根
指令集合:
- /usr/bin:系统用户使用的应用程序与指令。
- /usr/sbin:s就是Super User的意思,是Superuser binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序
外部文件管理:
- /dev : Device(设备)的缩写,存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
- /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下
- /mnt: 临时挂载别的文件 系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有/var/run目录,应该让它指向run.
- /lost+found: 一般情况下为空的,系统非法关机后,这里就存放- -些文件。
- /tmp: 这个目录是用来存放一些临时文件的。
账户
- /root: 系统管理员的用户主目录。
- /home: 用户的主目录,以用户的账号命名的。
- /usr: 用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/src: 内核源代码默认的放置目录。
运行过程中要用:
- /var: 存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
- /proc: 管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改.。
- proc目 录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_ all
系统启动必须:
- /boot: 存放的启动Linux时使用的内核文件,包括连接文件以及镜像文件。
- /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
- /lib: 存放基本代码库(比如Cc++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库.
- /sys: 这是linux2.6内核的一 个很大的变化。该目录下安装了2.6内核中新出现的- -个文件系统sysfs。sysf件 系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一一个直观反映。当-一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中