Linux常用命令与基本操作、填空题、简答题

文章目录

  • 基本知识点
      • 基本操作
        • 叙述什么是shell?
        • 重启虚拟机网络
        • 分区
        • 查看当前进程
        • 查看主机名
        • 重启
        • 关机
        • 查看IP地址
        • 文件搜索
        • 挂载
        • 查看网络配置
        • linux系统中Vi的三种模式
        • 磁盘分区
          • 查看硬盘信息
        • df,fdisk,lsblk区别
      • 进程
      • 用户
        • 用户信息
        • 查看用户密码信息
        • 修改密码
        • 添加用户
        • 修改用户帐号
        • 添加组
        • 删除组
        • 修改组
        • 修改用户的工作组
        • 指定要管理的工作组
      • 目录和文件操作
        • 文件
        • 目录文件
        • 显示目录下的内容
        • 读写权限
        • 修改目录的拥有者
        • 修改文件的权限
          • rwx权限详解
          • chmod改变权限
        • 创建文件夹
        • 创建文件
        • 编辑文件
        • 复制文件和目录
        • 删除文件或目录
        • 删除一个或多个空目录
        • 移动文件
        • 查看文件夹和文件的内存占用情况
      • 操行符
      • 压缩命令
      • 项目部署常用命令
      • 查看进程号
      • 后台运行jar包
      • 查看nginx的安装目录
  • 填空题
  • 简答题
    • 1) 公司新来了一名员工,对员工进行以下操作
    • 2) 如果一个文件的权限是-r-w-r-$,解释清楚-r-w-r- $的每个字符的含义
    • 3) 描述逻辑分区是什么?它是怎么来的?如果让你分区,你如何操作?
    • 4) shell脚本的定时性操作
    • 5) 写出提高linux系统安全性的方法 (答案有十二个,只要求写十个)
    • 6) 一个if判断题,写一个shell脚本
    • 7) 什么是进程?进程资源由哪两部分组成?
    • 8) pid_t fork() 返回值的意义?
    • 9) Linux环境中使用kill函数向进程或进程组发送信号
    • 10) 共享主存和修改消息队列状态
    • 11) 父进程调用wait() 可能出现的三种情况?
    • 12) 在进程中,return和exit() 的区别?
    • 13)什么是孤儿进程?谁负责回收孤儿进程的内核空间资源?
    • 14) 僵尸进程是什么?如何消灭僵尸进程?
    • 15) 简述进程对可靠信号和不可靠信号的处理过程
    • 16) 简单介绍一下信号的定义及其分类
    • 17) 简单介绍一下匿名管道及其特点
    • 18) 请解释一下有名管道和匿名管道的区别?
    • 19) 什么是线程?进程和线程的区别?
    • 20) Please describe the difference of signal() and sigaction() in brief
    • 21)在标准IO库中,rewind函数作用?
    • 22)C语言中没有明确给定初值的全局变量和静态变量存放在哪儿?
    • 23)函数geteuid()用于得到进程的?
    • 24)逻辑卷的创建

基本知识点

基本操作

叙述什么是shell?

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。是一个命令解释器,它可以用来启动、挂起、停止、甚至编写程序。

重启虚拟机网络

sudo service networking restart

分区

主分区,逻辑分区,扩展分区

查看当前进程

ps -aux

查看主机名

hostname

重启

shutdown -r now
reboot
init 6
ctrlaltdel //强制或安全重新启动服务器

关机

shutdown -h now
init 0
halt
poweroff

查看IP地址

#查看外网IP:
curl ipinfo.io/ip
#查看本机IP:
ip addr
或
ifconfig

文件搜索

find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 

挂载

挂载:linux系统中,若用户需对某个硬盘设备或文件进行访问,要将其挂载到一个目录上。

挂载点命令
mount 进行添加挂载点

mount 镜像文件位置|光盘文件|硬盘文件    挂载的位置
挂载镜像文件 mount centos-7....iso  /media
挂载光盘 mount  /dev/cdrom /media

卸载挂载点
umount 文件位置
umount /media

查看网络配置

查看网络接口信息 ifconfig
测试网络连接状态 ping
查看网关地址和路由信息 route netsat
查看主机名称信息 hostname nslookup

linux系统中Vi的三种模式

1.命令模式
2.文件编辑模式
3.底行模式

磁盘分区

fdisk -l  查看硬盘名称
物理分区:储存空间最小的储存单元
卷组:一个或多个物理卷可整合一个卷组
逻辑卷:一个卷组可以划分出一个或多个逻辑卷,用于建立文件系统 Fstab文件用于管理文件系统信息
查看硬盘信息
# 安装插件
yum install smartmontools# 查看 /dev/ 下 sda 盘的信息:smartctl --all /dev/sda

df,fdisk,lsblk区别

df:主要是检查文件系统磁盘内存占用情况
fdisk:一般用来磁盘分区,也可以用来查看磁盘分区情况
lsblk命令用于列出所有可用块设备的信息,同时能显示它们之间的依赖关系。

进程

系统进程
用户进程
守护进程

1.Ps  显示进程的信息
2.Shell脚本 
3.基本结构:顺序,选择,循环
4. !/b in/bash //声明
5.  //注释LInux中 0表示正确
rm-rf 7 删除名字$ //  在bash里$符号表示当前用户为普通用户;在bash脚本里。$开头表示变量
$# 表示参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 表示所有参数,并且所有参数都是独立的
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误gt >
lt <
ge >=
le <=
Eq =
ne !=
#cat test7-8
#! /bin/bash
If test-f “$1”
Then echo “$1 is an ordinary file”;
Else echo “$1 is not ordinary file”;
fi

用户

超级用户
系统用户
普通用户

用户信息

passwd

-d     用户名    删除用户的密码。则该用户无需密码即可登录系统
-S     用户名    显示指定用户账号的状态
-u     用户名    解除指定用户账号
-l     用户名    暂时锁定指定的用户账号
Usedel   [-r] 用户名  删除指定的用户账号
Su [-]  [用户名]  切换用户身份
Id    [用户名]      查看用户的UID和GID

查看用户密码信息

cat /etc/shadow

修改密码

passwd 用户名 

添加用户

useradd(仅限超级管理用户)  -c 指定用户的全称

修改用户帐号

usermod可用来修改用户帐号的各项设定
语法

usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]

参数说明:

-c<备注>         修改用户帐号的备注文字。
-d登入目录>       修改用户登入时的目录。
-e<有效期限>      修改帐号的有效期限。
-f<缓冲天数>      修改在密码过期后多少天即关闭该帐号。
-g<群组>         修改用户所属的群组。
-G<群组>         修改用户所属的附加群组。
-l<帐号名称>      修改用户帐号名称。
-L              锁定用户密码,使密码无效。
-s<shell>       修改用户登入后所使用的shell。
-u<uid>         修改用户ID。
-U              解除密码锁定。

实例
更改登录目录

 usermod -d /home/hnlinux root

改变用户的uid

usermod -u 777 root

添加组

groupadd

指定群组名称来建立新的群组账号,需要时可以从系统中取得新的群组值。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
groupadd [选项] group
2、选项列表
在这里插入图片描述
3、文件

   /etc/group        群组信息/etc/gshadow      群组加密信息

4、实例
创建组,指定组的id

sudo groupadd group01 -g 888

在这里插入图片描述

删除组

删除组,如果租内有用户,那么必须先删除用户。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
groupdel 组名 删除指定的组名

2、选项列表
在这里插入图片描述
3、实例

sudo groupdel group01 

修改组

Linux groupmod命令用于更改群组识别码或名称。
需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

语法

groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]

参数:

-g <群组识别码>  设置欲使用的群组识别码。
-o  重复使用群组识别码。
-n <新群组名称>  设置欲使用的群组名称。

实例
修改组名

 groupadd linuxso tail -1 /etc/group tail -1 /etc/group groupmod -n linux linuxso tail -1 /etc/group 

修改用户的工作组

Chgrp
功能: 改变文件的拥有组

chgrp [最终用户组] [文件或目录]	(功能描述:改变文件或者目录的所属组)
chgrp newgroup file  改变文件的所有组

示例:

请将/home/catch .txt文件的所在组修改成 letter

chgrp  letter  /home/catch.txt

