IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux 常用命令 常用选项 -> 正文阅读

[系统运维]Linux 常用命令 常用选项

Linux命令太多眼花缭乱的,在这整理一下我觉着最基础常用的命令及其选项。
// 文中还有几个”传送门“,后续会”打通“

一般语法形式:命令 [选项] (s) 参数(s)

本文中形式:命令 [选项] (s) 参数(s) 指令解释 // 每条最后的汉字部分都是解释,前面的可能会有缺省

首先是这几个命令用法

1.help [命令] 详细帮助信息
help -d?输出每个主题的简短描述
help -m 以伪 man 手册的格式显示使用方法

2.man [命令] 查看相应的手册
man -w [名称] 查看对应手册位置

3.指令 --help

大部分命令可以在这三种方法中找的帮助信息,在其中一种方法里没有找到就找另外两种方法,再没有就百度

poweroff 关闭系统

shutdown 关闭或重启系统
?直接看例子:
?shutdown -r now 立即重启系统
?shutdown -r 02:11 2点11重启系统
?shutdown -h now 立即关闭系统
?shutdown -h +45 45分钟后关闭系统
?shutdown -c 取消运行shutdown

halt 关闭系统 (和poweroff区别就是halt不会断电,在虚拟机里试试就看出来了)

reboot 重启

init 切换系统运行级别
?init 0 关闭系统
?init 6 重启系统

vi [选项] [文件]

vim

vi vim详细看这:

pwd 显示当前路径

cd [路径] 更改工作路径 // change directory

ls 列出当前目录下所有子目录和文件信息
?-C 多列输出,纵向排序
?-R 递归列出遇到的子目录
?-a (all) 列出所有文件,包括以 “.” 开头的隐含文件
?-A 显示除 “.” 和 “…” 外的所有文件。
?-c 使用“状态改变时间”代替“文件修改时间”为依据来排序(使用“ -t ”选项时)或列出(使用“ -l ”选项时)。
?-u 使用最近访问时间代替最近修改时间为依据来排序(使用 “ -t ”选项时)或列出(使用“ -l ”选项时)。
?-r 逆序排列。
?-t 按时间信息排序。
?-1 单列输出。
?-l 除每个文件名外,增加显示文件类型、权限、硬链接数、所有者名、组名、大小(byte)、及时间信息(如未指明是其它时间即指修改时间)。对于6个月以上的文件或超出未来1时的文件,时间信息中的时分将被年代取代。
?dir ( 也被安装为命令 d ) 等同于“ ls -C ”;即,文件缺省是多列输出,纵向排序。
?vdir ( 也被安装为命令 v ) 等同于“ ls -l ”;即,文件缺省是按长格式输出。

dir 和 ls作用一样, 用ls输出的有颜色,试试就看出来了

dirs 显示当前目录
例:

[root@localhost eclipse-workspace]# dirs
~/eclipse-workspace

dirname 名称 输出去除尾部’/'字符部分的名称
?dirname /usr/bin/ -> /usr
?dirname dir1/str dir2/str -> dir1 dir2
?dirname stdio.h -> .

basename [选项] 名称 [后缀] // 去除前面的部分
?basename /usr/bin/sort -> sort
?basename include/stdio.h .h -> stdio
?basename -s .h include/stdio.h -> stdio
?basename -a any/str1 any/str2 -> str1 str2 (必须有-a 和dirname多个参数的情况区别)

touch [选项] 文件名 创建文件
?-c, --no-create 不创建文件如果不存在的话
touch [选项] 文件名 修改时间
?-a 修改文件的访问时间atime
?-m 修改文件修改时间mtime
?-r file 将参照文件file相应的时间戳记的数值作为指定文件时间戳记的新值( use this file’s times instead of current time)
?-t [[CC]YY]MMDDhhmm[.ss] 用[[CC]YY]MMDDhhmm[.ss]将当前时间改为指定时间
??// [[CC]YY]MMDDhhmm[.ss]从左至右分别是月份,日期,小时,分钟,可选的世纪和年,以及可选的秒
?-d, --date=字符串 使用指定字符串表示时间而非当前时间
?(-d, --date=time 使用时间值 time 代替指定文件的戳记值.可以包含月份 名,时区名以及`am’和 `pm’等等)

