1.Linux常用命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 1.Linux常用命令

Linux命令操作

基础常用命令

pwd 【显示当前⽬录路径】
ls 【list directory contents,显示当前⽂件夹下的⽬录或⽂件】
常⽤选项:
 -a 显示所有的⽂件夹和⽂件,包括隐藏⽂件
 -l 以详细的形式显示
 
简写:ll 显示当前所有的文件和文件夹,以详细形式显示
cd 【进⼊⼀个路径或者⽬录,绝对路径或者相对路径都可以】
⽤法: cd [路径],⽐如 cd ~(代表进⼊家⽬录)
cd . 【当前⽬录】
cd .. 【进⼊上⼀级⽬录】
cd /home 【进⼊绝对路径home⽬录下】
这里如果访问目录前面带了/就表示用的是绝对路径,否则就是相对路径

Linux⽂件与⽬录管理

  • 绝对路径: 路径的写法,由根⽬录 / 写起,例如: /usr/share/doc 这个⽬录。
  • 相对路径: 路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man

⽬录⽂件

mkdir:创建⼀个新的⽬录
rmdir:删除⼀个空的⽬录
cp: 复制⽂件或⽬录
[root@www ~]# cp [-adfilprsu] 来源档(source) ⽬标档(destination)
-a:相当於 -pdr 的意思,⾄於 pdr 请参考下列说明;(常⽤)
-d:若来源档为连结档的属性(link file),则复制连结档属性⽽⾮⽂件本身;
-f:为强制(force)的意思,若⽬标⽂件已经存在且⽆法开启,则移除后再尝试⼀次;
-i:若⽬标档(destination)已经存在时,在覆盖时会先询问动作的进⾏(常⽤)
-l:进⾏硬式连结(hard link)的连结档创建,⽽⾮复制⽂件本身;
-p:连同⽂件的属性⼀起复制过去,⽽⾮使⽤默认属性(备份常⽤);
-r:递归持续复制,⽤於⽬录的复制⾏为;(常⽤)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』⽂件;
-u:若 destination ⽐ source 旧才升级 destination !
rm: 移除⽂件或⽬录
-f :就是 force 的意思,忽略不存在的⽂件,不会出现警告信息;
-i :互动模式,在删除前会询问使⽤者是否动作
-r :递归删除啊!最常⽤在⽬录的删除了!这是⾮常危险的选项!!!
mv: 移动⽂件与⽬录,或修改⽂件与⽬录的名称
[root@www ~]# mv [-fiu] source destination
-f :force 强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖;
-i :若⽬标⽂件 (destination) 已经存在时,就会询问是否覆盖!
-u :若⽬标⽂件已经存在,且 source ⽐较新,才会升级 (update)

使⽤ man [命令] 来查看各个命令的使⽤⽂档,如 :man cp

普通⽂件

创建⽂件命令

touch: 创建⼀个新的空⽂件

查看⽂件命令

cat: 以只读的⽅式打开⼀个⽂件。可以加 -n 表示带上⾏号(适合查看⽂件内容⽐较少的)
more: 和cat功能类似,不过是以分⻚的形式⼀⻚⼀⻚显示数据。最基本的指令就是按空⽩键(space)
就往下⼀⻚显示,按 b 键就会往回(back)⼀⻚显示。
+n :从笫n⾏开始显示
-c :从顶部清屏,然后显示
less: 也⽤来分⻚显示数据,但是功能⽐more强⼤。并不会⼀次性将全部⽂件读取才显示,⽽是根据显示
的需要加载对应的数据。
-f :强迫打开特殊⽂件,例如外围设备代号、⽬录和⼆进制⽂件
-m :显示类似more命令的百分⽐
-N :显示每⾏的⾏号
操作命令
b 向后翻⼀⻚
d 向后翻半⻚
h 显示帮助界⾯
q 退出less 命令
u 向前滚动半⻚
y 向前滚动⼀⾏
head: 查看⼀个⽂件,取开头的⼀部分内容。head filename,或者添加选项: head -5 filename
tail:查看⼀个⽂件的尾部内容。tail -5 filename,查看⽂件的最后五⾏
 常⻅⽤法:tail -f filename,尾部持续不断地输出内容。Control + c退出。
 例如:tail -5f filename

最常用的就是 tail -f filename

重定向和追加

