Python高级 Day2 linux基础2

Python高级 Day2 linux基础2

准备初始数据:
 1. 在桌面创建test目录
    mkdir test
 2. 拷贝/opt/sublime_text 目录下的文件 到test目录中
    (只复制文件,不复制目录)
     cp /opt/sublime_text/*  ./test

一、 linux命令

1. |  : 管道命令
  管道:一个命令的输出可以通过管道作为另一个命令的输入
  	示例1: 分别用ls 和 tree命令查看 根目录/ 的内容,且分屏显示
  	 1. ls / | more
  	 2. tree / | more 
  	 
2. ln  : 链接命令   
    (ln: link)

	格式: ln [选项] 目标 链接名	
		 选项: -s  : 创建软链接(soft), 好比windows中的快捷方式

		 - 硬链接
		    ln  目标 链接名
		 - 软链接
		     ln -s 目标 链接名 :好比windows中的快捷方式
	
	示例1 :在桌面创建一个01.txt文件,对该文件创建软连接01_s_link.txt
	      1. touch 01.txt 
	      2. ln -s 01.txt 01_soft_link.txt

	示例2:在桌面创建一个01.txt文件,对该文件创建硬连接01_link.txt
	     ln  01.txt 01_link.txt
	 	
   软链接与硬链接相同点与区别 
		1. 软链接与硬链接最终都是指向同一个文件存储区域(文件描述符)
		2. 当源文件名删除, 软链接变成无效链接,而硬链接还可以打开源文件的内容
		3. 文件详细列表显示时, 软链接的文件类型是 l,而硬链接是 -
		4. 软连接可以链接文件和目录,而硬链接只能链接文件

 提示: 如果是在目标文件所在目录以外的目录创建软链接,那么软链接的目标文件路径写绝对路径

  	

3. grep: 查找某个文件的文本 ,显示匹配行

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

   选项:

      - i: 不区分大小写

	  - n: 显示匹配行的行号

	  - v: 显示不匹配的行



	示例1: 把家目录中的文件信息写入桌面的home.txt中, 并且查找D字符
	(当前目录是桌面)
	   1. ls ~ > home.txt
	   2. grep 'D' home.txt
	   3. grep -i 'D' home.txt
	   4. grep -in 'D' home.txt
	   5. grep -inv 'D' home.txt

		

	示例2: 查询mysql程序是否运行(拓展)

	   命令: ps(process:进程)

	    ps -aux | grep 'mysql'

	    提示: ps命令 ,  查看当前运行的进程 ,-aux: 以bsd的格式显示内容
	   
4. find:查找文件
	
	格式 find [路径] [-name|-size|-perm] [匹配规则] 

	(当前目录是Desktop/test目录)

  a> 按名称查找
	示例1:查找test目录中扩展名是py的文件
	   find ./  -name '*.py'

	示例2:查找test目录中以c或者s字母开头的文件
		find ./  -name '[cs]*'
  b>按大小查找
    示例2:查找test目录大于2M的文件
      find ./ -size +2M

  c>按权限查找(perm : permission:权限)
     find ./ -perm 权限值
    文件的权限:rwxr-xr-x
       不同类型的用户:  
         1. 属主用户
         2. 属主用户的同组用户
         3. 其他用户
	示例3:查找出test目录中属主用户有读写权限,同组用户及其他用户只有读权限的文件
	  find ./ -perm 644

	  rw-  r--  r--
	  421  4     4
	  6

	示例4:查找出test目录中属主用户有读写执行权限,同组用户及其他用户只有读和执行权限的文件
	  find ./ -perm  755
	  rwx  r-x   r-x
	   7    5     5



	   

5. tar: 打包压缩命令
 格式 : tar [选项] 打包后的文件名 要打包的文件
   选项:
 	 1. c :创建打包文件,归档文件
	 2. v :显示打包或者拆包详情
	 3. f :指定打包后的文件名称,f后面接xxx.tar文件
	 4. x :解包,拆包
	 5. z :以gzip压缩或者解压文件 
	 6. C : 解压到指定路径,-C 选项 后面接解压后存放文件的目录
    (当前目录是test目录)
  示例1: 对test目录下的所有文件打包成my.tar 文件
      tar -cvf  my.tar  * 
  
  示例2: 对my.tar 文件进行拆包
     tar -xvf my.tar
  
  示例3: 对test目录下的所有文件打包且以gzip格式压缩 成 my.tar.gz文件
      tar -czvf my.tar.gz *
    
  示例4:  对my.tar.gz 解压及拆包到桌面的test2目录中
      1. tar -xzvf my.tar.gz
      2. 
        2.1 mkdir ../test2
        2.2 tar -xzvf my.tar.gz -C ../test2
	写出使用tar打包并压缩为**.tar.bz2的命令
	tar -jcvf my.tar.bz2
	
	写出解压缩**.tar.bz2的命令
	tar -jxvf my.tar.bz2
  	  
6. chmod :对文件或目录设置权限
	a>字母法
	格式: chmod u/g/o/a +/-/= rwx 文件
	  用户:
	   u: 属主用户
	   g: 同组其他用户
	   o: 其他用户
	   a:所有用户

	  授权:
	   +: 添加权限
	   -: 移除权限
	   =: 设定权限

	  权限:
	   r: 读
	   w:写
	   x: 执行
	   -:无权限

	   

	示例1: 对test2目录下的sublime.py 文件的拥有者用户及同组用户添加执行权限,对其他用户添加写权限

	  chmod u+x,g+x,o+w  sublime.py



	示例2: 对test2目录下的sublime.py同组用户移除执行权限,对其他用户设置无权限
       1. chmod   g-x,o=- sublime.py
       2. chmod   g-x,o= sublime.py

		

	b>数字法

	  格式:chmod  权限数字表示法 文件名

	  

	示例3:使用数字法对test2目录的sublime.py所有用户均设置读写执行权限
	   chmod 777 sublime.py

	   rwx rwx rwx
	   421 
		
7. which : 查找命令的位置
	示例:分别查看ls和shutdown两个命令在哪个目录中
	 1. which ls
	 2. which shutdown
	
8. 与用户相关命令(who、sudo、passwd、su、exit)

	a> who : 查看哪些用户在登录
		示例1:查看当前哪些用户在登录

		python@ubuntu:~/Desktop$ who
		python   tty7         2018-09-10 14:31 (:0)
		python   pts/2        2018-09-10 16:36 (192.168.110.95)

		1. 用户名:python
		2. 连接方式: tty7: 本地连接   pts: 远程连接
		   远程主机的ip:192.168.110.95

			

	b> sudo : superuser do : 超级用户授权当前用户执行命令
		格式: sudo command 
		 
		示例2:在/opt目录下创建images文件夹
		 python@ubuntu:/opt$ mkdir images
		mkdir: 无法创建目录"images": 权限不够
		python@ubuntu:/opt$ sudo mkdir images
		[sudo] python 的密码: 
		python@ubuntu:/opt$ ls
		google  images  pycharm-2016.3.1  sublime_text  vmware-tools-installer
		python@ubuntu:/opt$ 

		

	c> passwd : 设置用户的密码

	   格式: sudo passwd 用户名

	   示例3:设置root用户密码

	   sudo passwd root

	d> su(switch user) : 切换用户
		示例4:使用su命令切换到root用户
		 su root
	   
	e> exit : 退出用户登录,不是关机
	  1. 如果是ubuntu图形界面打开的命令终端,退出当前终端
	  2. 如果是使用ssh远程登录,退出登录账户
	  3. 如果是切换后的登录用户,退出则返回上一个登录账号

	  示例5:使用exit命令退出命令终端界面

		 

9. 关机相关命令(reboot、shutdown)



	a> reboot: 重启
	b> shutdown: 关机
	  -h: halt ,停掉系统,并没有掉电,主板是通电的
	   1. shutdown –r now :立即重启
	   2. shutdown -h now :立即关机
	   3. shutdown -h 20:25 :指定某个时间关机
	   4. shutdown -h +10  : 10分钟后关机

二、 ubuntu软件的安装与卸载

四种安装软件的方式:
	通过deb格式的离线软件包安装   
	直接解压gzip等压缩格式文件
	通过apt-get包管理器从软件源中在线安装
	从软件源码手动编译安装

1. 离线安装
	a> 直接解压gzip等压缩格式文件
	
	示例1: 解压 pycharm.tar.gz 文件到 /opt/mysoft ,并且运行pycharm软件
	  1. sudo mkdir /opt/mysoft
	  2. sudo tar -xzvf pycharm.tar.gz -C /opt/mysoft
	  3. 执行文件:
	   python@ubuntu:/opt/mysoft/pycharm-community-2017.2.4/bin$ ./pycharm.sh 

	 提示: xxx.sh是linux 可执行的shell脚本文件
	      好比 windows xxx.exe  ,bat文件

	

	b> 通过ubuntu支持的安装包安装 

		ubuntu 支持deb格式  ,deb格式是Debian系统(包含Debian和Ubuntu)专属安装包格式 ,好比android  的xxx.apk格式



	格式:
		sudo dpkg -i xxx.deb # 安装包   
		   (-i:install)
 
		sudo dpkg -r package # 删除包  
		   (-r: remove)
			
	示例2: 在ubuntu环境中安装和卸载网络助手软件
	    安装: sudo dpkg -i qq.deb
		卸载: sudo dpkg -r mnetassist
		 提示: 命令 : dpkg -l :列举当前安装的程序(包)的名称
					dpkg -l | grep 'mnet' (搜索大概的名字)

	

2. 通过apt-get包管理器从软件源中在线安装(最常用的方式)



	apt-get 常用命令:
		sudo apt-get install package 
		sudo apt-get remove package 
		sudo apt-get update  更新源

	示例3: 安装sl包,并且演示效果
	  安装: sudo apt-get install sl 
	  卸载: sudo apt-get remove sl

三、 vim 软件的使用

1. 三种工作模式:
    命令模式
    编辑模式
    末行模式

	a> 命令模式:打开文件,默认进入此模式,通过命令的方式对文档进行编辑,比如复制,粘贴,删除行等操作
	b> 编辑模式: 在命令模式中按i或者a进入编辑模式,可输入文本进行编辑文档。按'esc'退出编辑模式,进入命令模式
	c> 末行模式: 在命令模式按':' 进入末行模式,在末行模式中可实现查找替换文本、保存退出文件等操作,按'esc'进入命令模式

2. 命令模式下的vim操作(了解)
 	a> 进入编辑模式
 		1. i或者a  (i在光标前添加文本,a在光标后添加文本)
 	b> 移动光标
 		1. 方向箭头  (上下左右)
 		2. hjkl     (上下左右)
 		3. G和gg    (G 文档最后一行, gg 文档首行)

 	c> 删除命令
 		1. dd和n dd   (dd删除光标所在行,5 dd删除指定行数,从光标所在行开始计算)

 	d> 撤销与恢复命令
 		1. u       (撤销)
 		2. ctrl+r  (恢复)

 	e> 复制粘贴命令
 		1. yy 和 n yy  (yy复制当前行,5 yy复制5行)
 		2. p和n p      (p在光标所在位置向下新开一行粘贴,5p 粘贴5次)
	
	示例1: 复制2行内容, 放在末尾进行粘贴
	      2yy  G   p
		   
	示例2: 删除当前光标所在行,及以下的2行的数据
	     2 dd

3. 末行模式下的vim操作(了解)
	a> 查找替换操作
  		1. /str  (查找字符串)
	     	在命令模式直接按/ 符号, 进入末行模式
		   /ab (查询ab字符 ,enter回车后,按n指向下一个匹配的字符,去掉高亮显示:noh)
        2. %s/str/reg/g (替换字符串)
        	在命令模式直接按:符号, 进入末行模式
        	 %(多行操作)
		     s( 替换命令,默认替换当前行)
			 /str (要替换的文本)
			 /reg  (替换的规则)
			 /g(一行中替换多次)

		示例3: 查找文档中的abc字符
			在命令模式直接按/ 符号, 进入末行模式
		   /abc (查询ab字符 ,enter回车后,按n指向下一个匹配的字符,去掉高亮显示:noh)

			

		示例4: 把文档中的abc字符改为xyz

			在命令模式直接按:符号, 进入末行模式

			:%s/abc/xyz/g



	b> 保存退出命令
		1. w  (保存文档)
		2. q  (退出文档)
		3. wq (保存且退出文档)
	    4. x  (保存且退出文档)
		5. q! (不保存退出文档)
		6. set number/nonumber (显示行号或者隐藏行号)
		7. :9 (定位到某行)

四、 SSH服务

1. SSH介绍
	ssh(Secure Shell): 安全外壳  是一种网络安全协议,利用SSH协议可以有效防止远程管理过程中的信息泄露问题

2. ssh服务器安装
   sudo apt-get install openssh-server
	
3. 远程登录服务端
		
   a> Linux\Mac系统 通过ssh命令客户端远程登录服务端
     格式 : ssh 用户名@服务器IP
       python@ubuntu:~$  ssh  python@192.168.110.96
		The authenticity of host '192.168.110.96 (192.168.110.96)' can't be established.
		ECDSA key fingerprint is SHA256:/O0d2GZ+OZ85kT+GacHP5WrgpMeJwyWBOSfk1xTidXQ.
		Are you sure you want to continue connecting (yes/no)? yes
		Warning: Permanently added '192.168.110.96' (ECDSA) to the list of known hosts.
		python@192.168.110.96's password: 

   b> windows中使用ssh客户端工具putty\xshell 远程登录服务端
	  
	  1. ping 服务端的ip地址
	  
	  2. 使用putty\xshell 第三方ssh客户端工具远程登录ssh服务端
	
4. 基于ssh的文件上传下载 

	a> scp命令(linux/mac支持该命令)
		scp(secure copy)安全拷贝,基于ssh协议的远程文件拷贝命令,拷贝目录需要加 -r 选项
		提示: windows环境不支持该命令 
		
		1. 安全拷贝远程主机文件到本地
	      格式: scp RemoteUserName@RemoteHostIp:RemoteFile FileName
	       scp python@192.168.110.96: Desktop/info.txt   ./

		2. 安全拷贝本地文件到远程主机
	      格式: scp FileName RemoteUserName@RemoteHostIp:RemoteFile
	       scp ./local.txt  python@192.168.110.96: Desktop/
		
		示例1:拷贝远程ubuntu虚拟机桌面的remote_order.txt 到本地
		(在远程桌面创建remote目录,再创建remote_order.txt文件)
		  scp RemoteUserName@RemoteHostIp:RemoteFile FileName

		  scp python@192.168.110.96:Desktop/u/cc.txt   ./




		示例2:拷贝本地的local_order.txt文件到远程ubuntu虚拟机桌面
			(在本地桌面创建local目录,再创建local_order.txt文件)
		 scp FileName RemoteUserName@RemoteHostIp:RemoteFile

		 scp w.txt python@192.168.110.96:./Desktop/remote




	其他:
	
	 1. ssh客户端支持root登录
	    - sudo vim  /etc/ssh/sshd_config
	    - 修改PermitRootLogin配置项
	      将原先的prohibit-password修改为 yes
	    - 重启ssh服务
	    	sudo service ssh restart
	
	 2. 设置root账号密码
	 
		python@ubuntu:/home$ sudo passwd root
		[sudo] python 的密码: 
		输入新的 UNIX 密码: 
		重新输入新的 UNIX 密码: 
		passwd:已成功更新密码
		python@ubuntu:/home$ su root
		密码: 
		root@ubuntu:/home# cd python
		root@ubuntu:/home/python# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值