Linux操作

一、Linux操作

1.安装yum包:

$ yum install PACKAGE_NAME

yum install mysql

2.取出yum包装:

$ yum remove PACKAGE_NAME

yum remove mysql

3.重新安装一个yum包:

$ yum reinstall PACKAGE_NAME

yum reinstall mysql

4.搜索yum包:

$ yum search PACKAGE_NAME

yum search mysql

5.显示yum包的信息:

$ yum info PACKAGE_NAME

yum info mysql

6.更新安装的yum包:

$ yum update #更新是更新源,就是更新这个服务

7.更新具体的yum包:

$ yum update PACKAGE_NAME

yum update mysql

8.显示yum历史:

$ yum history #查看你敲过的历史命令

yum history |grep mysql #过滤mysql的意思 只显示mysql的东西

9.显示已启用的yum存储库的列表:

$ yum repolist

10.找出哪个yum包提供了一个特定的文件(例如:/usr/bin/nc)):

$ yum whatprovides "*bin/nc" #直接输入

11.清除yum缓存:

$ yum clean all #清的缓存并不是输入的命令 而是搜索的历史记录

#比如 在执行yum history 会重新的抓取重新搜索

这是装软件的操作:

比如安装docker:

yum insatll docker

二、vim简单试用

1.vim简单试用

vi / vim 最linux比较流行的编辑器,相当于windows系统notepad.exe 记事本。

$ vim demo.java

输入 i 进入插入模式,可以编辑

按下Esc键,输入

:wq保存退出

:w abc.java 另存为

:w 保存 输入

:q 退出

:q! 强制不保存并退出

2.vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

1>命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i 切换到输入模式,以输入字符。 x 删除当前光标所在处的字符。 : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

2>输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符 ENTER,回车键,换行 BACK SPACE,退格键,删除光标前一个字符 DEL,删除键,删除光标后一个字符 方向键,在文本中移动光标 HOME/END,移动光标到行首/行尾 Page Up/Page Down,上/下翻页 Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 ESC,退出输入模式,切换到命令模式

3>底线命令模式

在命令模式下按下 :(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序 w 保存文件

1.查找

/port #从上往下找 示例 :/port /p

?port #从下往上找

回车后,可以通过 n 查找下一个, N查找上一个。

2.显示行号

:set nu #显示行号

:set nonu #取消显示行号

3.跳到最后一行

:$::

4.常用其它

【:w】 保存文件 :w

【:w!】 若文件为只读,强制保存文件

【:q】 离开vi,如果编辑了不保存,可以使用 :q! 强制退出

【:q!】 不保存强制离开vi

【:wq】 保存后离开

【:wq!】 强制保存后离开

【:w newfile】 另存为

【:set fileencoding】 查看当前文件编码格式

【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式

【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)

【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

三、常用命令

1.版本信息

cat #命令就是查看的意思:

cat 123.txt

cat demo.Java

cat /etc/os-release #查看操作系统

#查看linux 内核信息

cat /proc/version

#查看当前系统名字

uname

Linux

##### 查看系统的位是32位还是64位

getconf LONG_BIT

64

2.关机重启

1.Linux重启命令:

1、reboot 重启

2、shutdown -r now 立刻重启(root用户使用)

sudo reboot

sudo shutdown -r now

3、shutdown -r 10 过10分钟自动重启(root用户使用)

4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)

如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

2.Linux关机命令:

1、halt 立刻关机

2、poweroff 立刻关机

3、shutdown -h now 立刻关机(root用户使用)

4、shutdown -h 10 10分钟后自动关机

3.目录操作

ls

#不带参数

ls

#显示所有文件包含隐藏文件

ls -all

#以MB、KB、GB为单位显示文件信息

#以MB显示

ls -all --block-size=M

#以KB显示

ls -all --block-size=K

#以GB显示

ls -all --block-size=G

#自动根据文件体积显示文件体积

ls -lah

命令帮助

ls --help

用法:ls [选项] ... [文件] ...

列出有关FILE的信息(默认为当前目录)。

如果未指定-cftuvSUX和--sort,则按字母顺序对条目进行排序。

长选项的强制性参数对于短选项也是必需的。

