Linux 理论

1. 基础指令


环境:Windows 10子系统 Ubuntu 20.04.1 LTS

Shell指令格式:command -options [argument],其中command: Shell 为命令名。options为命令选项,命令可带或不带选项,argument为参数,命令可带或不带参数。Shell 命令里面的参数是可以组合在一起用的。

1.1 登录系统

终端默认会有类似下面一行所示的一串提示符:ACname@PCname:~$,其中ACname为当前系统用户名,PCname为当前计算机名。

1.1.1 以root用户身份执行指令 sudo

Linux是一个允许多用户的操作系统,其中权限最大的就是超级用户 root。通过 sudo 命令可以以root 用户身份执行指令。当使用 sudo 命令的时候是需要输入密码的。
命令格式:sudo [选项] [命令]

  • h 显示帮助信息
  • l 列出当前用户可执行与不可执行的命令
    -p 改变询问密码的提示符

1.1.2 切换用户身份 su

sudo是以 root 用户身份执行一个命令,但并没有更改当前的用户身份。命令su可直接将当前用户切换为 root 用户。此后,将不用再在命令前加sudo来执行命令。
!!由于 root 用户权限太大,稍微不注意就可能删除掉系统文件,导致系统奔溃,强烈建议不要以 root 用户运行 Ubuntu。当要用到 root 身份执行某些命令的时候使用sudo命令即可!!

命令格式:sudo su [选项] [用户名]

  • c –command 执行指定的命令,执行完毕以后回复原用户身份。
  • login 改变用户身份,同时改变工作目录和 PATH 环境变量。
  • m 改变用户身份的时候不改变环境变量
  • h 显示帮助信息

root用户切换完成后,命令符由ACname@PCname:~$变为root@PCname:/#

1.1.3 创建新用户

只有root用户才有权限创建新用户。
命令格式:sudo adduser [参数] [用户名]

  • system 添加一个系统用户
  • home DIR DIR 表示用户的主目录路径
  • uid ID ID 表示用户的 uid。
  • ingroup GRP 表示用户所属的组名。

1.1.4 删除用户 deluser

只有root用户才有权限删除用户。
命令格式:deluser [参数] [用户名]

  • system 当用户是一个系统用户的时候才能删除。
  • remove-home 删除用户的主目录
  • remove-all-files 删除与用户有关的所有文件
  • backup 备份用户信息

1.1.5 系统重启与关机

  • 系统重启命令 reboot
  • 系统关闭命令 poweroff

1.2 文件系统

如下图,为Linux 文件系统,蓝色为文件夹,绿色为文件,红色为压缩包
在这里插入图片描述

1.2.1 目录信息查看 ls

ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,
命令格式:ls [选项] [路径],主要参数如下:

  • a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。
  • l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
  • t 将文件按照创建时间排序列出。
  • A 和-a 一样,但是不列出“.”(当前目录)和“…”(父目录)。
  • R 递归列出所有文件,包括子目录中的文件。

Shell 命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信
息,包括以“.”开头的隐藏文件。

输入命令cd /进入Linux根目录,再输入指令ls查看根目录内容,可得到如下文件夹:
/bin 存储一些二进制可执行命令文件,/usr/bin 也存放了一些基于用户的命令文件。
/sbin 存储了很多系统命令,/usr/sbin 也存储了许多系统命令。
/root 超级用户 root 的根目录文件。
/home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。
/boot 存放 Ubuntu 系统内核和系统启动文件。
/mnt 通常包括系统引导后被挂载的文件系统的挂载点。
/dev 存放设备文件,我们后面学习 Linux 驱动主要是跟这个文件夹打交道的。
/etc 保存系统管理所需的配置文件和目录。
/lib 保存系统程序运行所需的库文件,/usr/lib 下存放了一些用于普通用户的库文件。
/lost+found 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。
/var 存储一些不断变化的文件,比如日志文件
/usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。
/media 存放 Ubuntu 系统自动挂载的设备文件。
/proc 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。
/tmp 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。
/opt 可选文件和程序的存放目录。
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

1.2.1.1 查看文件类型 ls -l

