个人Ubuntu使用指南

什么是Ubuntu?Linux隶属于GNU,遵循GPL,Debian是Linux众多主要发行版中的一个,而Ubuntu是Debian在桌面领域的一个改版系统,更多细节请前往这里

我的新书《LangChain编程从入门到实践》 已经开售!推荐正在学习AI应用开发的朋友购买阅读!
LangChain编程从入门到实践

DAY 1 走进Ubuntu

关于Ubuntu

  1. 什么是Ubuntu?Linux隶属于GNU,遵循GPL,Debian是Linux众多主要发行版中的一个,而Ubuntu是Debian在桌面领域的一个改版系统,更多细节请前往这里
  2. 与Windows区别
  • 多任务,多用户
  • 适合嵌入式系统
  • 丰富的网络功能
  • 自由开放
  • 免费
  1. 几点注意
  • 修改基于文本的配置文件来设置Ubuntu系统
  • windows通过文件扩展名来识别文件类型,linux通过文件的头部信息来来获取文件类型或者编码格式,用到命令file
  1. 学习网站参考

安装Ubuntu

  1. Ubuntu 16.04与Win10双系统安装(讲的比较全面的一个教程,分盘原理都有讲到)
    Ubuntu 16.04与Win10双系统双硬盘安装图解
  2. 简单理解磁盘分区。Ubuntu中,IDE接口的设备称为hd,SCSI和SATA接口的设备称为sd,以sd为例,硬盘依次称作sda(第一块),sdb(第二块)…,一块儿上面四个主分区(sda1,sda2,sda3,sda4),接下来是逻辑分区,从sda5开始,数量无限制。主分区(sda1)存放引导整个系统的程序和参数,相当于Windows下C盘,逻辑分区对应D,E,F盘。已建立文件系统的磁盘分区被挂载到某一个目录下,用户通过操作目录实现磁盘读写。
  3. 推荐搞清楚:引导加载程序GRUB

读取U盘失败

  • ubuntu挂载u盘出现错误:mount:unknown filesystem type 'exfat'
    解决办法:打开终端,以root身份(普通用户使用root身份命令:sudo -i),输入:apt-get install exfat-fuse,重新插入U盘,即可识别
  • 扩展阅读:阮大的这篇博文exFAT 文件系统指南可以帮助理解报错原因

DAY 2 一切皆命令