mkdir 目录名 创建目录 默认权限755
?-m 设置权限
?-p 创建多级目录
?(-p, --parents 为所给出的目录建立丢失了的父目录)

rmdir 删除空目录。如果[目录]由多个路径名组成,从最后一个路径名开始依次删除,如果所给出的目录不为空,则报错,删除非空目录可以用rm -r
?-p [目录] 递归删除空目录,当子目录删除后其父目录为空时,父目录一并被删除(如果你在某上一级目录中执行的操作的话,你在的这一级空目录不会被删除,递归到这停止)

cp 源文件|目录 目标文件|目录 复制文件或目录
?Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
?-r -R (recursive)递归复制
?-l (link)不复制只链接文件 硬链接
?-f, --force 在覆盖目标文件前不给提示要求用户确认
?-i,–interactive(交互的,互动的) 在覆盖目标文件前给出提示要求确认

install 复制文件和设置属性
?install 和cp差不多 但比cp还多一个-m选项
?-m, --mode=模式?自行设置权限模式(像chmod)
?例:install -m 744 a.txt /opt

mv 源文件|目录 目标文件|目录 改名,移动
?Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
?源可以有多个 [root@localhost opt]# mv a.txt b.txt module
?-f, --force 覆盖前不询问
??-i, --interactive 覆盖前询问
??-n, --no-clobber 不覆盖已存在文件
??如果指定了-i、-f、-n 中的多个,仅最后一个生效。
?-u, --update move only when the SOURCE file is newer than the destination file or when the destination file is missing

rm 删除文件或目录
?-f, --force ignore nonexistent files and arguments, never prompt
?-i prompt before every removal
?-r, -R, --recursive remove directories and their contents recursively
?这类比前面的选项就好了

file du tree ln 直接上使用的例子:

??file 文件名 查询文件类型

??du 文件|目录(s) 查看文件目录磁盘占用量
??du 查看当前目录的磁盘占用量

??tree 目录 以树状图逐级列出目录的内容
??tree 当前目录的树状图

??ln 源文件 链接文件 创建硬链接
??ln -s 源文件 链接文件 创建软链接 (符号链接)

stat 显示文件或文件系统状态
?stat [选项] 文件|目录
?-f 显示文件或目录所在文件系统的状态信息
?-t 简明形式显示
?例:
?

[root@localhost spark-local]# stat README.md
文件:"README.md"
大小:4488       块:16         IO 块:4096   普通文件
设备:802h/2050d Inode:6419561     硬链接:1
权限:(0644/-rw-r--r--)  Uid:( 1000/   a2416)   Gid:( 1000/   a2416)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2021-10-18 23:06:59.978664827 +0800
最近更改:2020-06-06 21:34:17.000000000 +0800
最近改动:2021-10-10 19:09:47.293271005 +0800
创建时间:- 

scp 安全复制(远程文件复制程序)
?usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 … [[user@]host2:]file2 这用法看这很乱,看下面的例子。
? -r 递归复制整个目录。
?例:scp -r /opt/module/jdk a2416@192.168.1.111:/opt/module
?// a2416是用户名,目标主机上的用户,192.168.1.111是目标主机
?这个例子是是将本主机的文件jdk传给192.168.1.111。scp还可以将其他主机的文件传给自己,或将其他主机的文件传给其他主机,就和cp命令类似,就是在写参数地址时要加上用户和主机,有权限就行。

还有个rcp 没用过

rsync (remote sync)是一个文件传输程序,能够有效的远程更新
(sync是一个将缓冲文件写入磁盘中的命令。如果学Hadoop或spark或其他的需要同步文件等操作的,会做一个集群分发脚本xsync)
?-v, --verbose 显示复制过程
?-a,–archive 存档模式; = -rlptgoD // 下面是rlptgoD 一个-a选项就够用了
?-r, --recursive recurse into directories 递归复制
?-l, --links copy symlinks as symlinks 将符号链接复制为符号链接
?-p, --perms preserve permissions 保留权限
?-t, --times preserve modification times 保留修改时间
?-g, --group preserve group 保留组
?-o, --owner preserve owner (super-user only) 保留所有者(仅限超级用户)
?-D same as --devices --specials 保留设备信息
?例:rsync -av hadoop-3.1.3/ a2416@hadoop103:/opt/module/hadoop-3.1.3/

cat [选项]… [文件]… // 只读
?-b, --number-nonblank 对非空输出行编号
?-E, --show-ends 在每行结束处显示"$"
?-n, --number 对输出的所有行编号
?-s, --squeeze-blank 不输出多行空行 (多行空格替换为一行空格)

more 分页显示文本文件

less 回卷显示文本文件

more less 区别用法详细看这:

head 显示文件前若干行 默认10行
?-n K 显示前K行
?-n -K 显示除了最后K行以外的所有内容
?-c K 显示前K字节
?-v 显示文件头

tail 显示文件最后若干行 默认10行
?使用方法类比head

grep 查找符合条件的字符串
?grep [选项]… 查找模式 [文件]…
?-i, --ignore-case 忽略大小写
?-n, --line-number 输出的同时打印行号
?-H, --with-filename 为每一匹配项打印文件名
?例:grep -n ‘ss’ a.txt 在a.txt文件中搜索匹配‘ss’字符串并加上行号
???gerp ‘ss’ a* .txt 查找所有以a开头的txt文件里的’ss‘字符串
???history | grep ls 查找历史命令中的ls命令(history命令和 管道符| 下面写)

find 列出所有符合条件的文件
?基础用法:
?find 文件名
?不基础用法:
?find --help 值得你拥有(使用find时选项很重要,需要详细了解的可以去看help命令文档)

cal 显示日历信息 了解了解练着玩玩,还挺好玩的
?用法:cal [选项] [[[日] 月] 年]
?选项:
?-1, --one 只显示当前月份(默认)
?-3, --three 显示上个月、当月和下个月
?-s, --sunday 周日作为一周第一天
?-m, --monday 周一用为一周第一天
?-j, --julian 输出儒略日(儒略日是一种不记年·月,只记日的历法)
?-y, --year 输出整年

date 超级用户可以显示和设置系统日期和时间 一般用户可以显示日期和时间
?-d, --date=STRING display time described by STRING, not ‘now’ 显示字符串时间
?-r, --reference=文件??显示文件指定文件的最后修改时间
?-s, --set=STRING set time described by STRING 设置时间
date 显示日期和时间
?date +‘%m’ 显示月份 // 指定格式输出 显示时间是可以使用时间域
?date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
?date -s 20201103 设置日期为2020年11月03日

clockdiff 主机之间测量时钟差
?例:
?

[root@localhost ~]# clockdiff 192.168.219.100
..
host=192.168.219.100 rtt=562(280)ms/0ms delta=18ms/18ms Tue Oct 19 22:03:18 2021

sleep 暂停指定时间
?'m’表示分钟,'h’表示小时,'d’表示天。给定两个或多个参数,暂停时间为参数值的和。
?例:sleep 20 暂停20秒
???sleep 2h 暂停2小时

> 输出重定向 : 会将原来的文件的内容覆盖

>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部。
?例: history>a.txt cal>>a.txt

| 管道符
?“|”左边命令的输出就会作为“|”右边命令的输入,此命令可连续使用,第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
?例:
?

[root@localhost ~]# ls | grep b  
b.txt
b.txt.zip

例子中ls命令列出当前目录下文件和目录通过管道符传给grep命令进行筛选查找名称包括’b’的文件或目录

xargs(英文全拼: eXtended ARGuments)xargs 作用有很多,详细去看https://www.runoob.com/linux/linux-comm-xargs.html和这https://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html
?在这只说它的一个作用,将左侧命令的输出作为右边命令的参数(对我现在刚入门的水平来说,我觉着这个命令简直了,真的很有用)
?例:

[root@localhost a]# find *c*
abc.txt
c
ffc
[root@localhost a]# find *c* | xargs rm -rf 

找到所有包含’c’的文件或文件夹全部删掉

source 在当前shell环境中从指定文件读入和执行命令
?例:source /etc/profile

history 查看命令历史记录
?-c?删除所有条目从而清空历史列表。
?例:history 查看所有历史命令
???history 10 查看最近10条命令
???history -c 清空命令历史记录

fc 从历史列表中列出或者重新编辑并执行命令
?-l ?列出行而不编辑
?-n?列举时省略行号
?-r?反转行的顺序(最新行在前)

fc 详细看这:Linux_fc用法_-s选项https://blog.csdn.net/a2416258499/article/details/120857378