如下代码片,每个文件的详细信息占一行,每行最前面都是一个符号就标记了当前文件类型,比如bin 的第一个字符是d,test.c 文件第一个字符是-。这些字符表示的文件类型如下:

  • - 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。
  • d 目录文件。
  • c 字符设备文件,Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。
  • b 块设备文件,存储设备驱动,比如硬盘,U 盘等。
  • l 符号连接文件,相当于 Windwos 下的快捷方式。
  • s 套接字文件。
  • p 管道文件,主要指 FIFO 文件。
root@ALIENTEK-IMX6U:/# ls -l
total 60
drwxr-xr-x  2 1000 tracing  4096 Aug 14 12:47 bin
drwxr-xr-x  2 1000 tracing  4096 Aug 14 12:44 boot
drwxr-xr-x 12 root root     3220 Aug 14 12:52 dev
drwxr-xr-x 54 1000 tracing  4096 Aug 14 12:43 etc
drwxr-xr-x  3 1000 tracing  4096 Aug 14 12:44 home
drwxr-xr-x  7 1000 tracing  4096 Aug 14 12:47 lib
drwx------  2 root root    16384 Aug 14 12:44 lost+found
drwxr-xr-x  2 1000 tracing  4096 Aug 14 12:44 media
drwxr-xr-x  3 1000 tracing  4096 Aug 14 12:44 mnt
drwxr-xr-x  4 1000 tracing  4096 Aug 14 12:44 opt
dr-xr-xr-x 76 root root        0 Jan  1  1970 proc
drwxr-xr-x 11 root root      520 Aug 14 12:52 run
drwxr-xr-x  2 1000 tracing  4096 Aug 14 12:47 sbin
dr-xr-xr-x 13 root root        0 Jan  1  1970 sys
-rw-r--r--  1 root root        0 Aug 14 15:23 test.c
lrwxrwxrwx  1 root root        8 Jan  1  1970 tmp -> /var/tmp
drwxr-xr-x 10 1000 tracing  4096 Aug 14 12:47 usr
drwxr-xr-x  8 1000 tracing  4096 Aug 14 12:47 var

1.2.2 目录切换 cd

命令格式:cd [路径]

  • cd / :进入到根目录“/”下,Linux 系统的根目录为“/”,
  • cd /usr :进入到目录“/usr”里面。
  • cd .. :进入到上一级目录。
  • cd ~ :切换到当前用户主目录

1.2.3 参看当前路径 pwd

pwd用来显示当前工作目录的绝对路径,不需要任何参数。

1.2.4 系统信息查看 uname

查看当前系统信息。
命令格式:uname [选项]

  • r列出当前系统的具体内核版本号。
  • s 列出系统内核名称。
  • o 列出系统信息。
  • a列出系统版本信息。

1.2.5 显示文件内容 cat

命令格式:cat [选项] [文件]

  • n 由 1 开始对所有输出的行进行编号。
  • b 和-n 类似,但是不对空白行编号。
  • s 当遇到连续两个行以上空白行的话就合并为一个行空白行

1.2.6 文件系统类型

Windows下的文件系统类型,如下图:
在这里插入图片描述

Linux 下也有类似的文件系统类型,Linux 下的文件系统主要有 ext2、ext3、ext4 等文件系统。Linux 还支持其他的 UNIX 文件系统,比如 XFS、JFS、UFS 等,也支持 Windows 的 FAT 文件系统和网络文件系统 NFS 等。

  • ext3 文件系统
    ext3 是在 ext2 的基础上发展起来的文件系统,完全兼容 ext2 文件系统,ext3 是一个日志文件系统,ext3 支持大文件,ext3 文件系统的特点有如下:

    • 高可靠性:使用 ext3 文件系统的话,即使系统非正常关机、发生死机等情况,恢复 ext3 文件系统也只需要数十秒。
    • 数据完整性:ext3 提高了文件系统的完整性,避免意外死机或者关机对文件系统的伤害。文件系统速度:ext3 的日志功能对磁盘驱动器读写头进行了优化,文件系统速度相对与 ext2来说没有降低。
    • 数据转换:从 ext2 转换到 ext3 非常容易,只需要两条指令就可以完成转换。用户不需要花时间去备份、恢复、格式化分区等,用 ext3 文件系统提供的工具 tune2fs 即可轻松的将 ext2 文件系统转换为 ext3 日志文件系统。ext3 文件系统不需要经过任何修改,可以直接挂载成 ext2 文件系统。
  • ext4 文件系统
    ext4 文件系统是在 ext3 上发展起来的,ext4 相比与 ext3 提供了更佳的性能和可靠性,并且功能更丰富,ext4 向下兼容 ext3 和 ext2,因此可以将 ext2 和 ext3 挂载为 ext4。

