admin管理员组

文章数量:1586651

目录

1.ls

2.cd

3.pwd

4.man

5.col

6.alias

7.touch

8.mkdir

9.rmdir

10.cp

10.rm

11.mv

12.echo

13.du

14.ln

15.which

16.find

17.head

18.tail

19.more/less

20.wc

21.cat

22.vi/vim

23.grep

24.tar

25.rpm

26.yum

 27.date

28.useradd groupadd ......

29.chmod chown ......

30.fdisk mkfs ......

31.dd

32.LVM

33.mdadm

34.systemctl

35.ps kill crontab ......

36.hostname

37.ifconfig netstat nmap ......

38.tr

39.cut

40.nmtui


前言:本文意在做一个Linux常用的命令大全供自己查阅,也欢迎同僚查找其中错误并指正,共同进步,本文持续更新。

1.ls

用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
语法:ls [-alrtAFR] [name...]

参数解释
-a显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r将文件以相反次序显示(原定依英文字母次序)
-t将文件依建立时间之先后次序列出
-A同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R若目录下有文件,则以下之文件亦皆依序列出
[root@c7-1 ~]#ll -R
.:
total 0
drwxr-xr-x 2 root root 19 Jul 28 10:23 test1
drwxr-xr-x 2 root root 19 Jul 28 10:23 test2

./test1:
total 0
-rw-r--r-- 1 root root 0 Jul 28 10:23 1.txt

./test2:
total 0
-rw-r--r-- 1 root root 0 Jul 28 10:23 2.txt

2.cd

用于切换当前工作目录

语法:cd [dirName]

参数解释
~root用户目录
.当前目录
..上级目录

3.pwd

查看当前的工作目录

语法:pwd [--help][--version]

参数解释
--help在线帮助
--version显示版本信息
[root@c7-1 network-scripts]#pwd
/etc/sysconfig/network-scripts

4.man

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时只要man一下即可

[root@c7-1 network-scripts]#man ls

5.col

在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符

语法:col [-bfx][-l<缓冲区列数>]

参数解释
-b过滤掉所有的控制字符,包括RLF和HRLF
-f滤除RLF字符,但允许将HRLF字符呈现出来
-x以多个空格字符来表示跳格字符
-l<缓冲区列数> 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小
[root@c7-1 ~]#man ls |col -b > ls.txt
[root@c7-1 ~]#ls
ls.txt  test1  test2

6.alias

用于设置指令的别名,如果想要持久化到系统中,需要写进可在.profile或.cshrc中

语法:alias[别名]=[指令名称]

[root@c7-1 ~]#alias netcfg='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@c7-1 ~]#netcfg
[root@c7-1 ~]#unalias netcfg    #删除别名
[root@c7-1 ~]#netcfg            #再次输入显示已经不存在该命令
bash: netcfg: command not found...

7.touch

用于修改文件或者目录的时间属性,包括存取时间和更改时间若文件不存在,系统会建立一个新的文件

语法:touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

参数解释
-a改变文件的读取时间记录
-m改变文件的修改时间记录
-d设定时间与日期,可以使用各种不同的格式
-t设定文件的时间记录,格式与 date 指令相同

-r

使用文件的时间记录,与 --file 的效果一样
-c / --no-create假如目的文件不存在,不会建立新的文件
[root@c7-1 ~]#touch testfile    #创建名为testfile的新文件
[root@c7-1 ~]#ll testfile       #查看当前时间
-rw-r--r-- 1 root root 0 Jul 28 11:24 testfile
[root@c7-1 ~]#touch testfile    #修改文件的时间属性为当前时间
[root@c7-1 ~]#ll testfile 
-rw-r--r-- 1 root root 0 Jul 28 11:27 testfile

8.mkdir

用于创建目录

语法:mkdir [选项] [目录]

参数解释
-p若所建立的上层目录目前尚未建立,则会一并建立上层目录
-m建立目录的时候同时设置目录的权限
[root@c7-1 ~]#mkdir ./testdir/testdir/test.txt       #由于父目录不存在,创建失败
mkdir: cannot create directory ‘./testdir/testdir/test.txt’: No such file or directory
[root@c7-1 ~]#mkdir -p ./testdir/testdir/test.txt    #-p参数逐级创建
[root@c7-1 ~]#ls
testdir
[root@c7-1 ~]#mkdir -m 777 test1    #创建权限为777的目录
[root@c7-1 ~]#ll
total 0
drwxrwxrwx 2 root root  6 Jul 28 14:54 test1
drwxr-xr-x 3 root root 21 Jul 28 14:52 testdir

