Linux基础1

Linux 基础

概述

是一个开源免费的操作系统是一个稳定安全的操作系统

主要的发行版有这些

  • Ubuntu
  • Cenos
  • RedHat
  • Debain
  • Fedora
  • SuSE
  • OPenSuSe

linux主要是一个内核,在里面加上东西,就是发行版

最主要是用在服务器上,免费稳定高效的特点。

Linux和Unix是有很大关系的

网络连接

在一个网段的机器可以相互通信

分为三种方式

  • 桥接模式 虚拟系统可以和外部系统相互通讯但是容易造成ip冲突
  • Nat模式 网络地址转换 主机上会生成一个虚拟的网卡,会产生另一个ip。和主机之间会有一个连接,可以上其他的内网公网。不会造成ip冲突。但是其他内网的机器不能访问虚拟机
  • 主机模式 就是一个独立的系统,不会和外部进行联系

目录

是采用层级式的树状目录结构

根目录式"/"然后在此目录下再创建其他的目录

在根目录下面式子目录,这些目录是规定好的,一般不能更改

在linux世界中,一切皆文件

linux会把硬件映射成一个文件来管理

  • bin 常用的指令
  • etc 配置环境文件
  • home 文件桌面等等
  • root admin所用的文件
  • boot Linux启动的一些核心文件
  • dev 设备管理器,一般是放硬件被映射的文件的
  • sbin 系统管理员使用的一些命令地方
  • lost+found 一般是空的,非法关机里面就会有文件
  • lib 基本的动态共享库,类似于windows里面的dll文件的存放处
  • user 用户的应用和文件放在这个目录下面
  • proc 一个虚拟的目录,系统内存的映射 不能改动
  • sys 一个存储内核的 不能改动
  • mnt 让用户临时挂在别的文件系统
  • media 识别一些设备进行挂载的文件
  • tmp 一些临时文件
  • opt 主机额外软件安装目录使用的文件夹
  • var 存放不断扩充的一些东西 例如日志
  • user/local 主机额外安装的目录,一般是通过编译源码的方式安装的程序
  • /seliunx [security-enhanced liunx] 一种安全子系统,保证系统安全的

linux的目录系统就和树一样

远程登录

正式上线的项目是在公网上的,开发测试可能在内网进行

远程登录使用xshell 文件上传使用xftp

上传一般使用21端口

vi/vim

vi是一款文本编辑器,linxu自带的

vim是vi一款增强版,会补充一些功能

这两款快捷键差不多

模式切换

  • 插入 按i即可进入编辑模式
  • 命令行模式 读取等等功能

一般就是进入后按i进入编辑,编辑完之后

按esc 然后输入:wq保存并退出

  • :wq 保存并退出
  • :q退出
  • :q!强制退出,并且不保存

快捷键使用:

  • 拷贝当前行 yy 然后p粘贴,几行就几yy

  • 删除当前行 dd

  • 在文件种查找某个单词 (命令行下输入**/关键词**,这里面是区分大小写的,回车查找,输入N就是查找下一个)

  • 取消文件中的行号,设置文件中的行号(:set nu :set nonu)

  • 在一般模式下G下面一行,gg回到首行

  • 撤销操作 在一般模式下输入u撤销操作

  • 快递定位到某一行 在一般模式下,行数+shift+g

开机重启命令

  • shutdown -h now 立刻关机
  • shutdown 默认代表 shutdown -h 1 一分钟之后关机
  • shutdown -r now 重启
  • halt 关机
  • reboot 立刻重启
  • sync 内存数据同步到磁盘

一般这些关机命令啥的都已经执行了sync了

登录少用root权限

sudo su 可以切换root权限

或者su root

logout 注销用户,在图形界面无效,在运行级别3下才有效

用户管理

Linux是一个多用户任务的操作系统

useradd name来添加name用户,每个用户都有一个家目录。

默认是home目录下

或者是useradd -d 指定目录 用户名 ,给新创建的用户指定家目录

修改密码:

passwd name修改用户名的密码,不加name是修改当前用户的密码

删除用户

删除用户但是保留目录: userdel name

全都删掉:userdel -r name

id name 查询用户

