java | (三十四)Linux

java | (三十四)Linux,第1张

java | (三十四)Linux

目录
  • 安装vm及centos
  • Linux的文件
  • 远程登录(xshell)、文件传输(Xftp)
  • vi和vim模式
  • 开机和关机
  • 创建用户、删除用户
  • 用户组
  • 运行级别
  • 帮助指令
  • 文件指令
    • ls、cd、pwd
    • mkdir、rmdir
    • touch、cp
    • mv、rm
    • cat、more、less
    • echo
    • head、tail
    • ln、history、date
    • find、locate

找尚硅谷的课程学习

安装vm及centos

弄了很久,VM的版本是16,centos是7
具体怎么安装还是根据百度,之前安装了VM15,一进入虚拟机电脑就蓝屏。

Linux的文件

linux的文件系统采用级层级式的树状目录结构,在此结构中最上层是根目录"/",然后此目录下再创建其他的目录




linux的目录中有且只有一个根目录
linux各个目录存放的内容是规划好,不能乱放
linux是以文件形式管理设备,因此linux系统一切皆为文件

远程登录(xshell)、文件传输(Xftp)

先下载xshell和Xftp

在虚拟机的终端输入ifconfig查找ip地址

然后在Xshell和xftp连接指定的ip地址:

vi和vim模式

开机和关机
  • 将数据同步写入硬盘中的命令 sync
  • 惯用的关机命令 shutdown
  • 重新启动、关机 reboot halt poweroff
创建用户、删除用户

添加用户
useradd [选项] 用户名 [选项],可省略
示例:useradd xm 创建了一个xm的账号,因为我们并没有指定xm账号的组。Linux自动为我们在/home下创建一个xm的组,xm属于xm组。

给用户设定或修改密码
passwd 用户名

切换用户
su 用户名

​删除用户
使用userdel xm 命令删除该用户时,并不能删除该用户的所有信息,只是删除了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四个文件里的该账户和组的信息。默认情况下创建一个用户账号,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)

正确删除用户
[root@localhost /]# userdel -r xm

删除用户,会出现
userdel: user xxx is currently used by process xxx ,参考:这篇文章

查询用户信息:id 用户名

用户组

用户组:类型于角色,系统可以对共性的多个用户进行统一的管理
创建组(groupadd 组名),并在创建用户时将用户加入组中:
useradd -g 组名 用户名

可以查看一下:

三个文件
/etc/passwd 文件
用户的配置文件,记录用户的各种信息
每行含义:用户名:口令:用户标识号:注释性描述:子目录:登录shell

/etc/shadow 文件
口令的配置文件
每行含义:用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件
组(gruop) 配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表

运行级别

0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

常用3 和 5

输入runlevel返回当前级别:

输入init [0123456]可以进入对应的级别

帮助指令

man
man [命令或配置文件]
获取帮助信息

help
heip 命令
获得shell内置命令的帮助信息

文件指令

参考https://blog.csdn.net/evankaka/article/details/49227669

ls、cd、pwd

cd
获取当前文件夹下的名称:

ls -l(这个参数是字母L的小写,不是数字1)
说明:这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。

ls –F(注意,是大写的F)
说明:使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。

cd
切换当前目录
回退上级:cd…

pwd
pwd [–help][–version]
说明:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

mkdir、rmdir

创建目录及删除目录

rmdir只能删除空目录

touch、cp

touch创建新空文件(touch 文件名称)

cp
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。

cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
一些参数

-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的 *** 作

复制文件夹 *** 作:
将/home/my/this复制到/home中,其中,this里面包含了一个yy.c的文件

mv、rm

mv
移动文件或重命名
重命名

移动文件

rm
rm指令删除文件或目录

-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤

cat、more、less

cat
可用来显示文件内的内容
现有file1.txt和file2.txt

可以显示多个文件

可用> 将文件拼接

这里没有file3.txt文件,自动创建了这个文件,如果存在这个文件,则会覆盖原有的内容
用>> 附加内容(将file1附加到file3上,则cat file1 >> file3

more、less
资料来源https://blog.csdn.net/evankaka/article/details/49227669
这是两个显示一般文本文件的指令。如果一个文本文件太长了超过一个屏幕的画面,用cat来看实在是不理想,就可以试试more和less两个指令。

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有d性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

常用选项指令

-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

echo

用来在控制台中显示东西
常用选项

-n : 表示输出之后不换行。
-e : 表示对于转义字符按对应的方式进行处理。

转义字符:
b 删除前面空格
n 换行
t 水平制表符
v 垂直制表符
c c后面字符不输出
r 回车
a 输出警告声


echo 输出颜色:
语法:echo -e “33[字体背景颜色;字体颜色m字符串33[0m”

head、tail

head用来显示文件的前几行

选项说明
-n <数字>:指定显示头部内容的行数;
-c <字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息,显示多个文件时默认选项;
-q:不显示文件名的头信息,显示单个文件时默认选项;

显示头两行:

tail
引用:https://www.cnblogs.com/peida/archive/2012/11/07/2758084.html
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实时监控file1.txt 文件有没有变化

ln、history、date

类似于window的快捷方式
有软链接和硬链接两种:
硬链接可认为是一个文件拥有两个文件名;
而软链接则是系统新建一个链接文件,此文件指向其所要指的文件。此外,软链接可对文件和文件夹,而硬链接仅针对文件。

ln -s source dist #建立软连接
ln source dist #建立硬连接


history
用来查看历史命令 *** 作

date
日期类

cal
显示日历(不加选项,显示本月日历)

find、locate

find
参考https://blog.csdn.net/hetoto/article/details/84101745

find /etc/ -name passwd      ##查找/etc/下名称中带有passwd的文件
find /etc -maxdepth 1 -name passwd     ##查找/etc/下名称中带有passwd的文件,查找一层。
find /etc -name *.conf       ##查找/etc/下名称中带有*.conf的文件(下面显示的是部分)
find /etc -maxdepth 2 -name *.conf  ##查找/etc/下名称中带有*.conf的文件,且查找两层,包括一层(下面显示的是部分)
find /etc -maxdepth 2 -mindepth 2 -name *.conf  ##查找/etc/下名称中带有*.conf的文件,且只查找第二层
find /mnt -group tony             ##查找/mnt中所有组是tony用户的文件
find /mnt -user student -group student  ##查找/mnt中所有人和所有组都是student的文件
find /mnt -not -user student      ##查找/mnt中所有人不是student用户的文件
find /mnt -not -user student -o -group tony   ##查找/mnt中所有人不是student用户或者所有组是tony用户的文件
find /mnt -size 20K       ##查找/mnt文件大小近似20k的文件
find /mnt -size +20K      ##查找/mnt文件大小大于20k的文件
find /mnt -size -20K      ##查找/mnt文件大小小于20k的文件
find /mnt -type d         ##按type查找/mnt中目录
find /mnt -type f         ##按type查找/mnt中文件
find /mnt -cmin 10        ##查找/mnt中十分钟左右修改的
find /mnt -cmin +10       ##查找/mnt中十分钟以上修改的
find /mnt -cmin -10       ##查找/mnt中十分钟以内修改的
find /mnt -ctime 10       ##查找/mnt中十天左右修改的
find /mnt -ctime +10      ##查找/mnt中十天以上修改的
find /mnt -ctime -10      ##查找/mnt中十天以内修改的
find /mnt/ -perm 444      ##查找/mnt文件权限为444的文件
find /mnt/ -perm -444     ##查找/mnt中user有读的权限且group有读的权限且other有读的权限的文件。(三个条件,u.g.o至少要读的权限即r--r--r--)
find /mnt/ -perm -004     ##查找/mnt中other有读权限的文件(一个条件,o至少有读的权限)
find /mnt/ -perm -644     ##查找/mnt中user有读写的权限且group至少有读权限且other有读的权限的文件。(四个条件,rw-r--r--)
find /etc/ -name *.conf -exec cp -rp {} /mnt ;   ##把/etc/目录下名称中带有.conf的文件递归复制到/mnt下
find /mnt -name "*.conf" -exec rm -fr {} ; ##删除/mnt名称中带有.conf的文件
find / -group mail -exec cp -rp {} /mnt ; ##把/目录下的组属于mail的文件复制到/mnt


locate

查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
详细看https://www.runoob.com/linux/linux-comm-locate.html

grep
grep 命令用于查找文件里符合条件的字符串。
详细看https://www.runoob.com/linux/linux-comm-grep.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5481805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存