9.rmdir

删除空的目录

语法:rmdir [-p] dirName

参数解释
-p当子目录被删除后使它也成为空目录的话,则顺便一并删除
[root@c7-1 ~]#ls
test1  test2  test3
[root@c7-1 ~]#rmdir test1    #由于test1不是空目录,无法删除
rmdir: failed to remove ‘test1’: Directory not empty
[root@c7-1 ~]#rmdir test3    #test3是空目录可以删除
[root@c7-1 ~]

10.cp

用于复制文件或目录

语法:cp [options] source... directory

参数解释
-a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合
-d复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式
-f覆盖已经存在的目标文件而不给出提示
-i与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖
-p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l不复制文件,只是生成链接文件
[root@c7-1 ~]#ls
test1  test2
[root@c7-1 ~]#tree
.
├── test1
│   └── test1
└── test2
    └── test2

[root@c7-1 ~]#cp -r test1 test2    #递归复制test1目录到test2目录下
[root@c7-1 ~]#tree
.
├── test1
│   └── test1
└── test2
    ├── test1
    │   └── test1
    └── test2

10.rm

用于删除一个文件或者目录

语法:rm [options] name...

参数解释
-i删除前逐一询问确认
-r将目录及以下文件逐一删除
-f即使原文件属性设为只读也可直接删除,无需逐一确认
[15:21:57 root@c7-1 ~]#ls
test1  test2
[15:30:41 root@c7-1 ~]#rm -rf *
[15:30:46 root@c7-1 ~]#ls
[15:30:47 root@c7-1 ~]#

11.mv

移动目录和文件或者给目录和文件改名

语法:mv [options] source dest                mv [options] source... directory

参数解释
-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份
-i如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作
-f如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件
-n不要覆盖任何已存在的文件或目录
-u当源文件比目标文件新或者目标文件不存在时,才执行移动操作
[root@c7-1 ~]#ls
1.txt  test
[root@c7-1 ~]#mv 1.txt 2.txt    #将1.txt改名为2.txt
[root@c7-1 ~]#ls
2.txt  test
[root@c7-1 ~]#mv 2.txt ./test/  #将2.txt移动到test目录中  
[root@c7-1 ~]#tree
.
└── test
    └── 2.txt

12.echo

输出文本

语法:

参数解释
-n表示不换行输出
-e激活转义字符,若字符串中出现转义字符,则特别加以处理,而不会将它当成一般文字输出

转义字符:

\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号
\f 换行但光标仍旧停留在原来的位置
\n 换行且光标移至行首
\r 光标移至行首,但不换行
\t 插入tab
\v 与\f相同
\\ 插入\字符
\nnn 插入nnn(八进制)所代表的ASCII字符

示例:

[root@c7-1 ~]#echo "123456"        #在屏幕上输出123456字符
123456
[root@c7-1 ~]#echo -n "123456"     #不换行输出
123456[root@c7-1 ~]#
[root@c7-1 ~]#echo -e "\033[41;36m淘宝\033[0m" 
淘宝

13.du

用于显示目录或文件的大小

语法:

du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

du参数较多,我们只需要知道常用的几个参数就行

参数解释
-a统计磁盘空间时显示所有文件的大小,不仅仅是目录
-h以K,M,G为单位,提高信息的可读性
-s仅显示总空间大小,不显示目录和文件
-b显示目录或文件大小时,以byte为单位
-k以1024 bytes为单位
-m以1MB为单位
[root@c7-1 data]#ls
test1  test2
[root@c7-1 data]#du -sh    #显示总计,默认K为单位
8.0K	.
[root@c7-1 data]#du -ah    #显示该目录所有文件大小
4.0K	./test1/1.txt
4.0K	./test1
4.0K	./test2/test2.txt
4.0K	./test2
8.0K	.

14.ln

为文件和目录建立连接文件,类似于windows系统的快捷方式,提高用户定位文件或定位目录的效率

连接分为软连接和硬链接,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同