echo: 输出内容到控制台。⽐如输出Linux的环境变量到控制台
echo $PATH
>指令:输出重定向(会将原来的内容覆盖)
>>指令:追加(不会覆盖原⽂件的内容,追加到底部)
echo hello > a.txt
ls -l >> a.txt
cat a.txt > b.txt(⽂件可以存在,可以不存在)

压缩与解压

tar
-c:产⽣.tar⽂件
-v:显示详细信息
-z:打包同时压缩
-f:指定压缩后的⽂件名
-x:解压.tar⽂件
压缩 :tar -zcvf combine.tar.gz 1.txt
解压 :tar -zxvf combine.tar.gz -C java/
-C 表示解压到指定⽬录

注意:如果需要解压和压缩为 .zip 格式的⽂件,那么需要安装zip和unzip软件

sudo apt-get install zip
sudo apt-get install unzip

⽂本编辑

如果没有默认的vim工具,那就需要进行安装

sudo apt-get install vim

vim有三种模式:命令模式(Command mode)、插⼊模式(Insert mode)、末⾏模式(Last Line mode)。

命令模式

通过指令 vim filename 进⼊命令模式。除此之外,还有⼀些其他的参数,⽐如:

-r: 恢复上次vim打开时崩溃的⽂件
-R: 把指定的⽂件以只读的⽅式放⼊vim编辑器中
+: 打开⽂件,并把光标置于最后⼀⾏的⾸部
+n: 打开⽂件,并把光标置于第n⾏的⾸部

删除

x: 删除光标所在位置的字符
dd: 少出光标所在⾏
ndd: 删除当前⾏后n⾏⽂本(包括此⾏)
dG: 删除光标所在⾏⼀直到⽂件末尾的所有内容
D: 删除光标位置到⾏尾的所有内容

删除的内容此时并没有被真正删除,⽽是在剪切版中,按下 p 键,可以将删除的内容粘贴回来。

移动

w: 光标移动⾄下⼀个单词⾸
e: 光标移动⾄下⼀个单词尾
b: 光标移动⾄上⼀个单词⾸
gg: 光标移动到⽂件开头
G: 光标移动⾄⽂件末尾
nG: 光标移动到第n⾏,n为数字
0或^:光标移动⾄当前⾏的⾏⾸
$: 光标移动⾄当前⾏的⾏尾
插⼊模式

在命令模式下,通过按下i、I、a、A、o、O这6个字⺟进⼊插⼊模式,不同的字⺟代表不同的进⼊⽅ 式。

i: 在当前光标位置前⾯插⼊随后输⼊的⽂本,光标后的⽂本相应向右移动
o: 在光标所在⾏下⾯插⼊新的⼀⾏,然后光标停在空⾏⾸,等待输⼊⽂本
O: 在光标所在⾏上⾯插⼊新的⼀⾏,然后光标停在空⾏⾸,等待输⼊⽂本
a: 在当前光标位置后⾯插⼊随后输⼊的⽂本,光标后的⽂本相应向右移动
A: 在光标所在⾏的⾏尾插⼊随后输⼊的⽂本

按下ESC键离开插⼊模式,进⼊命令模式

末⾏模式

在命令模式下,按下 : 键进⼊末⾏模式。在该模式下,可以使⽤⼀系列的指令,完成保存、离开vim编 辑器等功能。

:wq 保存并退出vim编辑器
:wq! 保存并强制退出vim编辑器
:q 不保存退出
:q! 不保存强制退出
:w 保存不退出
:w! 强制保存不退出
:w filename 另存到filename⽂件
ZZ 直接退出

⽤户管理

Linux系统是⼀个多⽤户、多任务的操作系统。多⽤户是指在linux操作系统中可以创建多个⽤户,⽽这 些多⽤户⼜可以同时执⾏各⾃不同的任务,⽽互不影响。

在Linux系统中,会存在着以下⼏个概念,

1.⽤户名:⽤户的名称

2.⽤户所属的组:当前⽤户所属的组。

3.⽤户的家⽬录:当前账号登录成功之后的⽬录,就叫做该⽤户的家⽬录。

添加⽤户

sudo useradd [选项] ⽤户名

eg:创建⼀个⽤户,⽤户名 test

sudo useradd test
注意这种⽅式创建出来的没有家⽬录,我们创建的时候需要带参数
sudo useradd -m test : -m 表示在 /home⽬录下创建⼀个家⽬录
sudo useradd -m -s /bin/bash test : 表示指定shell版本是我们熟悉的bash

给⽤户添加密码:

sudo passwd [⽤户名]

切换⽤户:

su [⽤户名]

删除⽤户

sudo userdel [⽤户名]
-r: 不仅会删除该⽤户,还会删除该⽤户对应的家⽬录

组管理

添加组: groupadd [groupname]
创建⽤户的时候加⼊组: useradd -m -s /bin/bash -g [groupname] [username]
查看⽤户及组信息:id ⽤户名
修改⽤户所属组: usermod -g [groupname] [username]

权限管理

⽂件权限

查看

ciggar@ubuntu:~/Desktop/test$ ls -l
total 40
# ⽂件信息 ⽂件数 ⽤户 组名 ⼤⼩ ⽉份 ⽇期 时间 ⽂件名
drwxr-xr-x 2 ciggar ciggar 4096 Aug 2 23:52 cskaoyan
prw-r--r-- 1 ciggar ciggar 0 Aug 2 23:43 fifo_file
-rw-r--r-- 1 ciggar ciggar 26825 Aug 3 00:25 main.txt
-rw-r--r-- 1 ciggar ciggar 33 Aug 3 00:37 test.txt
drwxr-xr-x 3 ciggar ciggar 4096 Aug 3 01:27 xxx

修改 通过 chmod 指令,可以修改⽂件或者⽬录的权限

[⽅式⼀]

chmod u=rwx,g=rw,o=r filename
u:所有者 g:所有组 o:其他组,a代表全部

[⽅式⼆]

r=4,w=2,x=1 rwx = 4 + 2 + 1 = 7

chmod 751 等价于 u=rwx,g=rx,o=x

进程管理

查看进程

Linux系统中查看进程使⽤情况的命令是ps指令

常⻅选项: -e:

显示所有进程 -f:

全格式 a:

显示终端上的所有进程

u:以⽤户的格式来显示进程信息

x:显示后台运⾏的进程

⼀般常⽤格式为ps -ef或者ps aux两种。显示的信息⼤体⼀致,略有区别。

带[*]表示重要

UID:⽤户ID
*PID:进程ID
*PPID:⽗进程ID
C:CPU⽤于计算执⾏优先级的因⼦。数值越⼤,表明进程是CPU密集型运算,执⾏优先级会降低;数值越
⼩,表明进程是I/O密集型运算,执⾏优先级会提⾼
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
*CMD:完整的启动进程所⽤的命令和参数
USER:⽤户名称
*PID:程号
*%CPU:进程占⽤CPU的百分⽐
*%MEM:进程占⽤物理内存的百分⽐
VSZ:进程占⽤的虚拟内存⼤⼩(单位:KB)
RSS:进程占⽤的物理内存⼤⼩(单位:KB)
TT:终端名称(缩写),若为?,则代表此进程与终端⽆关,因为它们是由系统启动的
*STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有⽐普通优先级更低的
优先级,R-正在运⾏,D-短期等待,Z-僵死进程,T-被跟踪或者被停⽌等
STARTED:进程的启动时间
TIME:CPU时间,即进程使⽤CPU的总时间
COMMAND:启动进程所⽤的命令和参数,如果过⻓会被截断显

两者区别: 如果想查看进程的CPU占⽤率和内存占⽤率,可以使⽤aux 如果想查看进程的⽗进程ID和完整的COMMAND命令,可以使⽤ef

如果想在进程列表中进⼀步筛选出想查询的进程,可以使⽤管道符

#搜索匹配进程
ps -ef | grep [搜索内容]

终⽌进程

kill [选项] 进程号
参数:
-9:操作系统从内核级别强制杀死⼀个进程
-15:可以理解为操作系统发送⼀个通知告诉应⽤主动关闭

服务管理

服务本质上来说也是⼀个进程,只不过是在后台运⾏。监听着某⼀端⼝,等待该端⼝的请求到来,⽐如 ssh服务,监听着22端⼝;mysql服务,监听着3306端⼝;

tomcat服务,监听着80或者8080端⼝。

指令:(管理服务器的启动、停⽌、状态等)

systemctl start/stop/restart/status/reload 服务名称

例如:

#⽐如关闭ssh服务
systemctl stop sshd

⽹络管理

查看⽹络设置
ifconfig

查看网络端口占用情况

netstat
 -a:显示全部
 -n:以数字的形式显示
 -p:显示该连接被哪个应⽤程序占⽤PID
eg:
netstat -anp | grep 3306

第⼆种⽅式:

lsof -i: [端⼝号]

