linux基础(二)— 史上最实用、最详细的linux常用基础命令

磁盘管理命令

pwd命令

pwd命令用于显示目录的绝对路径。

实例:

  1. 查看当前目录的绝对路径

    [root@vmmaster bigdata]# pwd
    /opt/bigdata
    
  2. 查看软链接的绝对路径

    pwd -P
    

cd命令

基本语法:cd [dirName] ,其中 dirName 表示法可为绝对路径或相对路径。

实例:

  1. 相对路径,进入dirName目录

     cd dirName/
    
  2. 绝对路径,进入dirName目录

     cd /dirName
    
  3. 进入根目录

    扫描二维码关注公众号,回复: 11553104 查看本文章
    cd /
    
  4. 返回上一级目录,可以嵌套

    cd ../
    
  5. 返回当前用户的home目录(注意root用户的home目录为root ,其他为home )

    cd ~
    
    cd 
    
  6. 进入当前目录(感觉毫无意义,没什么用)

    cd .
    

find 命令

find 命令查找命令,后面可接管道命令,进行进一步的处理

语法:find pathname -options

可选-options命令:

-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group  按照文件所属的组来查找文件。
-type  查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件

举例:

#查找bigdata/java下的目录
find /opt -type d | grep bigdata/java

#查找jdk-8u111-linux-x64.tar.gz名字的文件或者目录
find /opt -name jdk-8u111-linux-x64.tar.gz

#查找’.log’结尾的文件
find -name ‘*.log’

locate 命令

locate 通过搜寻系统内建文档数据库达到快速查询文件或目录,相当于 find -name ,但是速度是非常快的。

注意:新建文件必须在update命令执行后方可查询

-l num(要显示的行数)
-f   将特定的档案系统排除在外,如将proc排除在外
-r   使用正则运算式做为寻找条件
-i	 忽略大小写

举例:
快速查找jdk-8u111-linux-x64.tar.gz文件

locate jdk-8u111-linux-x64.tar.gz

which 命令

which 命令查找可执行文件位置

举例:

which bash

whereis 命令

whereis 命令查找二进制文件、源码文件

举例:

whereis bash

wc 命令

wc 命令是用来文本统计的命令

可选操作:

-w			单词数量
-l			行数
-L			最长行的长度

语法:
统计FILE/PATH中最长行的行数、单词数量、字节长度

wc -wlL PATH/FILE

ls命令

语法: ls [-alrtAFR] [dirName…] 用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。如果不含dirName 指的就是当前目录。

alrtAFR的选择如下(可嵌套使用):

-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (当前目录)".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出

举例:

  1. 显示当前路径下所有的目录及文件的详细信息

    ls -l
    

    用一张来列出文件详细信息的结构如下:
    在这里插入图片描述

  2. 显示当前路径下的目录及文件的名字

    ls
    

    用一张图来表示 linux 文件显示的颜色:
    在这里插入图片描述

  3. 显示当前路径下所有的目录及文件的详细信息(包含隐藏文件)

    ls -la
    
  4. 按易读方式按时间反序排序,并显示所有以"j"开头的文件详细信息

    ls -lhrt j*
    

chown 命令

关于文件权限上图已经讲过了,下面我再简单介绍一下:
在这里插入图片描述
如上图所示,组成部分:[d-l]UGO[rwx]*3

  1. [d-l] d:目录 -:文件 l:可执行文件/库文件
  2. UGO U:所有者 G:分组 O:其他
  3. 权限数字化
    a) - 0
    b) r 5
    c) w 2
    d) x 1
  4. rwx r:读 w:写 x:执行
    a) --------- 000
    b) 目录默认权限755:rwxr-xr-x
    c) 文件默认权限644:rw-r—r--
    d) rwxrwxrwx 777

chown 修改文件或目录权限的所有者

语法: chown [-R] USERNAME [:GROUPNAME] directory/file

  1. -R 递归授权
  2. USERNAME: U:所有者 G:分组 O:其他
  3. GROUPNAME: 使用者所在的分组
  4. directory/file: 所要修改的文件或目录

chmod 命令

chmod 修改所有者的文件或目录权限

语法:

chmod MODE FILENAME/DURNAME
chmod U/G/O+r/w/x FILENAME/DURNAME

举例:

  1. 修改a.txt 文件的权限为读写执行

    chmod 777 a.txt
    
  2. 新增a.txt 使用者的写权限

    chmod U+w a.txt
    

