type
date
slug
category
icon
password
第一章 Linux 环境准备FAQs:1.1 虚拟机安装1.2 WSL系统(Windows Subsystem for Linux)第二章 Linux 系统简介2.1 主要目录速查表第三章 shell终端设置及快捷方式3.1 设置 “PATH”a. 永久设置之方法1,这对所有用户都有效:b. 永久设置之方法2,只对当前用户有效:c. 临时设置:3.2 bashrc配置文件a. 常用的功能b. 配置方式3.3 终端快捷键a. 显示b. 光标移动和文本编辑3.4 终端美化Powershell 美化Oh My Posh3.5 小节引用第四章 Linux 常用命令文件夹操作 - 切换、罗列、创建、删除文件操作 - 新建、移动、复制、删除查看和编辑文件 - cat、gedit 和 vi帮助信息 - man、info、--help查找文件 Find查找字符串 - grep查看文件类型 - filewhich和whereis查找命令所在位置进程监控命令 ps查看或配置网卡信息SSH 高级命令 软件管理服务Wget 命令下载软件打包压缩 gzip-bzip2-tar用户权限管理关机/重启五、参考资料
第一章 Linux 环境准备
FAQs:
查看内核(cat /proc/version)系统版本号,可以使用:sudo lsb_release -a
Ubuntu 12.04 (LTS)代号为precise。
Ubuntu 14.04 (LTS)代号为trusty。
Ubuntu 15.04 代号为vivid。
Ubuntu 15.10 代号为wily。狡猾的
Ubuntu 16.04 (LTS)代号为xenial。好客的
Ubuntu 18.04 代号bionic 仿生的
Ubuntu 20.04 代号focal
getconf LONG_BIT # 查看系统位数
uname -a # kernel 版本
/opt/vc/bin/vcgencmd version # firmware版本
strings /boot/start.elf | grep VC_BUILD_ID # firmware版本
cat /proc/version # kernel
cat /etc/os-release # OS版本资讯
cat /etc/issue # Linux distro 版本
cat /etc/debian_version # Debian版本编号
更新软件源
sudo -i
获取root权限
cp /etc/apt/sources.list /etc/apt/sources.list.old
备份软件源
vim /etc/apt/sources.list
使用vim查看编辑管理源,输入 “i” 进入编辑模式
- 添加阿里云镜像管理源,
ctrl+c
/EsC
中断编辑,:qa!
退出并去除所有修改,:wq
保存修改
apt-get update
更改源
apt-get upgrade
更新系统的软件和类库
需区分 Raspbian 系统为stretch, jessie, wheezy, buster ( lsb_release -a 命令查看), 否则无法Upgrade,安装软件需要各种依赖。
退出编辑模式 VIM
建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。
(1) :w
将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:
:w filename(存入指定文件)
:q
(2) :wq
即将上面的两步操作可以合成一步来完成,先执行w,后执行q。
(3) :x和ZZ(注意: ZZ前面没有“:”)
功能与(2)等价。
(4) :q!(或:quit)
强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容已被更改,将提示用户使用“:quit”命令退出。
apt 和 apt-get 的区别
apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。apt 的主要目的是提供一种以「让终端用户满意」的方式来处理 Linux 软件包的有效方式。apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