su -name 切换用户

细节:高到低不需要,低到高需要密码

whoami查看当前用户,显示的是登录的用户名

用户组

没有组的用户自动创建一个自己的组

对权限相同的用户统一管理

groupadd name 添加组

groupdel name 删除组

useradd -g 用户组 用户名 添加用户到用户组

usermod -g 用户组 用户名 移动用户到另一个组中

用户和组相关的文件

  • /etc/passwd

用户名:口令:标识:标识组号:注释描述:主目录:登录shell

  • /etc/shadow

登录名:加密口令:最后一次修改世界:最小间隔:最大间隔:警告时间:不活动时间“失效时间:标志

  • /etc/group

组名:口令:组标识符:组内用户列表(隐藏)

文件管理

基本命令

ls 列出目录

  • -l 显示更加详细
  • -a 显示所有隐藏文件夹
  • -d 仅列出目录本身

参数可以组合使用

1
ls -al

cd 切换目录

  • cd ~回到home目录
  • cd …返回上一级目录

pwd 显示当前所在的工作目录

  • -p 显示确定的路径

mkdir 创建新的目录

  • -r 可以递归创建
  • -p 创建多层目录

rm 删除目录

  • -r 递归删除
  • -rf递归强制删除

cp 复制文件和文件夹

1
cp 源 目的
  • -r 递归复制

mv 移动

1
mv 源 目的
  • -f 强制

touch 创建文件

1
touch mytxt{1..3}

可以进行批量创建

文件的内容的查看

cat 从第一行开始显示

tac 从最后一行开始显示

more 一页一页的翻动

less 显示内容,一般用于比较大的,但是这个比较舒服

  • pageup 和pagedown 用来上下翻动

  • 空格翻动下一行

  • /从上搜索 ?从下搜索

  • q 离开

head 和tail一个是前几行一个是后几行

1
2
[root@www ~]# head -n 20 /etc/man.config

加上-n可是显示行号

">"是覆盖 ">>"是追加

ln 软连接,链接到其他文件的路径,类似与一个快捷方式

1
ln -s 源文件 地址/软连接name

在使用pwd的时候显示的仍然是 软链接所在的目录

histort 查看历史的命令

  • 连续两条一样的只会记录一次
  • !5执行曾经执行的5号指令

时间

date显示当前日期

date +%Y…其他时间单位相同

1
2
date +"%Y-%m-%d %H:%M:%S"

显示年月日时分秒

查找文件

find 命令

有三种查找的方式

  • -name 根据名字进行查找

    1
    find /path/to/directory -name "filename"
  • -size 根据大小进行查找 +表示大于 = 表示等于 -表示小于

1
find /path/to/directory -size +500M
  • -mtime 根据时间进行查找
1
find /path/to/directory -mtime -7

在find命令中可以使用统配符*

例如:

1
2
find /path/to/directory -name "*.log" -exec rm {} \;

是查找.log的文件,然后进行删除。其实就是删除日志

locate命令

这个命令的查找速度很快,但是第一次执行命令前要进行数据库的配置

1
updatedb

然后直接搜索,就可以实现快速搜索了

qwq

1
2
root@Ubuntu:/home/mengnankk# locate hello.txt
/home/mengnankk/hello.txt

在进行文件查找的时候可以使用**|grep 进行条件过滤**

  • -n 显示行数
  • -i 忽略字母的大小写

解压和压缩

tar 解压命令

调用 tar 命令,处理归档文件。

-c:表示压缩文件。

-x:表示解压缩文件。

-z:表示文件经过 gzip 压缩。

-v:显示解压缩的过程。

-f:指定要操作的文件名。

1
tar -xzvf clashpremium-nightly-linux-amd64.tar.gz

gzip gunzip命令,只能用来压缩文件

gzip用来压缩,gunzip用来解压

1
gzip /home/hello.txt

解压

1
gunzip /home/hello.txt.gz

zip和unzip 命令 能用来压缩目录

用来项目的打包发布很有用

  • -r递归压缩,即压缩目录。
1
zip -r myhome.zip /home/

将/home/中的所有内容压缩成myhome.zip文件

1
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2

将前面的文件解压到后面去