linux---操作命令/文件与目录的权限/软连接/

1. 常用操作命令

树状形式显示

yum install tree

 查看前5个进程

ps aux | head -n5

top(linux任务管理器)

top

tail(动态监测文件变化)

tail -f access.log

wget下载文件


# 下载安装wget
yum install wget

# 格式
wget 路径  默认下载在当前路径

# 案例
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-repo

压缩解压 

Windows的压缩包与Linux的压缩包能否互通


windwods:rar,zip  
linux:tar.gz, zip互通,不支持rar

tar打包与压缩参数(********  常用 ********) 

  • tar 命令:用来压缩和解压文件。
  • tar本身不具有压缩功能。他是调用压缩功能实现的
tar(选项)(参数)
-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。

 tar压缩解压案例

 # tar打包与压缩(********  常用 ********)

    # 解压
    tar -xf  xx.tar.gz     # 解压xx.tar.gz
    tar -zxvf Python-3.7.0b3.tgz # 解压
    tar -xjf xx.tar.bz2  # 解压缩bz2结尾的文件
    tar -xzvf  xx.tar.gz   # 解压tar.gz,详细过程列出来
    tar xf /etc/local.tar.gz  -C /tmp  # C指定解压到哪个路径
    
    
    # 压缩 tar -czvf 压缩包名称 压缩文件
    tar -czvf oldboy.txt.tar.gz oldboy.txt # 压缩oldboy.txt  
    tar -cf all_pic.tar *.jpg  # 压缩当前目录所有jpg结尾的文件


 gzip (只能压一个文件,不能压文件夹,会把原来的删除)

gzip (只能压一个文件,不能压文件夹,会把原来的删除)
	gzip file
    gzip -d file
    有什么用?
   	cd /etc/yum.repos.d/

    

zip的压缩和解压 

3 zip的压缩和解压
	yum install zip unzip -y
    zip  filename.zip  filename  # 压单个文件
    zip -r home.zip /home/   #把home文件夹压缩
    unzip  home.zip   #解压
    unzip -l  home.zip # 不解压,看内容
    unzip home.zip  -d /opt/   # 把当前路径下的home.zip 解压到opt

 curl:连通性

# 下载安装
yum install curl

# 用处测试连通性或者下载
你的django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组

# 案例下载(-o 指定位置以及名称)
curl -o /home/a.png https:72743-20190.png


# 查看网站用的是什么类型的web服务器
curl -I www.taobao.com

  上传下载 (4g以内)

# 下载安装
yum install lrzsz -y

# 使用
rz:上传,选择文件直接上传
sz:sz 文件路径  可以下载到当前主机

sort

# 案例
sort file.txt  对内容进行排序
sort -t ":" -k2 file.txt
sort -t ":" -n -k2 file.txt

uniq 去重 

uniq 去重,连续挨着的才能去,所以要跟sort连用

sort file2.txt | uniq

wc

wc -l /etc/services 

# 统计当前路径下有多少文件和文件夹
ls | wc -l 

# 统计有多少个ssh相关的进程
ps aux |grep ssh | wc -l 

查看系统版本信息

#查看系统版本信息
cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

#查看内核版本号
uname -r
3.10.0-693.el7.x86_64

#查看系统多少位
uname -m
x86_64

#查看内核所有信息
uname -a

netstat命令

  • netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
  • yum install net-tools
# 语法【选项】
netstat [选项]
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-l或--listening:显示监控中的服务器的Socket;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-a或--all:显示所有连线中的Socket;

# 实例
[root@oldboy_python ~ 10:21:59]#netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      814/sshd            
tcp6       0      0 :::111                  :::*                    LISTEN      2703/rpcbind        
tcp6       0      0 :::3306                 :::*                    LISTEN      29269/mysqld        
udp        0      0 0.0.0.0:758             0.0.0.0:*                           2703/rpcbind        
udp        0      0 0.0.0.0:111             0.0.0.0:*                           2703/rpcbind        

ps命令

  • ps命令用于报告当前系统的进程状态。
  • 可以搭配kill指令随时中断、删除不必要的程序。
  • ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
ps  (参数)

-e  显示所有程序
-f  显示UID等详细信息
-a	显示所有终端机下执行的程序,除了阶段作业领导者之外
 a	显示现行终端机下的所有程序,包括其他用户的程序
 x	显示所有程序,不以终端机来区分
 u	以用户为主的格式来显示程序状况
