1、linux简介
Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux也是有界面,但是不是其强项,界面占有资源比较大,界面的漏洞比较多。Linux的强项在命令,所以Linux系统适合做服务器。
Linux由Uninx发展而来,Uninx为了解决并发,但是最后以失败告终,但是保留了文件系统。但是,linux is not unix!
2、文件系统
首先要知道的是:文件系统 != 文件类型!
Linux的核心: 文件系统。
在Linux中:一切皆文件!
对于操作系统(比如Windows和Linux),大家对Windwos支持的文件系统可能比较熟悉,NTFS是Windows操作系统主流文件系统,NTFS的每个卷可以支持2^32-1个文件,一个文件最大可到达16TB。
具体参考:https://blog.csdn.net/qq_29131783/article/details/68951592
大家而对Linux操作系统所支持的文件系统也许比较陌生。Linux系统因为使用VFS,所有其核心可以支持如ext、ext2、ext3、ext4、JFS2等的多种的文件系统。下面说明其支持的几个重要的文件系统。
-
ext:专门为linux核心做的的第一个文件系统。单个文件最大限制:未知;该文件系统最大支持2GB的容量。ext2
- ext2: 由Rémy Card设计,用以代替ext,是LINUX内核所用的文件系统。单个文件最大限制2TB;该文件系统最大支持32TB的容量。
-
ext3:一个日志文件系统。单个文件最大限制16TB,该文件系统最大支持32TB的容量。
-
ext4: Theodore Tso领导的开发团队实现,Linux系统下的日志文件系统。单个文件最大限制16TB,该文件系统最大支持1EB的容量。
- JFS2: 一种字节级日志文件系统,该文件系统主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。
Linux文件系统具体参考:https://blog.csdn.net/new0801/article/details/63687127
3、linux 目录结构
- / 表示根目录,每一个文件和目录从根目录开始。一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样
- bin :binary 二进制意思,可执行二进制文件的目录,在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。例如:ps、ls、ping、grep、cp。因为机器 它只读懂 二进制文件 (0 1)。
- boot 系统Kernel的配置文件(引导);放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。
- dev 存放磁盘文件(某块磁盘需要挂载在某个目录下,才可以去读写磁盘上的数据) ,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
- etc 系统的配置文件(Editable Text Configuration),不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份
- home 家目录,创建的所有目录,都会自动在home目录下创建一个对应的家目录,~表示当前用户的家目录,~test表示用户test的家目录。
- lib libary 类库的意思,系统使用的函数库的目录,所有的调用类库以及程序,包含支持位于/bin和/sbin下的二进制文件的库文件,都在目录下,库文件名为 ld*或lib*.so.*。
- opt option 操作文件放在这边(安装程序的时候,默认安装的时候,会用到这个文件),给主机额外安装软件所摆放的目录。
- root 系统管理员root 的家目录,只有root权限可以操作,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
- sbin :super binary 管理员权限执行的文件,放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
- tmp temporary 临时文件,一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
- usr (Unix System Resource) 安装系统软件,应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间。
- var:variable 可变的 可更改的文件存放路径,放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
4、常用Linux 命令
原则: 一切Linux 命令,都是 一个或者多个英文字母的缩写 1、cd change directory 切换目录
1、cd
cd change directory 切换目录
. 表示当前目录 .. 表示上一层目录 ../../... 表示上上上..层目录,等依次类推。直接输入cd 命令 会切换 root目录下。
cd /root/Docements # 切换到目录/root/Docements cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录 cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录
cd ~ # 切换到上层目录中的当前用户目录中
2、ls
list 列表,列出文件与目录的命令
-l :列出长数据串,包含文件的属性与权限数据等 -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件容量以较易读的方式(GB,kB等)列出来 -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
ls -la: 显示当前目录下包括隐藏文件/目录的所有文件的详细信息。
3 、文件类型
drwxr-xr-x 5 bianbian staff 160 7 3 10:26 .eclipse drwxr-xr-x 3 bianbian staff 96 7 19 11:53 .idlerc -rw------- 1 bianbian staff 22897 7 26 11:45 .mysql_history drwxr-xr-x 5 bianbian staff 160 7 11 11:11 .oracle_jre_usage -rw------- 1 bianbian staff 10 7 25 11:50 .rediscli_history
d :directory 表示目录
- :一般文件类型
l :链接文件
软连接: pip -> /usr/local/python/bin/pip2.7 链接到那个程序
硬链接:python2.6 链接信息给你隐藏了
4、chmod
chmod change mode 更改模式(权限)
对于文件权限:
r: read 读 4;w:write 写 2;x: exectue 执行 1
111 101 101
2**2 + 2**1 + 2**0
4 2 1
第一种赋权方式:
chmod u(user)+(-)r ftpadmin 赋用户权限
chmod g(group)+(-)r(wx) ftpadmin 赋用户组权限
chmod o(other)+(-)r ftpadmin 赋其他用户权限
chmod a(all)+(-)r ftpadmin 赋所有权限权限
第二种赋权方式:(总结)
chmod 755 111 赋执行权限
5、用户和用户组
用户组: groupadd tudi 创建一个用户组
一个用户一定会有一个用户组:
单独创建一个用户: useradd tudi
用户:useradd tudi -g tudi
查看用户信息,以及用户所属:
/etc/passwd 只是root权限看的
具体参考:https://www.cnblogs.com/vfo-Lee/p/6519665.html
6、grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
命令格式:
grep [option] pattern file
它的常见参数如下:
-o :output之意,用于指定生成一个可执行文件的文件名 -c :用于把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序 -I :增加编译时搜索头文件的路径 -L :增加编译时搜索静态连接库的路径 -S :把源文件生成汇编代码文件 -lm:表示标准库的目录中名为libm.a的函数库 -lpthread :连接NPTL实现的线程库 -std= :用于指定把使用的C语言的版本
grep具体学习请参考:https://www.cnblogs.com/forestwolf/p/6413916.html
小结:关于Linux暂时就写那么多,更多相关linux命令,请参考:https://www.cnblogs.com/bianfengjie/p/9213180.html