IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux(Ubuntu版)笔记 -> 正文阅读

[系统运维]Linux(Ubuntu版)笔记

Linux概述

Linux简介

  • Linux之父: 林纳斯?托瓦兹(Linus Torvalds)在1991年10月首次发布0.0.1版本。
  • Linux的特点: 完全免费,多用户多任务,良好的可移植性,良好的界面,设备独立性,完全稳定。
  • Linux体系结构: Linux内核,系统程序及运行期库,shell,应用程序(由内而外)。
  • Linux发行版本: Debian,Ubuntu,Red hat,CentOS,Fedora。
  • Ubuntu的发行版本:
    Ubuntu是基于Debian发行版和GNOME桌面环境的一款Linux发行版,
    Ubuntu的由南非企业家马克·夏特沃斯(Mark Shuttleworth)所创立,开发由英国Canonical有限公司主导。
  • Linux应用领域: 服务器,桌面应用,嵌入式应用。

网络与配置

  • tools安装
    方法一:VMware虚拟机——>VMware tools安装。
    方法二:ifconfig工具安装。
    命令:sudo apt install net-toolssudo apt-get update
  • VMware网络配置:
    桥接模式:将虚拟机直接连接到外部网络。
    NAT模式:与虚拟机共享主机IP地址。
    仅主机模式:在装用网络内连接虚拟机。
  • SSH配置:
    检测网络是否通畅:ping [网址(如:www.baidu.com)]
    远程连接检查ssh是否安装:ssh localhost
    安装ssh:sudo apt install openssh-serve
    开启ssh:sudo /etc/init.d/ssh start
    查看是否正确启动:ps e|grep ssh
    查看ssh是否正确启动

开发工具

  • Vi编辑器
    Vi编辑器的三种模式:命令模式、插入模式、底行模式。
    1、命令→插入的命令
    i???光标所在字符前开始插入。
    a???光标所在字符后开始插入。
    o???光标所在行的下面另起一新行插入。
    I???光标所在行的行首开始插入,如果行首有空格则在空格之后插入。
    A???光标所在行的行尾开始插入。
    O???光标所在行的上面一行开始插入。
    S???删除光标所在行并插入。
    2、插入→命令的命令???esc
    3、底行→命令的命令???自动切换(删除键)
    4、命令→底行:???:或/
    5、命令模式下的命令:
    kjgl???对应上下左右。
    x???删除光标所在的单个字符。
    dd???删除光标所在的当前行。
    n+dd???删除包括光标所在行的后边n行内容。
    d+$???删除光标位置到行尾的所有内容。
    yy???复制当前行。
    p???粘贴。
    6、底行模式下的命令
    :q???退出vi编辑器。
    :w???保存编辑后的内容。
    :wq???保存并退出vi编辑器。
    :q!???强行退出vi编辑器。
    :wq!???强制保存文件并退出vi编辑器。
    ?? 刚进入Vi编辑器是命令模式。vim相比vi更高级,是vi升级版,更适用于coding(编码)。
  • GCC编辑器
    GCC编辑过程分为四个步骤,分别是-E预处理,-S编译,-o汇编和连接。
    单文件编译 :gcc [可执行文件名]
    文件编译并指定可执行文件名:gcc -o [编辑文件] [可执行文件名]

Linux基础操作

  • X窗口系统(基于X的桌面环境)
    KDE桌面环境
    GNOME桌面环境
    Xfce桌面环境
    lxde桌面环境
    Xorg桌面环境
    注释:Ubuntu使用的桌面环境就是GNOME桌面环境。
  • Gedit文本编辑器
    简介:类似Windows文本,但优于Windows文本。
  • 命令行界面
    简介:Bash命令处理器类似于Windows的cmd。
  • 终端中获取帮助
    ① help命令: 查看内建命令的作用和使用方法。
    help 命令名
    ② 帮助选项: 查看外部命令的帮助文档。
    命令名 --help
    ③ man命令: 查看在线文档帮助
    man 命令名
    注释:q退出man。
  • Nano编辑器
    输入nano直接打开。输入N不会保存,上面有使用快捷键,ctrl键组合使用。
    nano 文件名:打开文件。

文件系统基础

文件系统概述

  • 硬件组成及分区
    硬盘:机械硬盘和固态硬盘。
    机械硬盘:由盘片、磁头、主轴、电机、机械臂等几个部分组成。
    固态硬盘:具有低功耗、无噪音、抗震动等特点,读写速度远高于传统硬盘。
  • 常见的文件系统
    FAT文件系统:能够支持4GB的单个文件,最大2TB的硬盘。
    NTFS文件系统:单个文件最大支持2TB。
    EXT系列文件系统:EXT4单个文件最大支持16TB,ext4是Linux默认文件系统。
    VFS文件系统:Linux引入的虚拟文件系统。
    其他文件系统:MINIX、UMSDOS、MSDES、FAT32、NTFS、PROC、STUB、NCP、HPFS、AFFS以及UFS等多种文件系统。

目录与路径

  • 文件系统层次结构标准: FHS 3.0
  • 目录:即文件夹。Ubuntu只有一个根目录(目录树起点)
  • 特殊目录符号: .当前目录,..上层目录,~当前账户主目录,-上一个工作目录,~accountaccount账户的。
  • 相对路劲和绝对路径: 相对路径不从根开始./,绝对路径直接从根开始/
  • PATH环境变量: echo $PATH
    环境变量
  • cd切换目录: cd [路径]

目录管理(操作)

  • 显示当前目录的绝对路径: pwd
  • ls命令
    语法格式:ls [选项] [参数]
    作用:查看目录与文件。
    常用选项:
    -l???显示当前目录下文件详细信息。
    -h???显示转换之后的大小。
    -a???显示当前目录下的全部文件(包含隐藏文件)。
    -d???查看目录属性。
    -t???按创建时间顺序列出文件。
    -i???输出问价你的inode编号。
    -R???列出当前目录下的所有文件信息,并以递归方式显示各个子目录的文件和子目录信息。
    注释:ls默认打印当前路径下的文件名,.表示当前目录,..表示上一级目录。
  • mkdir命令
    语法格式:mkdir [选项] 参数
    作用:创建文件夹(直接后缀文件名:创建一个当前目录下目录)。
    常用选项:
    -p???可以一次性创建多层目录(如mkdir -p a/b/c)。
    -v???查看文件创建过程。
  • cp命令
    语法格式:cp [选项] 源文件或目录 目标目录
    作用:复制文件或目录。
    常用选项:
    -r???递归处理,复制源目录所有内容(大小R都行)。
    -p???复制的同时复制其所有文件属性。
    -f???强行复制文件或目录,无论目的文件或目录是否已经存在。
    -s???创建快捷方式。
    注释:目标目录可以从命名,且必须复制的是当前目录下的目录或源文件。
  • mv命令
    语法格式:mv 源文件或目录 目标目录
    作用:移动文件或目录,也可以用来重命名。
    重命名:mv a.txt b.txt
    移动:mv b.txt ../
    移动且重命名:mv b.txt ../a.txt
    注意:可以用 mv xx /tmp 的方式来将文件放入临时文件夹,系统重启后会自动删除。
    (rm命令太危险,尽量不要用rm命令删除)
  • rm命令
    语法格式:rm [选项] 文件或目录
    作用:删除文件或目录。
    常用选项:
    -f???强制删除文件或目录。
    -r???用来删除文件或目录。
    -i???在删除文件或目录时对要删除的额呢绒逐一进行确认(y/n)。