请将 /home/* 目录下所有的文件和目录的所在组都修改成letter

chgrp  -R  letter /home/* 

指定要管理的工作组

gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具,用于指定要管理的工作组。

选项详解:

  -a : 添加用户到组-d : 从组删除用户-A:指定管理员-M:指定组成员和-A的用途差不多;-r:删除密码;-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

实例
将userA添加到groupB用户组里面:

gpasswd -a userA groupB

注意:添加用户到某一个组可以使用 usermod -G groupB userA 这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉,所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用gpasswd这个命令来添加操作用户。

将userA设置为groupA的群组管理员:

gpasswd -A userA groupA

目录和文件操作

file: 查询文件的类型
du:显示目录或文件的磁盘占用量(文件系统数据库的情况)
wc:统计文件的行数、单词数、字节数和字符数
tree:以树状图逐级列出目录的内容
cksum:显示文件的CRC校验值和字节统计
mk5sum:显示或检查MD5(128-bit)
sum:为文件输出校验及块计数
dirname:输出去除尾“/”字符部分的名称,名称不包含“/”则显示“.”
basename:去除前导的目录部分后显示名称,如果指定后缀的话会去掉后缀
In: 创建链接文件
stat:显示文件或文件系统的状态

文件

普通文件
目录文件
设备文件

目录文件

/bin            普通用户使用的命令,二进制目录,存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc            目录存放系统的大部分配置文件和子目录。存放系统管理和配置文件
/usr            用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr/x11r6      存放x window的目录
/usr/bin        众多的应用程序  
/usr/sbin       超级用户的一些管理程序  
/usr/doc        linux文档  
/usr/include    linux下开发和编译应用程序所需要的头文件  
/usr/lib        常用的动态链接库和软件包的配置文件  
/usr/man        帮助文档  
/usr/src        源代码,linux内核的源代码就放在/usr/src/linux里  
/usr/local/bin  本地增加的命令  
/usr/local/lib  本地增加的库
/opt            额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc           虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root           超级用户(系统管理员)的主目录(特权阶级^o^)
/temp           用于存放各种临时文件,是公用的临时文件存储点。
/home           普通用户主目录,存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib            库函数及内核函数,	存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/lost+found     默认空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所
/sbin           超级用户管理员使用的命令,存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/boot           超级用户管理员使用的命令
/dev            用于存放设备文件,
/misc           备用文件夹
/mnt            设备挂载点 ,系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/var            用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。  

pwd 显示当前用户所处的工作目录的绝对路径

显示目录下的内容

ls --color=never 不是用颜色表示不同类型文件
ls -a 显示所有文件
ls -l 以长格式显示文件
ls -d 只显示目录
ls -i 查看inode节点
dirs //显示目录列表,在只需要显示目录的时候比较简单实用

读写权限

读权限r(read):
对文件而言 是读取文件的内容的权限,对目录而言是列出目录下所包含的内容的权限。
写权限w:
对文件而言是修改文件内容的权限;对目录而言是在目录下创建及删除文件的权限
执行权限 x:
对可执行文件而言 是允许执行改文件的权限,对目录而言是进入目录的权限。
(1)符号表示法
Ls -l 文件名 列出某个目录下每个文件的权限
-rw 读写
–: 0
w: 2
x: 1
r: 4

-rw-rw----

第一个值是文件类型
后面每3个为一组,分别代表用户的权限 组权限 通用权限

修改目录的拥有者

Chown 文件拥有人[:文件拥有组] 文件
改变文件的拥有人,可一并修改文件的拥有组

chown  bin  myshare/
ls -ld  myshare/

实例:
修改文件所有者

chown tom houge.txt

递归改变文件所有者和所有组

chown -R tom:leader home/

修改文件的权限

chmod是Linux/Unix中修改文件或者目录权限的命令,通过修改权限可以让指定的人对文件可读、可写、可运行,极大地保证了数据的安全性。
在这里插入图片描述

-rwxrw-r-- 1 root police 1213 Feb 2 09:39 *.txt

0-9位说明
第0位确定文件类型(说明:
-:普通文件
d:目录
l : 连接文件,
c: 字符设备文件[键盘,鼠标]
b:块设备文件[硬盘] )

第1-3位确定所有者(该文件的所有者)拥有该文件的权限。
R: 读
w : 写权限
x: 执行权限
第4-6位确定所属组(同用户组的)拥有该文件的权限
第7-9位确定其他用户拥有该文件的权限
1: 如果是文件,表示硬链接的数目, 如果是目录,则表示有多少个子目录
1213: 表示文件大小,如果是目录,则统一为 4096

rwx权限详解

rwx作用到文件(重要)
r: 代表可读(read): 可以读取,查看
w:代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
x: 代表可执行(execute):可以被执行

rwx作用到目录(重要)
r: 代表可读(read): 可以读取,ls查看目录内容
w:代表可写(write): 可以修改,目录内创建+删除+重命名目录
x:代表可执行(execute):可以进入该目录

chmod改变权限

通过chmod指令,可以修改文件或者目录的权限
u: 文件拥有人
g: 文件拥有组
o: 其他人
a:所有人
一)+ 、-、= 变更权限

chmod   u=rwx,g=rx,o=x   文件、目录 //给所有者rwx, 给所在组的用户 rx, 给其他人 
chmod   a-x    文件、目录	//表示:给所有用户 去掉 x权限
chmod   o+w    文件、目录 //表示:给其它用户增加w 的权限

示例:

1.使myshare下的所有文件和子目录都自动拥有工作组为bin

chmod  g+s   myshare
ls  -ld   myshare/

2.给catch文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。

chmod  u=rwx, g=rx ,o=rx  catch

3.给catch文件的所有者除去执行的权限,增加组写的权限

chmod  u-x, g+w catch

4.给catch文件的所有用户添加读的权限

chmod  a+r  catch 

二)第二种方式:通过数字变更权限
数字代表的权限:r=4 w=2 x=1 rwx=4+2+1=7

chmod u=rwx,g=rx,o=x    文件、目录 
## 相当于 
chmod   751  文件、目录

示例:
将 catch.txt 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现:

chmod  u=rwx, g=xr, o=xr catch.txt
chmod 755 catch.txt

创建文件夹

mkdir  myshare/testdir
mkdir -p  //会自动创建父文件夹
ls -l  myshare
mkdir -p 一次性创建多级目录

创建文件

touch a.txt 

提示: 如果文件名字已经存在了,不会报错,也不会覆盖

编辑文件

vim a.txt

提示:
文件名字不存在,会自动创建

复制文件和目录

cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。

cp 命令的基本格式如下:cp [选项] 源文件 目标目录/文件

选项:

-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i:询问,如果目标文件已经存在,则会询问是否覆盖;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

当源文件可以有多个,但这种情况下,目标文件必须是目录才可以。

这里的软链接,类似于 Windows 系统中的快捷方式,而硬链接则是透过文件系统的 inode 号产生一个新的文件名。无论是复制软链接还是硬链接,都不是复制源文件。

cp 命令既可以复制文件,也可以复制目录。

touch cangls           #建立源文件
cp cangls /tmp/        #把源文件不改名复制到 /tmp/ 目录下
cp cangls /tmp/bols    #改名复制

如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名,例如:

cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y #目标位置有同名文件,所以会提示是否覆盖

复制目录,其实复制目录只需使用“-r”选项即可,例如:

cp -r /root/movie/ /tmp/

删除文件或目录

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm *-rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。

1.命令的基本格式

rm[选项] 文件或目录

2.命令功能
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

3.命令参数:
常用命令选项

-f, --force    强制删除,忽略不存在的文件,不给出提示。
-r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose    详细显示进行的步骤
--help     显示此帮助信息并退出
--version  输出版本信息并退出
-f:       强行删除文件或目录,不进行提醒
-i:       删除文件或目录时提醒用户确认
-rf :     强制删除  r是递归       
rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。

rm 命令如果任何选项都不加,则默认执行的是"rm -i 文件名",也就是在删除一个文件之前会先询问是否删除。

如果要删除的目录中有 1 万个子目录或子文件,那么普通的 rm 删除最少需要确认 1 万次。所以,在真正删除文件的时候,我们会选择强制删除:

rm -rf /hdfs_demo
#强制删除,一了百了

虽然 “-rf” 选项是用来删除目录的,但是删除文件也不会报错。所以,为了使用方便,一般不论是删除文件还是删除目录,都会直接使用 “-rf” 选项。

4.实例
删除文件file,系统会先询问是否删除

rm file

将 MapReduce子目录及子目录中所有档案删除

rm -r MapReduce

删除一个或多个空目录

外置命令,rmdir 命令,只能删除空目录。
rmdir命令作用是删除空的目录,英文全称:“remove directory”。

rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有“-R”选项的rm命令。
rmdir命令的“-p”参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。

语法格式 :

rmdir [参数] [目录名称]

常用参数:
在这里插入图片描述
删除空目录:

 rmdir dir

递归删除指定的目录树

rmdir -p dir/dir_/dir_2

显示指令详细执行过程

rmdir -v dir
rmdir -p -v dir/dir_/dir_2

显示命令的版本信息

rmdir --version

移动文件

mv命令:用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

1.如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

2.如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

语法

 mv(选项)(参数)

选项

 --backup=<备份模式>: 若需覆盖文件,则覆盖前先行备份;-b:当文件存在时,覆盖前,为其创建一个备份;-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录(强制覆盖同名文件)-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。--strip-trailing-slashes:删除源文件中的斜杠“/”;-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;--target-directory=<目录>:指定源文件要移动到目标目录;-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

在这里插入图片描述
实例:
实例一、移动文件或目录

mv cangls /tmp #移动之后,源文件会被删除,类似剪切
mkdir movie
mv movie/ /tmp #也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入 "-r" 选项

如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖,因为 mv 命令默认执行的也是 “mv -i” 的别名,例如:

 touch cangls #重新建立文件mv cangls /tmp mv #是否覆盖"tmp/cangls"?y#由于 /tmp 目录下已经存在 cangls 文件,所以会提示是否覆盖,需要手工输入 y 覆盖移动

实例二、强制移动
如果目标目录下已经存在同名文件,则会提示是否覆盖,需要手工确认。这时如果移动的同名文件较多,则需要一个一个文件进行确认,很不方便。

如果我们确认需要覆盖已经存在的同名文件,则可以使用 “-f” 选项进行强制移动,这就不再需要用户手工确认了。例如:

 touch cangls #重新建立文件mv -f cangls /tmp #就算 /tmp/ 目录下已经存在同名的文件,由于"-f"选项的作用,所以会强制覆盖

实例三、不覆盖移动
既然可以强制覆盖移动,那也有可能需要不覆盖的移动。如果需要移动几百个同名文件,但是不想覆盖,这时就需要 “-n” 选项的帮助了。例如:

ls /tmp
#/tmp/bols /tmp/cangls    #在/tmp/目录下已经存在bols、cangls文件了
mv -vn bols cangls lmls /tmp/
"lmls"->"/tmp/lmls"
#再向 /tmp/ 目录中移动同名文件,如果使用了 "-n" 选项,则可以看到只移动了 lmls,而同名的 bols 和 cangls 并没有移动("-v" 选项用于显示移动过程)

实例四、改名
如果源文件和目标文件在同一目录中,那就是改名。
目录也可以按照同样的方法改名。

mv bols lmls #把 bols 改名为 lmls

实例五、显示移动过程
如果我们想要知道在移动过程中到底有哪些文件进行了移动,则可以使用 “-v” 选项来查看详细的移动信息。例如:

 touch test1.txt test2.txt test3.txtmv -v *.txt /tmp

查看文件夹和文件的内存占用情况

du -a

操行符

    +  增加权限-  删除权限=  赋予给定权限

压缩命令

1、bzip方式、bzip2方式、zip方式

  bzip方式 压缩文件后缀是 .bz2bzip2  文件名 进行压缩bzip2 -d  压缩文件名 进行解压bzip2 -9 文件名   进行高压缩比的压缩zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.

2、gzip方式
压缩文件后缀是 .gz
gzip 文件名 进行压缩
gzip -d 压缩文件名 进行解压
gzip -9 文件名 进行高压缩比的压缩

3、unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

4、tar(重点)
压缩命令

 tar -jcvf  压缩后的文件名 文件名|文件夹tar -zcvf 压缩后的文件名 文件名|文件夹tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpgtar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

解压命令

tar -jxvf 压缩文件名
tar -zxvf 压缩文件名
 tar –xvf file.tar //解压 tar包tar -xzvf file.tar.gz //解压tar.gz

-c: 创建 .tar格式的包文件
-x: 解压.tar格式的包文件
-v :输出详细信息
-f: 表示使用归档文件
-p:打包时保留原始文件及目录的权限
-t:列表查看包内的文件
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压

项目部署常用命令

查看进程号

ps -ef | grep java 查看所有Java相关的进程

#杀进程:kill -9 进程号

#查看端口占用情况

lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000
netstat -ntlp   //查看当前所有tcp端口

#linux查看日志文件:tail -f test.log 查看实时日志

linux 如何显示一个文件的某几行(中间几行)

从第3000行开始,显示1000行。即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000

显示1000行到3000行 cat filename| head -n 3000 | tail -n +1000
tac (反向列示)
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来

后台运行jar包

方式一:

$ nohup java -jar test.jar &

方法二:

$ nohup java -jar test.jar >temp.txt &//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建

jobs命令://列出所有后台执行的作业,并且每个作业前面都有个编号

查看nginx的安装目录

1:查看端口占用,和进程号:netstat -ntlp
2:根据进程号查看安装目录:ll /proc/进程号/exe
查看nginx 配置文件的路径:
进入nginx安装目录下的sbin目录(上面的步骤)输入:./nginx -t

填空题

1.linux中把分区和目录对应的过程叫做 挂载
2.信号是在软件层次上对中断 机制的一种模拟, 是一种异步通信方式。
3.用GCC编译过程可以被细分为四个阶段:预处理,编译,汇编,链接
4.编译有线程的文件要加 -lpthread 参数。
5.父进程等待子进程的结束,可以使用的函数是 wait() waitpid()
6.linux主要有两个信号安装函数,分别是什么。
Signal(),sigaction()
7.Linux操作系统内核由 C语言 编写完成。
8.使用gdb调试程序时,next和step命令的作用?

Next:单步跳过命令,一次跳过一行(跳过一行代码,不可跳过函数)
Shop:单步跳过命令,跳过一行代码,跳过函数调用

9.目录/BOOT 下存放linux操作系统启动时所要用到的程序
10.Linux 系统的设备文件分为三类?
字符设备文件,块设备文件,网络设备文件
11.Linux 中采用“一对一”的线程机制,也就是一个用户线程对应一个 内核线程
12.vim三种模式:在命令模式下按下 Esc 就进入了底线命令模式。
13.标准I/O提供了三种类型的缓冲,分别是?
全缓冲,行缓冲,不缓冲
14.linux文件系统由四部分组成, 超级块 用于存放文件的控制信息。
15.一个完整的信号生命周期包含4个重要的事件,这4个重要事件分别是?
信号诞生,信号注册,信号注销,信号处理执行完毕
16.互斥锁只有两种状态,即?
上锁,解锁
17.线程本身调用 pthread_exit() 函数可以退出线程。
18.向消息队列发送消息的函数是 msgsnd()
19. Fstat() 系统调用可以根据文件描述符来操作文件特性。
Valgrind包括很多工具, Memcheck 是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况, Cachegrind 是主要用来检查程序中缓存使用出现的问题。

Memcheck: 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。

Callgrind: 它主要用来检查程序中函数调用过程中出现的问题。

Cachegrind。它主要用来检查程序中缓存使用出现的问题。

Helgrind: 它主要用来检查多线程程序中出现的竞争问题。 Massif。它主要用来检查程序中堆栈使用中出现的问题。

Extension: 可以利用core提供的功能,自己编写特定的内存调试工具。

20.信号发送函数中, alarm() 用于设置定时器,当计时时间到达时,向进程发送SIGALRM信号。
21.当一个线程的属性设置为 detach ,该线程结束时立即释放它所占有的系统资源。

1.以下哪种方式属于异常终止一个进程(D )
A从main函数返回。
B调用exit。
C最后一个线程从其启动例程返回。
D接到一个信号并终止。(软中断)

2.下列命令哪个是创建线程私有数据命令(A)
A pthread_key_create() B pthread_setspecific()
C pthread_getspecific() D pthread_key_delete();

3.下面哪种通信方式适用于不同机器之间的进程通信。(D )
A.消息队列 B.共享内存 C.信号量 D.套接字

4.创建或打开消息队列的函数为(A )
A.msgget() B.msgsnd() C.msgrcv() D. msgctl()

5.linux中通过调用waitpid()函数得到进程的退出信息,该函数原型为
Pit_p waitpid(pid_t pid,int * statloc,int options)
pid_t waitpid(pit_t pid, int *statloc, int options);当第一个参数pid取值为-1时,表示(A)
A等待任一子进程退出,相当于 wait()。
B等待进程组ID与调用进程组ID相同的任一子进程。==0
C只等待进程ID等于PID的子进程。>0
D等待指定进程组中的进程,该进程组id等于 pid的绝对值。<-1

简答题

1) 公司新来了一名员工,对员工进行以下操作

(1)添加员工

useradd 用户名

(2)更改密码

passwd 用户名

(3)更改用户的目录

usermod -d/目录名

(4)锁定用户账号

passwd –l 用户名

2) 如果一个文件的权限是-r-w-r-$,解释清楚-r-w-r- $的每个字符的含义

(1)读权限r(read): 对文件而言 是读取文件的内容的权限,对目录而言是列出目录下所包含的内容的权限。
(2)写权限w:
对文件而言是修改文件内容的权限;对目录而言是在目录下创建及删除文件的权限
(3)执行权限 x: 对可执行文件而言
是允许执行改文件的权限,对目录而言是进入目录的权限。
(4)$ //
在bash里符号表示当前用户为普通用户;在bash脚本里。符号表示当前用户为普通用户;在bash脚本里。bash开头表示变量

$# 表示参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 表示所有参数,并且所有参数都是独立的
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

3) 描述逻辑分区是什么?它是怎么来的?如果让你分区,你如何操作?

逻辑分区是硬盘上一块连续的区域,不同之处在于,每个主分区只能分成一个驱动器,每个主分区都有各自独立的引导块,可以用fdisk设定为启动区。 linux中主分区至少要有1个,最多可以有4个,扩展分区至多只能有1个或者没有,但是主分区加上扩张分区数量不能超过4个。扩展分区下必须再分逻辑分区,不然空间不能被格式化,逻辑分区的数量没有限制。

4) shell脚本的定时性操作

1.安装crontab
2.开启crontab服务
3.3.设置需要执行的脚本

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command

其中:

minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

5) 写出提高linux系统安全性的方法 (答案有十二个,只要求写十个)

1.开防火墙
2.分区
3.不使用默认路由(这三个先写上)
4.不要以root身份登录
5.限制超级用户的权利
6.使用基于密钥的认证
7.仅监听特定的ip
8.禁止使用空密码
9.做好日志,经常分析
10.禁止SSH远程
11.Linux内核参数优化
12.调整文件描述符数量

6) 一个if判断题,写一个shell脚本

1.判断文件是否存在

if[-f ”文件名”];  then
echo “文件存在”
else 
echo “文件不存在”
fi

2.能不能读取内容

if[-r “文件名”] ;then
echo “可以读取文件内容”;
else
echo “不可以~”;
fi

3.要求输入输出,类似输入一个成绩数字,判断是否及格。

# !/bin/bash
echo "请输入一个分数:"
read aif [ $a -ge 90 ]    #大于 -gt (greater than) then                #小于 -lt (less than) echo 'A'            #大于或等于 -ge (greater than or equal) elif [ $a -ge 80 ]  #小于或等于 -le (less than or equal) then                #不相等 -ne (not equal)echo 'B'elif [ $a -ge 70 ]then echo 'C'elif [ $a -ge 60 ]then echo 'D'elseecho 'E'

7) 什么是进程?进程资源由哪两部分组成?

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
进程资源包括内核空间进程资源和用户空间进程资源

8) pid_t fork() 返回值的意义?

创建失败时返回负数;创建成功时返回两个值:父进程的fork返回一个正数表示子进 程的进程ID,子进程的fork返回0

9) Linux环境中使用kill函数向进程或进程组发送信号

Linux环境中使用kill函数向进程或进程组发送信号。Kill函数原型为
int kill(pid_t pid, int signo);当第一个参数pid>0时,表示( A )

A发送信号给进程ID为pid的进程;
B发送信号给进程组ID和该进程相同的进程;
C发送信号给进程组内进程ID为pid的绝对值的进程;
D发送信号给系统的所有进程;

pid>0 将信号传给进程识别码为pid 的进程。
pid=0 将信号传给和目前进程相同进程组的所有进程
pid=-1 将信号广播传送给系统内所有的进程
pid<0 将信号传给进程组识别码为pid绝对值的所有进程

10) 共享主存和修改消息队列状态

共享主存基本操作(A )将共享主存区映射到进程虚拟地址空间。

A shmat() 		             B shmdt()共享内存 
C shmctl()控制对共享内存的使用	 D shmget() 创建共享内存

修改消息队列状态信息的命令是(B)

A msgsnd()发送信息 		B msgctl() 控制	
C msgrcv() 获取信息		D msgget() 创建

11) 父进程调用wait() 可能出现的三种情况?

1.如果其所有子进程都还在运行,则阻塞;
2.如果一个子进程已经终止,正等待父进程获取其终止状态,则取得该子进程的终止状态立即返回;
3.如果它没有任何子进程,则立即出错返回;

12) 在进程中,return和exit() 的区别?

return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示一个进程的结束。
在main函数里,return(0)和exit(0)是一样的,子函数用return返回,而子进程用exit退出,调用exit时要调用一段终止处理程序,然后关闭所有I/O流
1.return 是C语言的关键字,exit是POSIX API 函数
2.在main函数中,执行return和exit会产生相同效果。
3.在子函数中,执行return仅仅从子函数中返回,而调用exit函数将会直接退出当前进程

13)什么是孤儿进程?谁负责回收孤儿进程的内核空间资源?

孤儿进程:因父亲进程先退出而导致一个子进程被init进程收养的进程,即孤儿进程的父亲更改为init进程,该进程在孤儿进程退出后回收它的内核空间资源。

14) 僵尸进程是什么?如何消灭僵尸进程?

僵尸进程:进程已经退出,但它的父亲进程还没有回收内核资源的进程,即该进程在内核空间的PCB没有释放。
利用kill函数杀死父进程,僵尸函数会被init进程收养

15) 简述进程对可靠信号和不可靠信号的处理过程

如果进程在屏蔽某个信号的时间内,其他进程多次向其发送同一个信号,不可靠信号只有一次未决记录,当进程解除屏蔽后,该信号只会被捕捉一次;而可靠信号操作系统会 记录所有的发送,当进程解除屏蔽后,操作系统会捕捉对等次数。

16) 简单介绍一下信号的定义及其分类

信号是表示消息的物理量,是运载消息的工具

信号是软件中断,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的
分类:确定信号和随机信号;连续信号和离散信号;周期信号和非周期信号;能量信号与功率信号;因果信号与反因果信号;实信号与复信号

17) 简单介绍一下匿名管道及其特点

匿名管道:用于连接一个读进程和一个写进程,以实现它们
之间通信的共享文件,又称pipe文件,是一个只存在于内存的特殊文件。

1:匿名管道是半双工的,数据只能向一个一个方向流动。
2:一个进程将数据写入管道,另一个进程从管道中读取数据.
3:写入的内容添加在管道缓冲区的末尾,每次都是从缓冲区头部读出数据。
4:数据读出后将从管道中移走,其他读进程都不能再读到这些数据。
5:需要建立起两个管道,只能用于有亲缘关系的进程之间。(如父子或兄弟)

匿名管道用于进程之间通信,且仅限于本地父子进程之间通信,结构简单。

1.只提供单向通信,也就是说,两个进程都能访问这个文件,假设进程1往文件内写东		西,那么进程2 就只能读取文件的内容。
2.只能用于具有血缘关系的进程间通信,通常用于父子进程建通信
3.管道是基于字节流来通信的
4.依赖于文件系统,它的生命周期随进程的结束结束(随进程)
5.其本身自带同步互斥效果

18) 请解释一下有名管道和匿名管道的区别?

匿名管道是由pipe函数创建 并打开的
命名管道是由mkfifo函数创建 的 ,打开用open

命名管道和匿名管道唯一的区别就是在创建的打开,一旦这些工作完成后,它们有相同的意义。
FIFO索引节点出现在系统目录数上而不是pipefs特殊文件系统中
FIFO是一种双向通信管道,可以以读/写模式打开一个FIFO

命名管道和匿名管道唯一的区别就是在创建的打开,一旦这些工作完成后,它们有相同的意义。

19) 什么是线程?进程和线程的区别?

线程是操作系统能够进行运算调度的最小单位。

区别:
进程是运行中的程序,线程是进程的内部的一个执行序列

进程是资源分配的单元,线程是执行行单元

程间切换代价大,线程间切换代价小

进程拥有资源多,线程拥有资源少使用灵活

多个线程共享进程的资源

20) Please describe the difference of signal() and sigaction() in brief

(1) signal在调用handler之前先把信号的handler指针恢复;sigaction调用之后不会恢复handler指针,直到再次调用sigaction修改handler指针。
这样,signal就会丢失信号,而且不能处理重复的信号,而sigaction就可以。

因为signal在得到信号和调用handler之间有个时间把handler恢复了,这样再次接收到此信号就会执行默认的handler。

signal在调用过程不支持信号block;sigaction调用后在handler调用之前会把屏蔽信号加入信号中,handler调用后会自动恢复信号到原先的值。
(2)signal处理过程中就不能提供阻塞某些信号的功能,sigaction就可以阻指定的信号和本身处理的信号,直到handler处理结束。这样就可以阻塞本身处理的信号,到handler结束就可以再次接受重复的信号。

不同点

signal()
安装的信号不能向信号处理函数传递信息
sigaction()
可设置进程的信号掩码,返回设置之前的sigaction结构
安装的信号可以向信号处理函数传递信息

相同点
都可以为指定的信号设置信号处理函数
共用同一个内核函数do_sigaction()

21)在标准IO库中,rewind函数作用?

将文件内部的位置指针指向一个流的开头

22)C语言中没有明确给定初值的全局变量和静态变量存放在哪儿?

没有初始化的全局变量,bss(未初始化代码段),初始化的全局变量和静态变量放在data(初始化代码段)

23)函数geteuid()用于得到进程的?

得到有效用户的id

24)逻辑卷的创建

1.划分LINUX分区
2.创建PV(物理卷)
3.创建VG(卷组)
4.创建LV(逻辑卷)
5.格式化LV
6.挂载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客户端与服务器(C/S架构与B/S架构)、AJax学习

文章目录HTTP请求与服务器客户端与服务器1.C/S架构与B/S架构2.web资源介绍3.资源访问流程HTTP协议1.什么是协议&#xff1f;2.什么是HTTP协议3.HTTP组成部分4.请求的发送方式什么是Ajax技术Ajax可以做什么&#xff1f;伪造AjaxHTTP请求与服务器 客户端与服务器 1.C/S架构与B/…

前端必会技巧

文章目录点击输入框提示信息防止别人盗取视频设置输入边框透明按钮跳转a标签如何具有bootstra按钮样式formData的使用boostrap上传样式jq获取input标签的值jq获取最近一个td标签的值css设置几个div中的图片保持在一条水平线使div居中canvas 网页背景 粒子鼠标跟随磁力登录界面添…

linux基础必备

文章目录Linux系统中常用目录结构Linux下如何从普通用户切换到root用户Linux系统常用命令Linux系统文件中相关指令Linux查看开机自启动服务Linux常见服务列表Linux关闭某些服务&#xff08;临时关闭&#xff09;Linux关闭服务开机自启动Linux中在屏幕输入一句话Linux查看系统进…

Hadoop搭建集群中输入hdfs namenode -format格式化节点时,提示:hdfs: command not found 解决办法

分析原因&#xff1a; hadoop的安装路径没有加入到当前路径中 解决办法&#xff1a; 方法1&#xff1a; 进入hadoop的安装目录&#xff0c;在执行hadoop命令时在前面加上&#xff1a;./bin ./sbin 方法2: 进入/etc/profile文件中添加hadoop的安装路径 sudo vim /etc/profile添…

Linux高级编程实验(30个)

文章目录1&#xff09;输出Linux下的c也不是太难嘛&#xff01;在linux下编辑&#xff0c;编译&#xff0c;运行2&#xff09;编写一个简单地c语言程序,根据输入的两个整数求平均值并且在终端输出&#xff0c;通过gcc编译器得到它的汇编程序文件。3&#xff09;编写一个c语言程…

登录界面验证码的实现

文章目录Javaweb实现验证码前端后台Springboot添加验证码项目结构依赖控制类前端页面效果图Javaweb实现验证码 前端 添加样式 <meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, minimum-scale1.…

Javaweb MVC设计模式、Modle发展史、项目分层和三层架构

文章目录MVC设计模式MVC的目的MVC举例jspservletjavabean模式MVC的优点MVC的缺点Modle 发展史项目分层三层架构MVC设计模式 MVC模式&#xff08;Model-View-Controller&#xff09;是软件工程中的一种软件架构模式&#xff0c;把软件系统分为三个基本部分&#xff1a;模型&…

HTML表格和HTML表单

HTML 表格 表格由 <table> 标签来定义每个表格均有若干行&#xff08;由 <tr> 标签定义&#xff09;&#xff0c;每行被分割为若干单元格&#xff08;由 <td> 标签定义&#xff09; 字母 td 指表格数据&#xff08;table data&#xff09;&#xff0c;即数据…

解决虚拟机没有ens33网卡的问题

话不多说&#xff0c;直接操作 解决办法 1.在终端中输入: sudo vim /etc/network/interfaces进入interfaces文件后&#xff0c;然后输入以下代码&#xff0c;然后保存退出 auto ens33 iface ens33 inet dhcp 2.重启虚拟机 输入ifconfig命令&#xff0c;成功启动ens33网卡

HDFS上传文件命令报错org.apache.hadoop.ipc.RemoteException(java.io.IOException)

作为作者&#xff0c;强烈不建议进行格式化hadoop&#xff0c;毕竟开发数据是最为重要的&#xff01; Hadoop 3.1 hdfs dfs -put /源文件路径 /目的文件路径解决方案 第一步&#xff1a;停止主节点&#xff08;Master&#xff09;和子节点服务&#xff08;Slave&#xff09; …

图(Graph)的学习

文章目录图的认识图的概念无向图有向图简单图完全图子图连通、连通图、连通分量边的权和网加权图邻接和关联路径简单路径、简单回路环顶点的度、入度和出度割点&#xff08;关节点&#xff09;桥(割边)距离有向树图的表示邻接列表邻接矩阵图的遍历深度优先遍历广度优先遍历生成…

并查集(Disjiont Set)

并查集 并查集的最大作用是检测一个图上面存不存在环。 无向图&#xff0c;六个顶点 显然 1-2-4-3连成一个环 #include<stdio.h> #include<stdlib.h>#define VERTICES 6void initialise(int parent[]){int i;for(i0;i<VERTICES;i){parent[i]-1; }}int find_…

采用Kruskal算法生成最小生成树,并采用并查集的合并优化和查询优化。

文章目录最小生成树1.什么是图的最小生成树&#xff08;MST&#xff09;?2.最小生成树用来解决什么问题&#xff1f;Kruskal&#xff08;克鲁斯卡尔&#xff09;算法算法描述图解最小生成树 1.什么是图的最小生成树&#xff08;MST&#xff09;? 用N-1条边连接N个点&#x…

Java连接Mysql数据库(JDBC)

文章目录导入包con、stmt、rs 三者存在一定的关系getInt和getStringinput.nextInt();简单使用讲解ResultSet和StatementPreparedStatement的用法JDBC连接代码更多样例导入包 import java.sql.Connection; import java.sql.DriverManager; import java.sql.statement; import j…

Linux编程考前测试题

文章目录选择题多选题判断题填空题简答题编程题选择题 1:当打开vi文本编辑器编辑文件时&#xff0c;vi处于&#xff08;A&#xff09;模式 A: 命令模式 B: 编辑模式 C: 实模式 D: 虚模式 2:下列有关fork&#xff08;&#xff09;函数返回值说法错误的是&#xff08;D&#xf…

MySQL考试复习(知识点、练习题)

文章目录数据库的管理技术的三个阶段发展的三个阶段数据库的锁数据库设计的基本步骤事务的四大特性什么是视图如果关系模式设计不好&#xff0c;可能带来哪几个问题数据库管理系统的主要功能有哪些数据库系统中的常见故障有哪些简述SQL语言的组成说明关系模型有哪三类完整性规则…

Oracle复习(知识点、练习题、实验)

文章目录第一章 数据库概念数据库的三级模式结构&#xff1a;模式、外模式、内模式三级模式之间的映射第二章 Oracle12g体系结构Oracle的逻辑存储结构Oracle物理存储结构Oracle11g服务器结构系统全局区&#xff08;SGA&#xff09;程序全局区&#xff08;PGA&#xff09;第三章…

Openstack面试题和知识点总结

文章目录知识点云计算起源定义特点分类服务类型平台分类应用虚拟化虚拟化技术定义分类云计算和虚拟化的关系虚拟化的优点OpenStack简介核心架构Openstack组件共享服务组件核心组件组件详解RabbitMQ概念特点rabbitmq中的概念工作原理常用操作MemcachedKeystoneGlance工作原理Nov…

auto.js 实现信息发送、QQ点赞、微信点赞、健康日报签到

文章目录auto.js开发文档安装total control在手机端安装auto.js apk安装vscode短信多条发送QQ点赞微信点赞健康日报填写叠猫猫auto.js开发文档 点击学习 安装total control total control 用于手机投屏在电脑屏幕上 在手机端安装auto.js apk 链接&#xff1a;https://pan.…