1.1 虚拟机安装
安装教程网上一大把,搜索以目标系统、版本搜索。
1.2 WSL系统(Windows Subsystem for Linux)
安装教程
查看文件目录
使用SSH命令访问,参照安装教程
直接win文件夹中查看访问
- Listary 这类软件的直接检索 rootfs 就能找到;
- Windows 上的盘,比如 C 盘或者 D 盘,在 WSL 中都挂载在 /mnt 下,可以通过 cd /mnt/c 验证。
创建可视化界面
由于已安装虚拟机,且笔记本电脑C盘空间限制,因此在换机后可以尝试,尝试方法参考上文安装教程1,以及WSL2 Ubuntu图形界面安装与远程桌面
第二章 Linux 系统简介
2.1 主要目录速查表
大多的Linux、Unix发行版本遵循FHS标准(Filesystem Hierarchy Standard,文件系统层次标准)
Linux 不同目录存放内容说明:
- /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
- 当在终端里输入
/home
,其实是在告诉电脑,先从/
(根目录)开始,再进入到home
目录
- /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
- /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用
- /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:
/boot/vmlinuz
,系统引导管理器:/boot/grub
- /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱
mount /dev/cdrom /mnt
- /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
- /etc/inittab
- /etc/fstab
- /etc/init.d
- /etc/X11
- /etc/sysconfig
- /etc/xinetd.d
- /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
~
表示当前用户的家目录~edu
表示用户edu
的家目录
- /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
- /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
- /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
- /opt:给主机额外安装软件所摆放的目录
- /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
- /root:系统管理员root的家目录
- /usr:应用程序存放目录
- /usr/bin:存放应用程序
- /usr/share:存放共享数据
- /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
- /usr/local:存放软件升级包
- /usr/share/doc:系统说明文件存放目录
- /usr/share/man:程序说明文件存放目录
- /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
- /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
- /var:放置系统执行过程中经常变化的文件
- /var/log:随时更改的日志文件
- /var/spool/mail:邮件存放的目录
- /var/run:程序或服务启动后,其 PID 存放在该目录下
第三章 shell终端设置及快捷方式
shell就是一个应用程序,我们可以通过键盘、串口给它发送命令,回车后它就会去执行这些命令。
以“ls -l”命令为例
- 接收键盘数据并回显
比如:我们使用键盘给shell程序发送字母l,它收到后会在屏幕上显示出来
- 解析输入的字符串,寻找程序,执行程序:
当我们使用键盘给shell程序发送回车时,它就知道字符输入结束了
a. shell会解析字符串,这些字符串用空格分为好几部分
第1部分就是程序名、命令名,
其他部分是参数
b. shell会去寻找该程序,去哪里找?去PATH环境变量所指示的位置找。
你当然也可以指定绝对、相对路径,shell就会直接去这些路径找到程序
c. 找到程序后,会启动该程序,并传入参数
3.1 设置 “PATH”
以在PATH中添加/home/book目录为例:
a. 永久设置之方法1,这对所有用户都有效:
修改/etc/environment,比如:sudo gedit /etc/environment ,然后添加下行红包部分:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/book"
,然后重启系统或重新登录。b. 永久设置之方法2,只对当前用户有效:
修改~/.bashrc,在行尾添加或修改:
export PATH=$PATH:/home/book
,然后重启系统或重新登录。c. 临时设置:
在终端执行以下命令,这只对当前终端有效:
export PATH=$PATH:/home/book
3.2 bashrc配置文件
该配置在用户主目录下,用于保存不同用户的终端首选项和环境变量,以用户自定以的方式执行参数指令或者脚本
a. 常用的功能
- 写入命令的别名 【Aliases】
- 1 Alias 别名功能介绍
- 2 配置方法
- 一直生效
- 临时生效
- 3 常用命令
- 3.1 查看帮助
- 3.2 查看已有别名
- 3.3 添加、修改和去除别名
- 案例解析:Linux系统安装数据库管理工具XAMPP,如何通过命令行打开 mysql
- 进入常用的工作目录,层级很深,每次都需要使用 cd 进入
- 简化的命令输入,比如通过c
alias -p
命令查看定义好的别名, - 打开不同版本的python和pip,除了添加软链接,还可以通过别名的方式
详细说明
1 Alias 别名功能介绍
主要功能作用:简化频繁使用但冗长复杂的命令的输入
2 配置方法
一直生效
vim ~/.bashrc # 用vim打开配置文件,在 alias 位置添加别名(其他位置也可以添加,放一起会整洁些)

