初识Linux

操作系统简介

操作系统(Operating System,简称OS)是管理计算机硬件软件资源的计算机程序

操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。


Linux简介

Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。

Linux能做什么

Linux和我们常见的Windows一样,都是操作系统,但两者之间的区别是:

Windows:收费,不开源,主要用于日常办公、游戏、娱乐多一些

Linux:免费,开源,主要用于服务器领域,性能稳定,安全

开源软件:开放源码软件(open-source)是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制

Linux发行版

在这里插入图片描述

Xshell使用,初始化,网卡介绍

将Xshell与虚拟机进行连接

首先在虚拟机上输入,ip a就可以看到两块网卡

[root@server1 `]# ip a

第一块网卡是环回接口,通常是用来做实验用的

第二块网卡是ens33,我们可以看到虚拟机的ip地址

连接

然后在Xshell中输入命令(后面是自己的IP地址), 完成连接

[C:\]$ ssh root@192.168.179.130

初始化配置

  • 安装bash-completion(这是自动补齐的包)
[root@server1 ~]# yum install -y bash-completion
  • 安装vim工具
[root@server1 ~]# yum install -y vim
  • 修改主机名
[root@server1 ~]# hostnamectl set-hostname server1
  • 查看修改后的主机名
[root@server1 ~]# hostname
  • 关机
[root@server1 ~]# poweroff 

记得关机之后拍快照

VMware的网卡模式

  • NAT模式
  • 仅主机模式
  • 桥接模式

下面这篇博客里面详细说明了三种模式

正常情况下,一台机器需要上网的时候,没有特殊网络要求的时候,我们最好都选择NAT模式

初识Shell

概念:

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上shell是一个命令解释器,它解释用户输入的命令并且把用户的而意图传达给内核(可以理解为用户与内核之间的翻译官角色)。
在这里插入图片描述

我们可以使用shell实现对Linux系统单的大部分管理,例如:

  1. 文件管理
  2. 用户管理
  3. 权限管理
  4. 磁盘管理
  5. 软件管理
  6. 网络管理

使用shell的两种方式

使用命令 效率低 适合少量的工作

shell script 效率高 适合完成复杂,重复性工作

bash shell提示符

//打印helloworld
[root@server1 ~]# echo "helloworld"

//查看当前系统时间
[root@server1 ~]# date

//查看当前登录的用户
[root@server1 ~]# whoami

//添加用户
[root@server1 ~]# useradd zhangsan   

//切换用户
[root@server1 zhangsan]# su - zhangsan

//修改用户密码
[root@server1 ~]# passwd aaron
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

shell语法

命令 选项 参数

//查看当前目录下有哪些文件
[root@server1 ~]# ls

//以长格式显示出文件信息,   短参数
[root@server1 ~]# ls -l
相当于
[root@server1 ~]# ll

//长参数   查看这个命令后面能够跟的所有参数
[root@server1 ~]# ls --help

//查看当前所在目录
[root@server1 ~]# pwd           

命令:整条shell命令的主体

选项:会影响会微调命令的行为,通常以-或者–开头

参数:命令作用的对象(长参数、短参数)

ls常见选项

命令作用
-aall,查看目录下的所有文件,包括隐藏文件
-l长列表显示
-hhuman以人性化方式显示出来
-d只列出目录名,不列出其他内容
-t按修改时间排序
-S按文件的Size排序
-r逆序排列reverse
-l显示文件的index号(索引号)

bash基本特性

自动补全

//打开文件内容           按Tab键自动补全
[root@server1 ~]# cat anaconda-ks.cfg 

//cat + 两次Tab键,列出所有文件
[root@server1 ~]# cat 

快捷键

快捷键作用
Ctrl+C终止前台运行的程序
Ctrl+D退出 等价于exit
Ctrl+L清屏
Ctrl+A光标移动到命令行的最前端
Ctrl+E光标移动到命令行的后端
Ctrl+U删除光标前所有字符
Ctrl+K删除光标后所有字符
Ctrl+R搜索历史命令,利用关键字

终止前台运行的程序:[root@server1 ~]# ping baidu.com 执行这个命令,程序就会一直在运行,想要打断正在运行的程序就用Ctrl+C

退出:退出登录

历史命令

//查看历史命令
[root@server1 ~]# history 
history相关参数
-a:追加本次会话执行的命令命令历史列表至历史文件中
-d:删除历史中指定的命令
-c:清空历史命令

快捷操作:
!#:调用历史中第#条命令
!string:调用历史中最近一条以string开头的命令
!!:调用上一条命令
  1. 光标上下键
  2. !220

​ 1.执行历史命令中地220条命令

  1. !字符串

    ​ 1.搜索历史命令中最近一个以xxxx字符开头的命令,例如!ping(从下往上寻找)

  2. !$

    1.引用上一个命令的最后一个参数,当上一个命令没有参数的时候,!$代表的是上一个命令本身
    

命令别名

将长命令另起别名

#查看网卡配置命令
[root@server1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
#建立别名(临时的,尽在当前shell生效)
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="410a4a30-b174-441b-8663-b76f1ab34e48"
DEVICE="ens33"
ONBOOT="yes"
#wl是别名
[root@server1 ~]# alias wl='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
#查看别名
[root@server1 ~]# wl
#取消别名
[root@server1 ~]# unalias wl
#查看当前系统的别名
[root@server1 ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

#查看命令类型
[root@server1 ~]# type -a ls
ls 是 `ls --color=auto' 的别名
ls 是 /bin/ls
ls 是 /usr/bin/ls
[root@server1 ~]# 
[root@server1 ~]# type cd
cd 是 shell 内嵌

永久别名


Linux获得帮助

  • 命令–help
[root@server1 ~]# ls --help

[root@server1 ~]# date --help
  • 除了–help之外,还有man手册(针对命令帮助,针对配置文件帮助,针对函数帮助)
  • 中文man手册
[root@server1 ~]# yum  -y install man-pages-zh-CN.noarch
[root@server1 ~]# echo "alias cman=man-pages-zh-CN''" >> .bashrc
[root@server1 ~]# source .bashrc

使用方法大家可以自行百度。。。。。。。。

Windows和Linux组织文件的区别

Windows:以多根的方式组织文件 C:\ D:\ E:\

Linux: 以单根的方式组织文件 /

Linux目录结构FSH(FileSystem Hierarchy Standard)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tH4YasPz-1606744240262)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20201130204309262.png)]

