Linux基本使用和操作笔记(上)

简介: Linux基本使用和操作笔记

文本要点

1、Linux操作系统发展介绍、安装配置
2、SSH原理机制、Linux文件上传下载
3、Linux常见文件系统操作命令使用
4、Vim编辑器基础使用
5、Linux用户、权限管理
6、Linux常用系统命令

内容大纲

#操作系统概述
#linux系统概述
#vmware虚拟机
  虚拟网络+网络模式
  Centos7系统安装
  SSH免密登录  非对称加密(私钥 公钥)
  文件下载
  虚拟机的快照
#Linux常用的基础命令
  文件系统的操作  目录树
  搜索操作、解压缩
  管道
#vi|vim编辑器
  打开新建、异常处理
  常用命令操作
  插入模式编辑、保存退出
# Linux用户与权限管理
  用户、用户组及其管理
  文件权限  rwx
  su、sudo
# 系统信息
  时间、日期
  进程
  磁盘使用情况、内存使用情况

一、操作系统概述

1.1、计算机原理
  • ==冯、诺依曼==结构 (普林斯顿结构)
  • 核心思想:把程序当做数据存储在计算机存储设备中。按顺序读取指令执行。
  • 冯、诺依曼计算机制造三个基本原则
  • 采用二进制逻辑
  • 程序存储执行
  • 计算机由五个部分组成
  • 硬件分类:
  • CPU(运算器控制器
  • 存储设备(内存、外存)
  • 输入设备
  • 输出设备
  • 计算机软件分为软件和硬件。
1.2、操作系统与分类
  • 定义:管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。没有操作系统称之为裸机。
  • 意义:使编程变得更简单。不需要再编写程序如何去控制协调硬件工作。
  • 操作系统分类
  • 桌面
  • 服务器
  • 嵌入式
  • 移动设备

二、Linux操作系统

2.1、Linux发展史

http://linuxfederation.com/complete-historical-timeline-linux-evolution/

2.2、Linux内核
  • Linux操作系统=Linux内核+GNU+其他应用操作
2.3、Linux发行版本
  • Linux分类
  • 个人桌面版
  • 企业服务器版
国内最大的体系 RH 红帽系统,Centos是社区免费版本。

三、VMware虚拟机

3.1、虚拟组件
  • 所谓的虚拟指的是物理上不存在,但是逻辑上存在,功能跟物理实体一样的。
#1、网卡、网络适配器
  连接网络的硬件设备 分为有线和无线之分 其唯一身份标识MAC地址。
#2、交换机
  通过网线将计算机组成局域网,同一个交换机下网络地位是一样的。
  整个局域网网络属性由交换机决定的。
#3、网桥
  扩大局域网通信距离的一种设备。网桥两边网络地位也是一样的。
#4、DHCP 动态主机配置协议设备
  自动的分配IP 网关DNS等属性 集中维护局域网网络。
#4、NAT服务器
  将不可上网的IP转换成为可以上网的IP  

Q:如何去组建一个局域网

交换机 服务器 网线
3.2、VMware3种网络模式
  • 核心
1、这种网络模式下,使用的交换机是谁?
2、这种网络模式下,虚拟机能否上网?如果能上网,是如何上网的?

桥接模式:使用是vmnet0交换机,可以上网,通过网桥桥接上网的。

NAT模式:使用vmnet8交换机,可以上网,通过NAT转换上网的。

host-only模式:使用vmnet1交换机,不可以上网。

实战:使用VMware虚拟机NAT模式安装Centos7操作系统。 详细参考附件资料。

#整个离线课程3台虚拟机 硬件资源分配
node1 1*2 CPU  4G ram  
node2 1*1 CPU  2G ram
node2 1*1 CPU  2G ram
3.3、SSH安全外壳协议
  • 核心:非对称加密(单向的)
两把钥匙
公钥、私钥
公钥加密、私钥解密
  • 用途1:基于用户名密码加密登录
  • 用途2:机器间的免密登录
3.4、Linux文件上传与下载

四、Linux常见基础命令

4.1、文件系统基本概念

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)上的文件的方法和数据结构;即在存储设备上组织文件的方法