语法: ln [参数] [源文件或目录] [目标文件或目录]

参数解释
-s软链接(符号链接)
-b删除,覆盖以前建立的链接
-f强制执行
-i交互模式,文件存在则提示用户是否覆盖
-n把符号链接视为一般目录
-d允许超级用户制作目录的硬链接
-v显示详细的处理过程

软链接

-软连接以路径的形式存在,类似于Windows操作系统中的快捷方式
-软链接可以跨文件系统,硬链接不可以
-软链接可以对一个不存在的文件名进行链接
-如果删除源文件之后又重新建立源文件,那么软链接照样可以用
-软链接可以对目录进行链接
-软链接文件的大小就是软链接文件本身的文件名字符长度

硬链接

-硬链接,以文件副本的形式存在,但不占用实际空间
-不允许给目录创建硬链接
-硬链接只有在同一个文件系统中才能创建
[root@c7-1 data]#ll
total 4
drwxr-xr-x 2 root root 19 Jul 28 17:51 test
-rw-r--r-- 1 root root 10 Jul 28 17:35 test.txt
[root@c7-1 data]#ln test.txt test.link
[root@c7-1 data]#ln -s test.txt test.soft.link
[root@c7-1 data]#ll
total 8
drwxr-xr-x 2 root root 19 Jul 28 17:51 test
-rw-r--r-- 2 root root 10 Jul 28 17:35 test.link
lrwxrwxrwx 1 root root  8 Jul 28 19:56 test.soft.link -> test.txt
-rw-r--r-- 2 root root 10 Jul 28 17:35 test.txt

15.which

which指令会在环境变量$PATH设置的目录里查找符合条件的文件

语法:which [-a] [命令/程序名]

[root@c7-1 ~]#which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@c7-1 ~]#which -a ls
alias ls='ls --color=auto'
	/usr/bin/ls

16.find

find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示

语法:find path -option [-print] [-exec -ok command ] {} \;

参数解释
-name根据目标文件的名称进行查找,允许使用通配符
-size根据目标文件的大小进行查找,一般使用“+”,“-”设置大小范围作为查找条件
-user根据文件的所属用户进行查找
-type根据文件的类型进行查找(f普通文件,d目录,b块设备文件,c字符设备文件......)
-atime在过去n天内被读取过的文件
-mtime在过去n天内被修改过内容的文件
-ctime在过去n天内被修改过属性的文件
-empty空的文件
-ipath p路径名称符合 p 的文件,ipath 会忽略大小写
#查找 /var/log 目录下名为 message* 的文件
[root@c7-1 ~]#find /var/log -name "messages*"
/var/log/messages-20210725
/var/log/messages

#查找 /var/log 目录下名为 boot.log* 的 72 小时内内容被修改过的文件并删除
[root@c7-1 ~]#find /var/log -name "boot.log*" -mtime -3 -exec rm -rf {} \;
#查找 /var/log 目录中更改时间在 8 天以前的普通文件,并在删除之前询问它们
[root@c7-1 ~]#find /var/log -type f -mtime +7 -ok rm {} \;
#关于 “+” “-” 号的详细解释可参考https://blog.csdn/sunny04/article/details/51488421

#查找当前目录下名为 test.txt 的文件并过滤出其中“中国”的内容
[root@c7-1 ~]#ls
test.txt
[root@c7-1 ~]#find ./ -name test.txt -exec grep "中国" {} \;
中国

#将当前目录及子目录下的普通文件列出
[root@c7-1 data]#find ./ -type f
./1
./2
./3
./test/test

#查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径
[root@c7-1 ~]#find / -type f -size 0 -exec ls -l {} \;

#查找并列出当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
[root@c7-1 ~]#find . -type f -perm 644 -exec ls -l {} \;

#在 /opt 目录中查找到以".jpg"结尾的文件并进行删除
find /opt -name "*.jpg" -a -type f -exec rm -rf {} \;
或者
find /opt -name "*.jpg" -a -type f |xargs rm -rf

17.head

用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容

语法:head [参数] [文件]

参数解释
-n <行数N>显示开头的N行
-c <数目>显示的字节数
-v

显示文件名

-q隐藏文件名
[root@c7-1 ~]#head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

18.tail