查看⽹络是否正常

ping [⽬的ip或者域名]

Java环境搭建

jdk环境

从oracle官⽹下载linux的jdk8,之后⽤winscp⼯具等将jdk8上传到linux机器上。

sudo mkdir /usr/local/java
cd /usr/local/java
sudo tar -zxvf jdk-8u231-linux-x64.tar.gz
sudo mv jdk1.8.0_231/ jdk
sudo vim /etc/profile

配置环境变量,添加下⾯⼏句

export JAVA_HOME=java路径
export JRE_HOME=jre路径
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

执⾏命令 source /etc/profile 使环境变量配置⽂件⽣效

执⾏命令 java -version 查看JDK环境变量是否已经搭建好

Tomcat环境搭建

#先把tomcat压缩包丢进服务器⾥⾯去
mkdir /usr/local/tomcat
sudo tar -zxvf apache-tomcat-8.5.50.tar.gz
chmod -R 777 *
cd bin
#启动tomcat
./start.sh

Mysql环境搭建

使⽤apt源上为我们提供的Linux软件安装包来进⾏安装

sudo apt update
sudo apt install mysql-server
#如果是ubuntu 16.04 那么此时会要求你输⼊密码,如果是18.04,那么就直接完成安装了

Ubuntu18.04 安装完之后修改mysql密码

sudo cat /etc/mysql/debian.cnf 查看密码

#登陆mysql
mysql -u debian-sys-maint -p
#修改⽤户名密码
use mysql;#连接到mysql数据库
update mysql.user set authentication_string=password('123456') where
user='root' and Host ='localhost' #修改密码123456是密码
update user set plugin="mysql_native_password"
flush privileges
quit
#重启mysql
sudo service mysql restart

开启mysql远程访问

默认情况下,mysql只允许本地登录,
如果要开启远程连接,则需要进行以下操作:
1.需要修改/etc/mysql/mysql.conf.d/mysqld.cnf 文件。
 找到bind-address = 127.0.0.1这一行
 
 改为bind-address = 0.0.0.0即可
 
 
2.在连接服务器后,操作mysql系统数据库
             命令为:  mysql -u root -p
                              use mysql;
**3. 查询用户表命令:select User,authentication_string,Host from user; (这里也可以看出host默认都是localhost访问权限)
4. 创建可以访问的用户名即密码
GRANT ALL PRIVILEGES ON *.* TO '账号'@'%' IDENTIFIED BY '密码';
如果以上代码报错,请手动输入一边试试
%代表所有主机,也可以具体到你的主机ip地址   
注:用户名处,填写自己的用户名, 密码处,填写自己访问的密码
创建完成后再次查询用户表:
5.刷新权限:    flush privileges;          
这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据
因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
执行完这两步,再次查询用户表命令:select  User,authentication_string,Host from user  可以看到成功添加了用户
6.重新启动mysql服务
service mysql restart
• 40
• 41
• 42
• 43

修改mysql字符编码

显示原来编码:

show variables like ‘%character%’;

修改/etc/my.cnf

vi /etc/my.cnf

将下面的粘贴进去

[mysqld]

character_set_server=utf8

init_connect=‘SET NAMES utf8’

g-ixogXSRP-1706540409674)

最后重启数据库:

的用户名, 密码处,填写自己访问的密码

创建完成后再次查询用户表:

5.刷新权限: flush privileges;

这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据

因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。

执行完这两步,再次查询用户表命令:select User,authentication_string,Host from user 可以看到成功添加了用户

6.重新启动mysql服务

service mysql restart

**修改mysql字符编码**
显示原来编码:
show variables like '%character%';
修改/etc/my.cnf
 vi /etc/my.cnf
