写在前面
本条博客是我在参加人大金仓数据库面试之前对Linux基础命令的学习和总结,比较基础。
一、Linux系统目录结构简介
Linux系统有一句话是这么形容的,一切皆文件。金仓KES数据库在Linux中也是以文件形式存在的,所以如何使用Linux的文件系统对金仓数据库有效管理是非常重要的。
1、Linux操作系统的主要目录
目录 | 说明 |
---|---|
/bin | 存放经常使用的命令 |
/boot | 存放启动Linux时使用的核心文件 |
/dev | 存放Linux的外部设备 |
/etc | 存放系统管理需要的配置文件和子目录 |
/home | 用户主目录 |
/lib | 存放系统最基本的动态链接共享库 |
/mnt | 用户临时挂载的目录 |
/media | Linux挂载设备的目录 |
/opt | 主机额外安装软件的目录 |
/proc | 是一个虚拟的目录,是系统内存的映射 |
/root | 系统管理员的用户主目录 |
/sbin | 存放系统管理员使用的系统管理程序 |
/tmp | 存放一些临时文件 |
/usr | 共享资源目录 |
2、Linux系统目录绝对路径和相对路径
绝对路径就是指从根目录/开始写起的路径,例如/usr/share/doc
相对路径不是由/写起,而是相对于当前目录而言的一个路径,比如说当前我们在/usr/share/doc,我们要去/usr/share/man目录下面,可以写cd ../man,"../"是当前目录的上一级目录的意思,“./”是指当前目录的意思。
3.Linux系统目录和文件权限
我们都知道,Linux是一个多用户系统,不同用户需要访问的文件也是不一样的,并且对于安全性而言,不同的用户对于同一文件的访问也是具有权限限制的,这里我们权限的分配主要从属主、属组、其他用户三个方面进行限制。
3.1查看Linux文件的基本权限
ls -l
ls -l的命令也可以直接写成ll
他的输出例如:
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
这里描述了boot文件目录的一些信息。首先第一个字母是d,这里的d代表目录,其他如-代表文件、l代表链接文档、b代表数据块文件、c代表串行端口设备。
剩下的字符三个一组,其中r代表读权限,w代表写权限、x代表执行权限,-代表没有该权限,以第一组为例“r-x”,他的意思是对于这个文件的属主,也就是owner来说,它具有读和执行权限。后面另外两组,分别是属组和其他用户的权限,也就是这个文件的owner所属的用户组的权限和除了这个之外其他用户的权限。
其他信息依次描述了,文件的链接数,文件的属主,文件的属组,文件的大小,文件创建的月,日,年,和最后的文件名。
但是这里需要注意的是,对于目录和文件的权限有不同的意义:
1、r权限:对于文件来说就是能读的权限,对于目录来说,是可以查询该目录下文件名的数据。
2、w权限:对于文件来说,是可以编辑、新增、删除、修改该文件内容的权限,不包含删除文件的权限;对于目录来说,是可以改动该目录结构列表的权限,也就是用有在该目录下建立新目录、删除已经存在的目录(不管该目录的权限是什么)、将已经存在的目录更改名字,移动该目录内的文件、目录位置。
3、x权限:对于文件来说,是可以被系统执行的权限;对于目录来说,是代表用户是否可以进入该目录成为工作目录的权限,就是你是否可以cd进入该目录的意思。
3.2、更改权限、更改属主、属组的命令
改变文件或者目录的权限主要使用的是chmod命令,分为以下几种方法:
1、修改权限,下面这两种方法都可以,第二种的解释是,rwx分别代表4,2,1,744分别是三组权限加起来的值,例如7=4+2+1。
chmod u=rwx,g=r,o=r test01
chmod 744 test01
2、去掉权限和增加权限,这里面的a代表的是全部的意思,这里的意思是给三种用户都去掉执行权限,也可以单独操作,进行权限的增减。
chmod a-x test01
chmod u-x test01
chmod g+w test01
这里还有一个比较常用的chmod的参数,-R,如果我像下面这样写的意思是给test目录下面的所有文件目录递归赋予和test目录相同的权限。
chmod -R u+x /test
更改属主的命令是chown,例如我们将test01文件的属主改为kingbase写法如下:
chown kingbase test01
更改属组的命令是chgrp,例如我们将test01文件的属组也改为kingbase写法如下:
chgrp kingbase test01
更改属主和属组也可以直接写:
chown kingbase:kingbase test01
4、Linux的环境变量
/.bashrc这个文件和./bash_profile这个文件都是用来保存个人的一些个性化设置,例如命令别名、路径等。
但是这两个文件有一定的区别,当shell是交互式登录时,读取.bash_profile文件,例如系统启动、远程登录或者使用su -切换用户的时候;当shell是非交互式登录时读取.bashrc文件,例如在图形界面打开新终端或者使用su切换用户的时候。
添加环境变量直接使用vi命令在文件种填写就行,在填写完使用source命令使修改生效,在可以使用env命令进行查看。如下:
vi /home/kingbase/.bashrc
source /home/kingbase/.bashrc
env |grep kingbase
5、sysctl.conf文件
/etc/sysctl.conf文件是一个允许改变正在运行的Linux系统的接口,包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内存参数永久生效。
在安装kingbase数据库的时候,我们往往会对操作系统的参数进行建议性调整,是系统运行的更加平稳高效。
sysctl -p
6、limit.conf文件
/etc/security/limits.conf文件是用于限制客户可以使用的最大文件数、最大线程数、最大内存等资源。
二、文件和目录操作命令
1、ls命令
使用ls命令查看指定工作目录下面的内容。
输出指定目录种的文件列表:
ls /home/kingbase
输出指定目录中的所有文件:
ls -a /home/kingase
输出指定目录中文件属性详细信息:
ls -l /home/kingbase
ls -lh /home/kingbase
2、pwd命令
显示当前工作目录的命令。
3、cd命令
是切换工作目录的目录,他的参数是切换到目录的路径,可以是绝对路径也可以是相对路径。
a、切换到/home目录
cd /home
b、返回上一级目录
cd ..
c、进入个人的主目录
cd ~
d、返回上次所在的目录
cd -
4、cp命令
cp命令就是copy的缩写,就是复制文件和目录的命令。
a、在当前目录中,将文件复制一份,但是要重新定义这个文件名
cp optimize_system_conf.sh optimize_system_conf_copy.sh
b、复制的时候保留原来文件的所有属性,包括属主,属组,创建的时间等
cp -p optimize_system_conf.sh optimize_system_conf_copy.sh
c、递归复制文件和目录
cp -r optimize_system_conf.sh optimize_system_conf_copy.sh
5、find命令
用于查找目录及目录下的文件。
find xxxx(想要查询的路径) -name xxx(查找名字)
find xxxx -ctime 20 (查找最近20天内更新过的文件)
find xxxx -type f (查找当前目录及其子目录下面的所有文件)
6、mkdir
创建目录的目录,创建目录常用有以下三种方式
在当前目录下面创建一个test目录
mkdir test
在指定目录下面创建一个test01目录,前提是这里的test目录已经存在
mkdir /test/test01
在test不存在的情况下,使用-p的参数,递归多层级创建目录
mkdir -p /test/test01/test02
7、mv命令
mv命令是移动或者重命名的命令。
可以用来给文件或者目录更改名字,原理就是在当前目录移动的时候将名字从新改掉。
mv test test01
可以用来移动文件,比如说将test01文件,移动到/tmp/下面,注意目标文件目录必须存在
mv test01 /tmp/
8、rm目录
用于删除文件或者目录
删除/test/test01.txt这个文件:
rm /test/test01.txt
删除目录使用rmdir,比如删除/test这个目录:
rmdir /test
这样写如果/test文件里面还有目录或者文件的话就会报错,可以加一个参数-r
rm -r /test
这样会出现很多询问性操作,如果比较确定删除的文件或者目录的话可以使用-rf参数直接删除
如果想出现询问性信息,可以使用-I参数。
9、df命令
查看磁盘的使用情况
直接使用df -PhT可以查看
10、touch命令
创建一个指定名字的空文件。
touch xxx.txt
11、命令语法帮助
如果有的时候记不起来这个命令的用法和参数了,可以使用man命令或者在命令之后加一个--help查看相关帮助信息。
man ifconfig
ifconfig --help