linux常用指令集汇总

Linux常用指令集

1. 系统的基本指令

1.1 关机与重启

shutdown -h 18:00    #指定系统时间18:00的时候关机
shutdown -h +10		 #10分钟以后关机
shutdown -h now		 #现在关机
halt				 #立即关机
poweroff			 #立即关机
shutdown -c			 #取消关机
reboot				 #重启Linux

1.2 快捷键

#快捷键
ctrl+c 		#终止正在执行的指令
ctrl+a		#回到命令开始
ctrl+e		#回到命令结尾
ctrl+u		#清空命令行
ctrl+l		#清屏(相当于命令clear)
tab			#提示

1.3 uname

#uname用于显示当前系统的信息
uname -r		#显示系统的版本与内核信息
uname -a		#显示系统的名称

uname -r        4.4.0-151-generic
uname -a		Linux shiKya 4.4.0-151-generic #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

1.4 命令提示符

root@shiKya:~# 
其中:
	root:代表用户名
	shiKya :代表主机名
	~后面的东西表示当前的工作路径
	如果是~# :代表是超级管理员(即root)在使用操作系统
	是~$:代表是普通用户在使用操作系统

1.5 软件的安装与下载指令

apt工具(是Ubuntu默认的下载工具)
apt-cache showsrc 包名			#查看软件包信息
apt-get source 包名					#获得源码
apt-get update 						#更新apt-get工具
apt-get upgrade						#更新可能用到的软件包
apt-get install 包名					#安装软件
apt-get remove 包名				#删除软件

注意:以上指令执行后提示权限不够的话,要在前面加sudo 例:sudo apt -get install 包名(root用户是整个操作系统中权限最高的用户,一般root用户的权限是默认停用的。所有的和操作系统相关的指令都需要使用sudo指令来执行,一般执行sudo需要输入密码)

2.Linux的文件系统的结构

 内置的目录名
bin:存放常见的命令
boot:存放系统的启动文件和核心文件
dev:存放外部设备文件(包括硬盘、光驱、键盘、鼠标)
etc:存放系统的配置文件
home:普通用户的家目录,在终端中用“~”表示
root:超级管理员目录
var:包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是经常变化或扩充的
usr:用户的软件安装到这个目录下
			usr下的子目录:
						bin:应用程序可执行文件
						sbin:用户或者超级管理员的标准指令
						local:管理员安装程序的目录
						share:共享目录

3. 常用的指令

3.1 ls指令