-u <用户识别码>	此选项的效果和指定”-U”选项相同
-p <程序识别码>	指定程序识别码,并列出该程序的状况

ps -ef|grep mysql
ps -ef|grep redis-server
参考实例

# 把所有进程显示出来:
ps -aux
ps -A
    
# 把所有进程显示出来,并输出到ps.txt文件:
ps -aux > ps.txt

# 查找特定进程信息:
ps -ef | grep ssh


# 显示指定用户信息:
ps -u root

# 按 CPU 资源的使用量对进程进行排序:
ps aux | sort -nk 3

# 按内存资源的使用量对进程进行排序:
ps aux | sort -rnk 4 

Kill命令

  • kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。
# 选项
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。

# 只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,
下面是常用的信号:
HUP     1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)

# 实例
先用ps查找进程,然后用kill杀掉:
ps -ef | grep vim
root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim
# 命令
kill 3268

pkill杀死进程

  • 支持正则的kill命令
pkill nginx
pkill uwsgi

查看磁盘

df -h

selinux防火墙

  • SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,这个功能管理员又爱又恨,大多数生产环境也是关闭的做法,安全手段使用其他方法。
  • 大多数ssh连接不上虚拟机,都是因为防火墙和selinux阻挡了

永久关闭方式:

1.修改配置文件,永久生效关闭selinux
cp /etc/selinux/config /etc/selinux/config.bak #修改前备份

2.修改方式可以vim编辑,找到
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

3.用sed替换
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4.检查状态
grep "SELINUX=disabled" /etc/selinux/config

# 出现结果即表示修改成功

临时关闭selinux(命令行修改,重启失效):

getenforce #获取selinux状态
#修改selinux状态
setenforce 
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
数字0 表示permissive,给出警告,不会阻止,等同disabled
数字1表示enforcing,表示开启

# Tip:
修改selinux配置后,想要生效还得重启系统,技巧就是(修改配置文件+命令行修改,达到立即生效)
生产环境的服务器是禁止随意重启的!!!!

iptables防火墙

  • 在学习阶段,关闭防火墙可以更方便的学习,
  • 在企业环境中,一般只有配置外网ip的linux服务器才会开启防火墙,
  • 但是对于高并发流量的业务服务器仍然是不能开启的,会有很大性能损失,
  • 因此需要更nb的硬件防火墙。

关闭防火墙具体操作如下:

centos7默认已经使用firewall作为防火墙了

# 关闭防火墙
iptables -F  # 临时关闭防火 允许所有的端口出去,清空所有的规则
systemctl status firewalld    # 查看防火墙状态
systemctl stop firewalld      # 关闭防火墙
systemctl disable firewalld   # 关闭防火墙开机启动
systemctl is-enabled firewalld.service  # 检查防火墙是否启动

hostnamectl 设置主机名

# 修改
hostnamectl set-hostname pyyuc
# 查看
hostname

DNS

  • DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
  • 通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。
# 查看Linux的dns,唯一配置文件

3 配置文件
cat /etc/resolv.conf

#dns服务器地址
nameserver 119.29.29.29
nameserver 223.5.5.5

本地强制dns解析文件/etc/hosts

指定本地解析:
/etc/hosts

主机IP    主机名    主机别名
127.0.0.1        www.pyyuc.cn

2 文件与目录的权限篇

介绍

  • Linux权限的目的是(保护账户的资料)
  • Linux权限主要依据三种身份来决定:
  • user/owner 文件使用者,文件属于哪个用户
  • group 属组,文件属于哪个组
  • others 既不是user,也不再group,就是other,其他人
  • 在Linux中,每个文件都有所属的所有者,和所有组,并且规定了文件的所有者,所有组以及其他人对文件的,可读,可写,可执行等权限。
  • 对于目录的权限来说,可读是读取目录文件列表,可写是表示在目录内新增,修改,删除文件。可执行表示可以进入目录

如何查看权限

ls -l
ls -lh  以人性化显示,kb,gb

文件类型参数介绍

 文件类型

文件类型:
-   #普通文件(文本, 二进制, 压缩, 图片, 日志等) 
d   #目录文件