查看当前磁盘挂载的文件类型:df -T –h

1.2.7 创建新文件 touch

命令格式:touch [参数] [文件名]
使用 touch 创建文件的时候,如果[文件名]的文件不存在,那就直接创建一个以[文件名]命名的文件,如果[文件名]文件存在的话就仅仅修改一下此文件的最后修改日期,常用的命令参数如下:

  • a 只更改存取时间。
  • c 不建立任何文件。
  • d<日期> 使用指定的日期,而并非现在日期。
  • t<时间> 使用指定的时间,而并非现在时间。

1.2.8 创建新文件夹 mkdir

命令格式:mkdir [参数] [文件夹名目录名]

  • p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。

1.2.9 文件及文件夹删除 rm

此命令可以完成删除一个文件或者多个文件及文件夹,它可以实现递归删除。对于链接文件,只删除链接,原文件保持不变,所谓的链接文件,相当于 Windows 下的快捷方式文件。
命令格式:rm [参数] [目的文件或文件夹目录名]

  • d 直接把要删除的目录的硬连接数据删成 0,删除该目录。
  • f 强制删除文件和文件夹(目录)。
  • i 删除文件或者文件夹(目录)之前先询问用户。
  • r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉。
  • v 显示删除过程。

综上,要删除当前目录下的文件,只需使用rm 文件名就可以,但删除文件夹,则需要rm 文件夹名 -rf,即强制递归删除文件夹。

1.2.10 文件夹删除 rmdir

相比较于rm 文件夹名 -rfrmdir可不加任何参数的删除掉指定的文件夹。
命令格式:rmdir [参数] [文件夹(目录)]

  • p 删除指定的文件夹(目录)以后,若上层文件夹(目录)为空文件夹(目录)的话就将其一起
    删除。

1.2.11 文件复制 cp

命令格式:cp [参数] [源地址] [目的地址]

  • a 此参数和同时指定“-dpR”参数相同
  • d 在复制有符号连接的文件时,保留原始的连接。
  • f 强行复制文件,不管要复制的文件是否已经存在于目标目录。
  • I 覆盖现有文件之前询问用户。
  • p 保留源文件或者目录的属性。
  • rR 递归处理,将指定目录下的文件及子目录一并处理

文件的复制粘贴操作过程如下:

root@ALIENTEK-IMX6U:/# mkdir yuentest1 yuentest2  // 创建两个文件夹
root@ALIENTEK-IMX6U:/# ls
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  run  sbin  sys  tmp  usr  var  yuentest1  yuentest2
root@ALIENTEK-IMX6U:/# cd yuentest1  //跳转到yuentest1文件夹
root@ALIENTEK-IMX6U:/yuentest1# touch file1.txt  //创建文件
root@ALIENTEK-IMX6U:/yuentest1# ls
file1.txt
root@ALIENTEK-IMX6U:/yuentest1# cp file1.txt file2.txt  // 复制file1.txt并命名为file2.txt
root@ALIENTEK-IMX6U:/yuentest1# ls
file1.txt  file2.txt
root@ALIENTEK-IMX6U:/yuentest1# cp *.txt ../yuentest2  //复制当前文件夹下所有后缀为.txt的文件到文件夹yuentest2
root@ALIENTEK-IMX6U:/yuentest1# cd ../yuentest2  //跳转到yuentest2
root@ALIENTEK-IMX6U:/yuentest2# ls
file1.txt  file2.txt
root@ALIENTEK-IMX6U:/yuentest2# cd ../yuentest1
root@ALIENTEK-IMX6U:/yuentest1# ls  // 源文件依然存在
file1.txt  file2.txt

1.2.12 文件移动 mv

命令格式:mv [参数] [源地址] [目的地址]

  • b 如果要覆盖文件的话覆盖前先进行备份。
  • f 若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录。
  • I 在覆盖之前询问用户。

文件的移动操作过程如下:

root@ALIENTEK-IMX6U:/# mkdir yuen_file  // 创建文件夹
root@ALIENTEK-IMX6U:/# ls
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  run  sbin  sys  tmp  usr  var  yuen_file
root@ALIENTEK-IMX6U:/# touch test.c  //创建文件
root@ALIENTEK-IMX6U:/# ls -a
.   .aiur   .config  boot  etc   lib         media  opt   run   sys     tmp  var
..  .cache  bin      dev   home  lost+found  mnt    proc  sbin  test.c  usr  yuen_file
root@ALIENTEK-IMX6U:/# mv test.c test2.c  //移动文件test.c并命名为test2.c
root@ALIENTEK-IMX6U:/# ls -a
.   .aiur   .config  boot  etc   lib         media  opt   run   sys      tmp  var
..  .cache  bin      dev   home  lost+found  mnt    proc  sbin  test2.c  usr  yuen_file
root@ALIENTEK-IMX6U:/# mv test2.c yuen_file  // 移动文件到文件夹yuen_file
root@ALIENTEK-IMX6U:/# cd yuen_file
root@ALIENTEK-IMX6U:/yuen_file# ls
test2.c

1.2.13 文件压缩和解压缩

1.2.13.1 将文件压缩为zip文件 zip

将一个或者多个文件压缩成一个.zip 结尾的文件。
命令格式:zip [参数] [压缩文件名.zip] [被压缩的文件]

  • b<工作目录> 指定暂时存放文件的目录。
  • d 从 zip 文件中删除一个文件。
  • F 尝试修复已经损毁的压缩文件。
  • g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。
  • h 帮助。
  • j 只保存文件的名,不保存目录。
  • m 压缩完成以后删除源文件。
  • n<字尾符号> 不压缩特定扩展名的文件。
  • q 不显示压缩命令执行过程。
  • r 递归压缩,将指定目录下的所有文件和子目录一起压缩。
  • v 显示指令执行过程。
  • num 压缩率,为 1~9 的数值。
1.2.13.2 将zip文件解压缩 unzip

命令格式:unzip [参数] [压缩文件名.zip]

  • l 显示压缩文件内所包含的文件。
  • t 检查压缩文件是否损坏,但不解压。
  • v 显示命令显示的执行过程。
  • Z 只显示压缩文件的注解。
  • C 压缩文件中的文件名称区分大小写。
  • j 不处理压缩文件中的原有目录路径。
  • L 将压缩文件中的全部文件名改为小写。
  • n 解压缩时不要覆盖原有文件。
  • P<密码> 解压密码。
  • q 静默执行,不显示任何信息。
  • x<文件列表> 指定不要处理.zip 中的哪些文件。
  • d<目录> 把压缩文件解到指定目录下。
1.2.13.3 将文件压缩为tar文件 tar

原理与zip类同。
命令格式:tar [参数] [压缩文件名] [被压缩文件名]

  • c 创建新的压缩文件。
  • C<目的目录> 切换到指定的目录。
  • f<备份文件> 指定压缩文件。
  • j 用 tar 生成压缩文件,然后用 bzip2 进行压缩。
  • k 解开备份文件时,不覆盖已有的文件。
  • m 还原文件时,不变更文件的更改时间。
  • r 新增文件到已存在的备份文件的结尾部分。
  • t 列出备份文件内容。
  • v 显示指令执行过程。
  • w 遭遇问题时先询问用户。
  • x 从备份文件中释放文件,也就是解压缩文件。
  • z 用 tar 生成压缩文件,用 gzip 压缩。
  • Z 用 tar 生成压缩文件,用 compress 压缩。

1.2.14 文件查询和搜索

1.2.14.1 在目录结构中查找相应文件 find

命令格式:find [路径] [参数] [关键字]

  • name 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。
  • depth 从指定目录下的最深层的子目录开始查找。
  • gid<群组识别码>查找符合指定的群组识别码的文件或目录。
  • group<群组名称> 查找符合指定的群组名称的文件或目录。
  • size<文件大小> 查找符合指定文件大小的文件。
  • type<文件类型> 查找符合指定文件类型的文件。
  • user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
1.2.14.2 在文件中搜索一串关键字 grep

查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字,grep 命令就会把包含指定关键字的这一行标记出来。
命令格式:grep [参数] 关键字 文件列表

