5、Linux常用命令

常用命令

目录操作

ls

查看当前文件夹下的内容

-a 显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来
-A 显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录
-d 只列出当前目录本身,也就是 .
-f ls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序。
-F 在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
-h 以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等。
-i 显示 inode 节点信息
-l 使用长格式列出文件和目录信息。
-n 以 UID 和 GID 分别代替文件用户名和群组名显示出来。
-r 将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小
-R 连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。
-S 以文件容量大小排序,而不是以文件名排序
-t 以时间排序,而不是以文件名排序
--color=never never表示不依据文件特性给予颜色显示,always代表显示,auto代表自动
--full-time 以完整时间模式 (包含年、月、日、时、分)输出

mkdir

创建目录

# 创建单层目录
mkdir [dir]
# 创建多层目录
mkdir [/dir1/dir2/dir3]

pwd

查看当前所在全路径

cd

进入目录

# 进入指定目录
cd [path]
# 进入跟路径
cd /
# 进入用户目录
cd ~
# 进入上层目录
cd ..
# 切换上一次的工作目录
cd -

rmdir

删除目录,需要确保目录为空

rmdir [dir]

文件操作

touch

如果文件不存在,则创建文件。如果文件存在,则不作变化。

rm

删除文件

# 删除文件
rm [file]

-r 删除目录,可以递归删除
-f 跳过确认

cat

查看文件内容

cat [options] [file]

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

less

它可以显示文件的全部内容,并且可以进行搜索、滚动、翻页等操作,比 cat 命令更加强大和灵活。

less [options] [file]

-N 显示行号。
-n 不显示行号。
-i 忽略大小写。
-F 一次性显示整个文件,不进行分页。
-f 强制显示文件名。
-q 静默模式,不显示任何提示信息。

# 进入less后命令如下
q:退出less
上下箭头:向上、向下滚动
空格:向下翻页
b:向上翻页
g:跳到文件开头
G:跳到文件结尾
/:搜索

head

显示文件的开头部分,默认情况下显示文件的前10行

head [options] [file]

-n 指定要显示的行数。例如,-n 20表示显示前20行。
-c 指定要显示的字节数。例如,-c 100表示显示前100个字节。
-q 不显示文件名头部信息。
-v 总是显示文件名头部信息。

tail

用于显示文件的尾部内容,默认情况下显示文件的后10行

head [options] [file]

-n 指定要显示的行数。例如,-n 20表示显示后20行。
-c 指定要显示的字节数。例如,-c 100表示显示最后100个字节。
-q 不显示文件名尾部信息。
-v 总是显示文件名尾部信息。
-f 该选项用于监视文件变化,在文件内容增长时自动显示新增的内容,常用于查看日志文件。
-F 类似于-f选项,但在文件被切换或重命名时,tail会尝试重新打开文件。

移动复制

mv

移动文件或目录

mv [options] [old] [new]

-b 为每个已存在的目标文件创建备份;
-f 覆盖前不询问;
-i 覆盖前询问;
-n 不覆盖已存在文件,如果您指定了-i、-f、-n 中的多个,仅最后一个生效;
-S 替换常用的备份文件后缀;
-t 将所有参数指定的源文件或目录移动至指定目录;
-T 将目标文件视作普通文件处理;
-u 只在源文件文件比目标文件新或目标文件不存在时才进行移动;
-v 详细显示进行的步骤;

cp

复制文件或目录

# sources: 要复制的源文件或目录的路径。可以指定一个或多个源路径,多个源路径之间用空格分隔
cp [options] [sources...] [dist]

-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-b 为每个已存在的目标文件创建备份。
-d 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f 覆盖已经存在的目标文件而不给出提示。
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-P 不跟随源文件中的符号链接
-i 交互式地询问是否覆盖现有文件。如果目标文件已经存在,cp将询问是否覆盖它。
-r 递归地复制目录及其内容。如果要复制目录,请使用此选项。
-u 仅复制源文件中更新的文件。如果源文件比目标文件新,或目标文件不存在,则复制源文件。
-v 显示详细输出,列出已复制的每个文件。

查找

管道命令

可以一次性运行多个Linux命令,第一个命令的结果,作为后一个命令的参数

cat 1.txt | grep 'how'

其他命令

文件权限

image-20210810171623809

声明格式

权限分类

修改权限

用户操作

1、创建新用户

useradd 用户名

2、更改用户密码

passwd 用户名

3、删除用户

userdel -r 用户名

网络配置

1、查看ip地址

ip addr

2、修改网络配置

vi /etc/sysconfig/network-scripts/ifcfg-ens33

