Linux命令详解(1)
仅展示部分命令,小编也在学习中后续会持续更新,后续补充的请查看Linux命令详解(2)
备注:快捷查看指令 ctrl+f 进行搜索会直接定位到需要的知识点和命令讲解,后续的会比前面的更详细以及对之前的内容修改和更新补充[以后续更新的为最新](如有不正确的地方欢迎各位小伙伴在评论区提意见,小编会及时修改)
基本指令操作
# 查看远端Linux的ip地址
ip a 或者 ip addr
# 清屏
clear
# 查看当前系统时间
date
#关机
poweroff 或者 init 0
#重启
reboot 或者 init 6
#修改主机名
hostnamectl set-hostname 新名字
#列出指定文件夹下的内容
ls
语法:
ls [参数] 路径
注意:参数可选
参数介绍:
-a 列出指定路径下的内容,包含隐藏文件
-l 列出指定路径下内容的详细信息[例如:权限,时间,所属组,所属用户]
-h 以人类可阅读的方式列出文件夹大小[一般与 -l 参数连用]
--full-time 以完整的时间格式输出 [不能与其他参数连用]
-t 根据最后一次修改的时间排序 展示内容[由新到旧]
-F 在不同的文件结尾 输出不同的特殊符号
以 / 结尾的就是文件夹
以 * 结尾的就是可执行文件
以 @ 结尾的就是软连接(快捷方式)
普通文件,结尾什么都没有
以. 开头的是隐藏文件
-d 显示文件夹本身信息(不输出文件夹内部信息)
-r 逆转排序
-S 针对文件大小进行排序 (默认是从大到小)
-Sr 从小到大排序
-i 显示出文件的 inode信息[文件的元数据(文件大小,位置,权限,文件的唯一标识)]
常见的用法
-- 查看指定目录下的信息
ls -l 路径 或者 ll 路径
-- 查看指定目录下的所有信息(包含隐藏文件)
ls -la 路径
案例1:列出根目录下所有内容的详细信息
ls -a -l /
参数可以合并:ls -la /
案例2:列出 /opt下所有内容的详细信息
ls -la /opt
-- 查看当前用户
whoami
-- 查看当前主机名
hostname
-- 查看当前命令行所在工作目录的绝对路径(print work directory)
pwd
-- 用户切换
su - 用户名
-- 创建用户
sudo useradd -m 用户名 [创建普通用户]
sudo passwd 用户名 [设置普通用户密码]
注意:
root账户切换普通用户,直接切换即可
普通用户切换 root 用户 需要输入密码
-- 退出当前用户 [切换到另外一个用户]
logout
或者
exit
注意:
1.一般情况下,linux的命令参数都是可选的 不同的参数作用不一样
2.linux命令之间,必须有一个或多个空格
路径表述
# windows系统下路径表述
|-C盘
|- 文件夹
|-文件夹
|-文件
|-a.txt
|-文件
|-文件
|-文件夹
|-D盘
|-F盘
# Linux系统下路径表述
---- 一切皆文件
/ 根目录
/
|-文件夹
|-文件夹
|-文件
|-文件
|-文件
|-文件夹
#linux系统中路径表述
1. 绝对路径(以 / 开头)
/文件
/文件夹/文件
2. 相对路径
./ 当前目录下
../ 上一层目录下
例如:
/opt/a.txt 绝对路径
./a.txt 当前目录下的 a.txt文件
../a.txt 上一层目录下的a.txt文件
说明
|-/opt/abc/a.txt
|-/opt/a.txt
此时我们处于abc文件夹下 ../a.txt --------> /opt/a.txt
目录说明
/boot 存放的是内核与启动文件
/dev 存放的硬件(设备)相关信息的文件
/etc 存放系统的配置文件
/etc/sysconfig/network-scripts/ifcfg-ens33:设置网络环境,例如动态、静态ip 设置是否支持远程连接......
/etc/resolv.conf:设置DNS域名解析
例如: 李四---手机号
www.baidu.com-----275.168.220.8
/etc/hostname : 设置主机名
/etc/motd : 设置开机显示
/etc/os-release:查看发行版 版本号
/home 普通用户的主目录
/media 可卸载存储介质挂载点
/mnt mount文件系统临时挂载点
/opt 应用程序包
/proc: 系统内存的映射目录,提供内核与进程信息
/proc/meminfo:系统内存信息
/proc/cpuinfo:关于处理器的信息 例如 类型,厂家,型号,性能等
/proc/loadavg:系统负载信息 uptime结果
/proc/mounts:已加载的文件系统列表
/root 特权用户(管理员)目录
/run 存放的是组件运行时所需要的文件[文件夹]
/srv 存放服务相关的数据
/sys 虚拟文件系统,记录核心系统的硬件信息
/tmp 存放临时文件
/usr 存放用户应用程序
/var 存放运行时内容会发生变化的文件 例如 日志
/var/log:记录系统及软件运行信息
/var/log/messages:系统级别日志文件
/var/log/secure:用户登录信息的日志文件
/var/log/dmesg:记录硬件信息加载情况(日志文件)
date指令简介
# 查看日期 date '+参数'
# 查看服务器的时间
案例:
[root@bz /]# date
2023年 10月 23日 星期一 11:38:48 CST
# 日期说明
一个日期包含: 年 月 日 星期 小时 分钟 秒 毫秒 纳秒 时区
# 日期查看参数说明
%F 只显示当前年月日(2023-10-23)
%X 只显示当前时间的时分秒(17时50分20秒)
%c 直接显示日期与时间(年月日 星期 时分秒)
%x 直接显示日期(年月日)
%T 显示时分秒 HH:MM:SS [24小时进制]
%r 显示时分秒 [12小时进制]
# 提取日期属性
%Y 完整的年份(四位的年份)(2023 2020)
%y 年份的末两位(2023--->23 2020 ---> 20)
%m 月份
%d 日(月份中的日)
%H 小时(24进制的小时)
%M 分钟(00 ~ 59)
%S: 秒
%p: 显示本地 AM PM
# 其他日期属性
%Z 显示时区
%w 一周中的第几天(0 ~ 6) 注意 星期日 0
%a 星期几(简写,比如 星期一显示一)
%A 星期几(全称)
%b 月份(简写)
%B 月份(全称)
%s 从1970年1月1日0时0分0秒 到现在 过了多少秒
案例:
# 展示当前系统时间 格式 YYYY-mm-dd HH:MM:SS
[root@bz /]# date '+%Y-%m-%d %H:%M:%S'
2023-10-23 11:54:53
文件管理
目录切换
cd 指令 ------ 目录切换
例如 cd / 切换到根目录下
cd /etc 切换到etc目录下
# 切换到当前目录(原地踏步)
cd .
# 切换到当前目录的上一层目录
cd ..
# 直接回到家目录
cd 或者 cd ~
# 回到上一次的目录
cd -
例如:
cd / # 回到根目录下
cd /etc # 切换到 /etc 目录下
cd - # 回到根目录[回到上一次的目录]
# 去到指定目录
cd 目录 #目录可以是相对路径 也可以是绝对路径
[root@bz /]# cd / # 切换到根目录
[root@bz /]# cd /etc # 切换到 etc 目录下
[root@bz etc]# pwd # 查看当前目录
/etc
[root@bz etc]# cd dhcp # 切换到当前目录下的 dhcp文件夹
[root@bz dhcp]# cd .. # 回到上一层目录
[root@bz etc]# cd ./dhcp # 切换到当前目录下的 dhcp文件夹
[root@bz dhcp]# cd # 直接切换到当前用户的家目录
[root@bz ~]# cd / # 切换回根目录 ~ 也是 家目录的标识
[root@bz /]# cd ~ # 直接切换到当前用户的家目录[root账户在 /root 目录下,其他用户在 /home目录下]
[root@bz ~]# cd - # 切换到上一次的工作目录
文件夹/文件的创建
文件夹的创建
# 创建一个文件夹
mkdir 可选参数 文件夹名字[包含路径]
例如:
[root@bz /]# mkdir /abc
等价于
[root@bz /]# mkdir abc
注意:
1.若未添加路径描述,默认在当前目录下
2. mkdir 文件夹 语法特点是:只能在已经存在的目录下创建文件夹,并且只能创建一层文件夹
mkdir -p 文件夹1/文件夹2 # 可以创建多级文件夹
参数:
-p 递归创建多级文件夹
# 案例
[root@bz /]# mkdir -p /peiqi/xiaopeiqi1
mkdir -v 文件夹 # 显示创建时的详细信息
批量创建文件夹
# 批量创建文件夹
mkdir {文件夹1,文件夹2,文件夹3}
# 案例1 在 根目录下创建 test1 test2 test3 三个文件夹
[root@bz /]# mkdir {test1,test2,test3}
# 案例2 在 /peiqi 下 创建 xiaopeiqi2 xiaopeiqi3 xiaopeiqi4
[root@bz /]# mkdir /peiqi/{xiaopeiqi2,xiaopeiqi3,xiaopeiqi4}
# 案例3 在 /abc 文件夹下创建 100个文件夹 file1 file2 file3 ...... file100
[root@bz /]# mkdir /abc/file{1..100}
[root@bz /]# mkdir -v /def/peiqi #-v 会显示文件夹的创建过程
mkdir: 已创建目录 "/def/peiqi"
[root@bz /]# mkdir -p -v /a/b # 递归创建文件夹并显示具体过程
mkdir: 已创建目录 "/a"
mkdir: 已创建目录 "/a/b"
文件的创建
用法: touch [可选参数] 文件
作用:
1. 创建普通文件
在linux系统中,文件的后缀格式仅仅只是一个名字而已,通过 touch命令创建的都是普通文件
2. 修改文件的时间
# 创建一个文件
# 在 /a/b文件夹下创建 xiaopeiqi1.txt 文件
[root@bz /]# touch /a/b/xiaopeiqi.txt
[root@bz /]# ll /a/b
总用量 0
-rw-r--r--. 1 root root 0 10月 23 15:41 xiaopeiqi.txt
# 创建多个文件
touch 文件1 文件2 文件3;
# 案例
1. 在当前目录下创建三个文件 a.txt b.txt c.txt
[root@bz d]# touch a.txt b.txt c.txt
2. 在 /c 目录下创建三个文件 a.txt b.txt c.txt
[root@bz d]# touch /c/a.txt /c/b.txt /c/c.txt
3. 批量创建多个文件
-- 在/abc 文件夹下创建 baizhi1.txt baizhi2.txt baizhi3.txt ..... baizhi100.txt
[root@bz /]# touch /abc/baizhi{1..100}.txt
[root@bz /]# ls -la /ab
注意: {1..100} {a..z} 前提是可排序(可比较大小)
# 修改文件的创建时间
touch -t # 修改文件的创建时间
案例1:
-- 将 xiaopeiqi.txt 文件创建时间修改为 10月24号9点30分 [默认是系统年份]
[root@bz b]# touch -t 10240930 xiaopeiqi.txt
-- 将 xiaopeiqi.txt 文件创建时间修改为 2030-10-23 09:30
[root@bz b]# touch -t 203010230930 xiaopeiqi.txt
注意: 日期修改范围 年月日时分
# 将a.txt文件的创建时间 充当 文件b 的创建时间
touch -r 文件a 文件b
或者
touch --reference=文件a 文件b
案例2:
-- 创建 yangdd.txt 文件 且创建时间和 xiaopeiqi.txt 的时间一致
[root@bz b]# touch -r xiaopeiqi.txt yangdd.txt
[root@bz b]# ll --full-time ./
总用量 0
-rw-r--r--. 1 root root 0 2030-10-23 09:30:00.000000000 +0800 xiaopeiqi.txt
-rw-r--r--. 1 root root 0 2030-10-23 09:30:00.000000000 +0800 yangdd.txt
[root@bz b]# touch --reference=xiaopeiqi.txt cpx.txt
[root@bz b]# ll --full-time ./
总用量 0
-rw-r--r--. 1 root root 0 2030-10-23 09:30:00.000000000 +0800 cpx.txt
-rw-r--r--. 1 root root 0 2030-10-23 09:30:00.000000000 +0800 xiaopeiqi.txt
-rw-r--r--. 1 root root 0 2030-10-23 09:30:00.000000000 +0800 yangdd.txt
文件拷贝(复制)
用法: cp [可选参数] 源文件 目标文件
参数
-r 递归式复制目录 即复制目录下所有的子目录和文件
-d 复制的时候保持软链接(快捷方式)
-p 等价于 --preserve=模式,所有权,时间戳,复制文件时保持源文件的权限,时间属性[完美复刻]
-a 等价于 -pdr
-i --interactive 覆盖前询问提示(生成的文件和当前目录下已经存在的文件冲突)
# 1. 复制普通文件
cp 文件1 文件2 # 复制一份文件1,生成文件2
# 2. 复制整个文件夹
cp -r 文件夹1 文件夹2 #将文件夹1所有内容复制 生成 文件夹2
# 3. 复制文件并修改生成文件的路径
cp 目录1/文件1 目录2/文件2 # 将文件1复制到目录2下 若文件2名字缺失 新文件名字与文件1 保持一致
# 4. 覆盖前提示
cp 文件1 文件2 # 当前目录下已经存在文件2 询问是否覆盖
等价于
cp -i 文件1 文件2
# 5. 批量复制多个文件
cp 文件1 文件2 文件3 文件夹 # 将文件1 文件2 文件3 拷贝到 指定文件夹下
系统指令别名
alias
系统指令别名
cp ----- 简写(别名)
等价
cp -i ---- 指令完整写法
# 查看指定别名对应的指令
type -a 别名
[root@bz b]# type -a ll
ll 是 `ls -l --color=auto' 的别名
# 设置别名
1. 查看 指定文件夹的 详细信息,隐藏文件,时间戳
ls -la --full-time 目录
设置别名
alias 别名='命令'
例如: alias nb='ls -la --full-time'
[root@bz b]# alias nb='ls -la --full-time'
[root@bz b]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias nb='ls -la --full-time'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@bz b]# type -a nb
nb 是 `ls -la --full-time' 的别名
[root@bz b]# nb /a
总用量 4
drwxr-xr-x. 4 root root 61 2023-10-23 16:40:49.133677006 +0800 .
dr-xr-xr-x. 25 root root 4096 2023-10-23 15:33:58.688504641 +0800 ..
drwxr-xr-x. 2 root root 148 2023-10-23 16:50:38.988993905 +0800 b
-rw-r--r--. 1 root root 0 2023-10-23 16:40:09.485522155 +0800 chenpx.txt
-rw-r--r--. 1 root root 0 2023-10-23 16:40:49.133677006 +0800 cpx.txt
drwxr-xr-x. 2 root root 130 2023-10-23 17:04:36.027418341 +0800 peiqi
# 取消别名
unalias 别名;