1)ls(列出某个目录下的文件或者子目录
格式:ls [参数1] [参数2]
参数2表示要列出的文件或目录的路径
ls -l 		以列表的形式显示当前目录下的子目录或者文件
ls -a 	显示所有文件及目录(包含有隐藏文件)
ls -r 		将文件以相反次序显示(原定依英文字母次序)
ls -t 		将文件依建立时间的先后次序列出
ls -R 	若目录下有文件,则以下之文件也会依照层级列出

例:
列出根目录下的etc目录下的所有名称是s开头的文件,越新的越排后面
ls -ltr s*   (l:列表形式,t:按时间先后排序,r:倒叙)
ls -lR /bin		(将 /bin目录以下所有目录及文件详细资料列出)

total 24
drwxr-xr-x  3 root root 4096 Dec 12 10:26 ./
drwx------ 37 root root 4096 Feb 16 09:52 ../
-rw-r--r--  1 root root   68 Oct 26 16:31 code.txt
-rw-r--r--  1 root root 2247 Dec 12 10:26 dp.log
drwxr-xr-x  8 root root 4096 Oct 26 16:45 .git/
-rw-r--r--  1 root root   16 Oct 26 16:13 README.md

例如:drwxr-xr-x  3 root root 4096 Dec 12 10:26 ./ 
**第1部分:第1位**
第1位表示文件的类型, d表示这个文件是目录,
										-表示是普通文件
										l表示是一个软连接
**第2部分:第2-10位**
第2-10位代表权限,文件有三种权限,分别是读写与执行(即rwx)
每3位为一组,总共3组
		第2-4位代表文件所有者(ower)对该文件的权限
		第5-7位代表文件所有者所在的用户组对该文件的权限
		第8-10位代表其他用户对当前文件的权限
每一组中有3个位,读、写和执行
		这3个位中的第1个位的取值可以是r或者-(取r代表可读,取-代表没有读的权限)
		这3个位中的第2个位的取值可以是w或者-(取w代表可写,取-代表没有写权限)
		这3个位中的第3个位的取值可以是x或者-(x代表可执行,-代表没有执行的权限)
**第3部分:**
		数字代表这个文件的链接数
**第4部分:**
		代表该文件的所有者,此处即为root
**第5部分:**
		代表该文件所有者所在的用户组,此处即为root
**第6部分:**
		数字代表该文件或者目录的大小
**第7部分:**
		文件创建的日期
**第8部分:**
		文件或者目录名

3.1 ll指令

ll相当于ls -al   以列表的形式显示某目录下的所有文件或目录	(包括隐藏文件或目录)
白色代表普通文件,蓝色代表是一个目录,绿色代表是一个可执行的文件或者目录,红色代表是压缩文件,青色代表是软链接,黄色代表设备文件,灰色代表其它文件

3.2 man / --help

man 命令 :用于调取出其它命令的帮助文档	
获取帮助文档后,由于内容可能过多,
f代表向后翻页,
回车、下的箭头键代表向下翻,一行一行的翻
b代表向上翻页,
向上的箭头键代表向上翻,一行一行的翻
g代表回到文档开头,shift+g代表回到文档结束
home键代表回到文档开始
q键代表退出当前说明文档

3.3 history

显示之前敲过的命令,最多显示1000条

3.4 软链接和硬链接

	硬链接相当于给文件起别名,软链接相当于给文件创建了一个快捷方式(文件数据块中存放的是另一种路径的指向 )
	创建硬链接指令:link(或ln) 文件名 硬链接名
	创建软链接指令:link(或ln)-s 文件名 软连接名

硬链接:
	1)只能对已存在的文件创建硬链接
	2)不能对目录创建硬链接,只能创建文件的硬链接
	3)删除一个硬链接对源文件没有影响
	4)删除源文件,硬链接创建的文件还是会存在,cat会有内容
软链接:
	1)软链接是一个独立的文件,有自己的文件属性及权限
	2)可以对不存在的文件或者目录创建软链接
	3)删除软链接并不影响被指向的文件,但是源文件如果删除了,软链接会变成死链接,cat以后会提示No such file or directory

4. 查看某安装包的位置的指令

4.1、whereis

whereis mysql
# 此即查询mysql的安装位置,存在mysql这个软件包则返回:
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
#不存在的话,则返回
mysql:

4.2、which-查询运行文件所在路径

which mysql
# 存在则返回:
/usr/bin/mysql
# 不存在则什么也不返回返回

5.查找

5.1 grep 文本搜索

grep 文本搜索
语法:grep 参数 查找条件 文件名(注:是文件名,目录名下查找不行)
主要参数:
-i:不区分大小写(只适用于字母字符。)

-l:查询多文件时只输出包含匹配字符的 文件名。

-n:显示匹配行内容及行号。

ls -l|grep -i test #把ls -l的输出中包含字母test(不区分大小写)的内容输出 (如果查询的是目录可以使用正则表达式,但是文件不行)

5.2 find 查找

-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;  -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;

find /root(路径) -mtime 0 : 在当前目录下查找今天之内有改动的文件  

find -name 文件名 :找匹配的文件名

在某一文件中查找日志(比方方法login):可以vi打开日志文件,然后“/login”,enter,按 n 键向下继续搜索;

locate

locate [-ir] keyword
选项与参数:
-i  :忽略大小写的差异;
-r  :后面可接正规表示法的显示方式
范例一:找出系统中所有与 passwd 相关的档名
[root@www ~]# locate passwd
/etc/passwd
/etc/passwd-
/etc/news/passwd.nntp
/etc/pam.d/passwd
....(底下省略)....

5.3  ps  列出系统中当前运行的进程

a 显示所有用户的所有进程(包括其它用户)

-e 显示所有进程,环境变量f 用树形格式来显示进程;

ps -ef|grep java : 找出所有java进程

6. chmod   改变文件的权限 