文件管理

  • 文件类型
    - 普通文件:按照文件内容,大致可以分为:纯文本文档、二进制文件、数据格式文件。
    d 目录:(directory)文件夹。
    l 连接文件:(link)快捷方式。
    b 块设备:(block)硬盘、U盘、SD卡等设备。
    c 字符设备:(character)一些串口端口的接口设备,如鼠标、键盘等。
    s 套接字:(sockets)数据接口文件,常用在网络上的数据连接。
    p 管道:(pipe)主要目的在于解决多个程序同时访问一个文件造成的错误问题,是一种先进先出的队列文件。
    查看文件类型:
    ls -l|grep -w newyear
    file newyear
    查看文件类型
    ?? ls前的d和file的directory是文件类型,newyear指定的文件夹名。
  • 管道
    最基本的进程通信机制,实质是由内核管理的一个缓冲区。
    通信机制
    Linux操作系统有匿名管道命名管道两种管道。
    |???匿名管道,使用如下:ls -l|grep -w newtyear
    作用:连接两个及以上命令,将前一个命令的输出导入第二命令作为输出参数,起辅助作用。
    FIFO???命名管道,使用如下:mkfifo teud1_fifo(创建命名管道)。
  • which命令
    作用:只能查找命令绝对路径位置。
    语法格式:which 命令

三种搜索命令

  • file命令
    语法格式:file [选项] 文件名
    作用:查看文件的类型和信息。
    -b???列出辨识结果时,不显示文件名称。
    -c???详细显示指令执行过程。
    -L???直接显示符号连接所指向的文件的类别。
    -v???显示版本信息。
    -z???尝试去解读压缩文件的内容。
  • grep命令
    语法格式:grep [选项] "模式" [文件]
    作用:搜索筛选命令(关键字即模糊查找)。
    常用选项:
    -a???不要忽略二进制数据。
    -b???除显示查找到的行号外还显示匹配字符所在的整个文档的位置。
    -c???显示匹配关键词的内容的行数合计。
    -e???指定关键词,使用该选项可以指定多个关键词。
    -E???指定正则表达式。
    -i???查找时不区分大小写。
    -n???显示匹配行的行号。
    -w???显示和关键词完全匹配的内容。
    -o???只输出文件匹配到的内容。
  • locate命令
    语法格式:locate 文件名
    -c???输出超找到的文件数。
    -l???输出查找到的前n个文件。
    注释:可以模糊查询,且搜索到的是绝对路径。
  • find命令
    语法格式:find 路径范围 查找规则 [查找规则的值] [查找完执行的action]
    作用:借助搜索关键字(文件名、文件大小、文件所有者)查找文件或目录。
    示例:find ~ -mtime -3 | grep yuts
    常用查找规则(有55个之多):
    -name???按照文件名称进行搜索(支持模糊搜索)
    -type???按照文件的类型进行搜索
    -mitime???按照文件修改时间进行搜索。
    常用查找完执行的action:
    -print???默认情况下的动作。
    -ls???查找到后用ls显示出来。
    -ok [commend]???查找后执行命令的时候询问用户是否执行。
    -exec[commend]???查找后执行命令的时候不询问用户,直接执行。
    注释:相比locate功能更加强大,使用更加灵活。
    文档类型:-表示文件(在使用find的时候需要用f来替换),d表示文件夹。

三种创建文件的方式

  • touch命令
    语法格式:touch 参数 (文件名)
    touch a.txt:创建文件。
    a.txt存在就更新修改时间,不存在就创建文件。
  • 文本编辑器创建
    nano 文件名直接打开并创建文件。
  • 重定向方式创建文件
    Linux提供了两种操作符输出重定向。
    >????当目标文件已存在时,>输出的内容将覆盖源文件中已有的内容。
    >>??当目标文件已存在时,>>会将新内容追加到源文件内容的后面。
    作用:关闭终端,执行的命令也消失重定向就是创建一个文件并保存命令执行结果。

显示文件内容

  • cat命令
    语法格式:cat 文件名
    作用:打印文件内容到输出设备。
    语法格式:cat 文件名 文件名>指定文件
    作用:拼接两个文件,重定向把拼接内容存入指定文件。
  • more命令
    语法格式:more 文件
    作用:分页显示文件内容。
    常用选项:
    -d???输出内容时同时显示常用的快捷键
    -f???计算逻辑行数,而非屏幕行数
    -l???屏蔽换页后的暂停
    -c???不滚动,显示文本并清理行末
    -p???不滚动,清除屏幕并显示文本
    -s???将多行空行压缩为一行
    -u???屏蔽下划线
    -<数字>???指定每屏显示的行数
    +<数字>???从指定行开始显示文件
    +/<字符串>???从匹配搜索字符串的位置开始显示文件
  • less命令
    语法格式:less [参数] 文件
    作用:less与more类似,less可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
    常用快捷键
    空格键(Space/f):显示下一屏内容;
    回车键(Enter):显示下一行内容;
    斜线(/):斜线后输入一串字符串,可以在文本中查找下一个匹配的字符串位置并显示;
    H键(Help):显示帮助信息;
    B键(Back):显示上一屏的内容;
    Q键(quit):退出more命令。
    常用指令
    e或E或j或N或回车:向下滚动一行;
    y或Y或k或K或^P:向上滚动一行;
    f或F或V或SPACE:向下滚动一屏;
    b或^B或ESC-v:向上滚动一屏;
    SPACE:向下滚动一屏,即使文件已经结束,继续滚动;
    d或^D:向下滚动半屏;
    u或^U:向上滚动半屏;
    RightArrow:文档内容整体左移,显示右边部分内容,适用于一行内容过长显示不全时;
    LeftArrow:文档内容整体右移,和上述方向相反。
  • head命令
    语法格式:head [选项] 行数 显示的文件名
    常用选项:
    -n???指定输出的行数;
    -c???指定输出的字符数。
  • tail命令
    语法格式:tail [选项] 行数 文件名称
    常用选项:
    -n???指定输出的行数,指定输出的行数(文件的最后几行)。
    -f???如果目标文件有新的内容输入,则将新增加的内容输出。
    作用:前者输出文件前几行内容,后者输出文件后几行内容。

