inux的目录结构介绍
Linux不像windows有cdef磁盘,它是多根的系统 c:\ d:\ e:\,每个盘里有一个根目录,Linux就只有一个根目录/,其他的所有文件都在这个根目录下:
1、/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。
2、/bin,/usr/bin:这两个目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等。
3、/boot: 该目录中存放系统的内核文件和引导装载程序文件,/boot/vmlinuz为linux的内核文件,以及/boot/gurb。一般情况下都是单独分区,分区大小200M即可。
4、/dev: 设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等,常用的是挂载光驱: mount /dev/cdrom /mnt。
5、/etc:
系统配置文件存放的目录,该目录存放系统的大部分配置文件和子目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11(X Window系统有关)、/etc/sysconfig(与网络有关)、/etc/xinetd.d等等,修改配置文件之前记得备份。该目录下的文件由系统管理员来使用,普通用户对大部分文件有只读权限。
6、/home:
系统默认的用户宿主目录,新增用户账号时,用户的宿主目录都存放在此目录下,表示当前用户的宿主目录,test表示用户test的宿主目录。如果做文件服务器,建议单独分区,并设置较大的磁盘空间,方便用户存放数据。用户传上来的数据和其他系统文件隔离,安全性高些!
7、/lib,/usr/lib,/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,该目录下存放了各种编程语言库。典型的linux系统包含了C、C++和FORTRAN语言的库文件。/lib目录下的库映像文件可以用来启动系统并执行一些命令,目录/lib/modules包含了可加载的内核模块,/lib目录存放了所有重要的库文件,其他的库文件则大部分存放在/usr/lib目录下。
8、/mnt,/media: mnt目录主要用来临时挂载文件系统,为某些设备提供默认挂载点,如cdrom。这样当挂载了一个设备如光驱时,就可以通过访问目录/mnt下的文件来访问相应的光驱上的文件了。(我们会挂在一些本地文件在这个目录中)
9、/
opt: 给主机额外安装软件所摆放的目录。如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下。
10、/proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。
11、/root:系统管理员root的宿主目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
12、/sbin,/usr/sbin,/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
13、/tmp: 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
14、/srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。
15、/usr: 应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,/usr/local 存放软件升级包,/usr/share/doc 系统说明文件存放目录。
16、/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容,建议单独分区,设置较大的磁盘空间。
17、/var: 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log。/var/log/message: 所有的登录文件存放目录。/var/spool/mail: 邮件存放的目录。建议单独分区,设置较大的磁盘空间。
18、/run:目录中存放的是自系统启动以来描述系统信息的文件
19、 /sys: 挂载点上挂载sysfs 虚拟文件系统,我们可以通过sysfs 文件系统访问 Linux 内核
在 Linux 系统中,有几个目录是特别需要注意的,以下提供几个需要注意的目录,以及预设相关的用途:
/etc:这个目录相当重要,如前所述,你的开机与系统数据文件均在这个目录之下,因此当这个目录被破坏,那你的系统大概也就差不多该死掉了!而在往后的文件中,你会发现我们常常使用这个目录下的 /etc/rc.d/init.d 这个子目录,因为这个 init.d 子目录是开启一些 Linux 系统服务的 scripts 的地方。而在 /etc/rc.d/rc.local 这个文件是开机的执行档。
/bin, /sbin, /usr/bin, /usr/sbin:这是系统预设的执行文件的放置目录,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的数据都放在这几个目录中,所以如果你在提示字符下找不到某个执行档时,可以在这四个目录中查一查!其中, /bin, /usr/bin 是给系统使用者使用的指令,而 /sbin, /usr/sbin 则是给系统管理员使用的指令!
/usr/local:这是系统预设的让你安装你后来升级的套件的目录。例如,当你发现有更新的 Web 套件(如 Apache )可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在 /usr/local 底下。安装在这里有个好处,因为目前大家的系统都是差不多的,所以如果你的系统要让别人接管的话,也比较容易上手!也比较容易找的到数据!因此,如果你有需要的话,通常都会将 /usr/local/bin 这个路径加到 path 中。
/home:这个是系统将有账号的人口的家目录设置的地方。
/var:这个路径就重要了!不论是登入、各类服务的问题发生时的记录、以及常态性的服务记录等等的记录目录,所以当你的系统有问题时,就需要来这个目录记录的文件数据中察看问题的所在!而 mail 的预设放置也是在这里,所以他是很重要的 。
/usr/share/man, /usr/local/man: 这两个目录为放置各类套件说明档的地方,例如你如果执行 man man,则系统会自动去找这两个目录下的所有说明文件。
说到这里,有些人肯定会有疑问?xshell6呢?去哪儿了?其实xshell6和xftp5作用是一样的。
主要原因:进去xftp5可见文件目录,容易操作;相反xshell6需要用命令行操作查看文件目录。(适合初学者)
基本命令
- 开关机
sync 将数据由内存同步到硬盘中。
shutdown -h 10 #这个命令告诉大家,计算机将在10分钟后关机
shutdown -h now #立马关机
shutdown -h 20:25 #系统会在今天20:25关机
shutdown -h +10 #十分钟后关机
shutdown -r now #系统立马重启
shutdown -r +10 #系统十分钟后重启
reboot #就是重启,等同于shutdown -r now
halt #关闭系统,等同于shutdown -h now和poweroff
最后总结一下,不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。
切换目录
-
./ 当前目录
-
(在Xshell中字体颜色白色的代表文件,蓝色代表文件夹)
-
cd 文件夹名 进入文件夹
-
cd … 退出当前目录
-
cd …/…/ 返回多级目录
-
cd ~ 回到当前用户的目录
-
pwd 查看文件当前路径
-
绝对路径 : / , 相等路径 : …/
-
ls 列出目录
-
clear 清理
-
-a参数 :all 查看全部文件 包括隐藏目录
-
-l参数: 列出所有的文件 包含文件的属性和权限 没有隐藏文件
-
mkdir 目录名 创建一个目录
-
mkdir -p 目录名/目录名 递归创建多级目录
删除目录
rmdir仅能删除空的目录,如果下面存在文件,需要先删除文件,递归删除多个目录-p参数即可
(在linux系统中 写文件名时打出两个字母以上 可以按住TAB键 linux系统可以自动补全 文件名)
- cp 拷贝文件
- rm 移除文件目录
- f忽略不存在的文件,不会出现警告,强制删除!
- r递归删除目录!
- i互动,删除询问是否删除
- rm -rf / #系统中所有的文件就被删除了,删库跑路就是这么操作的!
- mv 移动文件或目录
- 如果是两个文件 可以移动 如果是一个
文件可以重命名。
1、chgrp :更改文件属组
chgrp [-R] 属组名文件名
-R :递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown :更改文件属主,也可以同时更改文件属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3、chmod :更改文件9个属性(必须要掌握)
你没有权限操作此文件!
chmod [-R] xyz 文件或目录
Linux文件属性有两种设置方法, -种是数字(常用的是数字) , -种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。先复习一下刚刚上面提到的数据:文件的权限字符为: [-rwxrwxrwxJ ], 九个权限是三个三个一-组的!其中,我们可以使用数
字来代表各个权限,各权限的分数对照表如下:
- chomd 777+文件名 所有的人都可访问该文件了
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
● cat由第- -行开始显示文件内容
● tac从最后一行开始显示,可以看出tac是cat的倒着写!
● nl显示的时候,顺道输出行号!
● more - -页- -页的显示文件内容
.less与more类似,但是比more更好的是,他可以往前翻页!.
● head只看头几行
● tail只着尾巴几行
你可以使用man [命令来查着各个命令的使用文档,如: man cp。
退出 q
查询命令 /
拓展: Linux链接的概念(了解即可! )
Linux的链接分为两种:硬链接、软链接!
硬链接: A—B ,假设B是A的硬链接,那么他们两个指向了同-一个文件!允许-个文件拥有多个路径,用户可以通过这种机制建立.
硬链接到一些重要文件上,防止误删!
软链接:类似Window下的快捷方式,删除的源文件,快捷方式也访问不了!
total 16
-rw-r--r-- 2 root root 0 Jul 21 17:29 f1
-rw-r--r-- 2 root root 0 Jul 21 17:29 f2
lrwxrwxrwx 1 root root 2 Jul 21 17:31 f3 -> f1
drwx------ 3 redis redis 4096 May 20 09:16 redis
drwxr-xr-x 3 root root 4096 Jul 21 15:16 test1
drwxr-xr-x 2 root root 4096 Jul 21 15:00 wj
drwx------ 3 www www 4096 Jul 21 14:52 www
[root@WJ home]# cat f2
[root@WJ home]# echo "i love jxy" >>f1 # 写入数据到f1文件中
[root@WJ home]# ls
f1 f2 f3 redis test1 wj www
[root@WJ home]# cat f2
i love jxy
[root@WJ home]# cat f1
i love jxy
[root@WJ home]# cd f3
-bash: cd: f3: Not a directory
[root@WJ home]# cat f3
i love jxy
Vim 编辑器
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入-个字符, i被当作了一个命令。
以下是常用的几个命令:
**
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。 如果是编辑模式,需要先退出编辑模式] ESC**
若想要编辑文本:启动Vim ,进入了命令模式,按下i,切换到输入模式。
命令模式只有一-些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
除了.上面简易范例的i, Esc, :Wq之外,实vim还有非常多的按键可以使用。
5)末行模式下的相关操作(!)
☆ 如何进入末行模式
进入末行模式的方法只有一个,在命令模式下使用冒号:的方式进入。
☆ 末行模式下我们能做什么
文件保存、退出、查找与替换、显示行号、paste模式等等
☆ 保存/退出(!)
:w => 代表对当前文件进行保存操作,但是其保存完成后,并没有退出这个文件
:q => 代表退出当前正在编辑的文件,但是一定要注意,文件必须先保存,然后才能退出
:wq => 代表文件先保存后退出(保存并退出)
如果一个文件在编辑时没有名字,则可以使用:wq 文件名称,代表把当前正在编辑的文件保存到指定的名称中,然后退出
:q! => 代表强制退出但是文件未保存(不建议使用)
☆ 查找/搜索(!)
切换到命令模式,然后输入斜杠/(也是进入末行模式的方式之一)
进入到末行模式后,输入要查找或搜索的关键词,然后回车
如果在一个文件中,存在多个满足条件的结果。在搜索结果中切换上/下一个结果:N/n (大写N代表上一个结果,小写n代表next)
如果需要取消高亮,则需要在末行模式中输入:noh【no highlight】
第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等
**快捷切换光标:**数字< space>那个n表示 [数字] , 例如20。按下数字后再按空格键,光标会向右移动这一行的n个字符。
wq写入保证
账号管理
添加用户
- useradd -选项 用户名
- -m :自动创建这个用户的目录
- -G: 用户分配组
- linux中一切皆文件这里的添加用户说白了就是往某一个文件中写入用户的信息了! /etc/passwd 。
删除用户
userder -r wb
切换用户
: su 用户名
退出当前用户
exit
查看主机名:hostname 和修改主机名 hostname +名字
用户组
属主、属组
每个用户都有一一个用户组,系统可以对一一个用户组中的所有用户进行集中管理(开发、测试、运维、root )。不同Linux系统对用
户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
- 添加用户组
- 删除用户组
- 修改用户组
- 切换用户组
#扩展
/etc/passwd: 用户名:口令(登录密码,我们不可见):用户标识符:组标识符:注释性描述:主目录:登录
- 这个文件中的每一-行都代表这一 个用户,我们可以从这里看出这个用户的主目录在那里,可以看到属于哪-一个组 !
etc/group 用户组的所有信息都存放在/etc/group文件中。
登录口令:把真正的加密后的用户口令字存放到/etc/shadow文件中,保证我们密码的安全性!
磁盘管理命令
df 查看磁盘使用了多少 (df -h)显示使用了多少兆
du 在文件中可查看 du-a 可查看到子文件夹
进程管理命令
进程的基本概念
1、在Linux中,每一个程序都是有自己的一个进程,每一一个进程都有一个id号!
2.每一个进程呢,都会有一个父进程!
3、进程可以有两种存在方式:前台!后台运行!
4、一般的话服务都是后台运行的,基本的程序都是前台运行的!
命令
ps查看当前系统中正在执行的各种进程的信息
- ps -help 查看帮助文档
- -a显示当前终端运行的所有的进程信息
- -u以用户的信息显示进程
- -x显示后台运行进程的参数!
ps -aux 查看所有的进程
- 在Linux这个叫做管道符 A|B
#grep查找文件中符合条件的字符串! - ps -aux|grep mysql 查看mysql的命令
查看 pstree -pu 进程树
结束进程:杀掉进程,等价的window 结束任务
- kill -9 进程的id: 表示强制结束进程
-dev表示开发模式运行,后台启动
nohup ./consul agent -data-dir=tmp/consul -config-file=conf/server.json -client=0.0.0.0 -dev > consul.log 2>&1 &