source ~/.bashrc # 编辑完可以用source命令刷新
临时生效
在命令行中操作,可用于当前登录环境,退出登录失效
3 常用命令
语法:alias [-p] [name[=value] ... ] 注意‘=’和字符串之间不能包含空格
3.1 查看帮助
3.2 查看已有别名
3.3 添加、修改和去除别名
案例解析:Linux系统安装数据库管理工具XAMPP,如何通过命令行打开 mysql
XAMPP 安装参考这里,安装后,mysql数据库后启动,进入
/opt/lampp/bin
,执行mysql -u root
,方可启动。当然可以通过添加环境变量的方式,简化路径切换,但是两个命令还是带来了些麻烦,下面演示添加别名方式来实现“mysql-login”,“mysql-logout”, 结合别名使用,终端还会有提示,更方便了使用。End
- Bash 提示,定制bash可以高效直观运行命令
- Bash 函数组合多个命令
b. 配置方式
vim ~/.bashrc # 用vim打开配置文件
source ~/.bashrc # 编辑完可以用source命令刷新
3.3 终端快捷键
a. 显示
放大终端字体 "cltr + shift + =" == "cltr + +"
缩小终端字体 “ctrl + -”
b. 光标移动和文本编辑
3.4 终端美化
Powershell 美化
Oh My Posh
3.5 小节引用
第四章 Linux 常用命令
- 绝对路径和相对路径
- /home/book 是绝对路径
- 相对路径一般以.和..来构成
文件夹操作 - 切换、罗列、创建、删除
pwd: print working directory
cd : change directory
- cd ~切换到当前用户的家目录
- cd . 切换到当前路径
- cd .. 切换到上一级路径
- cd ../.. 切换到上上级路径(其中:在linux中路径分隔符为斜杠/)
- cd - 切换到上一次的路径
ls:List 列出目录内容
- l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小)
- a(all的缩写),显示了隐藏文件
- h(human-able的缩写),将文件大小以K(KB)、M(MB)、G(GB)来表示

mkdir:make directory 创建目录
- mkdir -p 父目录/子目录mkdir -p dir1/dir2p(parents的缩写)连续创建多级目录(父目录和子目录),如果父目录不存在,则需要加入-p参数。
rmdir:remove directory
- 注意:rmdir不能删除非空目录(非空目录:该目录下面有子目录或者文件)
文件操作 - 新建、移动、复制、删除
touch:新建文件
- 同一目录无法创建同名的文件
- linux的文件名是区分大小写的,如file1和File1是不同文件。这一点跟windows不同
mv(move的缩写):修改文件(目录)名、移动路径
- mv 旧文件名 新文件名 ====>修改文件名如:mv file1 filea将当前目录的文件file1改名为filea
- mv 旧目录名 新目录名 ====>修改目录名如:mv dir1 dira将当前目录下的目录dir1改为dira
- mv 文件名 目录名 ====>移动路径如:mv filea dira将当前目录下filea移动到dira子目录如:mv filea ~ 将当前目录下filea移动家目录如:mv ~/filea ..将家目录下的fila移动到上一个路径
cp(copy的缩写):复制文件(目录)
- cp 源文件名 目标文件名如:cp File1 file2将当前目录下的文件File1拷贝成file2
- cp 源文件名 目标目录名如:cp file2 dira/将当前目录下的文件file2拷贝到dira子目录
- cp 源目录名 目标目录名cp -r dira dirb复制dira目录下的所有内容到dirb其中,-r参数时递归复制cp -i file2 dira如果dira目录下面有同名的file2,加入-i参数就会要求你确认是否覆盖同名的文件
rm(remove的缩写):删除文件(目录)
- i(interactive(交互)的缩写),删除文件(目录)之前,要求你确认是否同意删除
- r(recursive(递归)的缩写),递归删除指定目录下的子目录和文件
- f(force(强制)的缩写),强制删除
查看和编辑文件 - cat、gedit 和 vi
cat 查看文件内容
cat file1 将file1的内容打印到标准输出中(默认标准标准输出指向终端)
cat file1 file2 将file1和file2的内容串联并依次全部打印到标准输出中
cat -n file1 显示内容并在内容前显示行号。
类似的查看命令:more、less、head、tail等后面讲解
gedit图形应用程序的编辑器
vi 编辑器
帮助信息 - man、info、--help
man、info、--help
序号 | 方式 | 含义 |
1 | --help | 提供命令帮助信息 |
2 | man | 提供命令、API、概念、配置文件等帮助信息 |
3 | info | 和man有很多交集,能更完整GUN****工具 |

