linux常用命令精讲
linux常用命令精讲
一.linux命令基础
1.Linux的哲学思想
- 一切都是一个文件。(包括硬件,文本,二进制,源代码)
- 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
- 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
- 避免令人困惑的用户界面就是没有复杂的图形界面。
- 连配置文件都存储在文本中,方便增删改查。
- 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
2.什么是shell
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当“翻译官”
- 用户登录Linux系统时,自动加载一个shell程序
- bash是Linux系统中默认使用的shell程序
文件位于/bin/bash
3.linux命令的分类
- 内部命令与外部命令的区别
内部命令:
- 集成于shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令
- 属于shell的一部分
- 没有单独的对应系统文件
- 自动载入内存,可直接使用
外部命令:
- linux系统中能够完成特定功能的脚本文件或二进制程序
- 属于shell翻译器程序外的命令
- 每个外部命令对应了系统中的一个文件
- 必须知道其对应的文件位置,由shell加载后才能执行
4.Linux命令行的格式
- 通用的命令行使用格式
- 命令字空格[选项]空格[参数]
命令字:
- 是整条命令最关键的一部分
- 唯一确认一条命令
选项:
- 短格式选项:使用”-“符号引导(多个单字符选项可以组合在一起)
- 长格式选项:使用”--“符号引导
参数:
- 命令字的处理对象
- 可以是文件名、目录(路径)名或用户名等内容
- 个数可以是零到多个
二.Linux命令帮助
1.快捷键
快捷键 | 功能 |
---|---|
Tab 键 | 自动补齐(两次可以显示所有选项) |
反斜杠“\” | 强制换行或转义 |
Ctrl+a | 光标移到最前 |
Ctrl+e end 键 | 光标移到最后 |
Ctrl+U | 清空至行首不包括当前光标处的 字符 |
Ctrl+K | 清空至行尾包括当前光标处的字符 |
Ctrl+w | 从当前光标删除到开头 |
ALT+d | 从当前光标删除末尾 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令编辑 |
Ctrl+s/Ctrl+q | 锁屏/解锁 |
向上下箭头 | 回看执行过的命令 |
2.帮助命令
help
oot@localhost ~]# help echo #查看内部帮助命令
echo: echo [-neE] [参数 ...]
将参数写到标准输出。
```bash
在标准输出上显示 ARG 参数后跟一个换行。
选项:
-n 不要追加换行
-e 启用下列反斜杠转义的解释
-E 显式地抑制对于反斜杠转义的解释
`echo' 对下列反斜杠字符进行转义:
\a 警告(响铃)
\b 退格
\c 抑制更多的输出
\e 转义字符
\f 格式提供
\n 换行
\r 回车
\t 横向制表符
\v 纵向制表符
\\ 反斜杠
\0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
0到3个八进制数字
\xHH 以 HH (十六进制)为值的八比特字符。HH可以是
一个或两个十六进制数字
```
--help
[root@localhost ~]# useradd --help #帮助查看外部命令
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
man
man 分为九个章节默认打开第一张
[root@localhost ~]# man man #查看帮助手册
man(1) General Commands Manual man(1)
NAME
man - 格式化并显示在线帮助手册页
manpath - 定义用户查找man手册页的路径
总览
man [-acdfFhkKtwW] [-m 系统名] [-p <前处理程序>] [-C <配置文件>] [-M
<路径>] [-P <浏览方式>] [-S <区段清单>] [区段名称] 帮助主题 ...
描述
man 格式化并显示在线帮助手册页面。此版本支持 MANPATH 和 (MAN)PAGER
环境变量,因此,你可以拥有你自己的一系列 man
手册页并决定使用哪个程序来显示此格式的页面。如果定义了区段, man
将只查找在指定区段内的文档。你也可以通过命令行或环境变量来指定查找区段
的顺序和预定义将要执行的程序。如果主题中有“/”符号,则将其作为文件名的一部分
处理
,也就是说你可以用 man ./foo.5 也可以用 man /cd/foo/bar.1.gz 来查看各man
文档。
选项
-C 配置文件
定义man.conf供使用;默认使用的是 /etc/man.config 。(参见
man.conf(5))。
-M 路径
定义一组查找man手册页的目录。如果没有指定此参数,系统环境变量
MANPATH将被使用。 如果查无到此环境变量,则按默认 /etc/man.config
文件中指定的查找。一个空的 MANPATH 子字 符串表示使用默认清单。
-P 浏览方式
定义浏览的方式。此选项将覆盖 MANPAGER 环境变量(此变量将覆盖
PAGER 变量)。若不指定 此参数,则使用 MANPAGER 或 PAGER
环境变量中的设置。此选项的预设的显示方式为 /usr/bin/less-is。
-S 区段清单
info
info也可以查看相关的帮助信息
三.目录与文件基本操作
1.查看切换显示统计目录
pwd
[root@localhost bin]# pwd #显示当前路径
/bin
[root@localhost bin]# pwd -P #显示真实路径
/usr/bin
cd
命令 | 效果 |
---|---|
cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
cd - | 到前一次目录 |
一个点号“.”开头 | 表示以当前的工作目录作为起点(已点开头的是) |
两个点号“..”开头 | 表示以当前目录的上一级目录(父目录)作为起点 |
“~用户名”形式开头 | 表示以指定用户的宿主目录(家目录)作为起点 |
"."开头文件 | 表示隐藏文件 |
[root@localhost bin]# cd
[root@localhost ~]# cd ~
[root@localhost ~]# cd /opt
[root@localhost opt]# cd
[root@localhost ~]# cd /opt
[root@localhost opt]# cd ~
[root@localhost ~]# cd -
/opt
[root@localhost opt]# cd .
[root@localhost opt]# cd ..
[root@localhost /]#
[root@localhost ~]# ls -a #这里可以看出很多以点开头的文件,这些都是隐藏文件
. .bashrc .local .viminfx.tmp 图片
.. .cache log.txt .viminfy.tmp 文档
123 .config .tcshrc .viminfz.tmp 下载
1.txt .cshrc touch .xauth6PY6Hc 音乐
anaconda-ks.cfg .dbus .viminfo .Xauthority 桌面
.bash_history .esd_auth .viminfo.tmp 公共
.bash_logout .ICEauthority .viminfv.tmp 模板
.bash_profile initial-setup-ks.cfg .viminfw.tmp 视频
ls
格式
ls [选项] [文件或者目录]
选项 | 效果 |
---|---|
-l | 已长格式显示文件和目录列表 ll=ls -l |
-a | 显示全部文件包括隐藏文件 |
-A | 显示全部文件或隐藏文件,但不包括.和.. |
-d | 只显示当前目录 |
-h | 友好显示文件大小 |
-R | 递归显示该目录及该目录子目录下的所有内容 |
--color | 显示颜色 |
-s | 按从大到小排序 |
[root@localhost ~]# ll #以长格式显示文件或目录列表
总用量 16
-rw-r--r--. 1 root root 8 1月 22 23:46 123
-rw-r--r--. 1 root root 0 1月 20 11:32 1.txt
-rw-------. 1 root root 2130 12月 31 21:10 anaconda-ks.cfg
-rw-r--r--. 1 root root 2178 12月 31 21:14 initial-setup-ks.cfg
-rw-r--r--. 1 root root 633 1月 22 23:36 log.txt
drwxr-xr-x. 1 root root 0 1月 20 11:17 touch
drwxr-xr-x. 1 root root 0 1月 18 15:45 公共
drwxr-xr-x. 1 root root 0 1月 18 15:45 模板
drwxr-xr-x. 1 root root 0 1月 18 15:45 视频
drwxr-xr-x. 1 root root 0 1月 18 15:45 图片
drwxr-xr-x. 1 root root 0 1月 18 15:45 文档
drwxr-xr-x. 1 root root 0 1月 18 15:45 下载
drwxr-xr-x. 1 root root 0 1月 18 15:45 音乐
drwxr-xr-x. 1 root root 0 1月 18 15:45 桌面
解释:-rw-r--r--. 1 root root 8 1月 22 23:46 123
-: 代表文件属性(普通文件 或文件夹)
rw-r--r--:代表权限(可读、可写、可执行)
1:硬连接快捷方式
第一个root:属主(文件的主人)
第二个root:属组(属于哪个组)
8:文件大小
1月 22 23:46:修改时间
123:文件名
1.不同文件的表示
- - 普通文件
- d 目录文件directory
- l 符号链接文件link
- b 块设备block 比如直接读1块 /dev 4k (512*8(扇区)=4096字节=4k)
- c 字符设备character 一个字符一个字符读取 /dev/zero (/dev/null)
- p 管道文件pipe 两个软件联系 A-管道文件-B A 写 B 读 单向的
- s 套接字文件socket 可以双向的
[root@localhost ~]# ls -a #显示全部文件包括隐藏文件
. .bashrc .local .viminfx.tmp 图片
.. .cache log.txt .viminfy.tmp 文档
123 .config .tcshrc .viminfz.tmp 下载
1.txt .cshrc touch .xauth6PY6Hc 音乐
anaconda-ks.cfg .dbus .viminfo .Xauthority 桌面
.bash_history .esd_auth .viminfo.tmp 公共
.bash_logout .ICEauthority .viminfv.tmp 模板
.bash_profile initial-setup-ks.cfg .viminfw.tmp 视频
[root@localhost ~]# ls -A #显示全部文件或隐藏文件,但不包括.和..
123 .cache .local .viminfw.tmp 模板
1.txt .config log.txt .viminfx.tmp 视频
anaconda-ks.cfg .cshrc .tcshrc .viminfy.tmp 图片
.bash_history .dbus touch .viminfz.tmp 文档
.bash_logout .esd_auth .viminfo .xauth6PY6Hc 下载
.bash_profile .ICEauthority .viminfo.tmp .Xauthority 音乐
.bashrc initial-setup-ks.cfg .viminfv.tmp 公共 桌面
[root@localhost ~]# ls -d #只显示当前目录
.
[root@localhost opt]# ls -lh #以长格式友好显示文件大小
总用量 12K
-rw-r--r--. 1 root root 0 2月 7 16:46 123.txt
-rw-r--r--. 1 root root 13 2月 15 14:26 1.txt
-rw-r--r--. 1 root root 9 1月 28 13:43 2.txt
drwxr-xr-x. 1 root root 4 1月 20 15:00 aa
drwxr-xr-x. 1 root root 4.9K 1月 21 10:21 etc
lrwxrwxrwx. 1 root root 42 2月 7 16:51 ifcfg-ens33 -> /etc/sysconfig/network-scripts/ifcfg-ens33
drwxr-xr-x. 1 root root 0 3月 26 2015 rh
[root@localhost ~]# ls -R #递归显示该目录及该目录子目录下的所有内容
.:
123 anaconda-ks.cfg log.txt 公共 视频 文档 音乐
1.txt initial-setup-ks.cfg touch 模板 图片 下载 桌面
./touch:
./公共:
./模板:
./视频:
./图片:
./文档:
./下载:
./音乐:
./桌面:
[root@localhost opt]# ls --color #显示颜色
颜色表示的文件类型:
- 黑色数据文件 TXT
- 绿色 可执行文件
- 黄色 块设备文件
- 红色 压缩包
- 蓝色 文件夹
- 天蓝色 连接文件(快捷方式)
vim /etc/DIR_COLORS
#颜色在这里显示
[root@localhost ~]# ls -s #按从大到小排序
总用量 16
4 123 4 log.txt 0 模板 0 文档 0 桌面
4 anaconda-ks.cfg 0 touch 0 视频 0 下载
4 initial-setup-ks.cfg 0 公共 0 图片 0 音乐
通配符
符号 | 效果 |
---|---|
? | 匹配一个字符 f?.txt |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
1到10 | |
a b c ...z | |
A B C .....Z(这里注意范围aA到小z不包括大Z) | |
[123] | 取其中之一有就显示没有也没关系 |
[a-z] | 范围需要注意 |
[0-9] | 匹配数字范围(0123456789) |
\ | 转义符,表示原来的意思 |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
[^zhou] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |
alias
设置别名
alias 命令别名=命令
[root@localhost mnt]# alias myvim='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
#将网卡配置命令设置别名为myvim
[root@localhost mnt]# 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 myvim='vim /etc/sysconfig/network-scripts/ifcfg-ens33' #这里可看出以设置
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost mnt]# myvim #打开命令
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ec6be8ad-89d7-4f71-b634-93348efc9612
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.88.10
NETMASK=255.255.255.0
GATEWAY=192.168.88.2
DNS1=8.8.8.8
[root@localhost mnt]# unalias myvim #删除别名
[root@localhost mnt]# 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 rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
du
du [选项] [文件或目录… ]
选项 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
--max-depth=n | (-dn)最大显示到第n层 |
注意:这里a s无法同时使用
[root@localhost data]# du -a
4 ./3.txt
4 ./log.txt
4 ./2.txt
4 ./1.txt
4 ./1.tat
4 ./passwd1
4 ./t.gzip.tar
4 ./ky18.txt
32 .
[root@localhost data]# du -h
32K .
[root@localhost data]# du -s
32 .
[root@localhost data]# du -d1
32 .
2.创建目录
mkdir touch
mkdir [选项] 目录位置及名称…
[root@localhost data]# mkdir 1 2 3 \#创建多个文件夹
[root@localhost data]# ls
1 1.tat 1.txt 2 2.txt 3 3.txt ky18.txt log.txt passwd1 t.gzip.tar
[root@localhost data]# mkdir -p aaa/bbb/ccc \#递归创建
[root@localhost data]# ls
1 1.tat 1.txt 2 2.txt 3 3.txt aaa ky18.txt log.txt passwd1 t.gzip.tar
[root@localhost data]# tree #以树状图显示
.
├── 1
├── 1.tat
├── 1.txt
├── 2
├── 2.txt
├── 3
├── 3.txt
├── aaa
│ └── bbb
│ └── ccc
├── ky18.txt
├── log.txt
├── passwd1
└── t.gzip.tar
6 directories, 8 files
touch 新文件…(可为空)
touch 不会破坏已有文件 刷新时间
每个文件有三个时间戳:
-
access time 访问时间,atime,读取文件内容
-
modify time 修改时间,mtime,改变文件内容(数据)
-
change time 改变时间,ctime,元数据发生改变
[root@localhost data]# touch 1 2 3 \#创建新文件
[root@localhost data]# ls
1 2 3 ky18.txt log.txt passwd1 t.gzip.tar
[root@localhost data]# echo "">4 \#创建4的空文件
[root@localhost data]# ls
1 2 3 4 ky18.txt log.txt passwd1 t.gzip.tar
[root@localhost data]# stat passwd1 \#查看三种时间
文件:"passwd1"
大小:2217 块:8 IO 块:4096 普通文件
设备:24h/36d Inode:189776 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2022-01-28 14:15:24.000000000 +0800
最近更改:2022-01-28 14:15:24.000000000 +0800
最近改动:2022-02-15 16:19:12.286635006 +0800
创建时间:-
[root@localhost data]# touch passwd1
[root@localhost data]# ls
1 2 3 4 ky18.txt log.txt passwd1 t.gzip.tar
[root@localhost data]# stat passwd1 #这里对比上一次只有时间发生改变其他没有改变
文件:"passwd1"
大小:2217 块:8 IO 块:4096 普通文件
设备:24h/36d Inode:189776 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2022-02-16 10:28:38.464653265 +0800
最近更改:2022-02-16 10:28:38.464653265 +0800
最近改动:2022-02-16 10:28:38.464653265 +0800
创建时间:-
硬链接与软连接文件
硬连接 同一个文件取不同的名或者叫多个名字(例如人 是不是有乳名,姓名 同样指的都是一个人 )不支持文件夹,创建一个连接数加一,多路径访问。
软连接 类似于windows里快捷方式,软连接,符号连接
比项 | 硬连接 | 软连接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
[root@localhost data]# ln 1 /opt/1.txt #建立硬连接
[root@localhost data]# cd /opt
[root@localhost opt]# ls
1.txt aa etc ifcfg-ens33 rh
[root@localhost opt]# ln -s 2 /opt/2.txt \#建立软连接
[root@localhost opt]# cd /opt
[root@localhost opt]# ls
1.txt 2.txt aa etc ifcfg-ens33 rh
[root@localhost opt]# ll
总用量 8
-rw-r--r--. 2 root root 0 2月 16 10:24 1.txt
lrwxrwxrwx. 1 root root 1 2月 16 10:49 2.txt -> 2
drwxr-xr-x. 1 root root 4 1月 20 15:00 aa
drwxr-xr-x. 1 root root 4936 1月 21 10:21 etc
lrwxrwxrwx. 1 root root 42 2月 7 16:51 ifcfg-ens33 -> /etc/sysconfig/network-scripts/ifcfg-ens33
drwxr-xr-x. 1 root root 0 3月 26 2015 rh
复制
1.cp
(1)cp [选项] 源文件 目标
(2)cp [选项] 源文件 文件夹 多个文件只能复制到文件夹
项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
-a | 完整保留所有的信息 |
-v | 可视化 |
-u | 相当于增备,差异备份 |
-b | 先备份(只保留最近) |
ll[root@localhost ~]# cp -f 123 /opt #强行复制文件123到opt目录下
[root@localhost ~]# ls /opt
123 aa etc ifcfg-ens33 rh
[root@localhost ~]# cp -i 123 /opt #覆盖目标同名文件或目录时提醒用户确认
cp:是否覆盖"/opt/123"? y
[root@localhost ~]# cp -p 1 /opt#下面可以看出文件的权限、属主及时间标记等属性不变
[root@localhost ~]# ll
总用量 16
-rw-r--r--. 1 root root 0 2月 16 11:09 1
-rw-r--r--. 1 root root 8 1月 22 23:46 123
-rw-------. 1 root root 2130 12月 31 21:10 anaconda-ks.cfg
-rw-r--r--. 1 root root 2178 12月 31 21:14 initial-setup-ks.cfg
-rw-r--r--. 1 root root 633 1月 22 23:36 log.txt
drwxr-xr-x. 1 root root 0 1月 20 11:17 touch
drwxr-xr-x. 1 root root 0 1月 18 15:45 公共
drwxr-xr-x. 1 root root 0 1月 18 15:45 模板
drwxr-xr-x. 1 root root 0 1月 18 15:45 视频
drwxr-xr-x. 1 root root 0 1月 18 15:45 图片
drwxr-xr-x. 1 root root 0 1月 18 15:45 文档
drwxr-xr-x. 1 root root 0 1月 18 15:45 下载
drwxr-xr-x. 1 root root 0 1月 18 15:45 音乐
drwxr-xr-x. 1 root root 0 1月 18 15:45 桌面
[root@localhost ~]# ll /opt
总用量 8
-rw-r--r--. 1 root root 0 2月 16 11:09 1
-rw-r--r--. 1 root root 8 2月 16 11:08 123
drwxr-xr-x. 1 root root 4 1月 20 15:00 aa
drwxr-xr-x. 1 root root 4936 1月 21 10:21 etc
lrwxrwxrwx. 1 root root 42 2月 7 16:51 ifcfg-ens33 -> /etc/sysconfig/network-scripts/ifcfg-ens33
drwxr-xr-x. 1 root root 0 3月 26 2015 rh
[root@localhost ~]# cp -r /opt/ /data
[root@localhost ~]# ls /data
1 2 3 4 ky18.txt log.txt opt passwd1 t.gzip.tar
移动 改名
1.mv rename
mv
#移动文件或目录
rename
#批量修改后缀名
[root@localhost data]# mv ky18.txt /opt\ #将ky8.txt文件移动到opt目录下
[root@localhost data]# ls /opt
1 123 aa etc ifcfg-ens33 ky18.txt rh
[root@localhost data]# rename txt txt.bak * #将后缀名为txt的文件修改后缀名为txt.bak
[root@localhost data]# ls
1.txt.bak 2.txt.bak log.txt.bak.bak passwd1 t.gzip.tar
删除文件
1.rm
rm [选项] 要删除的文件或目录
-
-f、强制
-i、删除文件或目录时提醒用户确认
-r 递归(删除目录时必须使用)
[root@localhost data]# rm -f 1.txt.bak #强制删除 [root@localhost data]# rm -i 2.txt.bak #交互确认删除 rm:是否删除普通空文件 "2.txt.bak"?y [root@localhost data]# ls log.txt.bak.bak passwd1 t.gzip.tar [root@localhost /]# ls 1 boot dev home lib64 mnt proc run srv tmp var bin data etc lib media opt root sbin sys usr [root@localhost /]# rm -rf 1 #递归删除目录 [root@localhost /]# ls bin data etc lib media opt root sbin sys usr boot dev home lib64 mnt proc run srv tmp var
查找文件find
find
命令的特点:
- 精确查找
- 实时查找
- 支持查找条件较多
格式:
find [OPTION]... [查找路径] [查找条件] [处理动作]
关键字 | 说明 | |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 将你的文件已分级的形式查找 |
各表达式之间使用逻辑运算符 “-a”表示 而且(and) “-o”表示 或者(or)
[root@localhost ~]# find /data/ -name passwd1 #以文件名查找
/data/passwd1
[root@localhost ~]# find /boot/ -size 10M #以文件大小查找
/boot/initrd-plymouth.img
-size 10M 表示9M到10M 且不包括9M
-size -10M 表示9M以内 包括9M
-size +10M 表示10M以上 不包括 10M
[root@localhost ~]# find /boot/ -type d #以文件类型查找
/boot/
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/centos
/boot/grub2
/boot/grub2/i386-pc
/boot/grub2/locale
/boot/grub2/fonts
/boot/grub
[root@localhost ~]# find /boot/ -maxdepth 2 -mindepth 2 #只查找第二级目录
/boot/efi/EFI
/boot/grub2/device.map
/boot/grub2/i386-pc
/boot/grub2/locale
/boot/grub2/fonts
/boot/grub2/grubenv
/boot/grub2/grub.cfg
/boot/grub/splash.xpm.gz
(5)-exec COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
(6)-ok COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会
交互式要求用户确认
[root@localhost opt]# find -name "*.txt" -ok rm -rf {} \; #找到并删除
< rm ... ./ky18.txt > ? y
< rm ... ./1.txt > ? y
< rm ... ./2.txt > ? y
[root@localhost opt]# find /boot/ -name "*img" -a -size 10M #找到boot目录下以img结尾的文件且大小为10M的文件
/boot/initrd-plymouth.img
which
#寻找命令位置
四.硬件信息及其他系统信息
cpu
- lscpu命令可以查看cpu信息
- cat /proc/cpuinfo也可看查看到
free
#查看内存大小
lsblk
#查看硬盘和分区情况
arch
#查看机器架构
uname -r
#查看内核版本
date
#查看当前系统时间
-
-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
-
%F 完整日期格式,等价于 %Y-%m-%d
-
% T 时间(24小时制)(hh:mm:ss)
[root@localhost ~]# date -d '-1 day' +%F#前一天 2022-02-15 [root@localhost ~]# date +%F#今天 2022-02-16 [root@localhost ~]# date -d '+1 day' +%F#后一天 2022-02-17 [root@localhost ~]# date -d "+3 day"#前三天 2022年 02月 19日 星期六 12:20:28 CST [root@localhost ~]# date -d "-3 day"#后三天 2022年 02月 13日 星期日 12:20:36 CST
总结
Linux 命令行的一般格式中包括命令字、选项、参数。
通过如下方式可以获得命令帮助: help、 man和--help命令选项。
执行ls、du命令可以査看目录相关属性。
执行mkdir、touch 命令可以创建目录和文件。
执行cp、rm、mv命令可以复制、删除、移动目录和文件。
执行which、find命令可以查找目录和文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律