将下面的粘贴进去
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
[外链图片转存中...(img-ixogXSRP-1706540409674)]
最后重启数据库:
systemctl restart mysqld
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
Linux
【Linux】一条命令,转发所有请求到另一台服务器上 -高级技巧
【Linux】一条命令,转发所有请求到另一台服务器上 -高级技巧
10 0
|
1天前
|
Linux 数据处理
Linux命令中的tic:深入了解与高效应用
`tic`是Linux中用于处理 Tektronix 4015 终端文本解释的命令,源于troff文本格式化系统。尽管现代系统不再常见该终端,`tic`仍用于特定数据处理,尤其是与troff配合,将troff输出转换为特定格式。使用时注意兼容性、输入格式和参数调整,如`-a`设定宽高比。通过`man tic`可获取更多详情。示例:`troff document.tr | tic`。了解这些能更好地处理特定文本格式任务。
|
1天前
|
Linux Shell 数据处理
探索Linux的`infokey`命令:终端键绑定的查询工具
探索Linux的`infokey`命令用于查询终端键绑定。它显示按键如何映射到命令,帮助用户理解终端行为。`infokey`与`ncurses`库配合,提供查询、清除和定制输出的功能。例如,`infokey -d`显示所有键绑定,`infokey -k "\e[11~"`检查F1键绑定。使用前确保安装了`ncurses`库,注意终端兼容性和权限问题。定期检查键绑定,备份配置,阅读文档以优化终端体验。
|
1天前
|
Linux 数据处理 数据库
探索Linux的`infocmp`命令:终端配置的得力助手
`infocmp`是Linux下用于查看和比较`terminfo`数据库中终端类型描述的命令。它显示终端的控制序列、按键映射等信息,并能找出不同终端的配置差异。通过参数如`-c`(以termcap格式输出)、`-d`(比较差异)和`-1`(单列显示)等可定制输出。例如,`infocmp $TERM`显示当前终端配置,`infocmp xterm vt100`比较两者差异。了解终端类型和选择合适输出格式是有效使用的关键。
|
1天前
|
存储 Linux Shell
探索Linux的`info`命令:数据处理的得力助手
`info`命令是Linux的数据处理助手,虽不直接处理数据,但提供详尽的文档支持。它是GNU项目的一部分,通过`.info`文件提供分节点的文档结构,支持搜索和交叉引用。常用参数包括`--help`、`--version`、`--node`和`--file`。例如,查询`bash` shell用法时,运行`info bash`。掌握导航、搜索功能和书签的使用能提升效率。与`man`命令结合使用,可获取全面的工具信息。定期更新Info pages以保持文档最新。
|
1天前
|
算法 网络协议 Linux
探索Linux命令idn:处理国际化域名
`idn`命令在Linux中用于处理国际化域名,转换成ASCII兼容的ACE格式或反之。它支持Punycode算法,提供命令行接口及多种参数,如`-a`转ASCII,`-d`转回国际化域名。示例包括将`xn--zhonggu-wu9d.com`转换。使用时注意有效输入,考虑版本兼容性,并可与其他工具结合使用。
|
1天前
|
Linux 数据处理 数据库
深入解析Linux命令id:理解用户身份与权限
`id`命令在Linux中用于显示用户身份(UID, GID和附加组)。它查看系统用户数据库获取信息。参数如`-u`显示UID,`-g`显示GID,`-G`显示附加组,结合`-n`显示名称而非ID。用于确认命令执行者身份,确保权限正确。在脚本中使用时注意权限管理,遵循最小权限原则。
|
1天前
|
Linux 数据处理
Linux命令iconv:字符编码转换的利器
`iconv`是Linux下的字符编码转换工具,支持多种编码如UTF-8、ISO-8859-1等。它允许用户指定源(-f)和目标(-t)编码,转换文件或输出到指定文件(-o)。使用`-l`可列出所有支持的编码。示例:将UTF-8文件转为ISO-8859-1编码:`iconv -f UTF-8 -t ISO-8859-1 input.txt -o output.txt`。在转换前确认源编码,测试小样本,备份数据,并注意特殊字符处理。
|
1天前
|
网络协议 Linux 网络安全
Linux命令hostnamectl:掌握系统主机信息的利器
`hostnamectl`是Linux系统管理的关键工具,用于查看和设置主机名、内核信息等。它集成在`systemd`中,通过修改配置文件交互。命令特点包括综合显示多种信息、简单语法和设置功能。例如,`hostnamectl status`显示系统详情,`sudo hostnamectl set-hostname NEWHOSTNAME`用于更改主机名。使用时注意权限、备份配置、更新网络和重启相关服务,避免频繁更改。
|
1天前
|
存储 Ubuntu 网络协议
Linux命令hostname:探索你的主机名
`hostname`命令在Linux中用于显示或设置主机名,它是系统管理和网络配置的关键工具。简单易用,可查看(`hostname`)或通过参数如`-s`设置短主机名,`-F`指定主机名文件。示例:查看主机名、使用`hostnamectl`或直接`hostname`命令设置新主机名,以及将新名写入`/etc/hostname`。注意,更改可能需管理员权限,并影响网络配置。