操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

  • 功能:存储文件,存储数据,管理文件。
  • 形式:目录树结构。
1、都是从/根目录开始的
2、分为两个种类:目录、文件
3、路径的唯一性
4、只有在目录下才可以继续创建下一级目录
  • Linux号称万物皆文件,组成一个目录树结构。所有的文件都是从/根目录开始的。
  • 回顾:
  • 1、当前目录、相对路径、绝对路径
#1、当前目录
  你目前所在的目录 可以使用pwd来查看。 有的场合叫做当前工作目录。
#2、相对路径
  相对你当前的工作目录  路径没有/
#3、绝对路径
  从根目录开始,/开始的 跟你在哪里没有关系

2、特殊符号 . … ~ /

#  .
  如果是文件名字以.开始  .1.txt   表示文件是隐藏文件
  如果是路径中有. 表示的是当前路径  ./
#  ..
  当前路径的上一级   cd ../../
  e.g:cp ../../1.txt ./    
#  ~  
  表示的是用户的家目录
  root用户的家目录  /root
  普通用户的家目录   /home/用户名
#  /
   根目录
4.2、常见的操作命令
#1、history命令 
   查看历史执行命令
#2、查看指定目录下内容
   ls
   ls -a      查看所有文件 包括隐藏文件
   ls -l =ll  查看文件详细信息 包括权限 类型 时间 大小等
   ll -h      表示以人性化的显示内容
   ll  *      *通配符表示任意字符  ?表示有且只有一个字符
#3、切换工作目录
   #如何查看自己当前的所在目录 pwd
   cd 路径     注意自己写的是相对还是绝对的  还可以结合特殊符合使用
   cd ./
   cd /
   cd ../
   cd ~
