linux的基本命令
mKdir test # 创建一个名为test的文件夹
mkdir -p test1/test2/test3 # 递归创建directory
mkdir -p {aaa,bbb,ccc} # 创建同级directory
touch test.txt # 创建名为test.txt的文件
rmdir test1 # 直接删除目录(只能directory,不能删除file)
rm -r # 删除目录(directory or file)并询问是否删除
rm -f # 强制无条件删除文件(file) 不询问
rm -rf # 强制删除(directory or file),并且不询问
rm -rf /* # 删除根目录下的所有
ls # 查看该目录下的文件
ls -l # 查看该目录下的文件及文件详情(主 组 大小 等等)
cat test.txt # 查看文件的内容(一次性查看全部)
# cat 详细用法看后面
tail -f test.txt # 实时监控文件内容
more test.txt # 分页查看文件内容
echo $PATH # 查看环境变量
echo '要改写的内容' >> test.txt
cd . # 当前目录
cd .. # 上一级目录
cd - # 上一个工作目录
cd ~ # 当前用户所在的家目录
pwd # 当前目录的绝对路径
# 执行文件
./
# 查看网卡信息的两种方式
# 方式一:
if add show
# 方式二:
ifconfig
# 启动网卡
ifup 网卡名(在查看网卡信息的时候可以看到网卡名)
# 禁止网卡
ifdown 网卡名
# 但是这里有一个问题,每一次系统启动之后都需要去启用网卡,不然就没办法连接网络并获取IP地址
# 1 打开网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 2 按i进入编辑模式
# 3 将最后一行ONBOOT=no改为ONBOOT=yes, 按ESC退出编辑模式,再输入:wq保存退出
# 4 init 6重启服务器即可
init 0 关机
poweroff 关机
init 6 重启
reboot 重启
linux的目录结构, 根目录 /
root 和 home是同级的
# 1 创建用户名
useradd aaa # aaa 为用户名
# 2 为哪个用户设置密码
passwd aaa
# 3 输入密码
# 1 按引号:
:w # 保存不退出
:wq # 保存并退出
:wq! # 无理由保存退出
:q # 退出
:q! # 无理由强制退出
# vi/vim 操作流程:
# 1. vi打开文件 此时进入命令模式,输入i,进入编辑模式
# 2. 在编辑模式下,开始输入字符串
# 3. 编辑完之后,esc退出编辑模式,回到命令模式,按:进入底线命令模式
# 4. 输入底线命令
### cat 只能查看纯文本类型(只能看file,不能看directory)
# 显示行号
cat -n test.txt
# 在每行结尾加上$符号
cat -e test.txt
# 将“你好”添加到test.txt文件中
cat >>test.txt<<EOF
你好
EOF
# 用于查看内容较多的文本,会以百分比的形式显示看到多少
more /etc/passwd
"""
按下空格space是翻页
按下b键是上一页
回车键向下读取内容
"""
# 追加
echo '要追加的内容'>>目标文件
# 覆盖
echo '要覆盖的内容'>目标文件
# 自动补全命令/文件名/目录名
tab
# 清理终端显示
ctrl + l
clear
# 终止当前操作
ctrl+c
# 复制
"""
# 移动test.py 到/tmp目录下
cp test.py /temp/
# 移动test.py 到/tmp目录下并重命名为aaa
cp test.py /temp/aaa.py
cp -r 递归,复制目录以及目录的子孙后代(copy目录 )
cp -p 复制文件,同时保持文件属性不变
cp -a 相当于-pdr ,类似于wimdows系统的复制快捷方式
"""
alias 新的命令='原命令 -选项/参数'
eg:
alias aaa='cp -r'
alias bbb='echo'"大哥,你想干啥"
find (目录) (类型) (文件名)
# 找出/temp所有以.txt结尾的文件
find /temp/ -type f -name '*.txt'
# 找出/etc下所有名字以host开头的文件
find /temp/ -name 'host*'
# 找出/opt上一个名字为setting.py的文件
find /opt/ -name 'setting.py'
"""
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
"""
将第一个命令的输出 作为下一个命令的输入
ps -ef|grep 'python'
所有进程中 含有'python'字样的进程
"""
grep(global search regular expression(RE) and print out the line)
全面搜素正则表达式并把行打印出来,使用正则表达式搜索文本,并把行打印出来。
"""
grep '找的东西' 目录
"""
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
--color = auto : 给关键词部分添加颜色
"""
# 找出/etc/passwd下root用户所在的行,以及行号,显示颜色
cat /etc/passwd |grep '^root' --clolr=auto -n
# 找出/etc/passwd所有不允许登录的用户
grep /sbin/nologin /etc/passwd # /sbin/nologin为查找的目标
# 找出/etc/passwd所有与mysql有关行,行号
cat /etc/passwd |grep 'mysql' -n
head # 显示文件前几行,默认是10行
head -2 /tmp/test.py
tail # 显示文件后几行,默认是10行
tail -2 /tmp/test.py
# 显示文件10-30行 (利用管道)
head -30 /tmp/test.py|tail -21
# 持续刷新显示
tail -f xx.log
which
"""
用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历目录,会再环境变量$PATH设置的目录里查找符合条件的文件
"""
which pwd
which python
/usr/bin/python
# 移动文件或者重命名files
# 移动
mv test/test1 /new_test/
# 重命名
mv test1.py new_test.py
# secure copy:远程copy命令,用于linux之间的文件或目录的远程传输
"""
scp 【可选参数】 本地源文件 远程文件标记
scp 本地文件 远程用户名@远程ip:远程文件夹/
scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名
scp -r 本地文件夹 远程用户名@远程ip:远程文件夹/
"""
# 传输文件到远程并且重命名
scp /tmp/test.py root@192.168.1.68:/home/
# 传输文件到远程并且重命名
scp /tmp/test.py root@192.168.1.68:/home/new_test.py
# 传输directory到远程并且重命名
scp -r /tmp/test.py root@192.168.1.68:/home/new_test.py
# 复制远程文件到本地
scp root@192.168.1.68:/home/test.py /tmp/test/new_test.py
# 参数
"""
-r :递归复制整个目录
-v:详细方式输出
-q:不显示传输进度条
-C:允许压缩
"""
# 用法
du 参数 文件或目录
# 参数
"""
-s 显示总计
-h 以k,M,G为单位显示,可读性强
"""
# 实例
du -sh /home
df # 查看磁盘大小
# 很重要,用于动态监视进程活动信息与系统负载等信息
# 第一行(uptime)
"""
系统时间 主机运行时间 用户连接数 系统1,5,15分钟平均负载
"""
chattr +a test
chattr -a test
# 参数
"""
aAcCdDeijsStTu
"""
# 将linux客户端时间和阿里云服务器时间同步(修改客户端时间)
ntpupdate -u ntp.aliyun.com
# 将linux硬件时间和客户端时间同步
"""
1 . 以系统时间为基准,修改硬件时间
hwclock -w
2 . 以硬件时间为基准,修改系统时间
hwclock -s
"""
能够从指定的服务器自动吓到RPM包并且安装,可以自动处理依赖关系,并且一次性安装所有的依赖
# 使用
"""
1.先备份yum源
mkdir repo_bak
mv *.repo repo_bak # *.repo:所有以repo结尾的隐藏文件
2.下载阿里repo文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3.清空yum缓存并且生成新的yum缓存
yum clean all
yum makecache
4.安装软件扩展源
yum install -y epel-release
"""
# 各个系统下面软件包的格式
# 1. windows
.exe / .msi
# 2.mac
.dmg
# 3.linux
.rpm
yum install lrzsz # 下载lrzsz工具包
rz # 上传文件
sz # 下载文件
# wget命令用于再终端下载网络文件
# 使用方法
# 参数是 wget [参数] 下载地址
# 实例
wget -r -p http://www.58.com # 递归下载
用户管理和文件权限
# user 拥有root的权限
"""
1. 在sudoers中配置授权用户,用visudo进入此文件的vim模式
2.用/root找到授权配置
3.将授权用户添加进去
4.授权用户在使用root权限时,应该先在前面使用sudo ,如sudo useradd -bbb
"""
# 添加用户
useradd username
# 切换用户
su username
# 退出登录
logout
chmod u+r test.py # 给主添加读的权限
chmod g+w test.py # 给组添加写的权限
chmod o+x test.py # 给other添加执行的权限
chmod 777 test.py # 给主,组,other添加读写执行的权限
# 用法
ln -s 源目录地址 /user/bin/rename
# 举例
ln -s /opt/python3.6 /user/bin/pyhton
# 先cd到用户的家目录下面
# vim ~/.bash_profile 进入配置文件的vim模式
# 配置需要添加的环境变量
# 参数
"""
-v:详情
-c:压缩
-x:解压
-z:使用gzip工具进行压缩
"""
# 实例
# 压缩文件
tar -cf filename
# 解压文件
tar -xvf filename
# 进一步压缩,通过gzip
tar -zxvf filename # 获取到.tar.gz后最的文件
# 解压.tar.gz后最的文件
方式1:gzip -d filename # 去掉.gz后缀,得到.tar后缀的文件按
tar -xvf filename
方式二:tar -zxvf filename.tar.gz
history # 显示历史命令
!+历史命令的序号可以调用此命令
# 查看服务器端口信息
ps -ef 查看服务器上进程信息,可以配合管道符或者grep进行过滤信息
# 参数
"""
-a 显示所有进程
-u 用户及其他详细信息
-x 显示没用控制终端的进程
"""
# 结束进程命令
kill -9 进程id
pkill 进程名 # 支持正则匹配
killall 进程名
# 查看selinux状态
getenforce
# 临时关闭
setenforce 1/0
# 永久关闭,(修改配置文件)
vim /etc/selinux/config
SELINUX=disable
# 防火墙
iptables -L # 查看防火墙规则
iptables -F # 清空防火墙规则
# centos7默认使用firewall作为防火墙了
# 关闭防火墙
systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 关闭防火墙,开机启动
# 1 .修改配置文件
vim /etc/locale.conf
# 2 .将LANG="en_US.UTF-8"改为LANG="zh_CN.UTF-8"
# 3 .重新加载配置文件
source /etc/locale.conf
# 域名解析系统
# 工作原理:
"""
1 我们要想访问www.baidu.com, 首先会去本地DNS缓存中查找
2 如果本地DNS缓存中没有,那就要去本地文件hosts文件中查找
3 如果本地hosts文件中也没有,那就会去公网的DNS服务器中找
4 如果公网DNS服务器中也没有,就说明此域名没有注册,没有办法访问
"""
# 计划任务
# 格式
* * * * *
分 时 日 月 周
# 实例
#每晚的21:30重启nginx
30 21 * * * systemctl restart nginx
#每月的1,10,22日的4:45重启nginx
45 4 1,10,22 * * systemctl restart nginx