跳至主要內容

Linux

Mr.Chen前端开发前端工程化大约 31 分钟约 9172 字

1.Linux 命令

命令概述

man 命令手册

功能键功能
空格键显示手册页的下一屏
Enter 键一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出 man 命令
h列出所有功能键
/word搜索 word 字符串

自动补全

在敲出命令的前几个字母的同时,按下 tab 键,系统会自动帮我们补全命令

历史命令

当系统执行过一些命令后,可按上下键翻看以前的命令,history 将执行过的命令列举出来

文件、磁盘管理

文件管理

<1>查看文件信息 ls
参数含义
-a显示指定目录下所有子目录与文件,包括隐藏文件
-l以列表方式显示文件的详细信息
-h配合 -l 以人性化的方式显示文件大小
通配符
通配符含义
*文件代表文件名中所有字符
ls te*查找以 te 开头的文件
ls *html查找结尾为 html 的文件
代表文件名中任意一个字符
ls ?.c只找第一个字符任意,后缀为.c 的文件
ls a.?只找只有 3 个字符,前 2 字符为 a.,最后一个字符任意的文件
[][”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。
[abc]匹配 a、b、c 中的任意一个
[a-f]匹配从 a 到 f 范围内的的任意一个字符
ls [a-f]*找到从 a 到 f 范围内的的任意一个字符开头的文件
ls a-f查找文件名为 a-f 的文件,当“-”处于方括号之外失去通配符的作用
|如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。
ls *a查找文件名为*a 的文件
<2>输出重定向命令

Linux 允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

  • 如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
  • 可以使用 cat 查看文件的内容 cat xxx(文件名)
  • 总结:所谓的重定向就是修改了默认的输出内容

注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部

<3>分屏显示

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用 more 命令,每次只显示一页,按下空格键可以显示下一页,按下 q 键退出显示,按下 h 键可以获取帮助。

more feiji.py//文件名
<4>管道:|

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

ls -lh |more
<5>清屏:clear

clear 作用为清除终端上的显示(类似于 DOS 的 cls 清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。

<6>切换工作目录: cd

在使用 Unix/Linux 的时候,经常需要更换工作目录。cd 命令可以帮助用户切换工作目录。Linux 所有的目录和文件名大小写敏感

cd 后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

命令含义
cd切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。
cd ~切换到当前用户的主目录(/home/用户目录)
cd .切换到当前目录
cd ..切换到上级目录
cd -可进入上次所在的目录

注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。

<7>显示当前路径:pwd

使用 pwd 命令可以显示当前的工作目录,该命令很简单,直接输入 pwd 即可,后面不带参数。

<8>创建目录:mkdir

通过 mkdir 命令可以创建一个新的目录。参数-p 可递归创建目录。

需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

mkdir a/b/c/d  //error
mkdir a/b/c/d -p //success
tree  //以目录树的方式显示
<9>删除空目录:rmdir

可使用 rmdir 命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。

<10>删除文件:rm

可通过 rm 删除文件或目录。使用 rm 命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在 rm 后使用-i 参数以逐个确认要删除的文件。

常用参数及含义如下表所示:

参数含义
-i以进行交互式方式执行(删除前提示)
-f强制删除,忽略不存在的文件,无需提示
-r递归地删除目录下的内容,删除文件夹时必须加此参数
<11>建立链接文件:ln

Linux 链接文件类似于 Windows 下的快捷方式。

链接文件分为软链接和硬链接。

软链接:软链接不占用磁盘空间,源文件删除则软链接失效。

硬链接:硬链接只能链接普通文件,不能链接目录。

使用格式:

  • ln 源文件 链接文件
  • ln -s 源文件 链接文件

如果没有-s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s 选项是更常见的形式。

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

ln haha.txt haha_hardlink.txt//硬链接

ln -s haha.txt haha_softlink.txt //软连接
ls -lh //列表预览文件详情
gedit haha.txt //打开新窗口查看并编辑文件

cat haha.txt //命令窗口内查看文件内容

rm haha softlink.txt //删除软链接如同删除快捷方式,不会影响源文件

gedit haha_hardlink.txt//通过硬链接可以修改源文件
gedit haha_softlink.txt//通过软链接修改文件
rm haha.txt //删除源文件
gedit haha_softlink.txt //删除源文件后,打开软链接,看不到数据
gedit haha_hardlink.txt//删除源文件后,通过硬链接文件,依然可以查看到原数据

总结:硬链接是同一个文件内容,单身有多个文件名,修改一个源文件,多个硬链接文件内容都会改变

<12>查看或者合并文件内容:cat
cat haha_hardlink.txt //查看当前路径下的文件内容

cat /etc/samba/smb.conf //查看绝对路径下的文件内容

cat test.txt test2.txt >heihei.txt //把test和test2两个文件的内容都重定向到heihei.txt中
//>表示:先清空,后添加
cat test.txt test2.txt >>heihei.txt
//>>表示:直接添加
<13>文本搜索:grep

Linux 系统中 grep 命令是一种强大的文本搜索工具,grep 允许对文本文件进行模式查找。如果找到匹配模式, grep 打印包含模式的所有行。

grep 命令格式为:

grep [-选项] ‘搜索内容串’文件名

  • 在 grep 命令中输入字符串参数时,最好引号或双引号括起来。例如:grep 'a' 1.txt。

常用选项说明:

选项含义
-v显示不包含匹配文本的所有行(相当于求反)
-n显示匹配行及行号
-i忽略大小写
  • grep 搜索内容串可以是正则表达式。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

grep 常用正则表达式:

参数含义
^a行首,搜寻以 m 开头的行;例如:grep -n '^a' 1.txt
ke$行尾,搜寻以 ke 结束的行;例如:grep -n 'ke$' 1.txt
[Ss]igna[Ll]匹配 [] 里中一系列字符中的一个;搜寻匹配单词 signal、signaL、Signal、SignaL 的行;例如:grep -n '[Ss]igna[Ll]' 1.txt
.(点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;例如:grep -n 'e.e' 1.txt
<14>查找文件:find

find 命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

命令含义
find ./ -name test.sh查找当前目录下所有名为 test.sh 的文件
find ./ -name '*.sh'查找当前目录下所有后缀为.sh 的文件
find ./ -name "[A-Z]*"查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M查找在/tmp 目录下等于 2M 的文件
find /tmp -size +2M查找在/tmp 目录下大于 2M 的文件
find /tmp -size -2M查找在/tmp 目录下小于 2M 的文件
find ./ -size +4k -size -5M查找当前目录下大于 4k,小于 5M 的文件
find ./ -perm 0777查找当前目录下权限为 777 的文件或目录
<15>拷贝文件:cp

cp 命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于 DOS 下的 copy 命令。

常用选项说明:

选项含义
-a该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
-f已经存在的目标文件而不提示
-i交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
-v显示拷贝进度
<16>移动文件:mv

用户可以使用 mv 命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

选项含义
-f禁止交互式操作,如有覆盖也不会给出提示
-i确认交互方式操作,如果 mv 操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
-v显示移动进度
<17>归档管理:tar

计算机中的数据经常需要备份,tar 是 Unix/Linux 中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar 使用格式 tar [参数] 打包文件名 文件

tar 命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

参数含义
-c生成档案文件,创建打包文件
-v列出归档解档的详细过程,显示进度
-f指定档案文件名称,f 后面一定是.tar 文件,所以必须放选项最后
-t列出档案中包含的文件
-x解开档案文件

注意:除了 f 需要放在参数的最后,其它参数的顺序任意。

tar 这个命令并没有压缩的功能,它只是一个打包的命令,但是在 tar 命令中增加一个选项(-z)可以调用 gzip 实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法:tar cvzf 压缩包包名 文件 1 文件 2 ...

-z :指定压缩包的格式为:file.tar.gz

tar -zcvf test.tar.gz *//将当前路径下所有的文件以及文件夹打包并压缩到test.tar.gz文件中

解压用法: tar zxvf 压缩包包名

-z:指定压缩包的格式为:file.tar.gz

tar -zxvf test.tar.gz //解压到当前路径下
tar -zxvf test.tar.gz -C dongge/ 解压到指定路径

解压到指定目录:-C(大写字""C")

<18>文件压缩解压:gzip

tar 与 gzip 命令结合使用实现文件打包、压缩。 tar 只负责打包文件,但不压缩,用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxxx.tar.gz。

gzip 使用格式如下:

gzip [选项] 被压缩文件

常用选项:

选项含义
-d解压
-r压缩所有子目录
gzip -r test.tar test.tar.gz //压缩当前目录下所有子目录

gzip -d test.tar.gz //解压缩
gzip test.tar //解压
<19>文件压缩解压:bzip2

tar 与 bzip2 命令结合使用实现文件打包、压缩(用法和 gzip 一样)。

tar 只负责打包文件,但不压缩,用 bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxxx.tar.gz2。

在 tar 命令中增加一个选项(-j)可以调用 bzip2 实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)

解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

<20>文件压缩解压:zip、unzip

通过 zip 压缩文件的目标文件不需要指定扩展名,默认扩展名为 zip。

压缩文件:zip [-r] 目标文件(没有扩展名) 源文件

解压文件:unzip -d 解压后目录文件 压缩文件

zip myzip * //压缩所有文件到myzip文件中
unzip -d ./test myzip.zip //解压到test文件夹

<21>查看命令位置:which
which ls//如果找到就显示这个命令的路径

Linux 命令-用户、权限管理

  • Unix/Linux 系统中的 root 账号通常用于系统的维护和管理,它对 Unix/Linux 操作系统的所有部分具有不受限制的访问权限。

  • 在 Unix/Linux 安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。

  • 在大多数版本的 Unix/Linux 中,都不推荐直接使用 root 账号登录系统。

<1>查看当前用户:whoami

whoami 该命令用户查看当前系统当前账号的用户名。可通过 cat /etc/passwd 查看系统用户信息。

由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以 su 命令切换到 root 身份对传统进行管理。这时候就可以使用 whoami 来查看当前用户的身份。

<2>查看登录用户:who

who 命令用于查看当前所有登录系统的用户信息。

常用选项:

选项含义
-m 或 am I只显示运行 who 命令的用户名、登录终端和登录时间
-q 或--count只显示用户的登录账号和登录用户的数量
-u 或--heading显示列标题
<3>退出登录账户: exit
  • 如果是图形界面,退出当前终端;
  • 如果是使用 ssh 远程登录,退出登陆账户;
  • 如果是切换后的登陆用户,退出则返回上一个登陆账号。
<4>添加用户账号:useradd

在 Unix/Linux 中添加用户账号可以使用 adduser 或 useradd 命令,因为 adduser 命令是指向 useradd 命令的一个链接,因此,这两个命令的使用格式完全一样。

useradd 命令的使用格式如下: useradd [参数] 新建用户账号

参数含义
-d指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home 目录下建立与用户名同名目录为主目录
-m自动建立目录
-g指定组名称

相关说明:

  • Linux 每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
  • 每一个用户必须有一个主目录,所以用 useradd 创建用户的时候,一定给用户指定一个主目录;
  • 用户的主目录一般要放到根目录的 home 目录下,用户的主目录和用户名是相同的;
  • 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
命令含义
useradd -d /home/abc abc -m创建 abc 用户,如果/home/abc 目录不存在,就自动创建这个目录,同时用户属于 abc 组
useradd -d /home/a a -g test -m创建一个用户名字叫 a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于 test 组
cat /etc/passwd查看系统当前用户名
sudo useradd dong -m -d /home/dong  创建新用户
<5>设置用户密码:passwd

在 Unix/Linux 中,超级用户可以使用 passwd 命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。

sudo passwd dong521521 //修改密码
<6>删除用户:userdel
命令含义
userdel abc(用户名)删除 abc 用户,但不会自动删除用户的主目录
userdel -r abc(用户名)删除用户,同时删除用户的主目录
<7>切换用户:su

可以通过 su 命令切换用户,su 后面可以加“-”。su 和 su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:

su test //不会主动切换到test这个用户的主目录 需要先验证登录密码

su -test //登录成功后主动切换到test的主目录

注意:如果是 ubuntu 平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu 无需切换到 root 用户即可操作,只需加“sudo”即可。sudo 是 ubuntu 平台下允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,减少了 root 用户的登陆和管理时间,提高了安全性。

命令含义
su切换到 root 用户
su root切换到 root 用户
su -切换到 root 用户,同时切换目录到/root
su - root切换到 root 用户,同时切换目录到/root
su 普通用户切换到普通用户
su - 普通用户切换到普通用户,同时切换普通用户所在的目录

Ubuntu 下切换到 root 的简单命令:

whoami //查询当前用户
sudo -s //切换到root
//#标识root用户 $表示普通用户
<8>查看有哪些用户组
  • 方法一:

cat /etc/group

  • 方法二:

groupmod +三次 tab 键

<9>添加、删除组账号:groupadd、groupdel
  • groupadd 新建组账号
  • groupdel 组账号
  • cat /etc/group 查看用户组
<10>修改用户所在组:usermod
  • 使用方法:usermod -g 用户组 用户名
<11>查看用户在哪些组
 groups dongGe
<12>为创建的普通用户添加 sudo 权限
  • 新创建的用户,默认不能 sudo,需要进行一下操作

  • sudo usermod -a -G adm 用户名

  • sudo usermod -a -G sudo 用户名

<13>usermod -g 与 -G 的区别

-g 用来制定这个用户默认的用户组

-G 一般配合'-a'来完成向其它组添加

<14>修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法与数字法。

字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ]含义
uuser 表示该文件的所有者
ggroup 表示与该文件的所有者属于同一组( group )者,即用户组
oother 表示其他以外的人
aall 表示这三者皆是
[ +-= ]含义
+增加权限
-撤销权限
=设定权限
rwx含义
rread 表示可读取,对于一个目录,如果没有 r 权限,那么就意味着不能通过 ls 查看这个目录的内容。
wwrite 表示可写入,对于一个目录,如果没有 w 权限,那么就意味着不能在目录下创建新的文件。
xexcute 表示可执行,对于一个目录,如果没有 x 权限,那么就意味着不能通过 cd 进入这个目录。
chmod u+x test.txt //文件拥有者添加执行的权限
chmod u=rw,g=x,o=r 1.py
chmod u=,g=,o= hy.txt
数字法:“rwx” 这些权限也可以用数字来代替
字母说明
r读取权限,数字代号为 "4"
w写入权限,数字代号为 "2"
x执行权限,数字代号为 "1"
-不具任何权限,数字代号为 "0"

如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

chmod 751 file:

  • 文件所有者:读、写、执行权限
  • 同组用户:读、执行的权限
  • 其它用户:执行的权限

注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限

<15>修改文件所有者:chown
chown dong test.txt
<16>修改文件所属组:chgrp
sudo chgrp dong test.txt

Linux 命令-系统管理

<1>查看当前日历:cal

cal 命令用于查看当前日历,-y 显示整年日历:

<2>显示或设置时间:date

设置时间格式(需要管理员权限):

date [MMDDhhmm[[CC]YY][.ss]] +format

CC 为年前两位 yy 为年的后两位,前两位的 mm 为月,后两位的 mm 为分钟,dd 为天,hh 为小时,ss 为秒。如: date 010203042016.55。

显示时间格式(date '+%y,%m,%d,%H,%M,%S'):

format 格式含义
%Y,%y
%m
%d
%H
%M
%S

date //2018年8月19日 星期日
date '+%Y=%m=%d' //2016=12=18

<3>查看进程信息:ps

进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。

ps 命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:

选项含义
-a显示终端上的所有进程,包括其他用户的进程
-u显示进程的详细状态
-x显示没有控制终端的进程
-w显示加宽,以便显示更多的信息
-r只显示正在运行的进程
<4>动态显示进程:top

top 命令用来动态显示运行中的进程。top 命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用 top 命令时加上-d 来指定显示信息更新的时间间隔。

在 top 命令执行后,可以按下按键得到对显示的结果进行排序:

按键含义
M根据内存使用量来排序
P根据 CPU 占有率来排序
T根据进程运行时间的长短来排序
U可以根据后面输入的用户名来筛选进程
K可以根据后面输入的 PID 来杀死进程。
q退出
h获得帮助
<5>终止进程:kill

kill 命令指定进程号的进程,需要配合 ps 使用。

使用格式:

kill [-signal] pid

信号值从 0 到 15,其中 9 为绝对终止,可以处理一般信号无法终止的进程。

kill 9133 :9133 为应用程序所对应的进程号

有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束

<6>关机重启:reboot、shutdown、init
命令含义
reboot重新启动操作系统
shutdown –r now重新启动操作系统,shutdown 会给别的用户提示
shutdown -h now立刻关机,其中 now 相当于时间为 0 的状态
shutdown -h 20:25系统在今天的 20:25 会关机
shutdown -h +10系统再过十分钟后自动关机
init 0关机
init 6重启
<7>检测磁盘空间:df

df 命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

选项含义
-a显示所有文件系统的磁盘使用情况
-m以 1024 字节为单位显示
-t显示各指定文件系统的磁盘空间使用情况
-T显示文件系统
sudo df -m//显示磁盘使用详情 已用,可用以1024字节 KB为单位显示
<8>检测目录所占磁盘空间:du

du 命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与 df 类似,du 更侧重于磁盘的使用状况。

du 命令的使用格式如下: du [选项] 目录或文件名

选项含义
-a递归显示指定目录中各文件和子目录中文件占用的数据块
-s显示指定文件或目录占用的数据块
-b以字节为单位显示磁盘占用情况
-l计算所有文件大小,对硬链接文件计算多次
du -h//-h 转换单位
du -s build/ -h
//指定路径
<9>查看或配置网卡信息:ifconfig

如果,我们只是敲:ifconfig,它会显示所有网卡的信息:

sudo ifconfig ens33 192.168.1.108 //修改ens33的ip sudo指权限
<10>测试远程主机连通性:ping
ping 192.168.1.108 //ip或域名均可
ping www.baidu.com

练习

创建test目录,在里面创建aa bb cc三个目录,在aa里创建hello文件,在bb里创建world目录,在cc里创建itcast.py,然后执行ls -R,最后删除test

查看当前Ubuntu的系统时间

把命令cal执行后看到的结果存放到 cal.txt文件中

创建一个文件 test.txt,修改其权限为 所有者可读可写,其他人没有任何权限

(较难,多与同学讨论)创建一个叫xiaohua的用户,然后创建一个新的用户组叫meinv,并将xiaohua用户添加到这个用户组中,然后创建一个新的文件,名字叫123.py,并修它的用户组为meinv

将 所学的所有命令,至少敲2遍,并能说出其功能

2.编辑器、服务器

2.1 gedit 编辑器

  • gedit 编辑器
  • gedit 是一个 Linux 环境下的文本编辑器,类似 windows 下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适。

2.2sublime 编辑器

Sublime Text 是一个代码编辑器(Sublime Text 2 是收费软件,但可以无限期试用)

Sublime Text 是由程序员 Jon Skinner 于 2008 年 1 月份所开发出来,它最初被设计为一个具有丰富扩展功能的 Vim。

Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等。

还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。

Sublime Text 是一个跨平台的编辑器,同时支持 Windows、Linux、Mac OS X 等操作系统。

2.3 ubuntu 软件安装与卸载方法

1.寻找国内软件源open in new window

2. 备份 Ubuntu 默认的源地址

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

3. 更新源服务器列表

sudo gedit /etc/apt/sources.list
//打开新窗口,删除所有的文字内容,把复制的更新源信息粘贴至此,然后保存关闭

4. 更新源

做完此步骤之后,就可以进行 apt-get install 下载了

sudo apt-get update //更新软件源

5.Ubuntu 软件操作的相关命令

  • sudo apt-get update 更新源
  • sudo apt-get install package 安装包
  • sudo apt-get remove package 删除包
  • sudo apt-cache search package 搜索软件包
  • sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
  • sudo apt-get install package --reinstall 重新安装包
  • sudo apt-get -f install 修复安装
  • sudo apt-get remove package --purge 删除包,包括配置文件等
  • sudo apt-get build-dep package 安装相关的编译环境
  • sudo apt-get upgrade 更新已安装的包
  • sudo apt-get dist-upgrade 升级系统
  • sudo apt-cache depends package 了解使用该包依赖那些包
  • sudo apt-cache rdepends package 查看该包被哪些包依赖
  • sudo apt-get source package 下载该包的源代码
  • sudo apt-get clean && sudo apt-get autoclean 清理无用的包
  • sudo apt-get check 检查是否有损坏的依赖

2.4Linux 常用服务器构建-ftp 服务器

ftp 服务器

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。

用于 Internet 上的控制文件的双向传输。

同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在 FTP 的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。

"下载"文件就是从远程主机拷贝文件至自己的计算机上;

"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

1.安装 vsftpd 服务器

sudo apt-get install vsftpd

2.配置 vsftpd.conf 文件

sudo vi /etc/vsftpd.conf //打开vsftpd.conf
//新窗口中添加设置,
//1.不允许匿名用户登录
anonymous_enable=NO
//2.指定ftp上传下载目录
local_root=/home/python/ftp
//3.允许本机登录
local_enable=YES
//4.允许vsftpd.chroot_list文件中的用户进行登录FTP服务器
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
//5.允许上传文件到FTP服务器
write_enable=YES
//建立此文件,将Ubuntu的一个用户名放到此文件中
sudo vi /etc/vsftpd.chroot_list
//打开新窗口 放入在登录FTP服务器时的用户名
//更改登录FTP服务器时的用户名下的文件夹权限 减去w即文件夹的拥有者不能有写权限
ls -lh
//在ftp文件夹中建立一个文件夹,此文件夹就是使ftp客户端进行下载、上传时的文件夹
mkdir share
//重启ftp服务器 因为已经修改过/etc/vsftpd.conf,所以只有重启才能使ftp服务器按照配置进行工资
sudo /etc/init./vsftpd restart

测试上传功能,登陆 ftp 服务器

ftp  192.168.1.102 //登录
//输入用户名
//输入密码

4.上传命令,可以把文件上传到 ftp 服务器

put somefile

5.下载命令,可以把 ftp 服务器上的文件下载到本地

get somefile

图形界面的 ftp 客户端(filezilla)

2.5、Linux 常用服务器构建-ssh 和 scp

1.ssh

<1>ssh 介绍

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。

利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行 SSH。

使用 SSH 服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A 机器想被 B 机器远程控制,那么,A 机器需要安装 SSH 服务器,B 机器需要安装 SSH 客户端。

<2>安装 ssh

  • A.安装 ssh 服务器
sudo apt-get install openssh-server
  • B.远程登陆

ssh 用户名@IP

使用 ssh 访问,如访问出现错误。可查看是否有该文件 ~/.ssh/known_ssh 尝试删除该文件解决。

<3>使用 ssh 连接服务器

SSH 告知用户,这个主机不能识别,这时键入"yes",SSH 就会将相关信息,写入" ~/.ssh/know_hosts" 中,再次访问,就不会有这些信息了。然后输入完口令,就可以登录到主机了。

2.scp

远程拷贝文件,scp -r 的常用方法:

  • 1.使用该命令的前提条件要求目标主机已经成功安装 openssh-server 如没有安装
使用 sudo apt-get install openssh-server 来安装
  • 2.使用格式:

scp -r 目标用户名@目标主机 IP 地址:/目标文件的绝对路径 /保存到本机的绝对/相对路径

举例:

scp -r itcast@192.168.1.100:/home/itcast/QQ_dir/ ./mytest/lisi

在后续会提示输入“yes”此时,只能输“yes”而不能简单输入“Y” 拷贝单个文件可以不加 -r 参数,拷贝目录必须要加。

本地文件复制到远程:

scp FileName RemoteUserName@RemoteHostIp:RemoteFile scp FileName RemoteHostIp:RemoteFolder scp FileName RemoteHostIp:RemoteFile 本地目录复制到远程:

scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder scp -r FolderName RemoteHostIp:RemoteFolder 远程文件复制到本地:

scp RemoteUserName@RemoteHostIp:RemoteFile FileName scp RemoteHostIp:RemoteFolder FileName scp RemoteHostIp:RemoteFile FileName 远程目录复制到本地:

scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName scp -r RemoteHostIp:RemoteFolder FolderName

2.6Linux 常用服务器构建-samba

1. 介绍

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,能够完成在 windows、mac 操作系统下访问 linux 系统下的共享文件

2. 安装

使用 apt 命令安装 samba

sudo apt-get install samba samba-common

3. 配置

3.1 创建存放共享文件的路径

在 home 路径下操作:

touch share

修改其权限:

chmod 777 share

修改 samba 的配置文件:

vi /etc/samba/smb.conf
//打开新窗口 在文件末尾添加
[share]
    path=/home/share
    available=yes
    browseable=yes
    #public=yes #不需要密码
    writable=yes

3.2 创建 samba 账户

touch /etc/samba/smbpasswd
smbpasswd -a python

4.重启 samba

当对配置进行了更新,需要重启 samba 软件后才可生效

重启命令如下:

/etc/init.d/smbd restart //重新启动

5. 访问共享文件

5.1 mac 下访问方式

前往=>连接服务器=>服务器地址添加=>连接=>注册用户=>输入用户名、密码=>连接

5.2 windows 下访问方式

开始 运行 格式为:\IP 地址

\\172.16.0.152
//输入用户名、密码 连接

2.7 附录-vim 分屏操作

vim 分屏操作

  • sp: 上下分屏,后可跟文件名

  • vsp: 左右分屏,后可跟文件名

Ctr+w+w: 在多个窗口切换

启动分屏:

  • 1.使用大写 O 参数进行垂直分屏

$ vim -On file1 file2 ...

  • 2.使用小写 o 参数进行水平分屏

$ vim -on file1 file2 ... 注: n 是数字,表示分屏的数量,n 要大于等于文件个数

关闭分屏

  • 1.关闭当前窗口

ctrl+w c

  • 2.关闭当前窗口,如果只剩最后一个,则退出 vim

ctrl+w q

编辑中分屏

  • 1.上下分割当前打开的文件

ctrl+w s

  • 2.上下分割,并打开一个新的文件

:sp filename

  • 3.左右分割当前打开的文件

ctrl+w v

  • 4.左右分割,并打开一个新的文件

:vsp filename

分屏编辑中光标的移动

vi 中的光标键是 h,j,k,l,要在各个屏之间切换,只需要先按一下 ctrl+w

  • 1.把光标移动到上边的屏

ctrl+w k

  • 2.把光标移动到下边的屏

ctrl+w j

  • 3.把光标移动到右边的屏

ctrl+w l

  • 4.把光标移动到左边的屏

ctrl+w h

  • 5.把光标移动到下一个的屏

ctrl+w w

移动分屏

  • 1.向上移动

ctrl+w K

  • 2.向下移动

ctrl+w J

  • 3.向右移动

ctrl+w L

  • 4.向左移动

ctrl+w H

屏幕尺寸

  • 1.增加高度

ctrl+w +

  • 2.减少高度

ctrl+w -

  • 3.让所有屏的高度一致

ctrl+w =

  • 4.左加宽度

ctrl+w >

  • 5.右加宽度

ctrl+w <

  • 6.右增加 n 宽 (如:n=30)

ctrl+w n <

vim 打造 IDE

简洁版 IDE

  • C+p: 生成 tags

  • C+]: 跳转到函数定义

  • C+t:从函数定义返回

  • C+o:在左侧打开文件列表

  • F4: 在右侧打开函数列表

  • C+n:补齐函数,向下翻

  • vimrc 是 vim 的配置文件,可以修改两个位置

    1. /etc/vim/vimrc
  • 2.~/.vimrc

~/.vimrc 优先级高

上次编辑于: