【Linux】Linux文件与目录操作、用户权限与组操作、shell脚本以及在Linux上搭建jdk,mysql环境,近万字总结

目录

一、与文件有关的操作

二、用户权限与组操作

三、Shell脚本

四、针对目录的操作

五、其他常用命令

六、在Linux上搭建jdk,mysql环境


一、与文件有关的操作

1. touch 创建文件

创建文件   touch xxx.txt 注意是在哪个目录下创建的

2. cat 查看文件内容

cat xxx.txt  查看文件内容

cat -n xxx.txt  查看文件内容并显示行号

3. more less 文件分页查看

  • 3.1 more

more filename

分页显示文件内容,敲空格键翻页,按回车键一行一行翻页。

  • 3.2 less

less filename

也是分页显示文件内容,上下翻行,敲空格键翻页,按q退出。

4. head 查看文件开头,自定义行数

如查看xxx.txt文件前5行:head -n 5 xxx.txt  或者 head -5 xxx.txt

5.tail 查看文件结尾,自定义行数

如查看xxx.txt文件后5行:tail -n 5 xxx.txt 或者 tail -5 xxx.txt

tail -f xxx.txt 常用,可监控文件内容的变化

6. echo 打印信息

echo  "哈哈哈哈"

7. 覆盖> 追加>>

echo "abc" > xxx.txt 将字符串abc覆盖整个xxx.txt文件

echo "abc" >> xxx.txt 将字符串abc追加在xxx.txt文件后面

8. ln连接与软连接

多个地方使用同一个文件,相当于快捷键,通过快捷键可以直接进入某个文件。

ln  -s  原访问路径(绝对路径)  现访问路径

然后直接cd 现访问路径就可以到原访问

rm 删除软连接

9. history 查看历史命令

还可以通过 i+命令行号执行该命令

10. find 查找文件

根据文件名查找

  • find /aaa -name "myfile"查找aaa目录下的myfile目录或普通文件文件

根据用户名查找 

  • find /aaa -user "lkk" 查找aaa目录下的属于lkk用户的所有普通文件或目录

模糊查找

  • find /aaa -name  "*.txt" 查找aaa目录下的所有txt文件

根据文件大小

  • find /aaa -size +10k 查找aaa目录下大于10k的文件
  • find /aaa -size -10k 查找aaa目录下小于10k的文件

11. file 查看文件类型

file [filename]

12. vim 编辑文件

上面的cat和echo操作都是针对一些简单的读写。如果读取内容复杂,我们一般用vi/vim,它是linux上自带的记事本程序。vim是vi的升级版本。一般用vim

  • 1.打开文件

首先打开文件 :vim xxx.txt

  • 2.编辑文件

vim有两个模式,普通模式 (normal mode) 和 插入模式(insert mode)。

默认情况下是普通模式。按i可切换成插入模式进行编辑。再按esc回到普通模式。

如果vim打开了因某种原因没有正常关闭,如断网等,那么下次再次启动的时候会提醒输入命令,输入D是删除上次编辑还未保存的内容,输入R是恢复之前的编辑页面,继续编辑。

  • 3.保存退出

 打开文件后,我们进行写入,不过写完如何退出文件,这里有个注意点:

退出通常是输入 :q 不过有时候会出现退不了的情况,出现这种情况可以先按5次esc,再输入 :q ,若出现下面这种标红的,是提示没保存。我们输入 :wq 即可。输入 :q! 强制退出。

使用vim一般操作是:

  1. vim xxx.txt
  2. 在普通模式下输入所要查找或修改的行号,并点两下 g
  3. 先按i切换成编辑模式,
  4. 编辑完后按esc回到普通模式,
  5. 输入:进入命令模式,
  6. 最后输入wq完成保存并退出。 

其他操作(在普通模式下)

  1. /abc  全文查找匹配的
  2. :%s/旧字符/新字符 全文替换
  3. :noh 取消高亮
  4. :set nu 展示行号      :set nonu 关闭行号
  5. :wq 保存并退
  6. :q! 强制退出
  7. dd 删除光标坐在行
  8. yy 复制光标所在行
  9. 有时候我们在修改文件时因为一些原因未保存退出了,下次登录再修改时就会有提示。我们需要删除隐藏的.文件名.swp文件。