改变所属群组, chgrp

改变文件拥有者, chown

语法:chmod [options] mode files 
options:-R 可递归遍历子目录,把修改应到目录下所有文件和子目录 
who:u 用户 、 g 组 、o 其他 、a 所有用户 
opcode:+ 增加权限 、 - 删除权限 、= 重新分配权限 
permission: r 读 、w 写 、 x 执行


# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
  都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。


# chown [-R] 账号名称 文件或目录
# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更

我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限 .

chmod u+x file :给file的属主增加执行权限

 chmod 751 file :给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

 chmod u=rwx,g=rx,o=x file :上例的另一种形式

7. tail 查阅正在改变的日志文件 

# tail [-n number] 文件 
选项与参数:
-n  :后面接数字,代表显示几行的意思
-f  :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:

文件内容查阅

 

直接检视文件内容:
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
可翻页检视:
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
数据撷取:
head 只看头几行 head -n file

可以同时查看多个文件的前几行数据 head file1 file2
tail 只看尾巴几行

 

什么是安装Linux所需的最小分区数量,以及如何查看系统启动信息?

答案:单独一个/root分区足以执行所有的系统任务,但是强烈建议安装Linux时,需要至少三个分区:/root,/boot,/swap。一个IDE硬盘驱动器支持高达63个分区,SCSI硬盘驱动器支持超过15个分区。

为了检查启动信息,我们可以使用cat或者dmesg命令,如下所示:

#cat /var/log/messages

或者

#dmesg

使用fsck命令检查文件系统错误

FSCK 是一个很重要的Linux/Unix 工具,它用于检测并修复文件系统中的错误。

它可以进行三种模式的操作,

  1. 查错并在发现错误时由用户决定如何处理,
  2. 查错并自动修复,
  3. 查错但在发现错误时只显示错误而不进行修复。

我们不应该用 fsck 检查已挂载的磁盘,这很可能会对磁盘造成永久性的伤害。因此在开始使用 fsck 之前,我们需要使用下面命令来卸载磁盘,

$ umount drivename
比如像这样,
$ umount/dev/sdb1

具体细节查看:https://www.linuxprobe.com/linux-fsck-command.html 

压缩命令

在Linux的环境中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.bz2』,相对应的命令有tar、gz、bz2。

gzip和bzip2主要用于单一文件的压缩,虽然 gzip 与 bzip2 也能够针对目录来进行压缩,不过,这两个命令对目录的压缩指的是『将目录内的所有文件 "分别" 进行压缩』的动作! 而不像在 Windows 的系统,可以使用类似 WinRAR 这一类的压缩软件来将好多数据『包成一个文件』的样式。

1. gzip,zcat

首先介绍一下gzip命令。
gzip 可以说是应用度最广的压缩命令!
gzip 可以解开 compress, zip 与 gzip 等软件所压缩的文件。
gzip 所创建的压缩文件后缀为 *.gz。

# gzip [-cdtv#] 文件名
选项与参数:
-c  :将压缩的数据输出到萤幕上,可透过数据流重导向来处理;
-d  :解压缩的参数;
-t  :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v  :可以显示出原文件/压缩文件的压缩比等信息;
-#  :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6

# 当你使用 gzip 进行压缩时,在默认的状态下原本的文件会被压缩成为 .gz 的文件, 原始文件就不再存在了。
# 与 gzip 相反, gzip -d 会将原本的 .gz 删除,产生原本的文件。

cat 可以读取纯文字文件,zcat 则可以读取纯文字文件被压缩后的压缩文件!

zcat 文件名.gz
文件是文字文件,可将该压缩文件的内容读出来!

2. bzip2,bzcat

若说 gzip 是为了取代 compress 并提供更好的压缩比而成立的,那么 bzip2 则是为了取代 gzip 并提供更佳的压缩比而来的。
bzip2 的用法几乎与 gzip 相同。
bzcat功能和用法和zcat相同。

[root@www ~]# bzip2 [-cdkzv#] 文件名

[root@www ~]# bzcat 文件.bz2

选项与参数:

-c :将压缩的过程产生的数据输出到萤幕上!

-d :解压缩的参数

