ifconfig
# 查看ip地址
[root@localhost tmp]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.189.131 netmask 255.255.255.0 broadcast 192.168.189.255
...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
...
# 如果这个命令不存在,少了一个网络工具包
yum install net-tools -y
grep 过滤
# 和管道符的结合
[root@localhost tmp]# cat test.txt | grep '窗前'
窗前明月光
[root@localhost tmp]# cat test.txt | grep -v '窗前' # 反转查询结果
疑是地上霜
查看端口信息
#方式一:
netstat -tunlp
#方式二:
ss -tunlp
语法[选项] -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; -n或--numeric:直接使用ip地址,而不通过域名服务器; -l或--listening:显示监控中的服务器的Socket; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -a或--all:显示所有连线中的Socket;
find查找命令
查找一个文件:
find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
参数
-name 按照文件名查找文件
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
示例:
find /tmp/ -type f -name "test.py"
find /tmp/ -type f -name "*.txt" #找出/tmp下的所有以 .txt 结尾的文件
实时监控一个文件的写入变化
tail -f filename
alias 别名命令
# 当一个用户使用rm 命令的时候,告诉他: 求你了,别用rm命令了
[root@localhost tmp]# alias rm="echo '求你了,别用rm命令了'"
[root@localhost tmp]# rm
求你了,别用rm命令了
[root@localhost tmp]# unalias rm #取消 rm 的别名
scp 远程传输命令
# scp 你要传输的内容 传输到某个地方
#传输自己的内容给别人
#scp filename root@对方的ip:文件路径
[root@localhost tmp]# scp test.txt root@192.168.189.132:/tmp/
#传输别人的内容给自己
#scp root@对方的ip:文件路径 自己的目录路径
[root@localhost tmp]# scp -r root@192.168.189.132:/tmp/test1 /tmp/ #-r 递归
统计文件大小
#方法一:
[root@localhost tmp]# ll -h #显示文件,文件夹大小
total 552K
drwxr-xr-x. 3 root root 17 Mar 14 16:31 test1
-rw-r--r--. 1 root root 22 Mar 14 15:52 test.py
-rw-r--r--. 1 root root 32 Mar 14 16:01 test.txt
drwx------. 2 root root 6 Mar 9 21:04 vmware-root
-rw-------. 1 root root 0 Mar 9 20:51 yum.log
...
#方法二: 更专业的命令
[root@localhost tmp]# du #统计文件,文件夹的大小
0 ./.Test-unix
0 ./.X11-unix
0 ./.XIM-unix
0 ./.ICE-unix
0 ./.font-unix
0 ./vmware-root
0 ./test1/111
0 ./test1
...
552 .
[root@localhost tmp]# du -sh . # 统计当前目录所有内容的大小,合计
552K .
查看linux进程命令
# 过滤出当前机器的所有进程
[root@localhost tmp]# ps -ef
#过滤出有关 python 的所有进程
[root@localhost tmp]# ps -ef | grep python
查看linux时间
date #如果时间不正确,请用时间服务器同步,阿里云 提供了时间服务器 ntpdate -u ntp.aliyun.com
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 -zcf txt.tar.gz *.txt #打包并压缩所有的txt文件
tar -zxf txt.tar.gz #解压缩
用户权限相关
#创建普通用户
useradd 用户名
#更改普通用户密码,需要二次确认密码
passwd 用户名
#不需要二次确认密码
echo "password" |passwd --stdin 用户名
#查看用户的id信息
id
# 存放用户信息的文件
/etc/passwd
#用户来回切换
su - 用户名
#删除用户
userdel -rf 用户名 # 强制删除用户及其家目录
查看用户是否创建成功
以下四种方式都可以:
ll /home/ #普通用户可以查看家目录是否存在,存在,则创建成功;但若是没有家目录,这个方法就不适用了
tail -1 /etc/passwd #passwd文件存放了所有的用户信息
tail -1 /etc/shadow
id 用户名
sudo 以其他身份运行命令,预设身份是root
为什么要用sudo?
怎么办?权限不够,这时候需要sudo ls /root 以root身份去运行,yara权利小,root总可以了吧!!
这是由于使用sudo必须编辑/etc/sudoers文件,并且只有root才能修改,咱们可以通过visudo命令直接编辑sudoers文件,使用这个命令还可以检查语法,比直接编辑 vim /etc/sudoers更安全
[root@localhost ~]# visudo
写入 ## Allow root to run any commands anywhere root ALL=(ALL) ALL yara ALL=(ALL) ALL #允许yara在任何地方,执行任何命令
此时切换yara用户
#su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
su - yara
已经可以使用sudo ls /root 命令
ln 软连接,也叫符号连接,类似于windows的快捷方式
#ln -s 目标文件的路径 软连接的路径
[root@localhost home]# ln -s /tmp/test.txt my_test
[root@localhost home]# ls
my_test
[root@localhost home]# cat my_test
窗前明月光
疑是地上霜
dns域名解析: 多个域名可以对应一个服务器ip
#本地的dns解析文件 /etc/hosts ,可以手动写入dns 和 ip 的对应关系
[root@localhost ~]# cat /etc/hosts 192.168.11.233 hello.com
#dns服务器文件 /etc/resolv.conf, 这个文件中,定义了2个主备dns服务器地址,这些dns服务器,都搭建了一个叫做bind的软件,用于dns解析
阿里: 223.5.5.5 223.6.6.6
腾讯的 : 119.29.29.29
谷歌dns :8.8.8.8
114网址的: 114.114.114.114
#dns域名解析命令
nslookup baidu.com
crontab 定时任务
crontab (参数)
-e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该用户的计时器设置; -u<用户名称>:指定要设定计时器的用户名称。
#定制定时任务
crontab -e
#分 时 日 月 周 命令的绝对路径
eg:
1. 每周一到周五的凌晨1点,清空/tmp目录的所有文件
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
2. 每月的1,10,22日的4:45重启nginx
45 4 1,10,22 * * /usr/bin/systemctl restart nginx
ssh认证方式
方式一:
密码
[root@localhost ~]# ssh root@10.0.0.11
Are you sure you want to continue connecting (yes/no)? yes
root@10.0.0.11's password:
方式二:
秘钥 #用密码认证时,每次都需要确认以及输入密码两步操作,并且在需要弱口令校验时,显然记住密码是一件很麻烦的事情,因此相对来说,秘钥认证更简单操作
ssh-keygen # 生成秘钥
ssh-copy-id root@10.0.0.11 # 将秘钥文件复制到远程主机
[root@localhost ~]# ssh root@10.0.0.11
Last login: Tue Apr 9 23:37:57 2019 from 10.0.0.11 #不需要确认和输入密码
linux编译安装python3
https://www.cnblogs.com/yaraning/p/10531391.html