用于查看文件的内容,与head相反,tail从文件末尾开始查看,有一个常用的参数 -f 常用于查阅动态文件

语法:tail [参数] [文件]

参数解释
-f默认持续显示动态文件的末尾10行
-n显示文件的尾部 n 行内容
-v显示详细的处理信息
-q不显示处理信息
-c <数目>显示的字节数
--pid=PID与-f合用,表示在进程ID,PID死掉之后结束
[root@c7-1 ~]#tail -n 5 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
syhj:x:1000:1000:syhj:/home/syhj:/bin/bash
zc:x:1001:1001::/home/zc:/bin/bash
zlm:x:1002:1002::/home/zlm:/bin/bash

19.more/less

more/less 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读

语法:more/less [参数] [文件]

交互操作说明:
1.按enter键逐行向下滚动
2.按空格键向下翻一屏
3.按b键向上翻一屏
4.按q键退出

more详细使用方法

less详细使用方法

[08:59:50 root@c7-1 ~]#more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
......

20.wc

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据

语法:wc [-clw][--help][--version] [文件...]

参数解释
-l显示行数
-w只显示字数
-c只显示Bytes数
#在默认的情况下,wc将计算指定文件的行数、字数,以及字节数
[root@c7-1 ~]#wc /etc/passwd
  46   92 2376 /etc/passwd
#只计算行数     
[root@c7-1 ~]#wc -l /etc/passwd
46 /etc/passwd

21.cat

用于连接文件并打印到标准输出设备上

语法:cat [-AbeEnstTuv] [--help] [--version] fileName

参数解释
-n由 1 开始对所有输出的行数编号
-b和 -n 相似,只不过对于空白行不编号

-s