man使用的最多
- man man 查看man手册的说明
- man ls 当没有指定使用那一页,默认使用第1页
- man 1 ls
- man 1 gcc gcc是一个应用程序,在linux中一般使用gcc编译器来编译c/c++语言的程
- open/write/read/close等等都是系统调用
- man 2 open 查看系统调用open的man手册说明
注意1:man手册的9册内容的侧重点,最好记一下。
section | 名称 | 说明 |
1 | 用户命令 | 用户可操作的命令 |
2 | 系统调用 | 内核提供的函数(查头文件) |
3 | 库调用 | 常用的函数库 |
4 | 特殊文件 | 设备文件(/dev下)和特殊文件 |
5 | 文件格式和约定 | 对一些文件进行解释 |
6 | 游戏程序 | 游戏程序 |
7 | 杂项 | 包括宏包和约定等 |
8 | 系统管理员使用的管理命令 | 通常只有系统管理员可以使用 |
9 | 内核相关 | Linux内核相关文件 |
注意2:man 手册提供的信息种类
段名 | 主要内容 |
NAME | 命令、数据名称的简短说明 |
SYNOPSIS | 简短的命令语法说明 |
DESCRIPTION | 最为权威和全面的使用说明 |
EXAMPLES | 使用本命令或数据的一些参考示例 |
AUTHOR | 作者 |
REPORTING BUGS | 报告相关的错误信息 |
COPYRIGHT | 版权 |
SEE ALSO | 与本命令或数据相关的其他参考说明 |
info
- info ls