-a,--all不隐藏任何以.开始的项目

-A,-几乎全部列出除.及..以外的任何项目

--author与-l同时使用时列出每个文件的作者

-b,--escape以八进制重叠序列表示不可打印的字符

--block-size = SIZE缩放大小,按SIZE进行打印;例如。,

'--block-size = M'打印尺寸为

1,048,576字节;请参阅下面的SIZE格式

-B,-ignore-backups不列出以〜结尾的隐含条目

-c和-lt:按并显示ctime(最后一次时间)

修改文件状态信息);

使用-l:显示ctime并按名称排序;

否则:按ctime排序,最新的优先

-C按列列出条目

--color [= WHEN]为输出着色;什么时候可以“从不”,“自动”

或“始终”(默认);下面的更多信息

-d,--directory列出目录本身,而不是目录内容

-D,--dired生成为Emacs的转向模式设计的输出

-f不排序,启用-aU,禁用-ls --color

-F,-将附加指示符(* / => @ |之一)分类到条目

--file-type一样,除了不附加'*'

--format =横跨-x,逗号-m,水平-x,长-l,

单列-1,详细-l,垂直-C

--full-time类似于-l --time-style = full-iso

-g类似-l,但不列出所有者

--group-directories-first

在文件之前对目录进行分组;

可以使用--sort选项进行扩充,但任何

使用--sort = none(-U)​​禁用分组

-G,--no-group以一个长列表的形式,不输出组名

-h,--human-可读与-l一起,以易于阅读的格式输出文件大小

(例如1K 234M 2G)

--si同上面类似,但是使用1000为基底而不1024

-H,--dereference-命令行

遵循命令行上列出的符号链接

--dereference-command-line-symlink-dir

跟随每个命令行符号链接

指向目录

--hide = PATTERN不列出与shell PATTERN匹配的隐式条目

(被-a或-A覆盖)

--indicator-style = WORD将带有WORD样式的指示符附加到条目名称:

无(默认),斜杠(-p),

文件类型(-文件类型),分类(-F)

-i,--inode打印每个文件的索引号

-I,--ignore = PATTERN不列出与shell PATTERN匹配的隐式条目

-k,--kibibytes默认为1024字节的块以供磁盘使用

-l使用格式格式列出信息

-L,--dereference当显示符号链接的文件信息时,显示符号链接所指示

的对象而并非符号链接本身的信息

-m所有项目以逗号分隔,并填满整行行宽

-n,--numeric-uid-gid类似-l,但列出UID及GID号

-N,--literal输出预期处理的项目名称(如不特别处理控制字符)

-o类似-l,但不列出有关组的信息

-p,--indicator-style = slash对目录加上表示符号“ /”

-q,--hide-control-chars打印吗?而不是非图形字符

--show-control-chars按原样显示非图形字符(默认为

除非程序是'ls'并且输出是终端)

-Q,--quote-name将条目名称括在双引号中

--quoting-style = WORD将引号WORD用作条目名称:

文字,语言环境,shell,始终为shell,c,转义

-r,--reverse逆序排列

-R,--recursive递归显示子目录

-s,--size以块数形式显示每个文件分配的尺寸

-S按文件大小排序

--sort = WORD按WORD而不是名称排序:无(-U),大小(-S),

时间(-t),版本(-v),扩展名(-X)

--time = WORD -l,将时间显示为WORD而不是默认值

修改时间:一次或访问或使用(-u)

ctime或状态(-c);也使用指定的时间

作为排序键,如果--sort = time

--time-style =带有-l的样式,使用样式STYLE显示时间:

全ISO,长ISO,ISO,区域设置或+ FORMAT;

FORMAT的解释方式类似于'date';如果格式

是FORMAT1 FORMAT2,则FORMAT1适用

非最新文件,FORMAT2到最近文件;

如果STYLE带有'posix-'前缀,则为STYLE

仅在POSIX语言环境外生效

-t按修饰符排序

结冰时间,最新的优先

-T,--tabsize = COLS假定制表符在每个COLS处而不是8个处停止

-u和-lt:按访问时间排序并显示;

-l:显示访问时间并按名称排序;