路径用处
bin普通用户使用的额命令/bin/ls,/bin/date RHEL7淘汰
sbin管理员使用的命令/sbin/service RHEL7淘汰
dev设备文件/dev/sda,/dev/tty1,/dev/pts/1,/dev/zero,/dev/null,/dev/random
rootroot用户的HOME
home存储普通用户家目录
proc虚拟的文件系统,反应出来的是内核,进程信息或实施状态
usr系统文件,相当于C:/Windows
/usr/local 软件安装的目录,相当于C:\Program
/usr/bin 普通用户使用的应用程序
/usr/sbin 管理员用户使用的应用程序
/usr/lib 库文件Glibc
/usr/lib64 库文件Glibc
boot存放系统启动相关的文件,例如kernel,grub(引导转载程序)
etc各个软件的配置文件
lib库文件Glibc RHEL7淘汰
lib64库文件Glibc RHEL7淘汰
tmp临时文件(全局可写,进程产生的临时文件)
var存档的是一些变化文件,比如数据库,日志,邮件…
media移动设备默认的挂载点
mnt手工设备默认的挂载点
netautomount进程挂载
[root@server1 /]# ll
总用量 20
lrwxrwxrwx.   1 root root    7 11月 29 20:46 bin -> usr/bin #这个bin相当于一个链接,快捷方式
dr-xr-xr-x.   5 root root 4096 11月 29 20:51 boot
drwxr-xr-x.  20 root root 3220 11月 30 17:57 dev
drwxr-xr-x.  74 root root 8192 11月 30 18:33 etc
drwxr-xr-x.   3 root root   22 11月 30 12:17 home
lrwxrwxrwx.   1 root root    7 11月 29 20:46 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 11月 29 20:46 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 11月  5 2016 media
drwxr-xr-x.   2 root root    6 11月  5 2016 mnt
drwxr-xr-x.   2 root root    6 11月  5 2016 opt
dr-xr-xr-x. 157 root root    0 11月 30 17:57 proc
dr-xr-x---.   2 root root  135 11月 29 21:34 root
drwxr-xr-x.  23 root root  700 11月 30 20:31 run
lrwxrwxrwx.   1 root root    8 11月 29 20:46 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 11月  5 2016 srv
dr-xr-xr-x.  13 root root    0 11月 30 17:57 sys
drwxrwxrwt.   9 root root 4096 11月 30 18:45 tmp
drwxr-xr-x.  13 root root  155 11月 29 20:46 usr
drwxr-xr-x.  19 root root  267 11月 29 20:51 var

文件定位 路径

路径的作用:定位文件

你要在哪儿创建文件?

你要将文件复制到什么地方?

你要删除什么地方的什么文件?

  • 绝对路径:从/开始的路径 /home/aaron/file1
  • 相对路径:从当前路径开始的路径 a.txt ./a.txt …/a.txt
#定位到zhangsan目录下
[root@server1 ~]# cd /home/zhangsan/

#创建test1文件
[root@server1 zhangsan]# touch test1

#向文件里面添加内容
[root@server1 zhangsan]#  echo "hello world" > test1

#使用绝对路径,先返回到根目录
[root@server1 zhangsan]# cd
[root@server1 ~]# pwd
/root
[root@server1 ~]# cat /home/zhangsan/test1 
hello world