alias 定义或显示别名
?用法:alias 别名=命令
?例:alias lsl=‘ls -l’ 定义别名ok // 可以看看自己的已定义的别名,里面可能有个alias ll=‘ls -l --color=auto’
???alias 查看所有已定义的别名

unalias 取消别名
?例:unalias lsl

export 显示或设置环境变量
?-n 删除指定的环境变量
?-p 列出所有的环境变量
?例:export -p 列出所有环境变量
???export NIHAO=2 设置环境变量NIHAO的值为2
???export -n NIHAO 删除环境变量NIHAO
?// 一开始学Linux时配置环境变量时,比如jdk,都会用到export,打开profile文件,然后加入 export PATH="$PATH:/opt/jdk/bin"

set 显示和设置shell变量
?set A 10

unset 删除变量或函数
?unset A

以上三个命令在shell编程时常用

env 查看和设置环境变量

passwd 给用户指定或者修改密码
?-d 删除用户密码
?例:passwd lala 给lala设置密码
???passwd -d lala 删除lala的密码

useradd 创建用户 // 创建的用户是锁定的,需要用passwd设置密码后使用
?还有个adduser 和它用法一样
?例:useradd lala 创建一个lala用户 // 打开/home 然后会看到一个叫lala的文件夹

usermod 修改用户
?-g, --gid GROUP 强制使用 GROUP 为新主组
?例:user -g mm lala 将lala修改到mm组

userdel 删除用户
?-r, --remove 删除主目录和邮件池
?-f, --force 强制删除

groupadd 创建组群
?例:groupadd mm 新建mm组

groupmod 修改组群

groupdel 删除组

gpasswd 设置组密码或向组中添加或删除用户

以上都是useradd、usermod、groupadd、groupmod、gpasswd的基础用法

用户和组的操作详细看这:

groups 显示指定用户的组

id 显示用户的uid gid 选项有-u -G -g
?例:
?

[root@localhost home]# id lala
uid=1008(lala) gid=1008(lala) 组=1008(lala)

su 切换其他用户
?例:su lala 切换到lala用户

sudo 以另一个用户执行命令
?菜鸟教程是这么说的:Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
?也就是说临时赋予当前用户root权限
?比如我们现在不是超级用户,需要编辑某个只有root才有权限编辑的文件,就可以使用sudo,比如:
?sudo vim profile

w 详细查询已登录当前计算机的用户
who 显示已登录当前计算机的用户的简单信息
whoami 显示与当前的有效 用户ID相关联的用户名
logname 显示当前用户的登录名称
users 用单独的一行显示出当前登录的用户
last 显示近期用户登录情况
lastb 列出登录系统失败的用户信息
lastlog 查看用户上次登录的时间

chmod 改变文件和目录的访问权限
?-R, --recursive 递归改变目录及其所有子目录的文件的权限
?例:chmod -R 744 a 递归改变文件夹a的权限

权限操作详细看这:

chown 更改文件和目录的用户所有者和组所有者
?-R 递归将下级的所有文件和目录一起更改
?例: chown -R lala a 将文件夹及其下级目录的用户所有者改为lala
???chown .lala a 将文件a的组改为lala
???chown :lala a 将文件a的组改为lala

chgrp 更改文件或目录的所属组
?例:chgrp lala a

getfacl 查看文件的ACL
?例:

[root@localhost ~]# getfacl a
# file: a
# owner: lala
# group: lala
user::rwx
group::r--
other::r--

还有setfaclchacl命令,–help 值得你拥有

lsattr -a -R -v 可以执行试试

接下来是几个压缩和解压缩命令

tar 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。
?例:tar 常用的两种:
???tar -zcvf a.tar.gz a1.txt 将a1.txt压缩为a.tar.gz
???tar -zxvf a.tar.gz [目录] 将a.tar.gz解压到[目录]下(缺省目录的话就是解压到当前目录;a.tar.gz文件可以通过 目录/a.tar.gz确定,不一定是在a.tar.gz的父目录下解压,啊,应该不用我说吧,多嘴了)

gzip 压缩或解压缩gzip文件
?例:gzip b.txt 压缩b.txt文件
???gzip -d b.txt.gz 解压b.txt.gz文件

gunzip 解药gzip文件
?例:gunzip b.txt.gz

zip 压缩zip文件
?例:zip b.txt.zip b.txt 将文件b.txt压缩为b.txt.zip