当遇到有连续两行以上的空白行,就代换为一行的空白行
[root@c7-1 ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="DHCP"
......

22.vi/vim

vi是类UNIX操作系统的默认文本编辑器,vim是vi的增强版本

vim的三种模式:

命令模式:使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者 k、j、h、l 命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作
输入模式:在输入模式下可以对文件执行写操作,类似在 Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式
编辑模式:编辑模式也叫末行模式,如果要保存、查找或者替换一些内容等,就需要进入编辑模式。编辑模式的进入方法为:在命令模式下按":"键,Vim 窗口的左下方会出现一个":"符号,这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式

示例:

#将文件第10到15行的内容复制到20行之上
:10,15 co 19    或    10G 6yy 20G  P

#将第30到40行的ABC改成123
:30,40 s/ABC/123/g

vi/vim详细使用方法

23.grep

查找文件里符合条件的字符串,grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据

语法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
语法简要:
grep [选项] [查找条件] [目标文件]
参数解释
-i忽略字符大小写的差别
-o只显示匹配PATTERN 部分
-v反转查找,输出与查找条件不匹配的行
-c计算符合样式的列数
-r / -d当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作
-e指定字符串做为查找文件内容的样式
-E使用正则表达式
#查找条件设置
1.要查找的字符串用双引号括起来
2.“^......”表示以......开头,“......$”表示以......结尾
3."^$"表示空行

grep详细使用方法

#查找 /etc/passwd 文件中包含 ftp 的行
[root@c7-1 ~]#grep "ftp" /etc/passwd

#查找 /etc/passwd 文件中以 mail 开头的行
[root@c7-1 ~]#grep "^mail" /etc/passwd

#查找 /etc/passwd 文件中以 /bin/bash 结尾的行
[root@c7-1 ~]#grep "/bin/bash$" /etc/passwd

#以递归的方式查找 /etc 目录及其子目录下的文件中所有包含 *.conf 的内容
[root@c7-1 etc]#grep -r "*.conf" /etc/

#反转查找,查找 /etc/passwd 文件中不包括以 /sbin/nologin 结尾的行
[root@c7-1 ~]#grep -v "/sbin/nologin$" /etc/passwd

#查找 /etc/yum.conf 文件,但不包括空行
[root@c7-1 ~]#grep -v "^$" /etc/yum.conf

#查找 /etc/yum.conf 文件,但不包括空行和注释行
[root@c7-1 ~]#grep -v "^#" /etc/yum.conf | grep -v "^$"

#查看 /opt 目录中除了以".jpg"结尾以外的所有文件或目录
[root@c7-1 ~]#ll /opt | grep -v ".jpg$"

24.tar

tar 是用来建立,还原备份文件的工具程序

语法:

tar [选项] [归档文件名] [源文件或目录]   
tar [选项] [归档文件名] -C [目标目录]
参数解释
-z调用 gzip 程序处理备份文件
-j调用 bzip2 程序处理备份文件
-c建立新的备份文件,*.tar.gz 格式
-x从备份文件中还原文件
-v显示指令执行过程
-f指定备份文件
-C解压时指定的解压目录
-t列出备份文件的内容
-p打包时保留文件和目录的本来权限
-P打包时保留文件和目录的绝对路径
[root@c7-1 data]#ls
1.txt  2.txt  test
[root@c7-1 data]#tar zcvf 1.tar.gz *
1.txt
2.txt
test/
[root@c7-1 data]#ls
1.tar.gz  1.txt  2.txt  test
[root@c7-1 data]#tar zxvf 1.tar.gz -C test
1.txt
2.txt
test/
[root@c7-1 data]#tree
.
├── 1.tar.gz
├── 1.txt
├── 2.txt
└── test
    ├── 1.txt
    ├── 2.txt
    └── test

25.rpm

rpm命令用于软件包的管理,一般使用“软件名 - 软件版本 - 发布次数 - 操作系统类型 - 硬件架构类 型 .rpm” 的文件名形式 , 如 “bash-4.2.46-20.el7_2.x86_64.rpm”。其中硬件平台通常为 “i386” 或 “i686” 等,表示适用于 Intel 公司的处理器,“x86_64”表示适用于 64 位的系统,如果是 “noarch” 表示不区分硬件架构(支持不同硬件体系的处理器)。

语法:rpm [参数] [软件名]

#rpm常用用法

#查询已安装的 rpm 软件信息
rpm -q  <软件名>       #查询指定软件是否已安装
rpm -qi <软件名>  	  #显示已安装的指定软件的详细信息
rpm -ql <软件名>  	  #显示已安装的指定软件的文件列表
rpm -qc <软件名>  	  #列出已安装的指定软件的配置文件
rpm -qd <软件名>  	  #列出已安装的指定软件的软件包文件所在位置
rpm -qR <软件名>  	  #列出已安装的指定软件的依赖的软件包及文件
rpm -qF <文件或目录>   #查询已安装的指定软件属于哪个安装包
rpm -qf <文件或目录>   #查看指定的文件或目录是由哪个软件包所安装
rpm	-qa 	          #显示当前系统中以 rpm 方式安装的所有软件列表

#查询未安装的 rpm 软件包文件信息
rpm -qpi <RPM包文件名>		#查询指定软件包的详细信息
rpm -qpl <RPM包文件名> 		#查询指定软件包的文件列表
rpm -qpc <RPM包文件名> 		#查询指定软件包的配置文件
rpm -qpd <RPM包文件名> 		#查询指定软件包的软件包文档的位置

#安装、升级、卸载 RPM 软件包
格式:
rpm [选项] RPM包文件
rpm [-ivh] RPM软件包
常用选项:
-i:安装一个新的 RPM 软件包
-U:升级某个软件包,若未安装过,则进行安装
-F:升级某个软件包,若未安装过,则放弃安装
-h:在安装或升级软件包的过程中,以“#”号显示安装进度
-v:显示软件安装过程中的详细信息
-e:卸载指定名称的软件包
--force:强制安装某个软件包,比如要安装版本更旧的软件包
--nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系

挂载光盘镜像

[root@c7-1 ~]#mount /dev/sr0 /mnt/    #临时挂载光盘镜像,重启失效
mount: /dev/sr0 is write-protected, mounting read-only
[root@c7-1 ~]#df -h    #查看挂载情况
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        895M     0  895M   0% /dev
tmpfs           910M     0  910M   0% /dev/shm
tmpfs           910M   19M  892M   3% /run
tmpfs           910M     0  910M   0% /sys/fs/cgroup
/dev/sda3        95G  5.3G   90G   6% /
/dev/sda1      1014M  179M  836M  18% /boot
tmpfs           182M  4.0K  182M   1% /run/user/42
tmpfs           182M   36K  182M   1% /run/user/1000
/dev/sr0        4.4G  4.4G     0 100% /mnt       
tmpfs           182M     0  182M   0% /run/user/0
[root@c7-1 ~]#rpm -ivh /mnt/Packages/lynx-2.8.8-0.3.dev15.el7.x86_64.rpm    #安装测试
Preparing...                          ################################# [100%]
Updating / installing...
   1:lynx-2.8.8-0.3.dev15.el7         ################################# [100%]

[root@c7-1 ~]#vim /etc/fstab    #永久挂载
# /etc/fstab
# Created by anaconda on Fri Jul 23 15:33:12 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=adf79f65-0a7d-4159-adde-099e05b62786 /                       xfs     defaults        0 0
UUID=e269bb76-c9d1-499b-a0d3-9bb86dbbb72d /boot                   xfs     defaults        0 0
UUID=61978a53-09e9-4404-96d1-7b3e2bfe7bba swap                    swap    defaults        0 0
/dev/sr0                                  /mnt/                   iso9660 defaults,loop 0 0            #添加这一行
[root@c7-1 ~]#reboot    #重启生效

26.yum

yum 是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

语法:yum [options] [command] [package ...]

参数解释
-y当安装过程提示选择全部为 "yes",无需手动选择
-q不显示安装的过程

常见用法

yum -y install <软件名>				#安装、升级软件包,"-y"选项表示自动确认
yum -y remove <软件名>				#卸载软件包,可自动解决其依赖关系
yum -y update <软件名>				#升级软件包
yum list							#查询软件包列表
yum list installed					#查询系统中已安装的软件包
yum list available					#查询仓库中尚未安装的软件包
yum list updates					#查询可以升级版本的软件包
yum info <软件名>					#查询软件包的描述信息
yum search all <关键词>				#根据某个关键词来查找相关的软件包
yum whatprovides <命令>				#查询命令属于哪个软件包

#收集所有安装包,包括依赖包保存在指定目录中
yum -y install <包名> --downloadonly --downloaddir=/tmp/   #下载RPM包到指定目录

#删除 yum 缓存并更新
yum clean all && yum makecache

建立本地 yum 源

mount /dev/cdrom /mnt/ 或 mount /dev/sr0 /mnt/    #将光盘挂载到 /mnt 目录下

cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup    #将原 repo 文件备份

cat > CentOS-local.repo << EOF    #添加本地 repo 文件
[local]
name=local
baseurl=file:///mnt     #指定 URL 访问路径为光盘挂载目录
gpgcheck=0              #不验证软件包的签名
enabled=1               #开启此 yum 源,此为默认项,可省略,0 为关闭
EOF

yum clean all && yum makecache	  #删除yum缓存并更新

yum info vsftpd  #测试是否生效

使用阿里云的 yum 源

#使用阿里云的软件仓库需要联网,如果想在没有网的情况下也能使用仓库里的软件,就需要将阿里云仓库下载到本地,占用空间较高
cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun/repo/Centos-7.repo    #将阿里云镜像下载到/etc/yum.repos.d/目录下
yum clean all && yum makecache

#建立阿里云远程 yum 仓库参考
https://blog.csdn/woshizhangliang999/article/details/78924972

编译安装httpd服务

yum install -y gcc gcc-c++ make
yum install -y apr-devel* pkgconfig* libapr* apr-util* pcre*
tar zxvf httpd-*.tar.gz -C /data    #解压源码包,解压目录自行选定
cd /data/httpd*    #切换到解压后的目录
./configure --prefix=/usr/local/apache    #配置软件模块(安装路径、开启或关闭模块功能、管理服务进程的用户设定)
make && make install    #编译并安装
vim /usr/local/apache/conf/httpd.conf    #配置文件路径
/usr/local/apache/bin/apachectl start    #启动httpd服务
curl http://IP    #测试 httpd 服务是否启动
yum -y install lynx elinks
lynx IP
elinks IP

#configure 参数选项参考
http://nginx/en/docs/configure.html    #官方文档
https://wwwblogs/damoblog/p/13720216.html

 27.date

date 可以用来显示或设定系统的日期与时间

格式:

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
参数解释
-d显示字符串所指的日期和时间,字符串前后必须加上双引号
-s根据字符串来设置日期与时间,字符串前后必须加上双引号
-u显示目前的格林威治(GMT)时间

常用日期格式:

%Y 年份(以四位数来表示)
%m 月份(以01-12来表示)
%d 日期(以01-31来表示)
%H 小时(以00-23来表示)
%M 分钟(以00-59来表示)
%S 秒(以本地的惯用法来表示)

”%Y-%m-%d %H:%M:%S“
年-月-日 时-分-秒

 示例:

#查看当前时间
date

#按照格式显示当前时间
date +"%Y-%m-%d %H:%M:%S"

#修改当前系统时间为 2021-09-09 00:00:00
date -s "2021-09-09 00:00:00"

#输出昨天当前时间
date -d "1 day ago" +"%Y-%m-%d %H:%M:%S"

#同步阿里云时间
yum install ntpdate -y
ntpdate ntp.aliyun

#同步系统时间到硬件时间
hwclock        #查看硬件时间
date           #查看系统时间
hwclock -w     #同步系统时间到硬件时间
hwclock        #再次查看硬件时间

28.useradd groupadd ......

用户和组的管理请参考Linux用户和组权限管理

29.chmod chown ......

文件权限管理请参考Linux文件权限管理

30.fdisk mkfs ......

磁盘和文件系统管理请参考Linux磁盘和文件系统管理

31.dd

用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换

参数解释:

if=文件名:输入文件名,默认为标准输入。即指定源文件
of=文件名:输出文件名,默认为标准输出。即指定目的文件
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节
bs=bytes:同时设置读入/输出的块大小为bytes个字节
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小
skip=blocks:从输入文件开头跳过blocks个块后再开始复制
seek=blocks:从输出文件开头跳过blocks个块后再开始复制
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数
conv=<关键字>,关键字可以有以下11种:
    conversion:用指定的参数转换文件。
    ascii:转换ebcdic为ascii
    ebcdic:转换ascii为ebcdic
    ibm:转换ascii为alternate ebcdic
    block:把每一行转换为长度为cbs,不足部分用空格填充
    unblock:使每一行的长度都为cbs,不足部分用空格填充
    lcase:把大写字符转换为小写字符
    ucase:把小写字符转换为大写字符
    swap:交换输入的每对字节
    noerror:出错时不停止
    notrunc:不截短输出文件
    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐

 示例:

#在 /data 目录下创建一个 100M 大小的名为 test.txt 的文件
dd if=/dev/zero of=/data/test.txt bs=10M count=10

#创建硬盘的映像
dd if=/dev/sda of=~/sdadisk.img
#恢复硬盘映像文件
dd if=sdadisk.img of=/dev/sdb
#img文件是/dev/sda的映像,所以上面的命令将/dev/sda的数据恢复到/dev/sdb

#备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径
dd if=/dev/hdb | gzip > /root/image.gz
#将压缩的备份文件恢复到指定盘
gzip -dc /root/image.gz | dd of=/dev/hdb

#增加swap分区文件大小
dd if=/dev/zero of=/swapfile bs=1024 count=262144
mkswap /swapfile
swapon /swapfile

#销毁磁盘数据
dd if=/dev/urandom of=/dev/hda1

#拷贝光盘数据到root文件夹下,并保存为cdrom.iso文件
dd if=/dev/cdrom of=/root/cdrom.iso

#测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
#测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null

32.LVM

LVM逻辑卷管理与磁盘配额

33.mdadm

RAID技术详解

34.systemctl

Linux 系统启动与服务管理

35.ps kill crontab ......

Linux 进程和计划任务管理

36.hostname

hostname 显示当前的系统主机名称

示例:

[root@c7-1 ~]#hostname
c7-1
[root@c7-1 ~]#hostname zhangsan    #临时更改主机名
[root@c7-1 ~]#hostname
zhangsan
[root@c7-1 ~]#hostnamectl set-hostname lisi    #永久更改主机名
[root@c7-1 ~]#hostname
lisi
[root@c7-1 ~]#cat /etc/hostname    # hostname 配置文件
lisiz
[root@c7-1 ~]#hostname -I          #显示系统 IP
20.0.0.19 

37.ifconfig netstat nmap ......

Linux 常用网络命令大全

38.tr

 tr 使用详解

39.cut

cut 使用详解

40.nmtui

nmtui 使用详解

本文标签: 常用命令Linux