#4、文件的创建与删除
   touch 创建一个空文件  没有内容的文件
   mkdir 创建文件夹
       -p  父目录不存在的情况下 帮助创建
   rm    删除文件
       -f 强制删除  不给与提示
       -r 递归删除 针对文件夹
       -rf 杀伤力极大 问问自己在干什么
       坐牢眼:rm -rf /*
#5、移动与复制
  tree  以树状图的形式显示文件夹下内容
    [root@node1 tmp]# tree /usr/tmp/
    -bash: tree: command not found
    #如果在linux中出现命令找不到错误,一般来说两种原因:命令写错 命令不存在
    在确定没有写错的情况下  可以使用yum在线快速安装
    yum install -y tree
  cp  复制文件或者文件夹
    -r 递归 针对文件夹
    /a/b  表示复制的是文件夹b
    /a/b/* 表示复制的是文件夹b下的所有内容
  mv  移动文件或者文件夹
    mv  旧文件名 新文件名

文件内容查看命令

#1、cat
  一次查看所有的内容  适合小文件
#2、less
  分屏查看大文件  enter回车下一行  空格下一屏
  前后屏幕  b  f
  退出 q
#3、head 
  查看文档的前几行内容
  -n 指定行数
#4、tail
  - 数字  查看最后几行内容
  -f -F 文件  实时查看文件的变化内容
  (当追踪的文件丢失再出现的时候 能否继续追踪 F可以继续)

管道命令 |

# 命令 1 | 命令 2 
  可以将命令 1 的结果 通过命令 2 作进一步的处理
[root@node1 ~]# ls 
1.txt  anaconda-ks.cfg  hello  lrzsz-0.12.20.tar.gz  test  test.file
[root@node1 ~]# ls | grep ^t
test
test.file  

echo 输出命令

#相当于print 将内容输出console控制台
[root@node1 test]# echo 111
111
[root@node1 test]# echo "hello "
hello 

重定向

#  >  覆盖
#  >> 追加
  将前面命令成功的结果追加指定的文件中
#  &>>
    将前面命令失败的结果追加指定的文件中
输出的内容分为标准输出stdout  错误输出stderr
[root@node1 test]# echo 111
111
[root@node1 test]# echo "hello "
hello 
[root@node1 test]# echo 111 > 4.txt
[root@node1 test]# cat 4.txt 
111
[root@node1 test]# echo 222 > 4.txt   
[root@node1 test]# cat 4.txt       
222
[root@node1 test]# echo 222 >> 4.txt
[root@node1 test]# cat 4.txt        
222
222
[root@node1 test]# mkdir a/b/c  >> 5.txt   
mkdir: cannot create directory ‘a/b/c’: No such file or directory  
#错误的输出无法通过>>进行追加
[root@node1 test]# mkdir a/b/c &>> 5.txt
[root@node1 test]# cat 5.txt 
mkdir: cannot create directory ‘a/b/c’: No such file or directory
#  && 和 ||
  命令1 &&命令2  1执行成功才执行2
  命令1 ||命令2  1执行失败才执行2
[root@node1 test]# mkdir a/b/c && echo "创建目录成功了"
mkdir: cannot create directory ‘a/b/c’: No such file or directory
[root@node1 test]# mkdir -p a/b/c && echo "创建目录成功了"
创建目录成功了

软链接

  • 可以对比理解windows快捷方式。
有没有硬链接呢?  有
ln -s 目标文件的绝对路径 软链接名(快捷方式)
ln    目标文件的绝对路径 硬链接名

Linux搜索文件

  • find
find <指定目录> <指定条件> <指定动作>
  默认是搜索当前目录下,所有文件 显示在屏幕上
find . -name "*.log" -ls 在当前目录查找以.log 结尾的文件, 并显示详细信息。
find /root/ -perm 777 查找/root/目录下权限为 777 的文件
find . -type f -name "*.log" 查找当目录,以.log 结尾的普通文件
find . -type d | sort 查找当前所有目录并排序
find . -size +100M 查找当前目录大于 100M 的文件  

grep

ps -ef | grep sshd 查找指定 ssh 服务进程
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身
ps -ef | grep sshd -c 查找指定进程个数

locate

#相当于find -name 但是效率比find更高 因为底层维护了一个索引的数据库 默认一天更新一次
#通常的使用习惯是 先更新在查找
updatedb
locate /etc/sh 搜索 etc 目录下所有以 sh 开头的文件
locate pwd 查找和 pwd 相关的所有文件

which

#查找环境变量中的内容 
通常用于判断软件是否配置环境变量。

解压缩命令

  • 打包、解包
tar cvf 打包名.tar  文件或者目录
tar xvf 打包名.tar
tar xvf 打包名.tar -C指定解包目录

压缩、解压缩

#z  gzip
使用 gzip 压缩和解压缩
#j bzip2
使用 bzip2 压缩和解压缩
tar zcvf itheima.tar.gz a.txt b.txt 
tar zcvf itheima.tgz a.txt b.txt 
tar zxvf lrzsz-0.12.20.tar.gz -C aaa/   


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
149 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
4月前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
4月前
|
Linux
Linux源码阅读笔记09-进程NICE案例分析1
Linux源码阅读笔记09-进程NICE案例分析1
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
106 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
4月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
101 2
linux笔记 diff及patch的制作与使用
|
4月前
|
安全 Linux 开发者
Linux笔记之ldd命令详解
`ldd`命令是Linux环境下一个非常实用的工具,用于显示一个程序运行时所需的共享库依赖。它帮助开发者和系统管理员快速诊断程序运行问题,特别是在处理"找不到库文件"或者"错误的库文件版本"等错误时。然而,出于安全的考虑,对于不信任的可执行文件,应该慎用 `ldd`命令,可以考虑使用其他工具如 `objdump`。总的来说,懂得如何妥善且安全地使用 `ldd`,对于维护一个稳定和高效的Linux系统来说,是非常重要的。
90 9
|
4月前
|
存储 缓存 编译器
Linux源码阅读笔记06-RCU机制和内存优化屏障
Linux源码阅读笔记06-RCU机制和内存优化屏障
|
4月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
4月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
4月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作

热门文章

最新文章