mkdir命令

mkdir 命令用于创建文件夹。

可用选项:
-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
-p: 确保目录名称存在,不存在的就建一个。

举例:

  1. -p 可以实现一次性创建多重目录,如果不加-p,会报错

    [root@vmmaster ~]# mkdir a/b/c
    mkdir: cannot create directory ‘a/b/c’: No such file or directory
    [root@vmmaster ~]# mkdir -p a/b/c
    [root@vmmaster ~]# cd a/b/
    [root@vmmaster b]# ls 
    c
    [root@vmmaster b]# 
    
  2. 一次性创建多个并列的目录a 、b、c

    mkdir a b c
    

文件管理命令

rm 命令(慎重)

语法:rm [options] name… 删除一个目录中的一个或多个文件或目录

options(可嵌套使用):

-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。

举例:

  1. 递归删除test目录下的所有文件

    rm -rf test/
    
  2. 如果没有使用 -r 选项,则 rm 不会删除目录,会出现以下报错提示。如果使用 rm 来删除文件,通常无法恢复。

    [root@vmmaster ~]# rm a/
    rm: cannot remove ‘a/’: Is a directory
    

cp 命令

语法:cp [options] source dest ,cp命令主要用于复制文件或目录

options常用可选操作:

-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
-l 不复制文件,只是生成链接文件

举例:

  1. 将当前目录"test/"下的所有文件复制到新目录"newtest"下

    cp –r test/ newtest    
    

mv 命令

mv 命令移动文件或目录、兼有重命名

根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。 当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。

可选操作:

-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

举例:

  1. 将文件 a.txt,b.txt,c.txt 移动到根的 test 目录中

    mv a.txt b.txt c.txt test/
    
  2. 将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖

    mv -i a.txt b.txt
    

cat 命令

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

可选操作

-n 由 1 开始对所有输出的行数编号。
-b 和 -n 相似,只不过对于空白行不编号。
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 在每行结束处显示 $。
-T 将 TAB 字符显示为 ^I。
-A 等价于 -vET。
-e 等价于"-vE"选项;
-t 等价于"-vT"选项;

举例:

  1. 把a.txt的文档内容加上行号后输入b.txt 这个文档里

    cat -n a.txt > b.txt
    
  2. 把 a.txt 和 b.txt 的文档内容加上行号(空白行不加)之后将内容附加到 c.txt 文档里

    cat -b a.txt b.txt >> c.txt
    
  3. 读取a.txt文档的所有内容

    cat a.txt
    

touch 命令

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

touch 命令最常用的就是创建新文件

参数可选:

a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。

举例:

若a.txt存在,则修改a.txt的时间属性为当前系统时间,若a.txt不存在,就是创建新文件a.txt

touch a.txt

grep 命令

grep 是最常用的管道命令, 用于查找文件里符合条件的字符串和用于查找内容包含指定的范本样式的文件。

语法:grep [option] pattern file|dir

常用的可选option操作

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹
-w 只匹配整个单词
-v 显示匹配行以外的内容

可选正则表达式pattern的操作:

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。  
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.*   #一起用代表任意字符。  
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。

more 命令

more 分页读取文档内容,这里所说的分页默认为一屏幕的内容,可以通过 -num 指定行数。

常用可选命令操作:

-num 一次显示的行数
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的文档,可为复数个数

读取内容时常用操作:

Enter 向下n行,需要定义。默认为1行
空格键 向下滚动一页
b 返回上一行
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more

举例:
以每页两行的形式分页读取a.txt文档内容

more -2 a.txt

less 命令

less 命令比more命令更强大,可以随意的浏览分页查询的内容。而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

常用可选命令参数:

-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字>"tab"键显示为规定的数字空格

读取内容时常用操作:

/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

head 命令

head默认分别显示文件的开头10行记录。

可选参数:

-n 输出的行数
-c 输出的字节数,后面直接跟数字,如5b、5m、5k、5g等

举例:

  1. 显示a.txt的前15行(3种方式)

    head -n15 a.txt
    head -n 15 a.txt
    head -15 a.txt
    
  2. 显示a.txt除了最后15行以外的内容

    head -n -15 a.txt
    

tail 命令

tail默认分别显示文件的结尾10行记录。和head相反

可选参数:

-n 输出的行数
-c 输出的字节数,后面直接跟数字,如5b、5m、5k、5g等
-f 循环读取(常用于查看递增的日志文件)