二、用户权限与组操作

1.添加用户

 useradd 用户名

2.设置用户密码

passwd 用户名

3.将用户添加到新用户组中

usermod -g 新组名 用户名  加入新用户名组 原所属所有用户组都会没有

usermod -aG 新组名 用户名 加入新用户名组 不影响原所属用户组

3.查看所有创建的用户

cat /etc/passwd

5.查看所有用户组

cat /etc/group

6.切换用户

su 用户名

7.删除用户

userdel 用户名

8. who

显示当前登录者

9.sudo + 其他命令

在其他命令前加sudo,因为当我们处于非root用户去执行一些操作(在根目录下创建文件)时,会没有权限,使用sudo可以赋予权限(不过 使用这个创建出的文件的文件所有者还是root用户)。其他用户可以使用的前提是还需要在/etc/sudoers文件中修改(可能这个文件还是个只读文件,需要chmod修改权限),找到101行,插入 用户名 ALL=(ALL) ALL

9. groupadd 组名  groupdel 组名  groupmod [选项] 组名 修改用户组的属性

还是为了方便对用户统一管理,多个用户可加入同一个组。默认每个用户创建时都有自己的组。可通过cat /etc/group 查看所有用户

  • groupadd 组名 新增一个用户组
  • groupdel 组名 删除一个用户组
  • groupmod -g 组名 修改用户组id
  • groupmod -o 组名  允许用户组名不唯一
  • groupmod -n 组名  修改新的用户组名称
  • cat /etc/group 查看所有用户组

10. 查看该用户所属所有组名

groups 用户名

11. 查看该用户所属所有组名以及组的id

id 用户名 

12. chmod

修改用户对文件的读,写,执行(shell脚本)等权限。

用户类型有四类:

  • user(文件所有者),
  • group(文件所有者所在组),
  • others(所有其他用户),
  • all(所有用户,和ugo使用一样。)

操作符参数有三类:

  • + 为指定用户类型增加权限 
  • - 未指定用户类型去除权限
  • = 直接重置用户类型的所有权限

chmod a=rwx file 表示所有用户都可读写执行

chmod a+r file 表示给所有用户加上可读权限

chmod ugo+r file 与a+r的相同

chmod u+x file 表示给文件所有者加上执行权限

也可以使用八进制语法:

二进制三位为一组,一共三组(文件所有者,用户组,其他用户),比如二进制(111)对应符号(rwx),即可读+可写+可执行。二进制(101)对应符号(r-x),即可读+不可写+可执行。

chmod 755 file 一个数字是一组,第一个7代表对文件所有者的权限,第二个7代表对用户组的权限,第三个7代表对其他用户的权限。

13. chown 更改用户名和所属组名

用来更改某个目录或文件的用户名和用户组的,非root用户加sudo。

chown 用户名:组名 文件名

chown -R 用户名:用户组 目录或文件 可更改指定目录下所有的文件的

14. grep 查找字符串

grep 字符串

15. | 管道符

管道符+grep 字符串  可进行过滤

例如:ps -ef | grep java  匹配所有进程中出现过java字符串的进程

ll | grep java 匹配所有该目录下有java字符串信息的

16.压缩和解压缩命令

1.压缩 gzip xxx.txt 解压缩 gunzip xxx.txt 只能压缩文件不能压缩目录

2.压缩 zip -r test.zip /aaa  test.zip为自定义设置压缩后的文件名,可以压缩文件和目录。解压缩unzip test.zip -d /aaa 将test.zip解压缩到aaa目录下

17.tar打包 最常用

 tar -zcvf xxx.tar.gz aaa 将aaa文件或目录打包并压缩为xxx.tar.gz文件

tar -zxvf xxx.tar.gz -C aaa/  将xxx.tar.gz文件解压缩到aaa目录下

18.定时任务 at & cron

  • 1.at 一次调度执行,该任务只能被执行一次

at 2:10pm + 3day   让某个进程在3天后下午2:10执行

at 2:10am + 5day   让某个进程在5天后上午2:10执行

atq 查看系统所有还没有执行的计划任务

atrm+序号 删除还未执行的计划任务

  • 2.cron 循环调度执行,任务被循环执行

可以使系统周期性的执行某些任务

  • *(星号)代表所有有效的值
  • -(中划线)表示一个整数区间如1-3,表示123
  • (逗号)  表示一个列表,例如1,2,3  就表示123
  • (正斜线)  指定间隔频率 如/2 表示每个2个单位(分钟或小时等)

  • crontab -e 编辑定时任务
  • crontab -l 查看所有定时任务
  • crontab -f 删除当前用户的所有定时任务

示例:将字符串"abc"每隔一分钟追加到test.txt文件中

  • 第一步:通过 crontab -e 命令进入编辑页面,按i进入编辑模式
  • 第二步:*/1 * * * * echo "abc" >> /test.txt(绝对路径)
  • 第三步:按 esc 进行普通模式,输入 :wq 保存并退出。此时该任务已经周期执行起来。

三、Shell脚本

1.创建shell脚本过程

  1. 创建文件 mkdir aaa
  2. 给所有用户赋予执行权限 chmod a+x  aaa
  3. 使用vim打开并编辑脚本 例如输入 echo "abc"
  4. 使用命令执行 ./aaa 或者 sh aaa 或者 bash aaa 或者 source aaa。

使用source与前面其他三者的区别是:使用source启动脚本,脚本中的变量可以被外面使用。通过$+变量名

2. shell变量

1.设置一个环境变量

export  a = 1

2.查看这个环境变量

echo $a

3.删除这个环境变量

unset a

4.定义一个只读变量

export  readonly a = 1

  • $#  传递给脚本参数的个数
  • $*  接收传递给脚本的所有参数         

3.shell中的通配符

  • *  匹配任意多个字符
  • 匹配任意一个字符

3. let 命令

let命令后可以跟运算符

4. shell脚本之循环

使用for循环计算1~100的数字之和

使用while循环计算1~100的数字之和 

使用if语句 

使用 #* 作为输入参数,其可以匹配一个或多个参数

输入一个参数,计算1到参数求和

如下,启动脚本时必须带上参数,不带或参数带多都会报错


四、针对目录的操作

1. mkdir  创建目录

创建一个目录: mkdir  目录名,也可以一次创建多个目录: mkdir 目录1 目录2 目录3(这是平级的)

mkdir创建多级目录:   mkdir  -p  aaa/bbb/ccc

2. rmdir 删除目录

只能删除空目录

3. rm 删除目录或文件

rm 文件名 删除文件 需要确认删除

rm -r 目录名 删除目录  需要确认删除

rm -rf 目录名 强制删除目录  不需要确认

注意rm -rf / 这个操作很危险。这个会把根目录下的所有文件包括根目录都给删除,linux没有回收站。就只能重装系统了!!!

还有:比如左边这个操作,本来是想删test.txt文件的,但是第一个斜杠和后面的root之间多了个空格,这种不经意的操作。也就        给全删完了。所以删除的时候一定要注意斜杠两边是否有空格。切记不能有空格。


4. mv 移动或者剪切+粘贴 ,重命名

mv 源 目标 mv不仅能移动文件位置,还能给文件改名。mv aaa.txt bbb.txt 将文件名为aaa的文件名改为bbb。

上面这种操作是将ddd 目录移动到上一级目录中。

5. cp  文件/目录复制

cp -r 源  目标  递归拷贝,因为目录里还会有子目录,