目录操作命令

  1. 创建目录

    1
    2
    3
    4
    cd ~ #进入用户主目录
    mkdir doc1 doc2 #创建目录doc1 doc2,可以同时创建多个
    mkdir /home/mygodot/doc3 #使用绝对路径创建
    mkdir -p ~/home/test/doc4 #当test目录开始不存在时,利用参数-p,可以创建一个完整的目录结构而不会报错,区别见图1.
  2. 移动目录

    1
    2
    3
    mv doc1 /home/mygodot/home/    #把doc1移动到/home/mygodot/home/ 
    mv -i doc1 /home/mygodot/home/ #/home/mygodot/home/已经有doc1了,如果此时再移动相同的doc1,就会覆盖原来的doc1,利用参数-i就可以避免这种情况,回答n即可跳过,见图2
    mv -b doc1 /home/mygodot/home/ #如果非要移动,利用参数-b,会先在原来doc1后加~,避免同名覆盖
  3. 删除目录

    1
    2
    3
    4
    5
    6
    rmdir doc2  #rmdir只能删除空目录
    rm doc3/*.py #rm可以一次删除一个或者几个文件
    rm -i doc3/test.md #日常使用推荐添加-i参数,会给出提示;y确认删除,n跳过文件
    注意: 对于只读文件,不加-i也会提示
    rm -r test #-r参数,删除test以及test目录下所有文件和子目录(慎重操作,难道你忘了删库跑路(:?)
    rm -f doc1 #默认删除有写保护的普通文件
  4. 复制目录

    1
    2
    3
    4
    cp test.txt test/   #复制test.txt到test文件夹下
    cp -i test.txt test/ #-i提示防覆盖
    cp -b test.txt test/ #-b 加~
    cp -r test/ 桌面/ #-r 将test整个目录及文件复制到桌面
  5. 跳转目录 cd 绝对路径|相对路径

查看文件

  1. 查看目录
    1
    2
    3
    4
    ls       #列出所有目录及文件,类型由颜色确定,推荐加参数-F
    ls -F #目录后加/,链接文件后加@,可执行文件加@,普通文件什么都不加
    ls -a #显示所有的隐含文件,头部带点.
    ls -l #查看文件属性(权限,链接个数,文件用户名,用户名所在用户组,大小,更新日期,更新时间,文件名)

注意: 权限由10个字符组成,以-rw-r–r–为例,第一个-表示普通文件,rw-文件所有者读写权限,r–用户组只有读权限,r–其他人(除文件所有者和root之外的所有人)只有读权限,有时出现rwx,表示拥有执行和读写权限,下面还会提到。
(试试看,将参数两两组合会有什么效果)

  1. 查看普通文件

    1
    2
    3
    4
    cat test1.txt test2.txt  #查看文件内容
    cat -n test.txt #参数-n,显示行号
    head -n 2 test.txt #显示开头两行
    tail -n 2 test.txt #显示结尾两行
  2. 文件内容精确查找

    1
    2
    3
    grep 被搜索关键字  搜索文件(可以多个) 
    grep ex test.txt test2.txt #在test,test2找包含ex的内容
    (注意,有时会看见egrep命令,作用与grep一样,只是更规范而已)
  1. 文件查找与定位
    1
    find ~/ -name *.txt -print   #列出用户主目录下所有的txt文件,并输出到屏幕
  1. 大文件查看,推荐了解more命令less命令

权限操作

  1. 更改权限

    1
    2
    3
    4
    5
    6
    chmod 使用”用户组+/-/=权限“的方式来增加/删除/直接设置相应的权限
    用户组:文件所有者(u),用户组(g),其他人(o),所有人(a)
    权限:读取(r),写入(w),执行(x)
    chmod u+x test.txt
    chmod o-r test.txt
    chmod ug=rw test.txt
  2. 更改文件所有权

    1
    2
    3
    4
    sudo chown user test.txt        #改变用户
    sudo chown :group test.txt #改变用户组
    sudo chown user:group test.txt #同时改变
    sudo -R user test/ #参数-R,user拥有所有目录及子文件的所有权
  3. 创建链接文件

    1
    2
    3
    符号链接通过名称引用原文件,硬链接直接引用原文件,两文件独立,但内容相同,对其中一个文件更改,另一个也会发生改变。
    ln -s test.txt test_link #创建符号链接(快捷方式)
    ln test.txt test.link2 #创建硬链接
  4. 文件操作进阶,扩展阅读:输入/输出重定向
    流、管道和重定向

DAY 3

deb软件包管理

1
2
dpkg -i(-installl) 软件包名称   #安装,-i参数会把系统旧版本删除掉
dekg -r(-remove) 软件 #卸载

apt软件包管理工具(解决依赖问题)

1
2
3
4
5
6
apt-get install  #下载安装
apt-get upgrade #下载并安装最新版本
apt-get remove #卸载软件包
apt-get source #下载特定软件的源代码
apt-get clean #删除所有包文件
apt-get -h #查看更多

修改Ubuntu的apt-get源为阿里源(改善更新速度)

  1. 复制原文件备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 编辑源列表文件sudo vim /etc/apt/sources.list
  3. 将原来的列表删除,添加如下内容
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
    #deb和deb-src表示软件包类型(debian类型)
  • (按ESC键,输入:wq即可保存退出,见vim语法)
  1. 更新源和软件
    使用sudo apt-get update更新获取阿里云软件源提供的软件列表
  2. 使用sudo apt-get upgrade更新软件

Ubuntu系统实用软件推荐

  1. 搜狗输入法

  2. chrome浏览器

  3. 为知笔记
    (安装deb文件,双击安装或者命令安装:sudo dpkg -i ******.deb)

  4. Shutter是一款截图软件,功能丰富,堪称神器。(安装:sudo apt-get install shutter

  5. ssr代理软件(科学上网)

    1
    2
    3
    sudo add-apt-repository ppa:hzwhuang/ss-qt5 
    sudo apt-get update
    sudo apt-get install shadowsocks-qt5
  6. VSCode代码编辑器

  7. 系统监视器,实时查看电脑的cpu,内存占用率,查看网速

    1
    2
    3
    sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor 
    sudo apt-get update  
    sudo apt-get install indicator-sysmonitor  
  8. 下载软件uget

    1
    2
    3
    sudo add-apt-repository ppa:plushuang-tw/uget-stable
    sudo apt-get update
    sudo apt-get install uget
  9. 图片编辑器GIMPsudo apt-get install gimp

  10. Typora,Ubuntu上有颜值又有实力的markdown编辑器

    1
    2
    3
    4
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
    sudo add-apt-repository 'deb https://typora.io ./linux/'
    sudo apt-get update
    sudo apt-get install typora

Ubuntu利用Aria2下载百度云文件

  1. 先安装Chrome百度网盘助手插件(在https://github.com/acgotaku/BaiduExporter下载BaiduExporter.crx,手动安装到Chrome)
  2. 安装Aria2 sudo apt-get install aria2
  3. 下载文件
    打开网页端百度网盘,选中要下载的文件,选择导出下载菜单的文本导出。把显示的文件内容复制下来,然后在粘贴到命令框即可下载。(如果被断开连接,可以重新输入命令实现断点续传^.^)

主题定制

仿Mac OS X主题设置(有兴趣的可以尝试)

DAY 4

ubuntu16.4下的mp3播放

  • 解决Ubuntu16.4不能播放mp3的问题
  • MP3编码由于许可证问题,linux不能在其基础发行版上包括 MP3 解码或编码功能.
    1
    2
    3
    4
    5
    6
    7
    8
    sudo apt install gstreamer1.0-fluendo-mp3     #安装gstreamer,版本可能不断更新
    mid3iconv -e GBK *.mp3 #切换到音乐的目录,执行
    //此时系统会提示你安装python-mutagen
    sudo apt install python-mutagen #执行即可
    mid3iconv -e GBK *.mp3 #再执行(作用:mid3iconv 命令主要是将原来mp3音乐文件的ID3信息转换
    成了Unicode并用ID3v2的格式存回文件中。)
    //进入Rhythmbox,随便点一首mp3的歌曲,
    会弹出一个对话框,直接点确认,下载,继续,都完成之后,应该就已经可以听mp3

DAY 5

用户管理文件

  • ID与账号的对应关系就在/etc/passwd中,每行代表一个账号,UID代表账号的种类。

    1
    2
    3
    4
    5
    6
    cat /etc/passwd    #查看命令
    mygodot:x:1000:1000:mygodot,,,:/home/mygodot:/bin/bash(共7个字段)
    登录名/口令占位符/用户ID/默认组ID/用户私人信息/用户主目录/登录shell
    UID=0 #系统管理员root
    UID=1~499 #供系统保留给服务使用
    UID=500~65535 #普通用户使用
  • 利用加密算法MD5加密的口令保存在/etc/shadow中,仅仅对root用户可读

    1
    2
    mygodot:$IoPgKPfQ$aKtMO:17733:0:99999:7:::
    登录名/加密后口令/上次修改指令日期/一些与口令相关的可选项...
  • 用户分组在/etc/group文件中定义

    1
    2
    sambashare:x:128:mygodot
    组名/组口令占位符/组号(GID)/成员列表
  • 用户所属的组是passwd文件和group文件中相应组的并集

  • 确定某用户对文件的访问权限时,系统会先考察用户所在所有组

添加用户

  • useradd命令

    1
    2
    3
    4
    sudo useradd -m otherUser    #添加用户otherUser,并自动建立目录(-m参数)
    sudo useradd -g group otehrUser #为用户指定所属群组,默认创建同名的用户组
    sudo useradd -s /bin/bash mike #指定用户登录后所使用的shell,默认使用sh(指向bash的符号链接)
    使用root权限,输入`passwd 用户名`,即可更改密码
  • 添加用户分组groupadd

    删除用户

  • userdel命令

    1
    2
    sudo userdel -r otheruser   #删除用户的同时,删除与用户相关的所有文件
    sudo userdel otheruser #仅仅删除账号,不删除相关文件

用户间切换

DAY 6

多用户、多进程的系统(了解)

1
2
3
4
5
6
7
8
9
10
11
12
13
进程:正在运行中的程序
父进程、子进程、谦让度、优先级
ps aux
ps lax
top(实时监控)、q(退出)
kill(“杀死”一个进程) -(SIG)TERM(信号编号或者信号名) PID
Kill -l
RSS:内存中页(管理内存的单位,4K)的数量
TTY: 进程所在终端的ID号
SAT:
COMMAND:
PROC文件系统
谦让度调整:renice(绝对) nice(相对)

文件系统

1
2
3
4
5
6
7
8
逻辑盘空间:
引导块(文件系统开头,存放引导程序);超级块(记录文件系统的管理信息);indoe区(索引节点);数据区
ext4fs文件系统(预留专门区域保存日志文件)
free(查看内存使用情况)
swap交换分区[http://smilejay.com/2012/06/swap_size/],类似于Windows的虚拟内存
EXT2文件系统(Linux发布的标准文件系统)
虚拟文件系统
/PROC文件系统(为访问系统内核数据的操作提供接口)

磁盘管理

  • 了解文件系统的挂载
    1
    2
    3
    4
    5
    ls /dev/ | grep sd    #磁盘分区查看
    df -t ext4 #显示文件系统的挂载情况
    du -sh ./ #当前目录大小
    du -a #罗列每个文件大小
    [du命令](http://man.linuxde.net/du)查看空间使用量

系统备份

  • 先阅读linux 打包和压缩的概念和区别

    1
    2
    3
    4
    tar -cvf test.tar test/  #打包test目录及其下的所有文件
    tar -cvwf test.tar test/ #在原基础上添加,确认提醒
    tar -xvf test.tar #解包
    更多[tar命令](http://man.linuxde.net/tar)参数
  • 压缩文件

    1
    2
    3
    4
    gzip test.tar   #生成test.tar.gz,将打包好的.tar文件压缩成.gz
    gunzip test.tar.gz #解压
    gunzip -l test.tar.gz #查看压缩效果
    gunzip -tv test.tar.gz #测试压缩完整性
  • 感兴趣可了解Linux完整备份工具:dump, restore

  • Linux的备份dump和恢复restore

DAY 7

定时任务自动化

  • Ubuntu16.04设置crontab定时计划任务

    1
    2
    3
    4
    5
    6
    关于crontab原理的几点理解:
    Linux周期性任务通常是由cron守护进程完成的,cron随系统启动而启动,启动时读取配置文件,把信息保存在内存中,每分钟重新检查一次配置文件,并执行这一分钟的任务,所以cron执行最短周期是1分钟。
    sudo /etc/init.d/cron restart #手动启动cron脚本
    cron配置文件有两种:
    系统的全局cron配置文件(分为三种):etc/crontab,和系统维护有关的全局任务计划,由系统管理员手动制定;/etc/cron.d某些应用软件设置的计划任务;/etc/cron.hourly、/etc/cron.daily...存放每小时、每天等的任务。
    普通用户的配置文件:/var/spool/cron/用户名命名的配置文件,用crontab命令配置
  • at指令详解-定时任务执行,类似于windows计划任务的功能,太好用了

    1
    2
    3
    4
    5
    mygodot@ubuntu:~$ at 18:08 tomorrow
    warning: commands will be executed using /bin/sh
    at> date >/home/mygodot/桌面/yestoday.log
    at> <EOT>
    job 1 at Tue Nov 20 18:08:00 2018

网络管理

  • 路由配置route命令

    1
    netstat -r    #查询Linux内核中的路由表
  • 流量监控工具NetHogs和Ifstat了解

检测端口

1
2
3
netstat -a   #列出当前所有连接
netstat -at #列出TCP协议的连接
netstat -au #列出UDP协议的连接
作者

莫尔索

发布于

2020-10-22

更新于

2024-05-19

许可协议

评论