举例:

  1. 显示a.txt从第15行开始所有的内容

    tail -n +15 a.txt
    
  2. 显示a.txt最后5m个的字节数

    tail -c 5m a.txt    #5*1048576
    

cut 命令

cut 命令为文本内容切割操作,只是显示具有分隔效果,实际内容没有变化。

语法:cut -d ‘切割符’ -fn[,n2,n3,…] /path/file
备注:

  1. -d ‘切割符’ ,文本以该切割符分隔
  2. -fn[,n2,n3,…] 第几个单词

举例:

  1. echo 'we are champion, we are the family' | cut -d ' ' -f2,5,6
    结果:

    are are the
    
  2. ls -l | grep Aug | tr -s ' ' | cut -d ' ' -f3,5,6,9
    结果:

root 0 Aug a.txt
root 34 Aug b.txt
root 6 Aug c
root 0 Aug c.txt

tr 命令

tr 命令用来删除替换文本的功能,和cut一样只是显示内容变化,实际内容没有变化。

举例:

1.	正则大小转换	echo 'hello kb08' |tr 'a-z' 'A-Z'
2.	删除指定符号	echo 'hello kb08' |tr -d '0-9'
3.	重复显示一个	echo 'hello we will thrill' |tr -s 'l'

结果:
在这里插入图片描述

sed 命令

sed 命令为文本编辑器,可以配合正则

举例:

1.	-n	只显示需要的内容	sed -n '2,6p' test.txt
2.	复制(显示)			sed '2,6p' test.txt
3.	删除(不显示)		sed '2,6d' test.txt	显示其他行
4.	替换					sed 's/world/family/g' test.txt	
#备注:sed ‘s/INFO/CONT/’	g:每行全部替换

结果:

[root@vmmaster b]# sed -n '2,6p' text.txt 
we are family
the world is peaceful and beautiful
the family is our good home
we are happy
we hope we can live in the world
[root@vmmaster b]# sed '2,6p' text.txt 
hello world
we are family
we are family
the world is peaceful and beautiful
the world is peaceful and beautiful
the family is our good home
the family is our good home
we are happy
we are happy
we hope we can live in the world
we hope we can live in the world
welcom to the world
welcome to our family
the world is our family
our family is the world 
[root@vmmaster b]# sed '2,6d' text.txt 
hello world
welcom to the world
welcome to our family
the world is our family
our family is the world 
[root@vmmaster b]# sed 's/world/china/g' text.txt 
hello china
we are family
the china is peaceful and beautiful
the family is our good home
we are happy
we hope we can live in the china
welcom to the china
welcome to our family
the china is our family
our family is the china 

awk 命令

awk 是一种脚本语言命令,检索查询的功能

语法:awk [-F|-f|-v] ‘BEGIN{}//{COMMAND1;COMMAND2} END{}’ file

#显示每行的1和4列单词
awk '{print $1,$4}' test.txt			

#计算第5列的sum
ls -l|awk 'BEGIN{sum=0} {sum+=$5} END{print sum}'		

#检索第1和3列的内容
awk -F : '{print $1,$3}' etc/passwd		

vi 命令

vi 命令进入文件的操作命令,只能是文件

默认进入命令模式
:w	保存不退出	
:wq	保存退出
:x	保存退出
:q!	退出不保存
/... 检索...的内容	
yy	复制所在行的内容	
p	粘贴到下一行	
dd	删除所在行的内容	
shit+g 直接到最后一行

按i/a进入编辑模式
esc 进入命令模式

系统管理命令

rpm 命令

rpm 命令用于管理套件

rpm -ivh 包名(支持*):安装rpm包
rpm -e 包名(不支持*):卸载rpm包
rpm -qa | grep 包名(不支持*): 查看系统自带包

yum命令

yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。

基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

常用命令:

1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search <keyword>
8.清除缓存命令:
	yum clean packages: 清除缓存目录下的软件包
	yum clean headers: 清除缓存目录下的 headers
	yum clean oldheaders: 清除缓存目录下旧的 headers
	yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的header

systemctl 命令

systemctl命令是系统服务管理器指令

常用命令:

systemctl enable/start/stop/disable/restart service-name		启动、开启、关闭、禁用、重启service
systemctl status service-name 查看service状态:Active:running或者Inactive:dead

