Linux基本命令

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

安装mariadb

https://www.cnblogs.com/yaraning/p/10533412.html

 

posted @ 2019-03-14 16:53  yara-ning  阅读(511)  评论(1编辑  收藏  举报