文件压缩与还原

  • gzip压缩命令
    语法格式:gzip [选项] 文件/gunzip [选项] 压缩包包名 (这两种命令都一样)
    常用选项:
    -c???将压缩的内容输出到屏幕上,源文件保持不变,可以通过重定向处理输出的内容。
    -d???解压缩文件。
    -l???输出压缩包内存存储的原始文件信息吗,如解压缩后的文件名、压缩率等。
    -#???指定压缩等级,从1-9,压缩率以此增大,速度从此减慢,默认压缩等级为6。
  • zip压缩命令
    语法格式:zip [-r] [压缩后文件名称] 文件或目录
    常用选项:
    -c???替每个被压缩的文件加上注释
    -d???从压缩文件内删除指定的文件
    -L???显示版权信息
    -<>???压缩效率是一个介于1-9的数值
  • unzip压缩命令
    语法格式:unzip [选项] 压缩包包名
    常用选项:
    -c???将解压缩的结果显示到屏幕上,并对字符做合适的转换。
    -d<目录>???指定文件解压缩后所要存储的目录。
    -l???显示压缩文件内所包含的文件。
    -L???将压缩文件中的全部内部文件名改为小写。
  • bzip命令
    出命令名不一样,使用方法上与gzip基本保持一致,命令选项基本一致。
  • tar归档命令
    语法格式:tar [选项] 打包压缩后的文件名 被压缩的源文件
    作用:前面的压缩只能对单个文件进行压缩,这个可以将多个文件合并为一个压缩包。
    注意:没有压缩功能,结合使用才能压缩打包。
    常用选项:
    -c???新建打包文件。
    -z???通过gzip的支持进行压缩/解压缩。
    -v???输出打包过程中正在处理的文件名。
    -f???指定压缩后的文件名。
    -t???查看打包文件中包含哪些文件。
    -x???解包文件包。
    -j???通过bzip2的支持进行压缩/解压缩。
    -C???指定解包目标路径。
    -p???打包过程中保留源文件的属性和权限。

用户与权限

用户及用户组

  • Linux系统中与用户相关的概念: 用户、文件所有者、用户组、文件所属组、其他人、root。
  • 用户: 单个账号密码用户。
  • 文件所有者: 文件所有者指文件拥有者。
  • 用户组: 管理员(root)、普通用户、系统用户。
    ① 管理员用户id(uid)为0;系统用户是保障系统运行的用户,其用户id为1~1000,其它为普通用户。
    ② 可以根据需要对普通用户进行分组,处在同一个用户组的用户拥有类似的功能。
    ③ 用户组信息存放在 /etc/group文件中
    ④ root也是Linux系统中的用户,属于用户组root,是一个超级用户。
    注释:这一章命令基本都在root用户下执行。
  • 文件所属组: 文件所属组与用户组相呼应。
  • 查看用户(组)
    cat /etc/group 查看用户组。
    cat /etc/passwd 查看密码。
    cat /etc/gshadow 查看用户具体信息。

用户切换

  • sudo命令
    作用:① 切换用户。② 执行需要系统管理权限的指令或操作。
    注意:
    ① sudo命令只需要知道主机的账户密码即可使用。
    ② 需要权限时加在命令最前面使用。
    ③ sudo命令并非所有用户都用,/etc/sudoers指定用户可用。
    常用选项:
    -b???在后台执行命令。
    -h???显示帮助。
    -H???将HOME环境变量设置新身份的HOME环境变量。
    -k???结束密码的有效期限。
    -l???列出目前用户可执行与无法执行的命令。
    -p???改变询问密码的提示符号。
    -s???执行指定的shell。
    -u???以指定的用户作为新的身份,即切换指定用户。默认切换到root用户。
    注释:sudo命令并非所有用户都用,/etc/sudores指定用户可用。
  • su命令
    语法规则:su [选项] 用户名
    常用选项:
    -c:该选项后接命令,执行完该命令后退出登录的用户;
    -l:该选项输入要切换到的用户,代表切换到该用户;
    -m:不同用户默认的shell可能不相同,用户切换时,也会切换到该用户默认的shell环境,该选项则保持在当前shell环境。
    说明
    ①使用su命令切换用户时,需要输入的是目标用户的密码。
    ②选项与用户名缺省的情况下,只切换用户,但不改变用户环境。
    ③由root用户切换到其它用户,可以不输入密码。
    ④在命令行输入“exit”,可退出目标用户。
    su与sudo的区别
    ①可以将用户切换为root用户。
    ②进行任何身份的切换。
    su与su -的区别
    都可以切换到root,但是前者切换到根目录,后者切换到/home/yuts目录下。
  • su/sudo总结
    ① sudo命令可以视为受限的su,它可以使“部分”用户使用其它用户的身份执行命令。
    ② 在使用sudo命令之前,需要通过修改/etc/sudoers文件,为当前用户配置要使用的权限。su命令不需要修改。
    ③ /etc/sudoers文件有一定的语法规范,为避免因修改后出现语法错误,应使用sudo visudo命令打开文件进行修改。
    ④ 如下所示为/etc/sudoers文件中的一条配置信息,该信息设置了root用户可能任何情境下执行任何命令。
    命令 用户名 ALL=(ALL) ALL