否则:按访问时间排序

-U不排序;按目录顺序列出条目

-v文本中自然的(版本)数字排序

-w,--width = COLS假定屏幕宽度而不是当前值

-x按行而不是按列列出条目

-X按条目扩展名的字母顺序排序

-1每行列出一个文件

SELinux选项:

--lcontext显示安全上下文。启用-l。线数

对于大多数显示器来说可能太宽了。

-Z,--context显示安全上下文,因此适合大多数情况

显示。仅显示模式,用户,组,

安全上下文和文件名。

--scontext仅显示安全性上下文和文件名。

--help显示此帮助信息并退出

--version显示版本信息并退出

SIZE是整数和可选单位(例如:10M是10 * 1024 * 1024)。单位

是K,M,G,T,P,E,Z,Y(1024的幂)或KB,MB,...(1000的幂)。

使用色彩来区分文件类型的功能已被替换,交替设置和--color = never同时插入了它。

使用--color = auto选项,只能在标准输出被连至终端时才生成颜色代码。

LS_COLORS环境变量可更改此设置,可使用dircolors命令来设置。

退出状态:

0正常

1个一般问题(例如:无法访问子文件夹)

2严重问题(例如:无法使用命令行参数)

GNU coreutils联机帮助:

请向报告ls的翻译错误

要获取完整文档,请运行:info coreutils'ls invocation'

rm -rf

语法

rm [options] name...

参数:

-i 删除前逐一询问确认。 -f 强制删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。

mkdir 创建文件夹

-p: 确保目录名称存在,不存在的就创建一个

示例:

mkdir BB

mkdir -p BB/by #在BB里面创建一个by的子文件 如果存在直接创建不存在就是新建一个

删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

# rm a1.java

# rm AA

rm: #无法删除目录"AA": 是一个目录

# rm -r AA

删除当前目录下的所有文件及目录,命令行为:

rm -r *

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

4.拷贝移动命令 cp

作用: 用于复制文件或目录

语法: cp [-r] source dest

说明:

-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

举例:

cp a3.java BB/ 将a3.java复制到BB目录中

cp a3.java ./a4.java 将a3.java复制到当前目录,并改名为a4.java

cp -r BB/ ./by/ 将BB目录和目录下所有文件复制到by目录下

