Python 高级 2

1.高级Linux命令及命令选项的使用

<1>重定向命令:>

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

如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

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

<2>查看或者合并文件内容:cat

cat 1.txt 2.txt > 3.txt

提示:

gedit 文件编辑命令,可以查看和编辑文件

<3>分屏显示:more

more 1.txt

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

<4>管道:|

ls -alh | more

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

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

<5>建立链接文件:ln

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

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

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

使用格式:

ln -s 源文件 链接文件

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

使用格式:

ln 源文件 链接文件

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

注意:

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

<6>文本搜索: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

<7>查找文件:find

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

常用用法:

命令 含义

find ./ -name test.sh 查找当前目录下所有名为test.sh的文件

find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件

find ./ -name "[A-Z]*" 查找当前目录下所有以大写字母开头的文件

<8>通配符

通配符是一种特殊字符,用来模糊搜索文件。

统配字符注意有

  *:代表0个或多个任意字符

  ?:代表任意一个字符

  [列举的字符]:代表的任意一个字符

举例

  find . -name *.txt

  ls 1?3.txt

小结: ls, find命令一般会结合通配符使用

<9>打包及压缩:tar

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

tar使用格式 tar [选项] 打包文件名 文件

常用参数:

选项 含义

-c 生成档案文件,创建打包文件

-v 列出归档解档的详细过程,显示进度

-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后

-x 解开档案文件

-z 压缩

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

1> gz压缩格式

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

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

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

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

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

解压到指定目录:-C (大写字母“C”)

2> bz2压缩格式

  压缩用法: tar -jcvf 压缩包包名 文件

  解压用法: tar -jxvf 压缩包包名

3> zip压缩格式

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

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

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

<10>修改文件权限:chmod

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

字母法:chmod u/g/o/a +/-/= rwx 文件

[ u/g/o/a ] 含义

u user 表示该文件的所有者

g group 表示与该文件的所有者属于同一组( group )者,即用户组

o other 表示其他以外的人

a all 表示这三者皆是

[ +-= ] 含义

+ 增加权限

- 撤销权限

= 设定权限

rwx 含义

r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。

w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。

x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

如果需要同时进行设定拥有者、同组者以及其他人的权限,参考如下:

数字法:“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 权限

<11>查看命令位置:which

which ls

如果找到就显示这个命令的路径

注意:

  which cd 是查看不了命令所在目录,原因是:

      a. Linux命令是分为内置命令和外部命令

          i. 内置命令是在系统启动时就载入内存执行效率高

          ii. 外面命令是系统的软件功能,需要时载入内存

      b. cd属于内置命令

<12>切换到管理员账号:sudo -s

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

提示: 一般不需要切换到管理员账户,需要使用管理员权限在命令前面加上sudo

<13>查看当前用户:whoami

查看当前用户命令是 whoami

<14>设置用户密码:passwd

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

<15>退出登录账户: exit

  如果是图形界面,退出当前终端;

  如果是使用ssh远程登录,退出登陆账户;

  如果是切换后的登陆用户,退出则返回上一个登陆账号。

<16>查看所有的登录用户:who

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

<17>关机、重启:shutdown、reboot

命令 含义

reboot 重新启动操作系统

shutdown –r now 重新启动操作系统,shutdown会给别的用户提示

shutdown -h now 立刻关机,其中now相当于时间为0的状态

shutdown -h 20:25 系统在今天的20:25 会关机

shutdown -h +10 系统再过十分钟后自动关机

2.远程登录和远程拷贝

查看当前IP:

ifconfig

<1>ssh介绍

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

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

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

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

在Windows上安装ssh

下载安装OpenSSH forWindows

<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" 中,再次访问,就不会有这些信息了。然后输入完口令,就可以登录到主机了。

<4>scp

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

  使用该命令的前提条件要求目标主机已经成功安装openssh-server

如没有安装使用 sudo apt-get install openssh-server 来安装

  使用格式:

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

举例:

scp -r [email protected]:/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

<5>图形化界面上传下载

我们在 Mac Ubuntu 通过命令可以上传下载文件, 也可使用图形界面的方式, 我们这里推荐一款 ftp 客户端软件 filezilla, 该款软件有 Mac Linux Windows 3个版本. Filezilla 支持 SFTP(基于 SSH 协议的 FTP). Linux 的 SSH 服务包含了 SFTP 功能

小结

  1. scp可以实现Ubuntu远程连接和文件上传和下载

  2. 在windows系统上远程连接Ubuntu需要安装OpenSSH软件

  3. FileZilla工具通过SFTP协议实现文件上传和下载

3.软件安装与卸载

在Ubuntu中主要分为以下两种种软件安装的方式:

  通过apt-get包管理器从软件源中安装(图形化和终端命令两种方式);

  通过deb格式的软件包安装;

<1>Ubuntu软件操作的相关命令

sudo apt-get update  更新源

sudo apt-get install package 安装包

sudo apt-get remove package 删除包

小结

  Ubuntu软件安装常见的两种方式

      下载deb扩展名的安装包直接双击安装

      通过apt-get工具安装,90%都是以这种方式安装

  Ubuntu镜像源默认在国外,国内下载比较慢,需要将镜像源更改到国内

      通过Ubuntu软件中心更改

      手动更新sources.list文件并且需要执行sudo apt-get update 进行更新

你可能感兴趣的:(Python 高级 2)