用户管理

  • 新增用户
    语法格式:useradd [选项] 用户名
    常用选项:
    -d???指定用户登入时的目录。
    -c???指定账户的备注文字。
    -e???指定账号的有效期限。
    -f???缓冲天数,密码过期时在指定天数后关闭该账号。
    -g???指定用户所属组。
    -G???指定用户所属的附加用户组。
    -m???自动建立用户的登入目录。
    -r???创建系统账号。
    -s???指定用户的登录shell。
    -u???指定用户的用户ID,若添加-o选项,则用户ID可与其它用户重复。
    注释:
    ① 使用语法前加上sudo。
    ② 新添加用户默认没有密码,需要修改密码之后再登录使用。
    ③ 添加用户(添加的第一个用户),其UID是1001,所属用户组GID也是1001。
  • 查看用户信息
    id 显示当前用户信息。
    语法格式:用户名 [选项]
    常用选项:
    -g???显示初始用户组GID。
    -G???显示所有用户组GID。
    -u???显示用户UID。
    -n???与u、g、G选项配合输出用户名称。
  • 三种修改用户信息
    passwd命令
    语法格式:passwd [选项] 用户名
    作用:更改用户密码、锁定用户等操作。
    实例:sudo passwd yuts 创建修改yuts用户密码。
    usermod命令
    语法格式:usermod [选项] 用户名
    作用:修改用户账号信息,即修改账号的属性,如用户ID、主目录、用户组、登陆shell等。
    常用选项:
    -l???lock,将shadow文件中相应用户的密码前加上“!”,达到锁定账户的作用
    -u???将shadow文件中相应用户的密码前“!”去掉,达到取消锁定账户的作用;
    -n???选项后接天数,修改shadow文件的第4字段;
    -x???选项后接天数,修改shadow文件的第5字段;
    -w???选项后接天数,修改shadow文件的第6字段;
    -i???选项后接日期,修改shadow文件的第7字段,密码失效日期。
    chfn命令
    直接输入chfn回车使用。
    ①不仅可以用来修改用户的信息。
    ②而且其采用了交互的方式进行修改。
    ③使用方便简洁。
    ④不需要管理员权限,普通用户就可使用。
  • 删除用户
    语法格式:userdel 用户名
  • 有效用户组和初始化用户组
    不同的用户组可以包含同一个账户,但是每个用户的信息中只会出现一个GID。
    因此对某个用户来说,其所属的用户组是有区别的,分为有效用户组初始用户组
    passwd文件每个用户的第4字段填写的GID,就是该用户的初始用户组,其他包含该用户的用户组为该用户的有效用户组。
    通常,用户登录后会自动获取初始用户组的所有权限,所以并不需要将该用户添加到group文件中初始用户组第4项的位置。

用户组管理

创建账户时未指定,默认用户账号名作为该用户的用户组,
并将与该账号同名的用户组同步到/etc/group文件中。

  • 添加用户组
    语法格式:group [选项] 用户组名
    常用选项:
    -g???指定新建用户组的ID
    -f???创建系统用户组,组ID取值范围为1~499
    -o???允许创建组ID已存在的用户组
  • 删除用户组
    语法格式:groupdel 用户组名
    注释:初始用户组无法被删除。

文件权限

  • 文件属性
    文件属性
    文件权限
    文件权限由10个字符组成,如“-rw-r–r--”
    第一个字符表示文件类型
    2-4位字符表示文件所属用户的权限,常见的为rwx三个权限:可读、可写、可执行
    5-7位字符代表文件所属用户组权限
    8-10位字符代表除了文件所属用户及用户组外,其它用户所拥有的权限
  • 权限的意义
    文件权限的意义
    对Linux操作系统中文件安全、系统安全、隐私保护等起到了相当重要的作用。
    权限对文件的意义
    r:read读权限,用于读取文本文件的内容;
    w:write写权限,如果拥有该权限,就可以对文件进行编辑、修改、新增、删除内容等操作,但不一定能删除该文件;
    x:execute执行权限,如果该文件是应用程序、脚本等文件,当前用户拥有该文件的可执行权限时,可以实现该程序的执行。
    权限对目录的意义
    r:read读取目录结构权限。如果当前用户并没有对该目录的r权限,则ls命令无法输出该目录的目录结构及内部的文件名;
    w:write更改目录结构权限。在指定目录中执行文件或目录的增加、删除、复制、移动等操作;
    x:execute访问目录权限。代表该目录是否可以访问。比如,常用的cd命令,如果拥有对某目录的访问权限,则可以用cd命令切换工作目录到该目录下,否则不可以。
  • 修改所属用户
    chgrp命令
    语法格式:chgrp 目标用户组 被更改的文件名
    作用:修改文件所属用户组。
    chown命令
    语法格式:chown 目标用户组 文件
    作用:改变文件所属用户。
  • 修改文件权限
    更改权限有两种方式:数字的方式,字符的方式。
    数字的方法
    语法格式:chmod 对应数字权限 目标文件
    解析:
    文件权限
    字符的方式
    语法格式:chmod [选项] 目标文件
    用户符号
    u:user文件所属用户。
    g:group文件所属用户组。
    o:other其他用户。
    a:all所有用户。
    设置符号
    +:文件增加权限。
    -:文件去除权限。
    =:给文件设置权限。
    权限符号
    r:可读权限。
    w:可编辑权限。
    x:可执行权限。
    示例:sudo chmod ug-x yuts.txt yuts.txt所属用户和用户组剪掉可执行权限。
    注释:前面要不要sudo看用户权限。
  • 为新增用户创建主目录
    方法一:创建用户主目录直接在home目录下创建目录。
    命令:mkdir 目录
    方法二:直接复制"/etc/skel"到指定位置,采用复制模板目录的方法进行创建。
    命令:sudo cp -a /etc/skel /home/yuts
    更改所属用户及用户组
    命令:sudo chown -R 目标用户:目标用户组 /home/yuts
    -R 选项递归更改目录所属用户及用户组。
    /home/yuts 指定被更改的目录。

程序与进程管理

任务管理

  • 任务管理的意义
    在图形界面环境中,如果需要同时执行多个命令,可以采用开启多个终端的做法来实现;
    在字符界面环境中只有一个终端。此时执行两个nano编辑器是无法再打开一个终端的,
    Linux操作系统提供了很多实用的命令来实现任务管理,也可以将运行的程序在前台和后台之间切换,
    达到多任务同时运行的目的。
  • 后台执行程序
    作用:在执行一个耗时较长的程序同时想继续做其它工作可以使用&符号将程序直接放到后台执行。
    例如:tar -zcvf yuts.gz.tar > /tmp/tar.log 2>&1 &
    分析:
    后台执行程序
  • 后台暂停程序
    暂停后台程序
    ctrl+z:后台暂停程序。
    fg:返回继续编辑,后面的数(工作号码)可以指定返回进程。
    注释:若不指定工作号码则直接将最后一次切换到后台程序切换到前台。
    ctrl+c:结束程序。
    任务号码,"+":表示最后切换到后台的程序。
    jobs命令
    语法格式:jobs [选项]
    作用:查看所有后台程序,可以不带选项直接使用。
    常用选项:
    -l???选项可以列出所有程序的PID进程号。
    -r???选项可以列出所有正在运行的后台程序,此处后台并没有正在运行的程序。
    -s???选项可以列出所有已暂停的后台程序。
    注释:使用jobs命令可以列出所有后台的程序,无论是否运行。
  • 启动后台暂停程序
    bg:把停止的程序在后台启动,后接数字(工作号码)指定进程程序。
  • 删除后台程序
    kill命令
    语法格式:kill [选项]
    作用:删除(杀死)后台出错或其他原因不希望其继续运行的程序,kill可以直接结束掉某个进程。
    常用选项:
    -l???列出目前kill命令可用的信号(signal)。
    -1???对应"SIGHUP"信号,重新读取一次参数配置。
    -2???对应"",执行和"ctrl+c"相同的操作。
    -9???对应"",强制删除(杀死)一个程序。
    -15???对应"",信号,以正常方式终止一个人任务,也是kill命令的默认值。
    %1???如果直接写数字,kill命令默认会杀死指定PID的程序,加上%代表杀死指定的后台程序。
  • 程序后台脱机运行
    screen命令
    语法格式:screen [规则] 环境名
    示例:screen -S wget 创建一个名为wget的screen环境。
    wget Ubuntu 下载链接 执行wget命令运行下载的任务。
    注释:ctrl+A+Z 退出screen环境,提示已停止并不是指下载任务停止,
    是指screen命令切换到后台并停止;此时可以关闭终端,而下载任务不会暂停。
    screen -r wget 恢复创建的wget环境。
    作用:把执行的命令放到新开的一个中盾后台脱机运行,以便下次直接使用不需要再执行。
    常用选项:
    -A???将所有的视窗都调整为目前终端机的大小。
    -d???将指定的screen作业离线。
    -r???恢复离线的screen作业。
    -R???先试图恢复离线的作业。若找不到离线的作业,即建立新的screen环境。
    -S???指定screen环境的名称。
    -x???恢复之前离线的screen环境。
    -ls或--list???显示目前所有的screen环境。

