常用Linux命令(分类详解!!)

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用Linux命令(分类详解!!)相关的知识,希望对你有一定的参考价值。


一、文件与目录操作

1.1 ls/ll命令

ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls [0-9] 显示包含数字的文件名和目录名
ll 查看当前目录下内容

1.2 rm命令

rm -f aa 删除一个叫做 ‘aa’ 的文件’
rmdir bb 删除一个叫做 ‘bb’ 的目录’
rm -rf cc删除一个叫做 ‘cc’ 的目录并同时删除其内容
rm -rf aa bb 同时删除两个目录及它们的内容
rm -rf ./* 强制删除当前目录下所有文件(慎用);
rm -rf ./a* 强制删除当前目录下以a开头的所有文件;

1.3 cd命令

cd /etc 进入 ‘/ etc’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
cd ~ 返回当前用户目录
cd / 返回根目录
cd … 返回上一级目录

1.4 pwd命令

pwd 显示工作路径

1.5 tree树形结构

tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构

1.6 mkdir命令

mkdir aa 创建一个叫做 ‘aa’ 的目录’
mkdir aa bb 同时创建两个目录
mkdir -p /etc/aa/bb 创建一个目录树
mkdir -p aa/nginx 递归创建目录(会创建里面没有的目录文件夹)4
mkdir ./bb 在当前目录下创建bb目录

1.7 mv命令

mv aa bb 重命名/移动 一个目录

1.8 cp命令

cp aa bb 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /etc/aa. 复制一个目录到当前工作目录
cp -a aa 复制aa这个目录
cp -r aa 复制aa这个目录及子目录

1.9 ln命令

ln -s aa bb创建一个指向文件或目录的软链接
ln aa bb 创建一个指向文件或目录的物理链接

1.10 touch命令

touch -t 1583541267 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
touch testFile 创建文件

1.11 find命令

find . -name ‘.txt’ -exec rm -rf {} ; 递归删除.txt格式的文件
find . -name "
" -size 184400c -print 打印当前文件夹下指定大小的文件
find . -name “" -size 184400c -exec rm -rf {} ; 递归删除指定大小的文件
find . -name "
” -size 184400c -print -exec rm -rf {} ; 递归删除指定大小的文件,并打印出来
find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
find / -root root 搜索属于用户 ‘root’ 的文件和目录
find /bin/aa -name .txt在目录 ‘/bin/aa’ 中搜索带有’.txt’ 结尾的文件
find /aa /lib -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /aa /lib -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name .xml -exec chmod 755 ‘{}’ ; 搜索以 ‘.xml’ 结尾的文件并定义其权限
find / -xdev -name *.xml 搜索以 ‘.xml’ 结尾的文件,忽略光驱、捷盘等可移动设备

1.12 whereis命令

whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径

二、关机

shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
reboot 重启
logout 注销

三、系统(信息及日志位置)

3.1 系统信息

cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 Bios
arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)

3.2系统日志放置位置

cat /etc/redhat-release 查看操作系统版本
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/message 系统启动后的信息和错误日志
/var/log/secure 与安全相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
cat .bash_history 查看某文件下的用户操作日志

四、文件内容

4.1 查看文件内容

cat aa.txt 查看aa.txt文件的最后一页内容;
more aa.txt 从第一页开始查看aa.txt文件内容,按回车键下一行,按空格键下一页,q退出;
less aa.txt 从第一页开始查看aa.txt文件内容,按回车键下一行,按空格键下一页,支持使用PageDown和PageUp翻页,q退出;
more和less的区别
less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
less不必读整个文件,加载速度会比more更快
less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容.
more不能后退.
tail -f aa.txt 查看aa.txt文件的后10行内容(用于实时)
head aa.txt 查看aa.txt文件的前10行内容;
tail -f aa.txt 查看aa.txt文件的后10行内容;
head -n 4 aa.txt 查看aa.txt文件的前4行内容;
tail -n 4 aa.txt 查看aa.txt文件的后4行内容;

4.2 内部搜索

grep sky aa.txt 在aa.txt文件中搜索sky字符串,大小写敏感,显示行;
grep -n sky aa.txt 在aa.txt文件中搜索sky字符串,大小写敏感,显示行及行号;
grep -v sky aa.txt 在aa.txt文件中搜索sky字符串,大小写敏感,显示没搜索到的行;
grep -i sky aa.txt 在aa.txt文件中搜索sky字符串,大小写敏感,显示行;
grep -ni sky aa.txt 在aa.txt文件中搜索sky字符串,大小写敏感,显示行及行号;

4.3 修改文件内容

vim a.java 进入一般模式
i 进入插入模式(编辑模式)
esc 退出
:wq 保存退出(shift+:调起输入框)
:q! 不保存退出(shift+:调起输入框)(内容更改)
:q 不保存退出(shift+:调起输入框)(没有内容更改)

4.4 终止当前操作

ctrl+z
ctrl+c

4.5 grep命令

grep aa /var/log/abc 在文件 '/var/log/abc’中查找关键词"aa"
grep ^aa /var/log/abc 在文件 '/var/log/abc '中查找以"aa"开始的词汇
grep [0-9] /var/log/abc 选择 '/var/log/abc ’ 文件中所有包含数字的行
grep aa -R /var/log/* 在目录 ‘/var/log’ 及随后的目录中搜索字符串"aa"

4.6 sed 命令

sed ‘s/bb/aa/g’ cc.txt 将cc.txt文件中的 “bb” 替换成 “aa”
sed ‘/^$ /d’ cc.txt 从cc.txt文件中删除所有空白行
sed ‘/ *#/d; /^$ /d’ cc.txt 从cc.txt文件中删除所有注释和空白行
sed -e ‘1d’ result.txt 从文件bb.txt 中排除第一行
sed -n ‘/bb/p’ 查看只包含词汇 "bb"的行
sed -e ‘s/ $//’ cc.txt 删除每一行最后的空白字符
sed -e ‘s/bb//g’ cc.txt 从文档中只删除词汇 “bb” 并保留剩余全部
sed -n ‘1,5p;5q’ cc.txt 查看从第一行到第5行内容
sed -n ‘5p;5q’ cc.txt 查看第5行
sed -e 's/00
/0/g’ cc.txt 用单个零替换多个零

4.7 sort 命令

sort aa bb 排序两个文件的内容
sort aa bb | uniq 取出两个文件的并集(重复的行只保留一份)
sort aa bb | uniq -u 删除交集,留下其他的行
sort aa bb | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)

4.8 comm命令

comm -1 aa bb比较两个文件的内容只删除 ‘aa’ 所包含的内容
comm -2 aa bb 比较两个文件的内容只删除 ‘bb’ 所包含的内容
comm -3 aa bb 比较两个文件的内容只删除两个文件共有的部分

4.9 特殊属性

chattr +a aa只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d aa在进行文件系统备份时,dump程序将忽略这个文件
chattr +i aa设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s aa允许一个文件被安全地删除
chattr +S aa一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u aa若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性

4.10 文件权限

chmod u+x web.xml (—x------) 为文件拥有者(user)添加执行权限;
chmod g+x web.xml (------x—) 为文件拥有者所在组(group)添加执行权限;
chmod 111 web.xml (—x–x--x) 为所有用户分类,添加可执行权限;
chmod 222 web.xml (–w--w–w-) 为所有用户分类,添加可写入权限;
chmod 444 web.xml (-r–r--r–) 为所有用户分类,添加可读取权限;
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位
chown user1 aa改变一个文件的所有人属性
chown -R root aa 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 aa 改变文件的群组
chown root:group1 aa 改变一个文件的所有人和群组属性

echo ‘Hello World’ > /root/test.txt 重定向,将 'Hello World’追加到test.txt文件中

五、压缩与解压

5.1 tar命令

tar -cvf archive.tar aa 创建一个非压缩的 tarball
tar -cvf archive.tar aa bb dir 创建一个包含了 ‘aa’, ‘bb’ 以及 'dir’的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir 创建一个bzip2格式的压缩包
tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包
tar -xvf sky.tar.gz -C /etc/aa(C为大写,中间无空格)解压sky.tar.gz压缩包,到/etc/aa目录下;

5.2 zip命令

unzip aa.zip 解压一个zip格式压缩包
zip aa.zip bb.jar 将单个文件压缩(aa.zip)
zip -r aa.zip lib/ 将目录进行压缩(aa.zip)
zip -r lib.zip tomcat-embed.jar xml-aps.jar 将多个文件压缩为zip文件(lib.zip)
bunzip2 file1.bz2 解压一个叫做 'file1.bz2’的文件
bzip2 file1 压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz 解压一个叫做 'file1.gz’的文件
gzip file1 压缩一个叫做 'file1’的文件
gzip -9 file1 最大程度压缩

5.3 rar命令

rar a aa.rar test_file 创建一个叫做 ‘aa.rar’ 的包
rar a aa.rar a b c 同时压缩 ‘a’, ‘b’ 以及目录 ‘c’
rar x aa.rar 解压aa.rar包
unrar x aa.rar 解压aa.rar包

六、rpm包

rpm -ivh xx.rpm 安装一个rpm包
rpm -ivh --nodeeps xx.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U xx.rpm 更新一个rpm包但不改变其配置文件
rpm -F xx.rpm 更新一个确定已经安装的rpm包
rpm -e xxx.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包
rpm -qi xx_name 获取一个已安装包的特殊信息
rpm -qg “System Environment/Daemons” 显示一个组件的rpm包
rpm -ql xx_name 显示一个已经安装的rpm包提供的文件列表
rpm -qc xx_name 显示一个已经安装的rpm包提供的配置文件列表
rpm -q xx_name --whatrequires 显示与一个rpm包存在依赖关系的列表
rpm -q xx_name --whatprovides 显示一个rpm包所占的体积
rpm -q xx_name --scripts 显示在安装/删除期间所执行的脚本l
rpm -q xx_name --changelog 显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
rpm -qp xx.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm --checksig xx.rpm 确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
rpm -V xx_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va 检查系统中所有已安装的rpm包- 小心使用
rpm -Vp xx.rpm 确认一个rpm包还未安装
rpm2cpio xx.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild --rebuild xx_name .src.rpm 从一个rpm源码构建一个 rpm 包

七、YUM 源

yum install xx_name 下载并安装一个rpm包
yum localinstall xx_name .rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update xx_name .rpm 更新当前系统中所有安装的rpm包
yum update xx_name 更新一个rpm包
yum remove xx_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search xx_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件

八 、网络

ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 ‘eth0’ 网络设备
ifdown eth0 禁用一个 ‘eth0’ 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0 以dhcp模式启用 ‘eth0’

九、用户和群组

groupadd xx_name 创建一个新用户组
groupdel xx_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录)
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2005-12-31 user1 设置用户口令的失效期限
pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

十、Docker相关部署及指令

下载安装镜像包指令

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz

华为开源镜像

https://mirrors.huaweicloud.com/

常用命令

docker images 查看docker中下载好的镜像
docker search oracle 查询需要的容器名称
docker run -di --name=sky -p 3306:3306 -e mysql_ROOT_PASSWORD=root 26d26dsfsd31a 将需要的docker容器下载运行到本地(名称、端口号、msyql密码、ID):
docker ps 查看运行的docker容器
docker ps -a 查看所有的docker容器(包括未运行的)
docker stop first 停止当前运行的docker容器
docker start first 启动docker容器
docker restart first 重启docker容器
docker rm first 删除docker容器

有关Linux系统的常见命令

netstat -n | awk ‘/^tcp/ {++S[KaTeX parse error: Expected 'EOF', got '}' at position 4: NF]}̲ END {for(a in …NF==“ESTABLISHED”){wait[KaTeX parse error: Expected 'EOF', got '}' at position 5: 5]++}̲}END{for(i in w…NF==“CLOSE_WAIT”){wait[KaTeX parse error: Expected 'EOF', got '}' at position 5: 5]++}̲}END{for(i in w…NF==“TIME_WAIT”){wait[$5]++}}END{for(i in wait) print i,wait[i]}’ 查看处于TIME_WAIT状态连接
ping -c 4 www.baidu.com 检查与其是否联通
netstat -lt 列出所有处于监听状态的tcp端口
netstat -tulpn 查看所有的端口信息, 包括 PID 和进程名称
lsof -i:50070 查看某一端口的占用情况
netstat -tunlp 显示tcp,udp的端口和进程等相关情况
netstat -tunlp|grep 50070 指定端口号的进程情况
ps -aux |grep xxxx 查看PID进程信息
jstack 2246|grep ‘0x9eb’ -A 50 根据PID,查看JVM中各线程信息
ps aux | grep 'ssh 过滤得到当前系统中的 ssh 进程信息
ps -ef|grep java 查看当前运行的程序中,名称为java的程序
netstat -an 查看当前系统的ip连接
nohup sh test.sh & 将sh test.sh任务放到后台,并将打印的日志输出到nohup.out文件中,终端不再能够接收任何输入(标准输入)
vim /etc/hosts 添加host地址,打开配置文件
192.168.88.100 www.baidu.com 在打开的文件中添加
/etc/init.d/network restart 保存文件后,重启网络
df -h 查看系统硬盘使用情况
kill -9 2568 进程pid

资源占用

ps -au 占用的资源是从进程启动开始,计算的平均占用资源
top 实时占用的资源;

查看当前目录所占存储

du -lh 查看当前文件下各文件夹占用存储空间
du -sh 查看当前文件夹所占存储空间
du --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
du --max-depth=1 只查看当前目录下文件占用的存储空间

管道

ps -ef 查看所有的进程
ps -ef | grep mysql 查看mysql相关的进程

关闭防火墙

service iptables stop 临时关闭防火墙
chkconfig iptables off 防火墙开启不启动
service iptables status 查看防火墙状态

开机启动选项

msconfig 查看开机启动选项
chkconfig 查看开机启动服务列表

Mysql 状态

service mysql start 开启MySQL
service mysql status 查看MySQL的状态
service mysql stop 关闭MySQL

十一、用户权限

添加用户:

useradd –d /usr/sum -m sky

useradd的参数:

-u: 指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID

-g: 指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在

-G: 指定额外组

-c: 指定用户的注释信息

-d: 指定用户的家目录

passwd sky 设置密码
cat /etc/sky 新建的用户在面显示
userdel sky 删除用户
rm -rf /usr/sky 删除用户文件夹
su sky 切合用户
exit 回到root用户

groupadd groupname 添加组
groupdel groupname 删除组
cat /etc/group 可以看到自己的分组和分组id

Top

top 查看实时占用的资源

TOP:任务队列信息,与uptime命令执行结果相同.

xxx :xxx :xxx :系统时间
xxx 5:40:主机已运行时间
xxx users:用户连接数(不是用户数,who命令)
load average: 1.09, 1.04, 0.98:系统平均负载,统计最近1,5,15分钟的系统平均负载
Tasks:进程信息

xxx total:进程总数
xxx running:正在运行的进程数
xxx sleeping:睡眠的进程数
xxx stopped:停止的进程数
xxx zombie:僵尸进程数
%CPU(s):CPU信息(当有多个CPU时,这些内容可能会超过两行)

xxx us:用户空间所占CPU百分比
xxx sy:内核空间占用CPU百分比
xxx ni:用户进程空间内改变过优先级的进程占用CPU百分比
xxx id:空闲CPU百分比
xxx wa:等待输入输出的CPU时间百分比
xxx hi:硬件CPU终端占用百分比
xxx si:软中断占用百分比
xxx st:虚拟机占用百分比
KiB Mem:内存信息(与第五行的信息类似与free命令类似)

xxx total:物理内存总量
xxx free:已使用的内存总量
xxx used:空闲的内存总量(free + userd = total)
xxx buff/cache:用作内核缓存的内存量
KiB:swap信息

xxx total:交换分区总量
xxx free:已使用的交换分区总量
xxx used:空闲交换分区总量
xxx avail:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
2、进程信息区
PID:进程id

USER:进程所有者的用户名

PR:优先级

NI:nice值,负值表示高优先级,正值表示低优先级

RES:进程使用的、未被换出的物理内存的大小

%CPU:上次更新到现在的CPU时间占用百分比

%MEM:进程使用的物理内存百分比

TIME+:进程所使用的CPU时间总计,单位1/100秒

COMMAND:命令名/行

PPID:父进程id

RUSER:Real user name

UID:进程所有者的id

VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

GROUP:进程所有者的组名

TTY:启动进程的终端名。不是从终端启动的进程则显示为?

NI:nice值。负值表示高优先级,正值表示低优先级

P:最后使用的CPU,仅在多CPU环境下有意义

TIME:进程使用的CPU时间总计,单位秒

SWAP:进程使用的虚拟内存中被被换出的大小

CODE:可执行代码占用的物理内存大小

DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小

SHR:共享内存大小

nFLT:页面错误次数

nDRT:最后一次写入到现在,被修改过的页面数

S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名

Flags:任务标志

以上是关于常用Linux命令(分类详解!!)的主要内容,如果未能解决你的问题,请参考以下文章

Linux操作命令分类详解 - 命令速查

Linux操作命令分类详解 - 命令速查

Linux操作命令分类详解 - 进程查找其他

Linux操作命令分类详解 - 进程查找其他

linux常用命令详解

9个Linux 常用查看系统硬件信息命令(实例详解)