grep 命令一次只能查一个关键字。

  • b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。
  • c 计算符合关键字的列数。
  • d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数!否则 grep 指令将回报信息并停止搜索。
  • i 忽略字符大小写。
  • v 反转查找,只显示不匹配的行。
  • r 在指定目录中递归查找。

1.3 网络

1.3.1 显示和配置网络属性 ifconfig

ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令可查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP 地址等。
命令格式:ifconfig interface options | address

  • interface 网络接口名称,比如 eth0 等。
  • up 开启网络设备。
  • down 关闭网络设备。
  • add IP 地址,设置网络 IP 地址。
  • netmask add 子网掩码。

1.4 下载与安装

1.4.1 软件安装命令 install

install [选项]... [-T] 源文件 目标文件
或
install [选项]... 源文件... 目录
或
install [选项]... -t 目录 源文件...
或
install [选项]... -d 目录..

install命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令install通常和命令apt-get组合在一起使用。

1.4.2 APT 下载工具

APT 下载工具可以实现软件自动下载、配置、安装二进制或者源码的功能。APT 下载工具和前面的install命令结合在一起构成了Linux下最常用的下载和安装软件方法。
APT 采用的 C/S 模式,也就是客户端/服务器模式,我们的 PC 机作为客户端,当需要下载软件的时候就向服务器请求,因此我们需要知道服务器的地址,也叫做安装源或者更新源。

1.4.2.1 更新本地数据库

命令:sudo apt-get update
查看本地哪些软件可以更新,这个命令会访问源地址,并且获取软件列表并保存在本电脑上。

1.4.2.2 检查依赖关系

命令:sudo apt-get check
本地某些软件可能存在依赖关系,所谓依赖关系就是 A 软件依赖于 B 软件。通过该命令可以查看依赖关系,如果存在依赖关系的话 APT 会提出解决方案。

1.4.2.3 软件安装

命令:sudo apt-get install package-name
其中:

  • package-name:要安装的软件名。
  • apt-get负责下载软件。
  • install负责安装软件。
1.4.2.4 软件更新

命令:sudo apt-get upgrade package-name,其中package-name为软件名。

1.4.2.5 卸载软件

命令:sudo apt-get remove package-name,其中package-name为软件名。

1.5 文本编辑

1.6 用户权限管理

Linux 是一个多用户系统,可给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性保护。
在安装 Linux系统时被要求创建一个账户,当我们创建好账号以后,系统会在目录/home 下以该用户名创建一个文件夹,所有与该用户有关的文件都会被存储在这个文件文件夹中。同样,创建其它用户账号的时候也会在目录/home 下生成一个文件夹来存储该用户的文件。
Linux下用户类型分为以下 3 类:

  • 初次创建的用户,此用户可以完成比普通用户更多的功能。
  • root 用户,系统管理员,系统中的玉皇大帝,拥有至高无上的权利。
  • 普通用户,安装完操作系统以后被创建的用户。

以上三种用户,每个用户都有一个 ID 号,称为 UID,操作系统通过 UID 来识别是哪个用户,用户相关信息可以在文件/etc/passwd 中查看到:

root@ALIENTEK-IMX6U:/# cat /etc/passwd
root:x:0:0:root:/home/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
avahi:x:999:999::/var/run/avahi-daemon:/bin/false
rpc:x:998:998::/:/bin/false
messagebus:x:997:995::/var/lib/dbus:/bin/false
rpcuser:x:996:994::/var/lib/nfs:/bin/false
pulse:x:995:1001::/var/run/pulse:/bin/false

从配置文件 passwd 中可看到,每个用户名后面都有两个数字,比如用户“pulse”后面“995:1001”,第一个数字是用户的 ID,另一个是用户的 GID,即用户组 ID。Linux里每个用户都属于一个用户组里面,用户组就是一组有相同属性的用户集合。

1.* 其他指令

1.*.1 Shell命令自动补全

如在Shell终端输入su,再敲击Tab,则返回以su开头的相关命令。

su            subst.exe     sudo          sudoreplay    sum
subscrpt.mof  sud.dll       sudoedit      sulogin       suspend

1.*.2 清屏命令 clear

1.*.3 查看系统信息

  • cat /proc/version,返回如下:
Linux version 4.4.0-17763-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #379-Microsoft Wed Mar 06 19:16:00 PST 2019