进程管理

  • 查看进程
    ps命令
    命令格式:ps [选项]
    作用:将命令执行一瞬间的进程运行情况获取并显示出来。
    查看进程
    常用选项:
    -A???显示所有程序。
    -a???显示现行终端机下的所有程序,包括其他用户的程序。
    -f???显示与终端无关的进程。
    -l???详细显示进程信息
    c???列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    -e???此参数的效果和指定"A"参数相同。
    e???列出程序时,显示每个程序所使用的环境变量。
    f???用ASCII字符显示树状结构,表达程序间的相互关系。
    -H???显示树状结构,表示程序间的相互关系。
    -N???显示所有的程序,除了执行ps指令终端机下的程序之外。
    s???采用程序信号的格式显示程序状况。
    S???列出程序时,包括已中断的子程序资料。
    -t <终端机编号>???指定终端机编号,并列出属于该终端机的程序的状况。
    u???以用户为主的格式来显示程序状况。
    x???显示所有程序,不以终端机来区分。
    -p???同时输出进程PID。
    pstree命令
    作用:可以以树形显示所有进程与父进程之间的关系。
    语法格式与选项与ps一致。
    top命令
    注意:使用top进入执行环境,使用下面快捷键进行交互。
    ???显示top执行过程中可以输入的按键。
    P???按CPU资源占有率进行排序。
    M???按内存资源占有率进行排序。
    N???以PID进行排序。
    T???由该进程使用CPU的累计时间进行排序。
    q???退出top命令。
    区别: ps和pstree只能静态的查看某个时间点的状态,而top则可以动态的、可定时刷新、可交互的查看当前系统的状态。
  • 关闭进程
    kill命令
    关闭进程的过程与杀死后台进程的过程是一样的,都是使用kill命令,
    不同的是杀死后台进程采用的是工作号码,而关闭进程使用的是进程的PID。
  • 进程优先级
    Linux操作系统中优先级主要有内核优先级NI两个值构成。
    其中内核优先级一般来说用户是不能修改的,
    但是可以通过调整NI值来达到调整优先级的目的。
    nice命令
    语法格式:nice [选项] 需要设置的NI值
    作用:更改新执行的命令NI值。
    常用选项:
    -n adjustment/-adjustment/--adjustment=adjustment???皆为将该原有优先序的增加adjustment。
    --help???显示求助讯息。
    --version???显示版本资讯。
    renice命令
    语法格式:renice NI值 需要修改优先级的进程PID
    作用:更改已经运行(调整bash)的NI值。
    注释:ps进程派生自bash进程,当bash进程优先级更改后,ps的进程优先级也自动的更改为和bash同一级别。
  • 系统资源查看
    free命令
    语法格式:free [选项]
    作用:查看内存占用(使用量)。
    常用选项:
    -b???以Byte为单位显示信息。
    -k???以KB为单位显示信息。
    -m???以MB为单位显示信息。
    -g???以GB为单位显示信息。
    uname命令
    语法格式:uname [选项]
    作用:查看系统与内核相关信息。
    常用选项:
    -s???内核名称。
    -r???内核版本。
    -m???硬件信息,主要是CPU架构信息,如i386、x86_64等。
    -a???显示所有信息,包括以上选项输出的内容。
    uptime命令
    作用:直接输入uptime,查看系统启动时间和工作负载。

计划任务管理

  • 单词计划管理
    at命令
    语法格式:at [选项] 时间参数
    作用:创建单次任务(执行一次,自动删除)。
    at环境
    常用选项:
    -m???当at命令指定的任务完成后,以email的方式通知用户任务完成。
    -l???查看计划任务(atq 也可以查看计划任务)。
    -d???删除计划任务,后接任务号码(atrm 任务号码 也可以删除计划任务)。
    -c???显示某项任务的实际命令内容。
    时间参数:
    HH: MM:时间格式,如13:00,在13:00时执行任务,如果设置任务时已经超过13:00,则明天执行;
    HH: MM YYYY-mm-dd:日期加时间的格式,在指定日期的指定时间执行任务;
    HH: MM[am|pm] + 数字 [minutes|hours|days|weeks]:在某个时间点加上时间段才开始。
    提示:Ctrl+D 退出。
  • 循环任务管理
    crontab命令
    命令:crontab -e
    作用:添加循环任务,修改/var/spool/cron/crontabs目录中的任务列表文件。
    注意:一般默认nano编辑器,创建任务所执行的命令前面要加#
    执行的命令示例:10 15 22 11 1 echo "yuts" > /dev/pts/0 对应的分别是分、时、日、月、星期。
  • 关机期间的计划管理
    anacron命令
    语法格式:anacron [选项]
    作用:前面只能再开始时执行,而anacron可以检测关机期间未执行的任务重新执行。
    常用选项:
    -s???根据时间戳判断是否需要执行,需要执行则按顺序执行。
    -f???不判断时间戳,直接顺序执行所有任务计划。
    -n???立即执行还没执行的任务。
    -u???更新时间记录文件的时间戳,不进行任何工作。
    注意:anacron不具有管理任务计划的能力,只能检测crontab任务列表中的任务计划。