b   #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c   #设备文件(字符设备),终端 /dev/tty1, /dev/zero
s   #套接字文件, 进程间通信(socket)
p   #管道文件
l   #链接文件

通过file来查看详细的类型

file a.txt 
file /bin/ls
        

权限参数

ls -l /var/log/mysqld.log 
-rw-r--r-- 1 mysql mysql 6735642 8月  11 14:19 /var/log/mysqld.log
这个就代表mysqld.log文件属主是mysql,属组是mysql,只有mysql用户可以读取编写这个文件,其他人只能读此文件。

权限计数

  • 我们已知三种身份权限(属主,属组,其他人),每种身份都有rwx的三种权限,系统还提供了数字计算权限。
  • r read 4
  • w write 2
  • x execute 1
  • 每种身份最低是0分,最高是r+w+x 7分

  • 因此三种身份,最高权限是777,最低是000

-rw-rw-r-- 1 root root 0 8月  11 16:41 pyyu.txt
因此可知pyyu.txt的权限是
属主是6 r+w(4+2)
属组是6 r+w(4+2)
其他人是4 r(4)

id命令查看用户信息

# id指令查看用户所属群主
[root@ymq t1]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@ymq t1]#

修改文件属性

  • 普通用户只能修改自己的文件名,时间与权限(注意)
  • 因此修改其他用户权限,只能用最nb的root用户

切换root用户 

当前/tmp/pyyu.txt文件以存在,且信息是
-rw-rw-r-- 1 pyyu pyyu    0 8月  11 16:41 pyyu.txt

# 切换用户
su -

修改属主为root

[root@oldboy_python /tmp 16:43:12]#chown root pyyu.txt

查看信息

[root@oldboy_python /tmp 16:43:42]#ll pyyu.txt 
-rw-rw-r-- 1 root pyyu 0 8月  11 16:41 pyyu.txt

修改属组

# chgrp

[root@oldboy_python /tmp 16:43:42]#ll pyyu.txt 
-rw-rw-r-- 1 root pyyu 0 8月  11 16:41 pyyu.txt
[root@oldboy_python /tmp 16:44:59]#chgrp root pyyu.txt 
[root@oldboy_python /tmp 16:45:51]#ll pyyu.txt 
-rw-rw-r-- 1 root root 0 8月  11 16:41 pyyu.txt

修改文件/目录的权限

chmod [身份]   [参数]   [文件]
    u(user)   +(添加)  
    g(group)   -(减去)
    o(other)  =(赋值)
    a(all)



# 案例
当前权限
-rw-rw-r-- 1 root root 0 8月  11 16:41 pyyu.txt
方法1
减去属主的写权限
chmod u-w pyyu.txt
查看权限
-r--rw-r-- 1 root root 0 8月  11 16:41 pyyu.txt
方法2
属主添加可读可写可执行权限
chmod 700 pyyu.txt
属主可读可写可执行
属组可读可执行
其他人可读可执行
chmod 755 pyyu.txt

修改文件名,修改文件更改日期

mv pyyu.txt chaoge.txt
#触摸,修改时间
touch chaoge.txt

3 软连接,硬连接

软连接,硬连接介绍

  • 软连接也叫做符号链接,类似于windows的快捷方式。
  • 常用于安装软件的快捷方式配置,如python,nginx等
  • 软链接新建inode
  • 硬链接新建一个filename,指向同一个inode
  • 建立软连接一般建立到user/bin
  • 建立以后,直接在当前就可以启动,不然需要进入到改软件得bin目录下启动
# 格式
ln -s 目标文件  软连接名

# 1.存在文件/tmp/test.txt
[root@master tmp]# ls -l
-rw-r--r-- 1 root root     10 10月 15 21:23 test.txt

# 2.在/home目录中建立软连接,指向/tmp/test.txt文件
ln -s /tmp/test.txt my_test

# 3.查看软连接信息  ls -l
lrwxrwxrwx 1 root root 13 10月 15 21:35 my_test -> /tmp/test.txt

# 4.通过软连接查看文件
cat my_test

# my_test只是/tmp/test.txt的一个别名,因此删除my_test不会影响/tmp/test.txt,
但是删除了本尊,快捷方式就无意义不存在了

4. 参考文章 

pythonav资源分享https://pythonav.com/wiki/detail/3/30/

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

骑猪去兜风z1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值