Linux基础笔记

注意:Linux 严格区分大小写

创建用户
# Centos
# 创建用户 创建密码 添加 sudo docker 组权限
USERNAME=zhang
adduser ${USERNAME}
echo 123 | sudo passwd ${USERNAME} --stdin &>/dev/null
usermod -aG wheel ${USERNAME} && usermod -aG docker ${USERNAME}

# Ubuntu
USERNAME=zhang
useradd -d /home/${USERNAME} -s /bin/bash -m ${USERNAME}
echo "${USERNAME}:123" | chpasswd
usermod -aG sudo ${USERNAME} && usermod -aG docker ${USERNAME}

# 把 zhang 移除组 wheel
gpasswd -d zhang wheel

#删除用户 zhang
sudo userdel -r zhang

配置sudo免密

sudo vim /etc/sudoers
zhang ALL=(ALL:ALL) NOPASSWD: ALL

踢掉登录的用户

w
pkill -kill -t pts/1
后台运行与查看日志
nohup ls &
tail -f nohup.out
buff/cache占用过多清理
echo 1 > /proc/sys/vm/drop_caches   #清除pagecache。
echo 2 > /proc/sys/vm/drop_caches   #清除回收slab分配器中的对象,包括目录项缓存和inode缓存。
echo 3 > /proc/sys/vm/drop_caches  #清除pagecache和slab分配器中的缓存对象
快捷方式
nmtui   #图形界面修改网卡信息
pwd    #查看当前路径
df -h  # 查看使用空间大小

free -lh  #查看内存使用情况
ll -tr /etc  #按照时间顺序反向排序 -t time 时间  -r reverse 反向

lsof -i:22    #查看端口对应的服务

less -N /etc/services  
-N 代表显示行数
-- 方向键上下翻行 
-- 空格向下翻页 字母b向上翻页
-- / 搜索 n 重复搜索 shift+n 反向搜索 q 退出

whereis nginx  #查看命令路径及文件
which mv  # 查看显示命令路径信息