cp -r BB/* ./CC/ 将BB目录下所有文件复制到CC目录下

5.mv 移动

作用: 为文件或目录改名、或将文件或目录移动到其它位置

语法: mv source dest

举例:

mv a4.java a5.java 将a4.java改名为a5.java

mv a5.java CC/ 将文件 a5.java移动到CC目录中

mv a3.java by/a7.java 将 a3.java移动到by目录中,并改名为 a7.java

mv BB/ CC/ 如果BB目录存在,将BB目录移动到CC目录中

6.剪切,粘贴操作

mv jdk-18.0.1/ /usr/local/

mv /usr/local/jdk-18.0.1/ .

mv jdk18 jdk-18

四、文件操作

grep [OPTIONS] PATTERN [FILE…]

–color=auto 对匹配到的文本着色显示

-v 显示不被pattern匹配到的行

-i 忽略字符大小写

-n 显示匹配的行号

-c 统计匹配的行数

-o 仅显示匹配到的字符串

-q 静默模式,不输出任何信息

-A # after, 后#行

-B # before, 前#行

-C # context, 前后各#行

-e 实现多个选项间的逻辑or关系

grep –e ‘cat ’ -e ‘dog’ file

-w 匹配整个单词

准备abc.java文件,内容如下:

​ grep语法 grep -i “要查的名字” 查询的文件

grep -i “bai” abc.java 搜索出含有“bai” 字符串(-i:不区分大小) grep -i -n “bai” abc.java 搜索出含有“bai” 字符串,并打印行号 grep -i -n --color “bai” abc.java 搜索出含有“bai” 字符串,并打印行号,关键字“bai”颜色标记(centos7系统默认为grep命令配置了别名,所以不使用—color也能显示颜色) grep -i -c “bai” abc.java,打印“bai”字符串(不区分大小写)显示的次数 grep -i -o “bai” abc.java,打印“bai”字符串(不区分大小写),但不打印整行

bcd.txt文件内容如下:

grep -A1 “18” bcd.txt,打印“18”字符串和它下一行的信息 grep -B1 “18” bcd.txt,打印“18”字符串和它上一行的信息

grep -C1 “18” bcd.txt,打印“18”字符串和它上一行和下一行的信息

​ 9.grep -v "du"abc.java,匹配出不包含“du”字符串的行

​ 10.grep -e ‘du’ -e ‘bai’ abc.java,同时显示匹配”du”或”bai”字符串

cat by.java |grep '姓名' #只显示姓名的数据

cat hello.java |grep 'o' #会把包含o的所有数据都显示出来 区分大小写

nl

nl命令在Linux系统中用来计算文件的行号,是 number of lines 的缩写。nl可以将输出的文件自动加上行号!其默认的结果与cat -n有点不太一样,nl可以自定义行号显示效果,包括位数和自动补全0

命令格式

nl [选项]… [文件]…

命令参数

绿框标注的就是显示栏,默认占6位。

-b a 无论是否是空行都列出行号

nl -b a input.txt

-b t 空行不列出行号(默认)。

-n ln 行号在显示栏的最左边显示。

-n rn 行号在显示栏的最右边显示,不填充0。

nl -b a -n rn input.txt

-n rz 行号在显示栏的最右边显示(默认)。

行号前面填充0

nl -b a -n rz input.txt

-w 行号显示栏占用的位数,(默认是6位)。

行号显示栏占3位,并且填充0

nl -b a -n rz -w 3 input.txt

-p 在逻辑定界符处不重新开始计算: 结束定义 封闭符的意思

比如字符 a,就需要用单引号做定界符 ‘a’;比如字符串 abc,就需要用双引号做定界符 “abc”。 就是 告诉计算机: 字符开始了a字符结束了。 字符串开始了abc字符串结束了。

more

作用: 以分页的形式显示文件内容

语法: more fileName

操作说明:

回车键 向下滚动一行

空格键 向下滚动一屏

b 返回上一屏

q或者Ctrl+C 退出more

举例:

more /etc/profile 以分页方式显示/etc目录下的profile文件内容

less

less和more类似,但是使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,more启动时会加载整个文件。而且less在查看之前不会加载整个文件。

head

head 命令可以将一段文本的开头一部分输出到标准输出。

示例:

head input.txt

当有多个文件输入时,head会顺序处理并输出:

head input1.txt input2.txt

处理标准输入

ls | head

#当没有其他参数时,head默认输出前10行,当然,head有各种参数

参数说明:

-n: 输出的行数

head -n 5 input.txt #输出前5条数据

head -5 input.txt #可以省略-n

tail

将一段文本的结尾一部分输出到标准输出,也就是从倒数第N个位置开始输出。

默认是读取:后10行的内容

tail 1.txt #显示/etc目录下的profile文件末尾10行的内容

tail -3 1.txt #显示/etc目录下的profile文件末尾3行的内容

参数:

-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出

tail -f beiyou/my.log #动态读取my.log末尾数据

sed修改文件

比如在input.txt文件第四行添加一行,并将结果输出:

sed -e 4a\newinput input.txt

将 testfile 的内容列出并且列印行号,同时,请将第 2~5 行删除!

nl input.txt | sed '2,5d'

sed 的动作为 2,5d,那个 d 是删除的意思,因为删除了 2-5 行,所以显示的数据就没有 2-5 行了

删除从第4行到最后一行

nl input.txt | sed '3,$d'

五、文件目录查找命令

find

语法:

find [path] [expression]

参数说明 :

path 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。

expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等

find / -name 1.txt

find / -name my.log

find ./ -name '*.txt' #模糊查询

# 根据文件大小查找,查找大小等于2M的文件

find ./ -size 2M

# 根据文件大小查找,查找大小等于1k的文件

find ./ -size 1k

#根据文件大小查找,查找大小大于2M的文件

find ./ -size +2M

# 根据文件大小查找,查找大小在2M到5M范围的文件

find ./ -size +2M -size -5M

六、安装nginx

nginx(engine x)是一个高性能的http和反向代理web服务器,提供了IMAP/POP3/SMTP服务

反向代理服务器

搜索nginx的安装包是否存在:

yum search nginx #搜索一下

yum list | grep nginx #过滤搜索

发现没有,需要安装一个epel源:

因为没有nginx安装包,所以我们需要安装一个yum源

yum install epel-release

安装nginx

yum insatll nginx

装完之后并知道安装到了哪里?

whereis nginx #查找安装的目录

etc文件夹: 所有的软件配置都在这个文件夹里面 包括网络和内核配置

运行nginx:

#进入sbin目录

cd /usr/sbin

ls

./nginx #运行nginx

验证80端口是否启动:

netstat -ano |grep 80

netstat -anp |grep 80

#查看是哪个进程使用

使用curl 执行nginx查看是否能进入:

curl http://127.0.0.1:80

也可以在外部访问:

#ip号:80 即可

#防火墙开的情况下是没法访问的 关闭防火墙即可

systemctl stop firewalld

在网页中输入IP地址即可http://192.168.14.180/

七、防火墙的开启、关闭、禁用命令

(1)设置开机启用防火墙:systemctl enable firewalld

(2)设置开机禁用防火墙:systemctl disable firewalld

(3)启动防火墙:systemctl start firewalld

(4)关闭防火墙:systemctl stop firewalld 或systemctl stop firewalld.service

(5)检查防火墙状态systemctl status firewalld

使用firewall-cmd配置端口

(1)查看防火墙状态:firewall-cmd –state

(2)重新加载配置:firewall-cmd --reload

(3)查看开放的端口:firewall-cmd --list-ports

(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent

命令含义:

–zone #作用域

–add-port=9200/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效

(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent

八、 Top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

top

你也可以在命令启动时,直接对top加参数。比如以cpu使用情况排序

top -o %CPU

线程运行情况:

top命令默认显示的进程的运行情况,在top命令执行后,按大写的H,可进入线程执行情况页面,再按一次H则会到进程展示。或者在启动时对top加参数top -H

top -H #或在输入后 输入 H

树形结构展示父子进程关系

top执行后按大V

基于用户过滤进程

在top启动后,按小写u,在输入框中输入对应的用户名

或者在top启动时,通过加参数来过滤用户top -u root

top -u nginx

通过指定监控进程ID 查看

top -p PID

#示例:

netstat -anp |grep 80

top -p 1246

top -H -p 1246

1.如何基于进程id,或程序名来查看其资源占用情况

首先基于ps aux | grep processName 找到对应进程的pid 然后使用top -c -p pid方式单过滤查看该进程的资源占用情况

ps aux | grep processName #找到对应的进程pid

top -c -p pid #单独显示进程

2.进程查看ps

ps 命令是最常用的监控进程的命令,这个命令可以查看系统中所有运行进程的详细信息

ps -ef | grep nginx #查看系统进程

ps aux #可以查看系统中所有的进程;

ps -le #可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;

ps -l #只能看到当前 Shell 产生的进程;

ps axjf

3.杀死进程程序注意:

该命令可以使用-9参数来强制杀死进程

kill -9 pid

kill -9 1245

#示例: 删除nginx工作线程

ps aux | grep nginx #查找

kill -9 1246 #删除还会在出来的

#当你把主的删除后,ng会自动选者另一个子节点当主节点

再次启动nginx

4. netstat查看端口占用

端口号查看netstat

netstat -ano |grep 80

netstat -anp |grep 80

telnet 测试应用端口是否开放

说明:在开发中发现调用别人的接口端口的时候没有调通,一般都会先检查一下ip能不能进入。

window: telnet 192.168.14.180 80 #如果能进入证明没有问题

如果无法使用的话就开启一下:

5. 内存查看情况free

free #默认单位实kb

free -m #以M为单位

free -g #是以G为单位

有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:

free -h -s 3

6. fdisk

fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表

必要参数:

-l 列出素所有分区表

-u 与-l 搭配使用,显示分区数目

示例:

fdisk -l #显示当前分区情况:

fdisk -lu #显示SCSI硬盘的每个分区情况

df -h #查看磁盘占用情况

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: