美文网首页
Linux常用命令

Linux常用命令

作者: 热兔 | 来源:发表于2024-04-05 15:15 被阅读0次

基本处理和管理命令

ls -a -l -d -R -u   #查看文件
cp -r -a -p -f      #copy
rm -rf      #-r 递归删除目录,-f 忽略提示,直接删除
du -sh      #查看文件大小
wc -l       #查看文件有多少行
more        #查看文本
less            #查看文本
head -5     #查看文本前五行
tail -5 -f      #查看文本后五行,-f 从最后向上查看文本
pwd     #查看当前工作目录
which       #查看可执行文件的位置
clear       #清屏
tar -zcf xf -C  #归档,-zcf gzip压缩并归档,-xf解归档,-C解压目录
zip -r      #压缩,-r 压缩目录
unzip -d        #解压缩,-d解压目录
crontab -e -l      #计划任务,-e修改,-l查看,分时日月周 *****,命令,操作30 21 * * * 每晚21点30分钟执行
ln -s       #创建硬链接,-s 创建软链接 ln -s 源文件 软链接名
chmod  -R       #修改文件权限,-R递归修改,ugo,rwx(4只读,2写入,1执行),u=-w-,+=- chmod -R 777 要修改目录
chown -R        #修改文件所属者和所属组,-R递归修改,tp:tp chown -R 用户名:用户组 要修改的目录
alias       #添加和查看别名,unalias删除别名,alias Ab="rm -rf"
echo -n -e         #输出,-n输出不换行,默认换行。-e  #支持反斜线开始的转义字符,屏蔽反斜线后面字符的原本含义
uniq -c -d -u   #字符行统计,-c 统计文本中重复的行,-d 只显示重复出现的行,-u 只显示不重复出现的行
sort -n -r  #字符行排序,-n 默认使用从小到大排序,-r 数字从大到小排序
watch       #重复执行某一命令观察变化,-n时隔多少秒刷新,-d高亮显示动态变化
sleep       #等待时间,单位s
xargs       #常用于管道后面,字符转换类似于管道
history -c      #查看历史命令,-c 清除历史命令记录
getenforce          #查看selinux当前状态
setenforce  0/1     #关闭开启selinux
source      #刷新文件配置,source /etc/profile
export      #声明环境变量
sysctl -p       #刷新内核配置文件,修改内核参数
systemctl       #start stop restart status(当前状态) enable(开机自启) disable(关闭开机自启)

磁盘

df -Th      #查看磁盘使用情况,-T显示文件系统类型,-h人性化显示
fdisk -l        #查看磁盘信息 p m n d q w 
lsblk       #查看系统有哪些分区
blkid       #查看分区的文件系统格式
swapon -s   #查看所有交换分区
pvs vgs lvs     #查看物理分区和逻辑卷组,查看那逻辑卷组,查看逻辑卷
vgcreate vgremove vgextend #创建,删除,修改逻辑卷组
lvcreate lvreove lvextend  #创建,删除,修改逻辑卷组
mkfs.xfs(ext4)  #将分区格式化文件系统
partprobe       #刷新分区
mount -a        #挂载,unmount,取消挂载,mount -a 刷新配置/etc/fstab/
fdisk -l 查看磁盘情况,mount -p /dev/shh1(U盘) /home/usb 挂载到home目录下的usb
# 系统
hostname            #查看主机名
uname -r        #查看该系统的版本号
free -h         #查看内存信息,下文详解
lscpu       #查看cpu信息
uptime      #查看系统负载,当前时间,系统已运行时间,当前在线用户,最近1,5,15分钟平均系统负载
cal     #查看日历
date -s     #查看系统时间,-s 修改系统时间
date '+%Y-%m-%d' date "_%Y-%m-%d  %H:%M:%S"
ntpdate     #时间同步
clock -w        #修改系统时间后,将系统时间写入cmos中
hwclock     #查看硬件时间
lsmod       #查看已加载的内核模块,ls /lib/modules/'uname -r'/内核模块存放
getconf LONG_BIT   #查看当前系统是32位还是64位