#使用相对路径,先进入到zhangsan文件夹
#cd - 返回上次目录
[root@server1 ~]# cd -
/home/zhangsan
[root@server1 zhangsan]# 
[root@server1 zhangsan]# cat test1 
hello world

#./代表当前目录
[root@server1 zhangsan]# cat ./test1 
hello world
[root@server1 zhangsan]# 
[root@server1 zhangsan]# 
#../代表上一级目录
[root@server1 zhangsan]# cat ../zhangsan/test1 
hello world

#直接回家
[root@server1 zhangsan]# cd ~

文件管理:创建/复制/移动/删除

创建

文件touch

[root@xwz ~]# touch file1.txt # 无则创建,有则修改时间
[root@xwz ~]# touch file3 file4
[root@xwz ~]# touch /home/file10.txt
[root@xwz ~]# touch /home/{maomao,gougou}
[root@xwz ~]# touch file{1..20}
[root@xwz ~]# touch file{a..c}
[root@xwz ~]# touch file{old,new} # {}集合,等价touch fileold filenew

目录 mkdir

[root@xwz ~]# mkdir dir1
[root@xwz ~]# mkdir /home/dir2 /home/dir3
[root@xwz ~]# mkdir /home/{dir4,dir5}
[root@xwz ~]# mkdir -v /home/{dir6,dir7} # 显示操作的消息
[root@xwz ~]# mkdir -v /home/dir8/111/22
[root@xwz ~]# mkdir -pv /home/dir8/111/22 # 创建目录和其所有父层目录
[root@xwz ~]# mkdir -pv /home/{abc/{dir1,111},efg}

复制

[root@xwz ~]# mkdir /home/dir{1,2}
[root@xwz ~]# touch install.log
[root@xwz ~]# cp -v install.log /home/dir1
[root@xwz ~]# cp -v install.log /home/dir1/abc.txt
[root@xwz ~]# cp -rv /etc /home/dir1
[root@xwz ~]# cp -v install.log /home/dir88 # 没有/home/dir88
[root@xwz ~]# cp -v install.log /home/dir2
[root@xwz ~]# cp -v anaconda-ks.cfg !$
[root@xwz ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd
/etc/hostname /home/dir2
# 将多个文件复制到同一个目录
[root@xwz ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd
/etc/hostname .
[root@xwz ~]# type -a cp
cp 是 `cp -i' 的别名
cp 是 /usr/bin/cp
[root@xwz ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-ens33.bak
[root@xwz ~]# cp -rv /etc/sysconfig/network-scripts/{ifcfg-ens33,ifcfgens33.bak}
[root@xwz ~]# cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33{,-old}

移动

[root@xwz ~]# mv file1 /home/dir3 # 将file1移动到/home/dir3
[root@xwz ~]# mv file2 /home/dir3/file20 # 将file2移动到/home/dir3,并且
改名file20
[root@xwz ~]# mv file4 file5 # 将file4改名为file5

删除

[root@xwz ~]# cd /home
[root@xwz home]# rm -rf dir1

-r 递归

-f force强制

-v 详细过程

[root@xwz ~]# mkdir /home/dir10
[root@xwz ~]# touch /home/dir10/{file2,file3,.file4}
[root@xwz ~]# rm -rf /home/dir10/*
[root@xwz ~]# ls /home/dir10/ -a # 隐藏文件没有被删除
. .. .file4
[root@xwz ~]# rm -rf file*
[root@xwz ~]# rm -rf *.pdf

文件管理:查看文本文件的内容

文本文件

cat tac less more head tail tailf grep …

/bin/date
/etc/hostname
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/passwd
/etc/shadow
/etc/group
/etc/grub2.cfg
/etc/resolv.conf
/etc/profile # 设置系统环境变量
/etc/bashrc # 影响bash shell环境
/var/log/messages # 系统主日志文件
/var/log/secure # 跟安全相关的日志如ssh登录,本地登录......

cat

-n 显示行号

-A 包括控制字符(换行符/制表符)

​ linux$

​ windows^M$

less more head tail tailf

[root@xwz ~]# head /etc/passwd
[root@xwz ~]# head -2 /etc/passwd
[root@xwz ~]# tail /etc/passwd
[root@xwz ~]# tail -1 /etc/passwd
[root@xwz ~]# tail /var/log/messages
[root@xwz ~]# tail -20 /var/log/messages
[root@xwz ~]# tail -f /var/log/secure # 动态查看文件尾部,关注的文件名
[root@xwz ~]# tail -F /var/log/secure # 动态查看文件尾部,关注的索引编号

grep 针对文件内容进行过滤

[root@xwz ~]# grep 'root' /etc/passwd
[root@xwz ~]# grep '^root' /etc/passwd
[root@xwz ~]# grep 'bash$' /etc/passwd
[root@xwz ~]# grep 'failure' /var/log/secure
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值