unzip 解压缩zip文件
?例:unzip b.txt.zip 解压b.txt.zip文件

压缩解压,查看压缩文件等更多操作看这:

rpm RedHat Package Manager(RedHat 软件包管理工具)
?例:rpm -i XXX.rpm 安装XXX.rpm

yum 管理器
?例:yum install XXX 安装XXX

rpm yum详细看这

Ubuntu用的是apt

ps 报告当前进程的快照。显示有关选择活动进程的信息。如果你想要重复更新选择和显示的信息,使用top代替。
?常用形式:ps -aux

top 显示Linux进程。top程序提供了一个运行系统的动态实时视图。 它可以显示系统摘要信息,以及当前由Linux内核管理的进程或线程列表。 显示的系统摘要信息的类型以及为进程显示的信息的类型、顺序和大小都是用户可配置的,并且该配置可以在重启时保持不变。

kill 终止进程 通过进程号杀死进程
?-9 强制终止
?例:kill -9 1000

killall 通过进程名称杀死进程
?-u 杀死指定用户的进程
?例:killall 进程名
???killall -u lala 杀死用户lala的进程

ntsysv 配置服务在系统启动时自启

chkconfig 为系统服务更新和查询运行级别信息

用法:chkconfig [--list] [--type <type>] [name]
     chkconfig --add <name>
     chkconfig --del <name>
     chkconfig --override <name>
     chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities>

??例:chkconfig --list 查看不同运行级别下个服务开机启动情况
??centos7里chkconfig有变动,在这就不深究了,可以执行下面的
??systemctl list-unit-files 列出 systemd 服务
??systemctl list-dependencies [target] 查看在具体 target 启用的服务

service 运行System V init脚本
?选项: --status-all 查看系统中所有服务现在的运行状态
?start 启动服务
?stop 停止服务
?restart 重启服务
?status 查看状态
?reload 重新载入服务配置
?例:service iptables start 启动防火墙
?注意:centos7中 service和iptables都有所变动,centos7中使用 systemctl 和 firewalld

firewalld具体看这:

systemctl 查询或发送控制命令到systemd管理器。
?例:systemctl restart firewalld 重启防火墙

crontab 针对个人用户维护crontab文件
?-e edit user’s crontab 编辑用户的crontab
?-l list user’s crontab 列出用户的crontab
?-r delete user’s crontab 删除用户的crontab

crontab具体操作看这

ifconfig 显示和配置网络接口

ifdown <设备名> 关闭网络接口
?例:ifdown ens33

ifup 开启网络接口
?例:ifup ens33

ping 测试与目标计算机中间的连通性
?例:ping www.baidu.com
???ping 192.168.1.100

mtr 进行网络诊断
?例:mtr 192.168.1.100

netstat 查看系统网络情况
?常用选项例子:netstat -anp | more
????????netstat -tulnp

netstat详细看这:

ip 显示/操作路由、设备、策略路由和隧道
?例:ip address 查看网卡协议地址
???ip address show ens33 查看网卡ens33

setup 文本模式系统配置工具

nmap详细看这:

ssh 远程登录主机

还有一些试着玩玩的命令:

lsmod 显示内核中模块的状态

lscpu 显示CPU信息

nproc 显示当前进程可用CPU数

lspci 显示所有PCI设备

lsscsi 显示SCSI设备

lsusb 显示USB设备

dmidecode 查看服务器型号,主板序列号,系统系列号,内存信息等

arch 显示计算机主机的体系结构

sestatus 查看当前SELinux状态

lsblk 显示块设备

time ls /root 查看执行ls /root命令的资源使用时间

uptime 显示系统已经运行的时间

ipcs 提供IPC设备信息

ssh-keygen 创建ssh密钥

sshagent 存储用于公钥验证的私钥

ssh-add 添加RSA或DSA身份的认证代理

ssh-keyscan 收集主机公钥

echo 在显示器上显示文字

printf 格式打印数据

clear 清屏 快捷键Ctrl+L 也行

type 显示命令类型

mysql -uroot -p 登录mysql数据库

hostname 显示或修改计算机主机名

本文除参考命令帮助文档外,还参考了《Linux命令应用大词典》於岳编著

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:51:46  更:2021-10-23 12:54:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:28:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码