系统服务管理

  • systemd简介
    init是Unix和类Unix系统中用来产生其他所有进程的程序,init进程的进程号为1。
    是Linux内核启动后第一个运行的程序,之后再由init进行加载服务、启动shell、启动图形化界面等工作。
    在关机时,init又负责关闭服务等工作。
    systemd是Ubuntu操作系统中负责init工作的这样一套程序,
    systemd提供了包括守护进程、程序库和应用软件等。
    目前绝大多数Linux发行版都已经采用了systemd代替init程序。
  • systemctl命令简介
    systemd服务的绝大多数管理命令都由systemctl实现。
    根据功能的不同systemctl可执行7大类系统管理:
    ① 服务单元管理指令
    ② 服务单元文件管理指令
    ③ 设备管理指令
    ④ 工作计划管理指令
    ⑤ 环境管理指令
    ⑥ daemon生命周期管理指令
    ⑦ 系统管理指令
    systemctl命令
    语法格式:systemctl [选项]
    查看服务
    常用选项:
    status???常看系统服务状态。
    list-units???列出所有运行中的服务。
    list-unit-files???列出所有可用服务。
    enable???启用服务,被启用的服务会在系统启动时自动启动。
    disable???禁用服务,被禁用的服务会在系统启动时不会自动启动。
    kill???杀死某个服务。
    查看服务信息
    start???启动服务。
    stop???关闭服务。
    restart???重启服务。
  • 服务配置文件说明无了
  • systemctl设置开机启动任务
    第1步,创建开机任务脚本 (在/etc/目录下创建)
    sudo nano starton.sh 创建要执行的任务。
    第2步,创建启动服务 (在/lib/systemd/system目录下)
    cd /lib/systemd/system 创建路径。
    sudo nano starton.service 创建文件。
    第3步,创建启动项
    sudo systemctl enable starton.service 创建启动项。
    第4步,重启验证
    删除开机启动项。
    sudo systemctl disable starton.service 删除第三步中创建的符号链接。
    sudo rm /etc/starton.sh /lib/systemd/system/starton.service 删除创建的任务脚本及服务配置文件。

Ubuntu软件包管理

软件包管理

  • Ubuntu软件包管理简介
    Linux操作系统主要由Linux内核和大量的软件包构成(广义)。
    Linux各个发行版的软件包:
    ① DEB格式软件包(Debian发行版,dpkg命令管理)。
    ② RPM软件包(RedHat发行版,yum,rpm命令管理)
    ③ TarBall格式软件包(源代码提供的,tar及其他命令生成)
  • 软件源
    Ubuntu操作系统常用的软件包按照一定的结构存储在一组网站中,这样的网站叫软件源
    国内外网站存储与官网相同软件源信息,这样的网站叫镜像软件源
    例如:阿里、网易、搜狐等商业公司,中科大、清华、北理工大等教育机构都有Ubuntu操作系统的镜像软件源。
    软件源信息保存在“/etc/apt/sources.list”文件中,如果需要更改软件源,可以直接更改该文件。
    常用的软件源可以参考http://wiki.ubuntu.org.cn/index.php?title=模板:18.04source&oldid=155264链接中的内容。

dpkg命令

  • dpkg简介
    语法格式:dpkg [选项] 安装包名
    作用:主要用于软件包的安装、卸载、打包、解包等管理操作(Debian)。
    常用选项:
    -i???安装本地deb格式的安装包。
    --unpack???解包本地deb格式安装包。
    -P???彻底删除指定软件包。
    -p???显示制定安装包可安装的软件版本。
    -V???检查包完整性。
    -s???显示指定软件包的详细状态。
    -l???列出所有已软件包的状态。
    -L???列出属于指定软件包的文件。
    -r???移除指定软件包。
  • dpkg安装软件包
    1、准备deb格式的软件包(官网或镜像获取)。
    2、执行安装命令。
  • dpkg删除软件包
    语法:dpkg -r 安装包名
    注意:
    ① 删除软件包属于修改系统,普通用户不能直接更改,需要在命令前加sudo命令使用超级管理员命令才行。
    ② 部分安装包安装时会安装多个附属组件到系统中,卸载时需要仔细分辨其他组件一并删除,否则会有残留;同时注意不能删错
    ③ -r选项只会删除软件包,不会删除配置文件,如果希望彻底删除,可以使用-P选项。
    检查安装软件包详细信息
    命令:dpkg -l|grep 软件名
    软件包通常用三种常见的状态:
    ii 表示软件已安装。
    iu 软件未安装成功。
    rc 软件已卸载,但保留了配置文件。

apt-get命令

  • apt-get简介
    APT是dpkg的优化版,能自动处理包与包之间的依赖关系及维护相关配置文件,不用担心使用dpkg命令带来的依赖问题。
    apt-get和apt两个命令是APT方法提供的两个常用的软件包管理命令。
    apt-get是一个较早的命令,通常使用在Debian系发行版中,经过修改之后的apt-rpm命令也可以用于红帽系发行版中。
    语法格式:apt-get 选项 辅助命令
    常用选项:
    -d???只下载软件包,不解压、不安装下载的安装包。
    -f???修复已安装软件包的依赖关系。
    -y???对于需要用户确认的请求,全部以yes作为回答。
    -c???指定apt-get命令默认配置文件之外的配置文件。
    -o???更改某一项或几项配置文件内容。
    常用辅助命令:
    install???安装一个或多个软件包。
    update???同步本地和软件源之间的软件包索引。
    upgrade???升级软件包。
    check???检查软件包依赖关系是否损坏。
    clean???清除软件包本地缓存。
    remove???删除指定的软件包。
    autoremove???删除指定的软件包,并处理该软件包的依赖关系。
    purge???彻底删除指定的软件包,包括配置文件等内容。
  • apt-get安装软件包
    sudo apt-get install 软件包名
  • apt-get更新软件包
    ① 更新本地索引sudo apt-get update
    ② 更新软件sudo apt-get upgrade
  • apt-get删除软件包
    三种删除方式
    apt-get remove 包名
    将指定包名的软件包进行删除,但是不会处理相关依赖。
    apt-get autoremove 包名
    指定包名的软件包进行删除,同时自动处理相关依赖;
    如果该命令后没有指定包名,则会自动查找已安装的软件包及依赖,清理或删除废弃的依赖包。
    apt-get purge 包名
    彻底清除指定包的所有信息,包括软件包和配置信息。