-k :保留原始文件,而不会删除原始的文件喔!

-z :压缩的参数

-v :可以显示出原文件/压缩文件的压缩比等信息;

-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快

打包命令tar

[root@www ~]# tar [-j|-z] [cv] [-f 创建的文件名] filename... <==打包与压缩
[root@www ~]# tar [-j|-z] [tv] [-f 创建的文件名]             <==查看文件名
[root@www ~]# tar [-j|-z] [xv] [-f 创建的文件名] [-C 目录]   <==解压缩
选项与参数:
-c  :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)
-t  :查看打包文件的内容含有哪些文件名,重点在查看『文件名』就是了;
-x  :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
      特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j  :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-z  :通过 gzip  的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
-v  :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项罗!
-C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
其他后续练习会使用到的选项介绍:
-p  :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P  :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!

其实最简单的使用 tar 就只要记忆底下的方式即可:
1) 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
2) 查 询:tar -jtv -f filename.tar.bz2
3) 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
其中filename.tar.bz2是我们自己取的文件名,tar 并不会主动的产生创建的文件名,所以扩展名就显的很重要了!
如果不加 [-j|-z] 的话,文件名最好取为 *.tar 即可。如果是 -j 选项,代表有 bzip2 的支持,因此文件名最好就取为 *.tar.bz2 ;如果是加上了-z的 gzip 的支持,那文件名最好取为*.tar.gz

假设我们想要打包 /etc/ root 这几个重要的目录,但却不想要打包 /root/etc* 开头的文件, 因为该文件都是刚刚我们才创建的备份文件!而且假设这个新的打包文件要放置成为 /root/system.tar.bz2,当然这个文件自己不要打包自己,此时我们可以通过--exclude(不包括)来实现:


[root@www ~]# tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* \

> --exclude=/root/system.tar.bz2 /etc /root

zip 压缩

zip -r filename.zip filesdir

在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。

你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

zip -r filename.zip file1 file2 file3 /usr/work/school 

上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。

解压zip文件

1.功能作用:解压缩zip文件

2.位置:/usr/bin/unzip

3.格式用法:unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]

4.主要参数

  • -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
  • -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
  • -l 显示压缩文件内所包含的文件
  • -f 更新现有的文件
  • -t 检查压缩文件是否正确,但不解压
  • -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
  • -z 仅显示压缩文件的备注文字
  • -v 执行时显示详细的信息。或查看压缩文件目录,但不解压
  • -T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间
  • -x 指定不要处理.zip压缩文件中的哪些文件
  • -d 指定文件解压缩后所要存储的目录
  • -n 解压缩时不要覆盖原有的文件
  • -q 安静模式,执行时不显示任何信息
  • -o 不必先询问用户,unzip执行后覆盖原有文件
  • -a 对文本文件进行必要的字符转换
  • -j 不处理压缩文件中原有的目录路径
  • -aa 把所有的文件目录当作文本处理
  • -U use escapes for all non-ASCII Unicode
  • -UU 忽略Unicode编码字符
  • -C 压缩文件中的文件名称区分大小写
  • -L 将压缩文件中的全部文件名改为小写
  • -X 解压缩时同时回存文件原来的UID/GID
  • -V 保留VMS的文件版本信息
  • -K 保留文件的setuid/setgid/tacky属性
  • -M 将输出结果送到more程序处理
  • -O 指定字符编码为DOS,Windows和OS/2
  • -I 指定字符编码为UNIX

5.应用实例
1、把文件解压到当前目录下

unzip test.zip

2、如果要把文件解压到指定的目录下,需要用到-d参数。

unzip -d /temp test.zip

3、解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数

unzip -n test.zip
unzip -n -d /temp test.zip

4、只看一下zip压缩包中包含哪些文件,不进行解压缩

unzip -l test.zip

5、查看显示的文件列表还包含压缩比率

unzip -v test.zip

6、检查zip文件是否损坏

unzip -t test.zip

7、将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件

unzip -o test.zip -d /tmp/

参考:

https://blog.csdn.net/tubby__/article/details/104338294

https://blog.csdn.net/hustlinevan/article/details/37575185

你可能感兴趣的:(分布式系统)