其中:Linux version为Linux内核版本号。gcc version为gcc编译器版本号。

  • uname -a,返回如下:
Linux PCname 4.4.0-17763-Microsoft #379-Microsoft Wed Mar 06 19:16:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

其中,用户名(PCname)后为linux内核版本。x86_64为Ubuntu系统是位数。

  • lsb_release -a,返回如下:
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

其中Distributor ID为系统名。Description为系统版本类型,LTS表示Long Term Support:长时间支持版本,支持周期长达三至五年。Release为发行日期或者是发行版本号。 Codename为ubuntu的代号名称。

1.*.4 终止当前指令

Ctrl+C

2. python 开发

2.1 安装python3

参考:https://zhuanlan.zhihu.com/p/149796622
https://zhuanlan.zhihu.com/p/506491209

  1. 在终端获取管理员权限
sudo su
  1. 安装之前,先更新一下源的软件列表。
apt-get update

apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
  1. 下载python3 环境
# 官方网站:
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
# 阿里镜像:
wget https://cdn.npm.taobao.org/dist/python/3.8.3/Python-3.8.3.tgz
  1. 解压
tar -xzf Python-3.8.3.tgz
  1. 进入解压的文件夹
cd Python-3.8.3
  1. 安装到指定路径:如下指令是安装到/usr/local/python3.8
./configure --prefix=/usr/local/python3.8
  1. 查看python3版本
python3 --version
  1. 进入python3环境进行编程
python3

在这里插入图片描述

2.1.1 安装pip3

注意,安装完pip3 后,为了与pip 进行区分,以后关于pip 的指令都需要用pip3 替代

# 安装pip3
sudo apt install python3-pip
# 更新pip3
pip3 install --upgrade pip
# 验证是否安装成功
pip3 -V

2.1.2 安装vim

参考:https://blog.csdn.net/qq_44214671/article/details/108522308

sudo apt-get install vim

2.2 pycharm 相关

https://blog.csdn.net/m0_37758063/article/details/111573552

2.2.1 安装pycharm

sudo snap install pycharm-community --classic

2.2.2 选择编译器

打开或新建一个工程后,如下图选择一个python 编译器;
在这里插入图片描述

2.3 更换pip 镜像源

  • 临时更换清华源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# 如果是pip3 那就
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

*. 附录


*. 在Windows10上运行子系统Linux

参考:https://baijiahao.baidu.com/s?id=1607159570058814753&wfr=spider&for=pc

1.打开控制面板,找到程序,选择程序和功能,(或直接WIN+S搜索程序和功能)点击启用或者关闭Windows功能,找到并勾选适用于Linux的windows子系统,点击确定即可,过几秒之后重启。

目前该子系统只支持X64的Windows10

在这里插入图片描述
2. 进入开发者选项,勾选开发人员模式
在这里插入图片描述
3. 进入微软应用商场,搜索并下载Ubuntu.
在这里插入图片描述
4. 安装完成后,启动,并等待其安装完毕,敲击回车,设置第一个账号和密码。

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: yuenjunnin
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 4.4.0-17763-Microsoft x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Oct 30 17:18:59 DST 2020

  System load:            0.52
  Usage of /home:         unknown
  Memory usage:           59%
  Swap usage:             0%
  Processes:              7
  Users logged in:        0
  IPv4 address for wifi0: 192.168.43.59
  IPv6 address for wifi0: 240e:47d:daa0:d889:60c3:37ab:be9:cb6f
  IPv6 address for wifi0: 240e:47d:daa0:d889:5525:b5af:cc71:d1ce

1 update can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once once a day. To disable it please create the
/home/yuenjunnin/.hushlogin file.
yuenjunnin@SRPC00602:~$

*. 安装和配置oh-my-zsh

oh-my-zsh是一个Shell,Shell是一种用于与操作系统的交互界面终端,用户通过这个界面访问操作系统内核的服务。安装oh-my-zsh首先需要安装zsh. zsh(Z Shell)是一个功能强大的交互式shell脚本命令解释器。它不仅支持bash,还提供一些强大和高效的功能,例如更好的自动补全和纠错。

  • 安装zsh:sudo apt-get install zsh
  • 查看zsh版本:zsh --version

*. Linux 软件推荐

  1. 截图软件:Shutter;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Truffle7电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值