用户

who     #查看活动用户
w           #查看活动用户在做什么
users       #查看当前登入的用户
id          #查看指定用户信息
last        #查看用户登入日志
useradd     #新建用户,有很多新建用户的所属选项可以直接passwd修改
/etc/passwd 查看用户
usermod     #修改用户-L将用户锁定无法登入,-u解锁
userdel -r      #删除用户,并把家目录和邮件目录全部删除
groupadd        #新建组,groupdel 删除组:删除的不能是用户的基本组
gpasswd -a -d   #管理组-a把用户添加到组,-d把用户从组中删除
visudo      #修改sudo配置文件
sudo -u     #提权,-u 找指定用户提权,前提是visudo中有配置
su  -       #切换登入,su加-

网络

nc ip port      #检测端口是否开启
telnet ip port  #检测端口是否开启,远程登入
route -n        #查看路由表
ifup ens33          #激活网卡
wget  -P        #下载,-P 指定下载到某个目录,wget -P /opt https://ww.baidu.com
scp -r      #文件传输和拉取-r 目录传输, scp -r a.zip root@ip:/opt/ scp -r root@ip:/opt/a.zip .
curl -I     #字符浏览器,curl -I 查看请求头
nslookup        #nslookup www.baidu.com,查询指定域名的DNS解析
host        #测试dns解析,host www.baidu.com
traceroute -I   #tarcerroute -I www.baidu.com ,追踪数据包的路由过程
dig     #dig www.baidu.com,#查询域名的DNS解析

命令选项

w           #查看活动用户,在做什么
pkill -kill -t pts/0                #踢掉某个终端连接的用户
ps -ef | grep pts | grep bash | grep -v grep    #查看有几个活动用户和pid
kill -9  pid                    #踢掉某个终端链接的用户
date
date                #查看系统时间
date +%Y%m%d%H%S            #当前系统时间
date -s "1995-10-20 11:10:00"   #修改系统时间格式
clock -w                #修改系统时间后,将系统时间写入cmos中
lsof
lsof        #列举系统中被打开的文件
    -i:80       #显示使用80端口的进程
    -u root     #显示以root运行的程序
    -c php-fpm  #显示php-fpm进程打开的文件
ls
    -a      #查看隐藏文件
    -l      #显示详细信息
    -d      #显示目录本身属性
    -R      #递归显示   
    -u      #显示文件或目录最后被访问的时间,-t以修改时间排序
cp
    -r      #递归复制整个目录
    -a      #复制时保留源文档的所有属性(包括权限,时间等),常用于备份
    -p      #连同属性一起复制,而不是使用默认属性
    -f      #强制复制,如果要强制覆盖\cp -rf xxx xxx
zip和tar
zip etc.zip -r /etc/    #-r:压缩目录,不使用-r只能压缩文件
unzip etc.zip -d /opt/  #-d:指定解压目录
tar -zcf etc.tar.gz /etc    #压缩并归档,使用gzip的方式压缩
tar -xf etc.tar.gz -C /opt  #-C:指定解压目录
free
free  -h    #查看内存信息,-h人性化可读显示,mem:内存,swap:交换分区
total(内存总量) used(已用内存容量) free(剩余容量) 

命令行
查看系统信息