snap包管理工具

  • snap简介
    目的: 为了解决日益严重的软件依赖问题。
    介绍: snap≈容器,将软件所需要的所有的依赖和库等内容完整打包到一起,
    安装时各个软件独立,并不会产生依赖关系,使程序之间更容易管理。
    缺点: 是需要占用更多的磁盘空间。
    snap使用软件商店(snap store)管理软件包,同样是在线管理;
    snap提供了软件的搜索、安装、卸载、更新等基本功能,
    除此之外还提供了登录功能,可以使用户在没有root权限的情况下进行软件的安装。
    语法格式:snap 辅助命令 关键词
    常用辅助命令:
    find???搜索指定软件包。
    list???列出系统中已安装的snap软件包。
    install???安装指定的安装包。
    refresh???更新指定的软件包,如果没有指定软件包名称,则更新所有软件包。
    revert???还原软件包到上一个版本。
    remove???删除指定软件包。
    login???登录。
    logout???退出。
    buy???购买指定软件包。
  • snap搜索软件包
    snap搜索
    注意:搜索结果中可能会出现许多相关的软件包,上述结果中只是展示了最准确的那条结果。
  • snap安装软件包
    命令:sudo snap install 包名
  • snap更新软件包
    snap refresh 包名 更新指定的名为“hello”的软件包。
    snap refresh 一次性更新所有软件包。
    注意:snap在更新软件包时,不需要先更新本地索引,snap每次更新前都会自动在软件源中查找对应包的版本信息。
  • snap删除软件包
    命令:sudo snap remove hello
    注意:删除过程,所有信息都会在一行命令行中动态显示,若成功只会显示“helloremoved”信息,其他信息不会被保留。

TarBall格式软件包

  • 源代码及可执行程序
    程序员编写的程序通常以文本文件的格式进行保存,这些文本文件就是软件的源代码。
    源代码通过编译后可以生成可执行文件。可执行文件是指系统可以运行的程序,通常是二进制文件。
    在Windows平台上,可执行文件一般以.exe为后缀。
    在Linux平台上,可执行文件并没有固定的后缀,甚至没有后缀,而是看该文件在当前用户下是否有可执行权限。
  • gcc编译工具
    GCC编辑过程分为四个步骤,分别是-E预处理,-S编译,-o汇编和连接。
    单文件编译 :gcc [可执行文件名]
    文件编译并指定可执行文件名:gcc -o [编辑文件] [可执行文件名]
    注意:gcc在不指定任何参数的情况下,默认将编译结果保存到a.out文件中,该文件可以直接运行。
  • TarBall格式软件包安装
    1、下载软件包源码
    在编译源码之前,需要先下载源码才可以,通常开源软件的官方网站会有源码提供下载,如“Python3.7.0”
    sudo apt install wget 下载wget
    tar -zxvf Python-3.7.0.tgz 解压python
    cd Python-3.7.0/ 转目录
    ls 查看
    ./configure -- prefix=/usr/local/python37
    2、解压软件包
    通常TarBall是指由tar命令及压缩软件打包而来的压缩包,在编译之前需要先解压缩、解包才可以。
    3、使用configure命令生成Makefile
    每个TarBall文件中,通常都会包含有一个名为“configure”的脚本,
    其作用是检测系统平台、依赖环境等信息,之后根据用户的输入的配置信息生成make命令所需的Makefile文件。
    4、使用make命令编译源代码
    make命令是一个管理编译过程的软件,实际上真正执行的是gcc命令对源码进行编译。
    5、安装软件包依赖项
    使用TarBall软件包进行软件安装,所有的依赖都需要手动进行处理,
    通常软件依赖项都可以在官网中找到,最好提前进行依赖项的安装,否则在后续安装过程中会由于缺少依赖项导致安装失败。
    6、使用make命令进行安装
    make命令不仅可以编译源代码,还可以根据Makefile中install命令进行安装,
    需要注意的是,并不是所有的Makefile中都包含“install”指令。

网络管理及安全

snap包管理工具

  • ifconfig命令
    作用:用户显示或配置网络设备。
    安装:sudo apt-get install net-tools
    语法格式:ifconfig [选项]
    常用选项:
    -a???列出当前系统所有可用网络接口。
    up???启用指定的网络接口。
    down???禁用指定的网络接口。
    netmask???指定当前IP网络的子网掩码。
    IP地址???修改指定网络接口的IP地址。
    ifconfig
  • ip命令
    作用:ip命令旨在取代ifconfig等命令,能够简单的执行一些网络管理任务。
    语法规则:ip [选项] object [子命令]
    object表示ip命令操作对象。
    常用选项:
    -h???以方便阅读的形式输出信息。
    -4???指定协议为IPv4。
    -6???指定协议为IPv6。
    -s???显示详细信息。
    子命令:
    address???ip地址,IPv4或IPv6地址。
    l2tp???L2TP隧道协议。
    link???网络设备。
    maddress???多播地址。
    route???路由表。
    rule???路由策略。
    tunnel???隧道。
    区别: ifconfig命令和ip address命令相比输出内容多了接收/发送数据包数量。
  • route命令
    语法格式:route [选项]
    作用:用来显示和操作IP路由表。
    route
    常用选项:
    -A???指定协议族,可以指定inet(ipv4)、inet6(ipv6)等值。
    -n???显示数字形式的IP地址。
    -e???使用netstat格式显示路由表,netstat命令将在后续章节讲解。
    -net???指定目标是一个网络。
    -host???指定的目标是一台主机。
    del???删除路由记录。
    add???添加路由记录。
    gw???设置默认网关。
    dev???路由记录对应的网络接口。
    netmask???指定目标网络的子网掩码。
  • netstat命令
    语法格式:netstat [选项]
    作用:查看各种网络信息,较前述命令输出的信息要更详细。
    常用选项:
    -a???显示所有处于活动状态的套接字。
    -A???显示指定协议族的网络连接信息。
    -c???持续列出网络状态信息,刷新频率为1s。
    -e???显示更加详细的信息。
    -i???列出所有网络接口。
    -l???列出处于监听状态的套接字。
    -n???直接显示IP地址,不转换成域名。
    -p???显示使用套接字的进程ID和程序名称。
    -r???显式路由表信息。
    -s???显示每个协议的统计信息。
    -t???显示TCP/IP协议的连接信息。
    -u???显示UDP协议的连接信息。
  • nslookup命令
    作用:查看域名信息。
    命令:nslookup www.yuts.cn
  • ping命令
    语法格式:ping [选项] 域名或IP地址
    作用:向目标主机发送ICMP包,并接受响应。
    常用选项:
    -c count???ping指定次数后停止ping。
    -i time???指定收发信息的间隔时间。
    注释:一个域名可以对应多个ip地址的。一个域名多个ip可以实现网路调优或负载均衡,但可能会增加部署成本。