举例:

  1. 重启网络服务

    systemctl restart network
    
  2. 关闭并禁用防火墙

    关闭防火墙:systemctl stop firewalld
    禁用防火墙:systemctl disable firewalld
    

ps命令

首先了解一下进程:
在这里插入图片描述
查看进程两种方式

ps aux
ps -ef

举例:
在这里插入图片描述

杀死进程

kill -9 PID(进程id)

解压压缩命令

linux 常见的压缩文件压缩和解压缩方式

在这里插入图片描述
所有的解压缩和压缩命令之后均可加 -C path 来指定解压缩和压缩后文件的位置。

tar 命令

常用参数:

-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程

语法:

文件解压
xxx.tar				tar -xvf xxx.tar [-C path]
xxx.tar.gz			tar -zxvf xxx.tar.gz [-C path]
xxx.tar.xz			xz -d xxx.tar.xz => xxx.tar

文件压缩
tar -cvf destpath/xxx.tar srcpath
tar -zcvf destpath/xxx.tar.gz srcpath

gzip和bzip2 命令

gzip 
压缩 gzip fileName filename.tar.gz filename.tgz  
解压:gunzip filename.gz 或 gzip -d filename.gz

bz2实例
压缩 bzip2 -z filename filename.tar.bz2 
解压:bunzip filename.bz2或bzip -d filename.bz2

其他常用命令

clear命令

clear命令用于清除屏幕(清除当前屏幕终端上的任何信息),向上翻页还是能查看到历史记录的。

主机名和免密登录操作

a)	设置主机名		hostnamectl set-hostname HOSTNAME
b)	查看别名			hostname
c)	配置主机名		vi etc/hosts

编辑集群主机和从机的IP地址和别名
在这里插入图片描述

d)	免密登录
	i.	进入主机根目录:		cd/root
	ii.	生成秘钥				ssh-keygen -t rsa -P “”
	iii.删除秘钥				ssh-keygen -R IP
	iv.	拷贝秘钥(authorized_keys先创建)
		1.	cd .ssh/
		2.	cat id_rsa.pub >> authorized_keys
	v.	远程拷贝秘钥:ssh-copy-id -i id_rsa.pub -p22 root@REMOTE_HOSTNAME/IP   输入密码授权拷贝
	vi.	免密登录验证
	1.	ssh root@REMOTE_HOSTNAME/IP
	2.	如果能够直接连上远程主机,则免密登录设置成功
	vii.	退出免密登录		logout

用户和分组操作

用户

  1. cat /etc/passwd 查看用户信息列表
    在这里插入图片描述
  2. useradd USERNAME 新增用户
  3. passwd USERNAME 设置用户密码
  4. id 详细查看用户的id
  5. su USERNAME 切换到USERNAME用户
  6. whoami 查看当前用户是谁
  7. userdel 删除用户(root用户才能使用)
  8. useradd [-u UID] USERNAME 以分组ID的形式添加用户
  9. usermod -l NAME OLDNAME 修改用户的名字

分组

  1. cat /etc/group 查看用户分组的信息信息
    在这里插入图片描述
  2. groups 查看当前用户的分组
  3. groupadd [-g GID] GROUPNAME 新增以组指定ID的组
  4. usermod -a -G GROUPNAME USERNAME 添加USERNAME新分组为GROUPNAME

系统资源查看操作

  1. top 命令为系统资源查看命令
    在这里插入图片描述

  2. netstat和top 命令一样为系统资源查看命令
    常用命令:

    netstat -t/u 协议类型	-tcp/-udp
    netstat -I	网卡列表
    
  3. 查看硬盘状态
    在这里插入图片描述

  4. 查看内存状态
    在这里插入图片描述

日期和时间操作

  1. 日期格式化:date +"%Y-%m-%d %H:%M:%S %s"

  2. 日期计算:date -d “±n PART” +”FORMAT”

     PART   日期形式,如:day、month、year
     FORMAT	日期格式化,如:%Y-%m-%d %H:%M:%S %s
    
  3. 更改系统时间:date -s “00:00:00 1900-1-1”

  4. 修正系统时间:ntpdate -u ntp.api.bz

  5. 当前时间:date

  6. 格林威治时间:date-u

  7. 挂钟时间(虚拟机内部的脉冲时间):clock

  8. 在Linux中有硬件时钟与系统时钟等两种时钟:hwclock

猜你喜欢

转载自blog.csdn.net/BigData_Hobert/article/details/107850554
今日推荐