- -help
- 如 ls --help
查找文件 Find
find 目的:查找符合条件的文件
格式: find 目录名 选项 查找条件
- find /work/001_linux_basic/dira/ -name "test1.txt"
- find /work/001_linux_basic/dira/ -name "*.txt" ,查找指定目录下面所以.txt结尾的文件
- find /work/001_linux_basic -name "dira" ,查找指定目录下面是否存在dira这个目录
注意:
- 如果没有指定查找目录,则为当前目录。
find . -name "*.txt"
其中.代表当前路径find -name "*.txt"
都是一样的功能
- find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件find /home -mtime -2 查找/home目录下两天内有变动的文件
查找字符串 - grep
grep
目的:使用grep命令来查找文件中符合条件的字符串
格式:grep [选项] [查找模式] [文件名]
- grep -rn "字符串" 文件名
- r(recursive):递归查找
- n(number):显示目标位置的行号
- 字符串:要查找的字符串
- 文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录
- grep -n "abc" test1.txt 在test1.txt中查找字符串abc
- grep -rn "abc" * 在当前目录递归查找字符串abc
查看文件类型 - file
目的:识别文件类型
格式: file 文件名
- file ~/.bashrc 为ASCII 编码的text类型
- file ~/.vimrc 为UTF-8 Unicode 编码的text类型
- file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式
- file ~/100ask/ 为directory表明这是一个目录
- file /bin/pwd 出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件
- file /dev/* 出现character special(字符设备文件)、 block special(块设备文件)等
which和whereis查找命令所在位置
which和whereis
目的:查找命令或应用程序的所在位置
格式:which 命令名/应用程序名
- which pwd 定位到/bin/pwd
- which gcc 定位到/usr/bin/gcc
- whereis pwd查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz
进程监控命令 ps
ps
1. 查看正在运行的进程(三个命令)
- "ps aux" 可以查看系统中所有的进程;
- a:显示一个终端的所有进程,除会话引线外;
- u:显示进程的归属用户及内存的使用情况;
- x:显示没有控制终端的进程;
表头 | 含义 |
USER | 该进程是由哪个用户产生的。 |
PID | 进程的 ID。 |
%CPU | 该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。 |
%MEM | 该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。 |
VSZ | 该进程占用虚拟内存的大小,单位为 KB。 |
RSS | 该进程占用实际物理内存的大小,单位为 KB。 |
TTY | 该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。 |
STAT | 进程状态。常见的状态有以下几种:
1. -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
2. -R:该进程正在运行。
3. -S:该进程处于睡眠状态,可被唤醒。
4. -T:停止状态,可能是在后台暂停或进程处于除错状态。
5. -W:内存交互状态(从 2.6 内核开始无效)。
6. -X:死掉的进程(应该不会出现)。
7. -Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
8. -<:高优先级(以下状态在 BSD 格式中出现)。
9. -N:低优先级。
10. -L:被锁入内存。
11. -s:包含子进程。
12. -l:多线程(小写 L)。
13. -+:位于后台。 |
START | 该进程的启动时间。 |
TIME | 该进程占用 CPU 的运算时间,注意不是系统时间。 |
COMMAND | 产生此进程的命令名。 |
- "ps -le" 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
- l:长格式显示更加详细的信息;
- e:显示所有进程;
表头 | 含义 |
F | 进程标志,说明进程的权限,常见的标志有两个:
• 1:进程可以被复制,但是不能被执行;
• 4:进程使用超级用户权限; |
S | 进程状态。具体的状态和"psaux"命令中的 STAT 状态一致; |
UID | 运行此进程的用户的 ID; |
PID | 进程的 ID; |
PPID | 父进程的 ID; |
C | 该进程的 CPU 使用率,单位是百分比; |
PRI | 进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行; |
NI | 进程的优先级,数值越小,该进程越早被执行; |
ADDR | 该进程在内存的哪个位置; |
SZ | 该进程占用多大内存; |
WCHAN | 该进程是否运行。"-"代表正在运行; |
TTY | 该进程由哪个终端产生; |
TIME | 该进程占用 CPU 的运算时间,注意不是系统时间; |
CMD | 产生此进程的命令名; |
- "ps -l" 只能看到当前 Shell 产生的进程;
- -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
- -b:
使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中
; - -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
- -p
进程PID:仅查看指定 ID 的进程
; - -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
- -u
用户名:只监听某个用户的进程
; - ? 或 h:显示交互模式的帮助;
- P:按照 CPU 的使用率排序,默认就是此选项;
- M:按照内存的使用率排序;
- N:按照 PID 排序;
- T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
- k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
- r:按照 PID 给某个进程重设优先级(Nice)值;
- q:
退出 top 命令
; - 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
- 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
从 pts/1从 pts/1 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。
我们再来说说僵尸进程。僵尸进程的产生一般是由于进程非正常停止或程序编写错误,导致子进程先于父进程结束,而父进程又没有正确地回收子进程,从而造成子进程一直存在于内存当中,这就是僵尸进程。
僵尸进程会对主机的稳定性产生影响,所以,在产生僵尸进程后,一定要对产生僵尸进程的软件进行优化,避免一直产生僵尸进程;对于已经产生的僵尸进程,可以在查找出来之后强制中止。
2. 持续监听进程运行状态(TOP)
选项:
在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:
前五行数据的含义参考该链接。
我们还要解释一下缓冲(buffer)和缓存(cache)的区别:
简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。
3. 查看进程树
[root@localhost ~]# pstree [选项] [PID或用户名]
表 1 罗列出了 pstree 命令常用选项以及各自的含义。
选项 | 含义 |
-a | 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。 |
-c | 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。 |
-n | 根据进程 PID 号来排序输出,默认是以程序名排序输出的。 |
-p | 显示进程的 PID。 |
-u | 显示进程对应的用户名称。 |
需要注意的是,在使用 pstree 命令时,如果不指定进程的 PID 号,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;反之,若指定 PID 号或用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。
查看或配置网卡信息
ifconfig
ifconfig | grep inet
Check adapter configuration info and then refer to lines including inetping
ping 127.0.0.1
local address/ loop addressSSH 高级命令
Faqs:
putty
解决putty等无法远程连接Linux的问题-拒绝访问:NetWork error:Connection refused
- 局域网内的两台电脑IP冲突
当使用DHCP自动分配IP时,两台电脑的IP可能会冲突。这时,使用Putty无法登连接Linux。
方法:可以设置/etc/network/interfaces文件,将网卡设置为静态IP,并设置IP,子网掩码等。
2. 没有安装openssh-server
这个问题一般出现在刚刚装完操作系统,此时还没有安装openssh-server。Putty一般使用SSH连接方式,因为主机没有openssh-server,所以无法连接。使用下面命令安装openssh-server之后,问题解决了。
FileZilla 连接传输时,端口应该设置为 21, 因为FTP 传输服务器在 21 端口,参见上文的表格
1. 远程登录
Remote register WorkFlow
SSH Client → IP → Object Computer → port → SSH server
ssh
secure shell

ssh [-p port] user@remote
user
Default user if not appointedremote
IP adress / Domain Adress / aliasport
SSH server monitoring port, if not appointed default 22 - 免密码登录
- 配置别名
- 在
~/.ssh/config
添加主机信息和命名别名
- 使用 ssh alias 即可使用,同样可以在 scp 中使用
2. 复制文件
scp
secure Copy
scp -P port 01.py user@remote:Desktop/01.py
scp -r demp user@remote:Destop
P Capital
Note:
SSH command only work in
linux
or unix
system, for Win
System, Putty
or Xshell
software are necessary for accessing remote computer instead of SSH command;SCP terminal command only work in the
linux
or unix
system, for Win
System, pscp command will work in the PuTTY Software or transmitt info trough FTP command in the FizeZilla.软件管理服务
Debian 包管理知识背景
dpkg (Debian Package)
Debian 开发了 dpkg(Debian Package) 管理工具来管理软件,软件都是以 deb 结尾的编译好的二进制包,通过 dpkg 命令可以安装软件和卸载软件。
APT(Advanced Packaging Tool) dpkg无法处理依赖问题,APT可以解决依赖问题,但底层还是调用dpkg来进行软件安装
软件源
deb(或deb-src) <软件源地址> <主版本代号> [软件仓库1] [软件仓库2] [软件仓库3] ...
- main:官方支持的符合 DFSG 规范的软件
- contrib:带有非自由依赖关系的 DFSG 兼容软件
- non-free:非 DFSG 兼容软件
- firmware:官方固件,非开源
区别,一般来说著名的linux系统基本上分两大类:
- RedHat系列:Redhat、Centos、Fedora等
- Debian系列:Debian、Ubuntu、Deepin等
RedHat 系列
- 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
- 包管理工具 yum
Debian系列
- 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
- 包管理工具 apt-get
通过 Apt 安装/卸载软件
通过 yum 安装/卸载软件
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum [options] [command] [package ...]
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package操作的对象。
Reference
Wget 命令下载软件
wget命令从指定的URL下载文件,链接的稳定性,以及断点续存支持从服务器下载大文件
wget
http://xxxx.zip
name the file as the last section of after the "/" character in the linkwget -0 xxx.zip
http://xxx.zip
Download file and change the name of downloaded filewget -c
http://xxx.zip
restart downloading wget -b
http://xxx.zip
tail -f wget -log
download file background and check the progress of downloadingwget -r -A.pdf url
down specified formatted filewget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"
http://www.linuxde.net/testfile.zip
打包压缩 gzip-bzip2-tar
gzip和bzip2单个文件的压缩和解压
单个文件的压缩(解压)使用gzip 和bzip2
多个文件和目录使用tar
gzip的常用选项
- l(list) 列出压缩文件的内容
- k(keep) 在压缩或解压时,保留输入文件。
- d(decompress) 将压缩文件进行解压缩
1. 查看
gzip -l 压缩文件名
比如:gzip -l pwd.1.gz
2. 解压
gzip -kd 压缩文件名
比如:gzip -kd pwd.1.gz
该压缩文件是以.gz结尾的单个文件
3. 压缩
gzip -k 源文件名
比如:gzip -k mypwd.1
得到了一个.gz结尾的压缩文件
注意:
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,
并删除原有的文件,所以说,推荐使用gzip -k 来压缩源文件。
2)相同的文件内容,如果文件名不同,压缩后的大小也不同。
3)gzip只能压缩单个文件,不能压缩目录。
bzip2来压缩单个文件
bzip2的常用选项
- k(keep) 在压缩或解压时,保留输入文件。
- d(decompress) 将压缩文件进行解压缩
1. 压缩
bzip2 -k 源文件名
比如:bzip2 -k mypwd.1
得到一个.bz2后缀的压缩文件
2. 解压
bzip2 -kd 压缩文件名
bzip2 -kd mypwd.1.bz2
注意:
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,
并删除原有的文件,所以说,推荐使用bzip2 -k 来压缩源文件。
2)bzip2只能压缩单个文件,不能压缩目录。
tar多个文件和目录的压缩和解压
tar常用选项
- c(create) 表示创建用来生成文件包
- x:表示提取,从文件包中提取文件
- t可以查看压缩的文件。
- z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
- j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
- v(verbose)详细报告tar处理的信息
- f(file)表示文件,后面接着一个文件名。
- C <指定目录> 解压到指定目录
1.tar打包、gzip压缩
1)压缩
tar -czvf 压缩文件名 目录名
如:tar czvf dira.tar.gz dira
注意:
tar -czvf与tar czvf是一样的效果,所以说,后面统一取消-。
2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.gz
3)解压
tar xzvf 压缩文件名
tar xzvf 压缩文件名 -C 指定目录
如:tar xzvf dira.tar.gz 解压到当前目录
如:tar xzvf dira.tar.gz -C /home/book 解压到/home/book
2.tar打包、bzip2压缩
1)压缩
tar cjvf 压缩文件名 目录名
如:tar cjvf dira.tar.bz2 dira
2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.bz2
3)解压
tar xjvf 压缩文件名
tar xjvf 压缩文件名 -C 指定目录
如:tar xjvf dira.tar.bz2 解压到当前目录
如:tar xjvf dira.tar.bz2 -C /home/book 解压到/home/book
zip 单个文件的压缩和解压
unzip [选项] 压缩包名
unzip 命令常用选项及含义
选项 | 含义 |
-d 目录名 | 将压缩文件解压到指定目录下。 |
-n | 解压时并不覆盖已经存在的文件。 |
-o | 解压时覆盖已经存在的文件,并且无需用户确认。 |
-v | 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。 |
-t | 测试压缩文件有无损坏,但并不解压。 |
-x 文件列表 | 解压文件,但不包含文件列表中指定的文件。 |
用户权限管理
CentOS 7 中添加新用户并授权
1、添加新用户
由于日常使用时root用户权限过大,所以添加一个用户供日常使用,或者供他人使用。
1)创建新用户:
adduser [用户名]
2)修改新用户的密码:
passwd [用户名]
2、授权
新创建的用户并不能使用sudo命令,需要给他添加授权。
1)添加sudoers文件可写权限
chmod -v u+w /etc/sudoers
2)修改sudoers文件
vim /etc/sudoers
在sudoers文件中找到如下位置并添加如下内容:
[用户名] ALL=(ALL) ALL(如需新用户使用sudo时不用输密码,把最后一个ALL改为NOPASSWD:ALL即可)
3)收回sudoers文件可写权限
chmod -v u-w /etc/sudoers
1. 用户组-用户管理
2. 权限管理
3. rwx 权限详解
rwx作用到
文件
1)[r]代表可读(read):可以读取,查看
2)[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除- 一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[x]代表可执行(execute):可以被执行
rwx作用到目录
1)[r]代表可读(read):可以读取,Is查看 目录内容
2)[w]代表可写(write):可以修改,目录内创建+删除+重命名
目录
3)[x]代表可执行(execute):可以进入该目录
4. 修改权限
第一种方式:+、一、==变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、 g、o的总和)
1) chmod u=rwx,g=rx,o=x 文件目录名。指定
2) chmod o+w 文件目录名,添加权限
3) chmod a-x 文件目录名,删除权限
第二种方式:通过数字变更权限
规则:r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录名
5. python文件直接运行
6. 最佳实践
police,bandit
jack, jerry:警察
xh, xq:土匪
(1)创建组
bash> groupadd police
bash> groupadd bandit
(2)创建用户
关机/重启
shutdown
shutdown -r now
"-r " ensure the running state due to the lack of administration for remote computer 五、参考资料
Linux核心技能与应用-课程章节- Author:felixfixit
- URL:http://www.felixmicrospace.top/article/guide_to_linux
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!