3、重启网络服务

service network restart

4、停止网络服务

service network stop

5、开启网络服务

service network start

6、查看网络服务状态

service network status

7、ping查看网络是否连通

ping www.baidu.com

8、防火墙

#关闭防火墙
systemctl stop firewalld

#开启防火墙
systemctl start firewalld

#开机自启防火墙
systemctl enable firewalld
#停止开机自启防火墙
systemctl disable firewalld

# 查看白名单列表
firewall-cmd --zone=public --list-ports

# 添加白名单端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 移除白名单端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

# ****修改后需要重启防火墙****
firewall-cmd --reload

# 查看防火墙状态,是否是running
firewall-cmd --state

# 列出支持的zone
firewall-cmd --get-zones

# 列出支持的服务,在列表中的服务是放行的
firewall-cmd --get-services

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

进程管理

1、查看进程

2、结束进程

软件安装

1、安装方式

rpm

安装包格式为:mysql.rpm

缺陷:一个软件通常存在多个依赖的rpm,安装过于繁琐

yum

只需要一个命令,就可以自动化安装

缺陷:安装的软件版本,依赖于yum源

命令:

查看yum源中的所有软件:yum list

编译

有的软件的tar.gz压缩包,解压后,需要C语言环境进行编译

2、需要安装的软件

jdk

yum list | grep java 查看yum源中带有java的安装包
yum -y install java-1.8.0* 安装jdk
yum安装后,自动配置jdk环境变量

tomcat

官网下载tomcat:https://tomcat.apache.org/download-90.cgi

拷贝到linux中

解压tomcat.tar.gz

进入bin目录运行,startup.sh,命令:./startup.sh

进行访问,如果无法访问,关闭防火墙或添加白名单

成功访问tomcat管理页面后,配置tomcat管理员,在conf/tomcat-users.xml中配置以下代码:
<role rolename="manager-gui"/>
<user username="tomcat" password="123" roles="manager-gui"/>
如果访问登录页面中manager App后,登录页面没有弹出,需要在webapps/manager/Meta-inf/context.xml添加以下代码(如果配置文件已经有相同标签需要删除):
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d" />

image-20210811120002719

MySQL

MySQL5.7
#centos7的yum源中没有mysql安装包,先在linux中安装wget的命令
yum install wget 
#再使用wget获取网络上的mysql安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
#将mysql安装包放置到本地仓库中
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
#进入仓库运行安装mysql的代码
cd /etc/yum.repos.d/
yum -y install mysql-server
MySQL8
# 安装yum库
yum -y install https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
# 更新yum库
yum makecache
# 检查yum库是否安装
yum repolist enabled | grep "mysql.*-community.*"
# 安装mysql
yum install -y mysql-community-server --nogpgcheck
配置
#启动mysql服务
systemctl start mysqld.service
#查看mysql是否启动
service mysqld status
#查看临时密码
grep 'temporary password' /var/log/mysqld.log
#登录mysql
mysql -uroot -p
#设置密码策略为低,长度6位
set global validate_password_policy=LOW;
set global validate_password_length=6; 
#设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#设置远程访问权限
update mysql.user set host='%' where user='root';
flush privileges;

#给防火墙加白名单,放开3306端口或者关闭防火墙。
firewall-cmd --zone=public --add-port=3306/tcp --permanent

python3.6

yum install python36 -y //安装python3.6
yum install python36-pip -y //安装pip3
python3 --version //验证

配置软连接,python->python3

cd /usr/bin //进入这个目录,执行python命令的话,系统会在这里面找
ll | grep -n 'python' //查询所有python相关的
rm -rf python //删除原来的python -> python2
ln -s ./python3.6 ./python //将python指向到python3.6

配置yum,因为yum使用的是python2,所以需要修改

vi /usr/bin/yum

image-20211228141922839

vi /usr/libexec/urlgrabber-ext-down

image-20211228142015208

nginx

配置nginx数据源

vim /etc/yum.repos.d/nginx.repo

写入如下配置,将OSRELEASE替换为centos版本,6或7

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

yum进行安装

yum install nginx -y

修改niginx配置

vim /etc/nginx/nginx.conf

查看nginx是否启动

systemctl status nginx.service

redis

yum install epel-release
yum update
yum -y install redis
systemctl start redis
# 配置文件在/etc/redis.conf

运行jar

使用nohup java -jar XXX.jar &

可以保持项目运行在后台,窗口关闭不会导致项目停止,不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

可以通过ps -aux | grep "java -jar XXX.jar"查看运行的进程

使用kill PID号//任务的PID号杀死进程