• Linux基础


    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

     

      

  • 相关阅读:
    多线程22:线程池
    多线程21:信号灯法
    多线程20:管程法
    多线程19:生产者消费者模式
    多线程18:Lock锁
    多线程17:死锁
    多线程16:CopyOnWriteArrayList
    多线程15:线程同步
    多线程14:三大不安全案例
    业余草 maven异常:Updating Maven Project 的统一解决方案
  • 原文地址:https://www.cnblogs.com/bianfengjie/p/9382907.html
Copyright © 2020-2023  润新知