cat /etc/redhat-release #查看系统版本
cat /proc/cpuinfo   #查看cpu详细信息
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l    #查看物理CPU个数
cat /proc/cpuinfo | grep "cpu cores" | uniq #查看每个物理cpu中的core的个数(几核)
cat /proc/cpuinfo | grep "processor" | wc -l    #查看逻辑cpu的个数
#总核数=物理cpu格式×每课物理cpu的核数
#总逻辑CPU数=物理CPU×每颗物理CPU的核数×超线程数
cat /proc/meminfo   #查看内存详细信息   
cat /proc/meminfo | grep MemTotal       #查看内存总量
cat /proc/meminfo | grep MemFree        查看空闲内存量
cat /etc/resolv    #查看本机dns
源码安装软件后添加环境变量
export PATH=$PATH:/命令路径
源码编译安装
./configure --prefix=指定安装目录 && make && make install
非交互式新建用户并配置密码
useradd tp && echo 123 | passwd --stdin tp 
统计日志访问量前五的ip
cat file | awk '{print $1}' | sort | uniq -c | sort -r | head -5 
统计ip建立了多少个连接(每个请求会启动一个进程)
netstat -ntu | tail -n +3 | awk '{print $5}' | awk -F ":" '{print $1}' | sort | uniq -c | sorn -r
统计连接成功的ip
netstat -na | grep 'ESTABLISHED' | awk '{print $5}' | awk -F ":" '{print $1}' | sort | uniq -c | sort -r
端口转发
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8000 
查看有那些ipset表
firewall-cmd --get-ipsets
查看ip_ssh表内的ip
firewall-cmd --info-ipset=ip_ssh
校验批量文件
yum -y install diff
find /sbin/ -type f | xargs md5sun > sbin.md3   #批量生成md5值文件
find /sbin/ -type f | xargs md5sum > sbin.md5_2 #再次生成md5文件用于校验
diff sbin.md5 sbin.md5_2    #对比
echo $?     通过返回值进行对比,如果md5对比一致返回0
校验单个文件
md5sum /etc/passwd < passwd.md5 #生成md5值文件
md5sum /etc/passwd -c passwd.md5    #校验
echo $? #如果有修改awk取修改$2查看是哪些文件被修改
命令行写for
for i in $a; do echo $i ; done
命令行写if
if [ -d /opt/ ] ;then echo yes; else echo no ;fi
简单判断
[ $? -ne 0 ] && echo 1
命令行添加crontab
(crontab -l ; echo "* * * * * echo 1" ) | crontab
免密登入
#生成密钥对(/root/.ssh生成id_rsa,pub公钥和id_rsa私钥)
ssh-keygen -t rsa   #基于rsa加密,直接回车到底
#发送私钥
ssh-copy-id root@192.168.1.31

其他
linux重要文件详解
/etc/passwd     #用户
/etc/group      #组
/etc/shadow     #密码
/etc/gshadow    #组密码的影子文件
/boot/vmlinuz   #内核文件
/etc/rc.d/rc.local  #系统初始化以及服务启动完,执行的最后一个脚本
/etc/hosts      #本地解析文件
/etc/hosts.allow    #允许访问的主机
/etc/hosts.deny     #拒绝访问的主机
/etc/resolv.conf    #dns服务器
/etc/fstab  #开机挂载目录
/etc/inittab    #规划控制启动的详细过程
/etc/sudoers    #sudo配置文件
/etc/profile    #全局系统环境配置和变量
/etc/sysconfig/network-scripts/*  #网卡文件
/etc/bashrc     #全局系统环境配置和变量,别名
/etc/pam.d/*    #可插拔认证模块
/etc/init.d/*   #服务开机启动脚本
/etc/rc.d       #启动,或者改变运行级别的scripts目录
/etc/rc.d/init.d/*      
/etc/inittab
/etc/skel       #默认创建用户时,把该目录拷贝到家目录下
/sbin/*         #单用户模式可用的必要命令(可执行文件),普通用户无法执行
/bin/ *         #单用户模式可用的必要命令(可执行文件),面向所有用户
/usr/sbin/*     #非必要的可执行文件(在单用户模式不需要),大量网络服务守护进程
/usr/bin/*  #非必要的可执行文件(在单用户模式不需要);面向所有用户

其他概念理解
cookie:在客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现session的一种方式
session:在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群,数据库和文件中
linux在32位编译好的软件在64能跑,在64位编译好的软件32位不一定能跑,所以在安装系统的时候要统一,最好用64位

相关文章

网友评论

      本文标题:Linux常用命令

      本文链接:https://www.haomeiwen.com/subject/vaintjtx.html