防火墙

  • ufw防火墙简介
    防火墙是一个由软件、硬件设备组合而成,在内网和外网之间、专用网与公网之间的保护屏障,
    所有的网络信息都会经过防火墙的过滤之后再进行传输。UFW是Ubuntu系统上配置iptables防火墙的工具。
  • ufw命令
    语法格式:ufw [辅助命令] [参数]
    常用选项:
    enable???开启防火墙。
    disable???关闭防火墙。
    reload???重新加载防火墙。
    default???修改默认策略。
    logging???日志管理。
    reset???将防火墙配置恢复到初始状态。
    status???显示防火墙状态(不活动:表示禁用状态)。
    show???显示防火墙信息。
    allow???添加允许通信的规则。
    deny???添加禁止通信的规则。
    reject???添加拒绝通信的规则。
    limit???添加限制规则。
    delete???删除指定的规则。
    insert???在指定的位置插入规则。
    app list???列出使用防火墙的应用系统。
    app info???查看应用系统信息。
    app update???更新应用系统的信息。
    app default???指定应用系统默认的规则。

SSH服务

  • SSH服务简介
    SSH(Secure Shell)是一种通用的、功能强大的、基于软件的网络安全解决方案。
    计算机每次向网络发送数据时,SSH都会自动对其进行加密。
    数据到达目的地时,SSH自动对加密数据进行解密。
    SSH另一项优点是为其传输的数据是经过压缩的,可以加快传输的速度。
  • 配置SSH服务
    1、安装openssh-server软件包
    sudo apt -get install openssh-server
    2、查看ssh服务是否开启
    systemctl status ssh
    3、添加ssh端口到防火墙允许列表
    sudo ufw allow ssh
  • 使用Putty登录SSH服务
    XFTP、Xshell等等软件都能实现登录SSH服务的功能。

FTP文件传输服务

  • FTP协议简介
    FTP(File Transfer Protocol,文件传输协议)用于基于互联网的文件双向传输协议。
    在该协议的基础上,分别实现客户端软件和服务端软件,进行文件传输。
    FTP协议分为两种模式:
    Standard模式
    FTP客户端主动与服务器通过21端口建立连接,
    实现与服务器的通信并发送PORT命令到服务器,
    之后通过20端口建立连接并发送数据。
    Passive模式
    FTP客户端主动与服务器通过21端口建立连接,
    并发送PASV命令到服务器,之后服务器打开一个随机端口
    (端口号在1023和65535之间)连接到客户端进行文件传输。
  • 安装vsftpd服务
    vsftpd (very secure FTP daemon)是 UNIX 类操作系统上运行的ftp服务程序,也可以在linux操作系统上运行。
    vsftpd服务特点:
    ① vsftpd是以一般用户身份启动服务,对于Linux系统的使用权限较低,对于Linux系统的危害相对降低。
    ② 任何需要具有较高执行权限的 vsftpd指令均以一支特殊的上层程序所控制,
    该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准。
    ③ 所有来自客户端,想要使用这支上层程序所提供的较高执行权限之vsftpd指令的需求,
    均被视为“不可信任的要求”来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。
    ④ 上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。
    安装命令:sudo apt-get install vsftpd
    常见可以更改配置如下所示:
    vsftpd服务安装完成后即可使用,其配置文件保存在/etc/vsftpd.conf文件中,如需更改配置信息,可以修改该文件。
    ? anonymous_enable=YES
    设置为NO代表不允许用户匿名,设置为YES表示允许用户匿名。
    ? local_enable=YES
    设定本地用户是否可以访问,主要是虚拟宿主用户,如果设为NO则虚拟用户将无法访问。
    ? write_enable=YES
    设置是否可以进行写的操作,YES为可以进行读写操作,NO则不行。
    ? local_umask=022
    设定上传文件的权限掩码, 此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2)。
    ? anon_upload_enable=NO
    禁止匿名用户上传,NO则不允许匿名用户上传数据,YES为允许。通常需要禁止匿名用户上传数据来增强系统安全性。
    ? anon_mkdir_write_enable=NO
    禁止匿名用户建立目录,同上一条设置项。通常该项为NO。
    ? xferlog_enable=YES
    设定开启日志记录功能,该项一般开启即可。
    ? connect_from_port_20=YES
    设定端口20进行数据连接,前述内容提到过在不同的传输模式下,20端口的作用,在此处可以设定是否打开20端口。
    ? chown_uploads=NO
    设定禁止上传文件更改宿主。
    ? xferlog_file=/var/log/vsftpd.log
    设定vsftpd服务日志保存路径。该文件需手动进行创建,并设置相应的读写权限,否则可能造成vsftpd服务启动失败。
    ? xferlog_std_format=YES
    设定日志使用标准的记录格式。
    ? idle_session_timeout=600
    设定空闲链接超时时间,这里使用默认/秒。
    ? data_connection_timeout=3600
    设定最大连接传输时间,这里使用默认,将具体数值留给每个用户具体制定,默认120/秒。
    ? nopriv_user=vsftpd
    设定支撑vsftpd服务的宿主用户为手动建立的vsftpd用户。
    注意:一旦更改宿主用户,需一起与该服务相关的读写文件的读写赋权问题。
    ? async_abor_enable=YES
    设定支持异步传输的功能。
    ? ftpd_banner=hello 欢迎登录
    设置vsftpd的登录标语。
    ? chroot_list_enable=NO
    禁止用户登出自己的ftp主目录。
    ? ls_recurse_enable=NO
    禁止用户登录ftp后使用ls -R命令。
    该命令会对服务器性能造成巨大开销,如果该项运行当多个用户使用该命令会对服务器造成威胁

其他网络安全相关服务

  • AppArmor
    AppArmor是一款能够起到主动防御的软件,较杀毒软件来说能够针对敏感操作、
    新病毒特征进行主动防御,与杀毒软件配合能够更好的保全操作系统的安全。
    AppArmor采用配置文件的形式规定每个应用程序的运行权限,
    应用程序必须遵循配置文件中的规则,否则可能运行不成功,或被误认为有害的应用程序。
    根据配置文件不同,分为两种加载方式:
    enforce模式
    ① 符合设定的操作可运行。
    ② 不符合设定的操作被拦截。
    complain模式
    ① 符合设定的操作可运行。
    ② 不符合设定的操作也可运行,但是会记录到日志中。
  • 数字证书
    数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。
    每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),
    用其进行解密和签名,同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
    数字证书是由CA(Certificate Authority,证书授权中心)机构发行,人们可以在网上用该证书来识别对方的身份。

Shell编程

学习ing……

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 08:31:26  更:2021-11-25 08:31:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:22:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码