ctrl+a   #把光标快速移到前头
ctrl+e   #把光标快速移到后头
ctrl+方向左右箭头  #光标按单词快速移动:
ctrl+w     #把空格字符串整体进行删除(剪切)
ctrl+u     #删除光标位置到前头内容(剪切)
ctrl+k     #删除光标位置到后头内容(剪切)
ctrl+y     #粘贴剪切的内容
ctrl+r    #快速搜索之前使用过的命令
du查看目录大小/sort排序
sort  #排序命令
sort -n   #按照数值进行排序
sort -k1  #按照指定第1列进行排序
cat 1|sort -n -k2   #查看文件 排序 -n以数字排序 -k2以第2行数字开始排序
du -sh /*|sort -h      #快速找到哪个目录占用空间大并排序
du -sh /var/* |sort -h   #查看var下面占用空间大的目录
du -sh .[!.]*|sort -hr  #查看文件夹下面.开头的文件大小 并排序
find搜索
find 路径信息 -type 文件类型 -name '文件名'
find /etc -type f -name zhang.txt
find /etc -type f -iname zhang.txt  -iname 忽略名称大小写
find /tmp -type f -size +100   #找出tmp目录下文件大于100K的文件
find /tmp -type f -size -80    #找出tmp目录下文件小于80K的文件
find /tmp -type f -size +1M    #找出tmp目录下文件大于1M的文件
# -maxdepth 2  根据目录层级查找  1代表当前层  2代表查找当前层和下一层
find /mnt -maxdepth 2 -type f -size +10   
find /opt/ -maxdepth 1 -type f -perm 644  # 根据文件权限来寻找
find / -type f -inum 2110038   #通过inode信息查找
find / -name 文件名    #全盘查找文件,文件名后面加 * 就是模糊查找

#通过xargs把找到的信息 显示为一行
[root@master01 /zhang]# ] find /zhang/ -type f -name '*.txt'|xargs 
内容输出为一行
[root@master01 /zhang]# ] cat 123.txt|xargs -n2
每行显示两个内容

#筛选出文件拷贝到新的目录
find /zhang -type f -name '*.txt'|xargs cp -t /zhang01

find /zhang/ -type f -name '1*' |xargs rm   #删除信息
find /zhang/ -type f -mtime +10 -delete  #删除10前的数据 -mtime代表修改时间 +10代表10天前
find /zhang/ -type f -mtime +10  #查看10天前数据
find /zhang/ -type f -mtime -10  #查看最近10天数据
find /zhang/ -type f -mtime 10   #查看前面第7天数据
tree查看目录结构
 tree /opt   --查看指定目录下的数据和结构(有目录有文件)
 tree -L 2 /opt   --查看目录下两层的信息(有目录有文件)
 tree -d /opt     --只显示目录结构信息
查看IP与系统版本
ifconfigip addr 或 ip a  #查看内网ip
curl cip.cc     #查看公网ip
cat /etc/redhat-release    #查看系统版本 
uname -a   #查看内核所有信息
vim /etc/sysconfig/network-scripts/ifcfg-ens33     #查看网卡配置信息(自建主机用)

cat /etc/hostname    #centos7主机名称配置文件路径
hostnamectl set-hostname 新名称   #centos7主机修改名称
修改编码utf-8/中文显示
[root@master01 /]# ] echo $LANG
en_US.UTF-8

vim /etc/locale.conf  #修改编码 修改为支持中文显示
LANG=zh_CN.UTF-8
source /etc/locale.conf   #重新加载文件

#命令直接修改,还是需要重新加载文件
localectl set-locale LANG=zh_CN.UTF-8     
命令提示符优化\PS1
[root@master01 ~]# echo $PS1
[\u@\h \W]\$

vim /etc/profile   #添加变量  

#设置显示完整路径  把\W 改成小写 \w 
export PS1='[\u@\h \w]\$ '

#设置颜色
export PS1='\[\e[32;1m\][\u@\h \w]\$ \[\e[0m\]] '

source /etc/profile  #重新加载文件
etc目录
vim /etc/issue  #在里面设置内容 登录前 提示
vim /etc/motd   #在里面设置内容 登录后 提示

vim /etc/hosts    #建立名称和地址对应关系
vim /etc/fstab    #磁盘设备开机自动挂载
vim /etc/rc.local  #文件中命令信息,开机自动执行
环境变量\PATH
#查看环境变量
[root@master01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

vim /etc/profile    #配置变量信息和别名信息
PATH=$PATH:/opt/kubernetes/bin   #在profile文尾添加变量信息

[root@master01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/kubernetes/bin:/root/bin
别名设置\alias
/etc/profile == /etc/bashrc  #所有用户生效
~/.bashrc    == ~/.bash_profile   #指定用户生效

alias    #查看系统默认别名设置
alias 别名名称='命令信息'   #临时设置别名
alias catnet='cat /etc/sysconfig/network-scripts/ifcfg-eth0'   
unalias 别名名称   #取消设置别名
unalias catnet   

vim /etc/profile  #永久设置别名,添加下面一行内容
alias catnet='cat /etc/sysconfig/network-scripts/ifcfg-eth0'  
source /etc/profile  #重新加载文件

设置好后,直接输入 catnet 就可以直接显示ifcfg-eth0内容
yum解释
ll /etc/yum.repos.d  #查看yum源目录
#阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum repolist   #查看可用源列表
#运行以下命令生成缓存
yum clean all
yum makecache

yum install bash-completion   #按tab键无法补齐命令,需要安装此软件
rpm解释
rpm -qa sl    # 查询是否安装sl -q表示查询 -a表示所有  
rpm -qa |grep 软件名   #查询已安装软件 
rpm -ql sl    # 查看软件包有哪些文件 -l表示列表显示
rpm -ivh 软件包名称.rpm     #安装软件  -i install安装 -v 显示过程 -h human以人类可读方式显示
rpm -Uvh 软件包名称         #升级  
rpm -e 软件名称 --nodeps    #卸载软件

which ssh   #查看命令位置
rpm -qf /usr/bin/ssh  #通过路径+命令 查询文件全名 -f代表文件名字

rpm -qf `which ssh`   #直接通过 ` 反应号查出文件全名 先执行反引号里面命令输出,在执行外面命令
查看日志文件\log
ll -h /var/log/    #查看日志目录文件
head -5 /var/log/messages   #查看前5行内容
tail -6 /var/log/messages   #查看后6行内容

-f 文件信息追踪:文件被删除或者移走,需要重新追踪
-F 文件信息追踪:文件被删除或者移走,不需要重新追踪,文件恢复回来会继续追踪
tail -f /var/log/messages   #程序日志/ -f 实时查看后10行数据
tail -f /var/log/secure     #安全日志/用户登录信息
查看系统进程\ps
#R代表运行或等待运行 S代表睡眠但可以被唤醒
top   # 查看实时进程
ps    #查看系统进程信息
ps -aux     #查看所有进程 
ps -l   # 查看当前用户进程 
ps -ef   #查看所有详细的进程信息
ps -ef|grep uwsgi   #查看uwsgi运行情况

killall -9 uwsgi    #关掉所有的uwsgi
查看系统硬件信息
cat /proc/cpuinfo     #文件查看cpu数
lscpu        #命令查看cpu几核

cat /proc/loadavg    #文件查看负载情况
w     #命令查看负载情况

cat /proc/meminfo    #文件查看内存
free -h     #命令查看内存

cat /proc/mounts  #文件查看磁盘挂载信息
df -h   #命令查看磁盘挂载信息
查看端口\ss\netstat
ss == netstat
yum install -y net-tools   #安装netstat命令

ss -lntup  #查看端口占用情况
ss -lntup|grep 22   #过滤端口22的服务

-l list  --列表显示网络服务
-n number  --以数字方式进行显示
-u udp   --网络协议
-t tcp   --网络协议
-p process  --显示服务进程
修改文件权限\chmod
chown 修改拥有者 文件/目录 -R递归修改  修改拥有者
chown zhang.zhang /backup/ 
chown -R zhang.zhang /backup/
 
chgrp 修改所属组  -R递归修改
chgrp zhang hosts 

chmod 修改 拥有者 所属组 其他人 权限 u/g/o  +/-/=  r/w/x  4 2 1
chmod a+x /etc/init.d/uwsgi.sh   #添加执行权限
chmod 777 /etc/init.d/uwsgi.sh  #添加 读 写 执行 权限
groups   #查看属于组
gpasswd -a 用户 组   #添加组
#自己的可以强制写入文件,所属组和其他人不能强制写入
userdel -r 用户   #删除用户

chattr +i 123  #给文件加锁,使root用户也不能修改文件
lsattr 123  #查看是否加锁
chattr -i 123  #解除锁,可以继续编辑文件
创建连接\ln
ln -s 原连接 现连接   #软连接 类似于windows的快捷方式
[root@master01 /zhang]# ] ln -s test.txt test.txt_soft

ln 原连接 现连接    #硬链接 只文件用 修改一个其他的同步,删除一个其他的无影响, 通过ls -i 查看inode编号 
[root@master01 /zhang]# ] ln test.txt test.txt_link
#通过inode查找文件位置
[root@master01 /zhang]# ] find / -type f -inum 2110038  
#过滤etc下面有多少目录
[root@master01 /zhang]# ] ll /etc/ |grep -c "^d"
87
会话与作业

命令后面+ & 这个代表后台运行

jobs -l   #查看运行的命令和pid
ctrl+z   #挂起
ctrl+c  #中断
fg   #调回前台运行
bg   #继续运行
kill 9 pid   #强制停止任务
kill 15 pid  #正常停止任务
压缩\tar
tar zcvf /zhang/test.tar.gz 指定要压缩的数据文件
z 压缩方式为 zip
c 创建压缩文件/压缩的意思
v 显示压缩过程
f 指定压缩包文件路径信息
x 提前文件/解压的意思
t 查看文件内容
# 压缩数据方法:
[root@master01 /zhang]# ] tar zcvf test.tar.gz test.txt 
# 解压数据方法:
[root@master01 //zhang]# ] tar xvf test.tar.gz    #解压到当前位置
[root@master01 //zhang]# ] tar xvf test.tar.gz -C /opt   # -C 解压到指定位置
# 对比两个文件是否一致 diff 或者 vimdiff
[root@master01 //zhang]# ] diff /zhang/test.txt  /tmp/test.txt 
[root@master01 //zhang]# ] vimdiff /zhang/test.txt  /tmp/test.txt 
#查看压缩包否有文件
[root@master01 /zhang]# ] tar tf test.tar.gz
多CPU \tar pigz
# 安装pigz
sudo apt install pigz
# 多cpu压缩
sudo tar --use-compress-program=pigz -cvpf zhang.tar.gz ./zhang
# 多cpu解压
sudo tar --use-compress-program=pigz -xvpf zhang.tar.gz
# -C (大写)解压到指定位置 
sudo tar --use-compress-program=pigz -xvpf zhang.tar.gz -C /home/zhang/test

# 如果文件太大就分成多段 100M 一个压缩 
# 1.多cpu压缩
sudo tar --use-compress-program=pigz -cvpf zhang.tar.gz./zhang
# 2.分成多段 -b 100M 大小的一个压缩 -d 生成的文件名是数字 zhang00.tar.gz zhang01.tar.gz
split -b 100M zhang.tar.gz -d qin --additional-suffix=.tar.gz
# 3.多个cpu解压 分段的
cat zhang0* > zhang.tar.gz
sudo tar --use-compress-program=pigz -xvpf zhang.tar.gz
时间date
[root@master01 ~]# ] date
Wed Mar 17 14:51:19 CST 2021
[root@master01 ~]# ] date '+%F %T'
2021-03-17 14:54:07
#复制log后缀自动添加日期
[root@master01 /zhang]# ] cp 123.log 123.log-$(date "+%F_%T")
#显示2天前的时间
[root@master01 /zhang]# ] date +%F -d '-2day'
2021-03-15
#显示3天后的时间
[root@master01 /zhang]# ] date +%F -d '3day'
2021-03-19
#安装更新时间软件
[root@master01 /zhang]# ] yum install ntpdate.x86_64 te -y
#更新时间命令
[root@master01 /zhang]# ] ntpdate ntp1.aliyun.com
17 Mar 15:53:38 ntpdate[14857]: step time server 120.25.115.20 offset 38159595.622238 sec
系统运行级别解释
centos6(系统运行级别)
0 关机级别
1 单用户级别(重置密码)
2 多用户级别 无网络
3 多用户级别 有网络
4 预留
5 图形化级别
6 重启级别

runlevel  #查看当前级别
init 级别数值   #临时修改
vim /etc/inittab   #永久修改

centos7(target)运行下面命令获取7对应的6的运行级别
[root@master01 ~]# ll /usr/lib/systemd/system/runlevel*target
lrwxrwxrwx 1 root root 15 Apr 27  2020 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx 1 root root 13 Apr 27  2020 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root 17 Apr 27  2020 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx 1 root root 17 Apr 27  2020 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx 1 root root 17 Apr 27  2020 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx 1 root root 16 Apr 27  2020 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx 1 root root 13 Apr 27  2020 /usr/lib/systemd/system/runlevel6.target -> reboot.target

systemctl get-default   #查看运行级别
systemctl set-default  graphical.target   #修改为图形化级别
服务器添加新用户\useradd
#用户名存在home里面
useradd 用户名   #创建用户名 
useradd  zhang01 
passwd  用户名 #创建密码
passwd zhang01   --回车输入密码
su 用户名   #切换root需输入密码,切换其他用户不用输入
userdel -r zhang    #彻底删除用户和家目录信息

usermod -L myuser  #禁止帐号myuser登录
usermod -U myuser   #允许账号myuser登录
重启相关命令\reboot
reboot   #现在重启
last reboot   #查看服务器重启时间
shutdown -r now   #现在重启
shutdown -h now  #现在关机
shutdown -h 10   #10分钟后关机
shutdown   #关机命令
shutdown -c     #取消指令
系统启动流程
centos6
01.加电自检
	检查服务器硬件是否正常
02.MBR引导
	读取磁盘MBR存储记录信息,引导系统启动
03.grup菜单
	选择启动内核、进行单用户模式重置密码
04.加载系统内核信息
	可以更好的使用内核控制硬件
05.系统第一个进程运行起来 init(串行一个一个启动程序)
	一个一个服务启动(启动慢)
06.加载系统运行级别文件 /etc/inittab
07.初始化脚本运行
	初始化系统主机名称和网卡信息
08.运行系统特殊脚本
	服务运行脚本
09.运行mingetty进程
	显示开机登录信息界面
centos7
01.加电自检
	检查服务器硬件是否正常
02.MBR引导
	读取磁盘MBR存储记录信息,引导系统启动
03.grup菜单
	选择启动内核、进行单用户模式重置密码
04.加载系统内核信息
	可以更好的使用内核控制硬件
05.系统的第一个进程运行起来 systemd (并行启动程序)
	服务启动的时候,同时一起启动(启动快)
06.读取系统启动文件
	/etc/systemd/system/default.target
07.读取系统初始化文件
	/usr/lib/systemd/system/sysinit.target
08.使服务可以开机启动
	/etc/systemd/system 加载此目录中的信息,实现开机自动启动
09.运行mingetty进程
	显示开机登录信息界面
上传下载文件
yum install -y lrzsz
rz -y   			#从windows上拷贝文件到linux
sz -y 数据文件 	    #从linux上拷贝文件到windows
定时任务\crontab
yum install cronie -y  #安装定时任务 crontab文件包叫 cronie 
systemctl status crond    #查看定时服务是启动

tail /var/spool/cron/root   #定时任务配置文件保存目录
tail -f /var/log/cron    #定时任务日志文件
tail -f /var/spool/mail/root  #定时任务执行命令报错,会发送邮件告知用户
#如不想产生邮件服务 可以关闭
systemctl stop postfix
ll /var/spool/postfix/maildrop/  #服务关闭后会 如果报错会产生小文件 占用inode数

crontab -l          #查看任务列表  
crontab -e			#编辑定时任务信息

语法:
*  *  *  *  *  具体执行语句
分 时 日  月  周  执行语句
写法:
1.用数字表示时间信息
00 02 * * * 备份文件     #表示每天凌晨2点备份文件
2.利用特殊符号
  *      *    *     *     *   备份文件
每分钟 每小时  每天  每月  每周
  */5        */8       */9     *  *   备份文件
每隔5分钟   每隔8小时    每隔9天
01-05  02  *  *  *  备份文件
01到05分都执行
00 14,20 *  *  * 备份文件
    14点和20点都执行
    
举例:
58 14 * * * cp /zhang/1	/opt/1.bak   #每天14点58分拷贝文件
58 14 * * * /bin/sh shell.sh  #执行shell.sh脚本
58 14 * * * cp /zhang/1	/opt/1.bak &>/dev/null  #把输出到屏幕上信息保存到null,避免占用磁盘空间
58 14 * * * cp /zhang/1	/opt/1.bak >/dev/null 2>&1  #返回的信息不管是错误还是正确的都输出到/dev/null
*/5 * * * * /usr/sbin/ntpdate cn.pool.ntp.org >/dev/null 2>&1  #每隔5分钟同步时间
00 17 * * * /bin/sh /server/scripts/rsync_cron.sh >/tmp/rsync.log 2>&1  #17点执行sh脚本
修改时间时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值