cp 原目录/*   目标目录  将原目录下的所有文件(不包含原目录),拷贝到目标目录

将bbb目录复制到ccc目录中,包含bbb

将bbb目录复制到ccc目录中,不包含bbb


五、其他常用命令

ls  显示目录内容列表

ls -l   显示详细信息    可以用简写的 ll  代替       

ls -a  还显示隐藏的文件                             

cd 切换目录

cd .. 返回上级

wc -l 文件名   统计给定文件的行数

wc -w 文件名  统计单词数

wc -c 文件名   统计字符串数 

uname 显示操作系统当前信息

date 显示日期信息

cal 显示日历

shutdown 关闭操作系统

pwd 查看绝对路径,工作路径

ctrl+l 清屏,或者输入 clear。

ctrl+回车键  删除 

ctrl+insert 复制

shift+insert粘贴

ctrl+c结束命令。

ctrl+s:冻结屏幕

ctrl+q:解除冻结

netstat 显示Linux中网络系统的状态信息

netstat -nlp|grep  8080:查看端口号为8080的进程

kill  pid    杀进程

kill -9 pid   强制关掉进程 

ps -ef   查看本机所有正在运行的进程

ps -ef | grep java:查看名字为java的进程

ps aux | grep java:  查看名字为java的进程

grep 字符串  查找字符串

grep -v 字符串 翻转查找,查找不包含这个字符串的

grep  -o "hello" xxx.txt | wc -l 查看指定文件中 hello 出现的个数

grep -c "hello" xxx.txtt 查看指定文件中 hello 出现的总行数

grep -rn "hello" ss.txt 查找某个字符串在文件的第几行 

使用vim打开文件,在normal模式下输入 / ,后跟所要查找的字符串,即可高亮显示所有匹配的字符串,按 向下匹配查找,按 向上匹配查找。

top -c 实时查看所有进程占用系统资源情况,如cpu%,memory(内存)%等。

jobs 用于显示后台运行的进程

pstree 进程树,在Linux中,每一个进程都是由父进程创建的,此数可以表示父进程与子进程之间的关系

nohup java -jar xxx.jar & & 后台运行命令 

awk 'NR==2'  filename 查找文件的指定行数据

whereis [选项] 用于定位各种文件的位置,如whereis mysql等,查看文件是否存在,安装。

mv 源 目标 文件重命名,移动文件


六、在Linux上搭建jdk,mysql环境

先搭建环境(安装软件) 三步: 下载安装jdk(1),下载安装tomcat(2),下载安装mysql(3)安装的前提是管理员身份。

1.下载jdk

输入下面一段代码下载

yum list | grep jdk

然后选择版本,jdk现在普遍用的都是1.8版本。

复制上面选择的,linux中用ctrl+insert复制,用shift+insert粘贴

yum install 复制的版本

下载完后输入javac命令验证 下图说明下载成功!

出现下图结果,说明下载成功! 


2.下载tomcat

 1.从官网下载我们需要的tomcat版本的压缩包,可以先在xshell中创建一个目录,然后把压缩包直接拖拽到这个目录里。

如果拖拽加载不玩,

2.然后使用 unzip apache-tomcat-8.5.93-windows-x64.zip 命令进行解压缩,tomcat版本可以自行选择。

如果提示unzip找不到,就先输入yum install unzip,下载unzip。

解压缩成功后,找到你所拖拽的目录,跳到tomcat的bin目录下

然后输入下面一段代码,目的是给所有的.sh赋予可执行权限。

chmod +x  *.sh

尝试启动Tomcat

sh startup.sh 

注意:启动命令sh startup.sh要在tomcat的bin目录里使用才有效。即先找到bin目录。其他位置会显示找不到该文件。

关闭Tomcat

sh shutdown.sh 


3.mysql安装

这里我们安装的是与mysql很相似的mariadb。

安装 mariadb 服务

yum install -y mariadb-server

安装 mariadb 命令行客户端

yum install -y mariadb

安装 mariadb C library

yum install -y mariadb-libs

安装 mariadb 开发包

yum install -y mariadb-devel

启动

启动服务

systemctl start mariadb

设置服务开启自启动

systemctl enable mariadb

查看服务状态

systemctl status mariadb

测试连接

使用命令行客户端尝试连接

mysql -uroot

退出mysql操作

进入mysql操作完后,按下ctrl+d 退出

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

去北极避暑~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值