zoukankan      html  css  js  c++  java
  • Linux入门学习笔记-上

    GUI 图形方面的shell ------〉windows 、mac os
    CLI 命令行方面的shell -----〉比图形强大

    *提示符*
    # root用户 (最高权限)
    $ 普通用户

    命令一般由 (选项、命令、参数) 组成。

    uname 显示系统的基本信息
    -r 内核版本号
    -a 显示所有信息==(--all)

    *命令后面加上 &将这个命令放到后台运行。*

    使用Tab键来自动补全命令(注意:无法自动补全参数,)
    按2下Tab显示所有命令

    通过history可查看输入过的全部命令。
    !!重复前一个命令(用上也可以。还方便)
    !字符 重复前一个以“字符”开头的命令
    !num 按照历史记录的序号执行命令
    !?abc重复之前包含abc的命令
    !-n重复n歌命令之前的那个命令

    通过Ctrl+r来在历史记录中搜素命令(reverse-i-search)“:
    重新调用前一个命令中的参数Esc.(按完Esc键之后按.)

    *命令行通配符*
    *匹配零个或多个
    ?匹配任意一个字符
    [0-9]匹配一个数字范围
    [abc]匹配列表里任何字符
    [Λabc]匹配列表以外的字符

    *切换用户*
    su - 切换到root用户(切换终端)
    sudo 使用管理员权限运行命令

    显示当前用户信息
    id
    修改当前用户密码
    passwd username
    首先输入当前密码
    然后输入的是新密码

    *添加用户*

    1-首先切换到root模式下输入:sudo adduser 用户名

    2-进入这个用户查看其所属组:groups loutest(结果表示:其中冒号之前表示 用户,后面表示该用户所属的用户组)

    3-使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限(在 centos上可能会出现usermod: group 'sudo' does not exist

    因为centos默认没有sudo组,可以将你的用户指向wheel用户组, wheel用户组同样有sudo权限所以在centos上可以使用如下命令添加用户组

    sudo usermod -a -G wheel userName

    *
    *
    *管理后台作业*
    jobs 查看当前在后台运行的作业
    可使用ctrl+c终止 或者 使用ctrl+z暂停
    bg 编号 控制进程继续在后台运行
    fg 编号 继续在前台运行

    *Linux文件系统基本结构*

    1、Linux文件系统结构
    1)、Linux文件系统为一个倒转的单根树状结构
    2)、*文件系统的根为“/"*,在安装操作系统时划分为2个区,一个交换分区,作为虚拟内存;一个是根目录,liunx中所以的文件、文件系统都是存在根目录下面。

    ![img](file:///C:UsersadminAppDataLocalTempksohtml1812wps1.jpg)
    3)、linux文件系统严格区分大小写,大小写敏感
    4)、路径使用”/"分割,(windows中使用“”)

    2、当前工作目录
    1)、每一个shell或系统进程都有一个当前的工作目录:~显示当前所在目录。
    2)*使用pwd命令可以显示当前的工作目录*

    3、文件名称
    1)、文件的名称大小写敏感
    2)名称最多可以使用255个字符
    3)除了正斜线外都是有效字符
    4)*通过touch命令可以创建一个空白文件或者更新已**存在文件**的**修改**时间*
    5)*以“."开头的文件为隐藏文件*

    4、列出目录内容:ls命令用了列出目录内容
    1)ls -a :显示所有文件(包括隐藏文件):隐藏文件绝大多是都是配置文件,不要去动这些文件。
    2)ls -l:显示详细信息
    3)ls -R:递归显示子目录结构
    4)ls -ld + 目录 显示目录和链接信息

    5、查看文件类型:file
    file + 目标文件

    6、绝对路径于相对路径
    1)绝对路径:以”/”开头,递归每级目录直到目标的路径。不受当前所在工作目录限制
    2)相对路径:以当前目录为起点,到达目标的路径。受当前所在目录限制
    3)cd用来切换目录:cd .切换到当前目录,cd ..切换到上一级目录,cd ~切换到家目录, cd -上一个工作目录。cd回到家目录。

    *文件管理操作*

    复制文件:cp (-r/-v/-rv) 源文件 目标文件

    “-r” 可以复制文件夹
    “-v”显示复制的详细信息,显示复制的过程
    移动文件:mv 源文件 目标目录/重命文件名

    删除 文件: rm 目标文件

    -i(交互式-有提示)

    -r(递归的删除包括目录中的所有内容)

    -f(强制删除-没有交互式警告提示)
    创建目录:mkdir
    删除目录 rmdir (不能删除非空文件夹)

    *Linux系统目录架构*

    bin 含常用可执行二进制文件,即命令;
    boot 含系统引导、启动文件、vmlinux内核文件;
    dev 硬件设备文件;
    etc 几乎所有系统相关配置文件;
    home 家目录;
    root root用户家目录;
    lib 所有库文件;
    media 实时挂载目录;
    mnt 一般挂载目录;
    opt 一般用于装大型软件;
    proc 系统的一些实时信息,是虚拟文件夹,存在内存中;
    sbin 只有root用户才能运行的命令;
    sys 系统底层硬件的信息;
    tmp 临时目录;
    usr 用于装应用软件;
    var 经常变化的信息,如log;

    *Linux系统常用命令*

    一,日期和时间
    1,date 查看和设置系统的日期和时间
    2,-u,来查看UTC时间
    3,date +%y--%m--%d 其中“--”可以自定义更 改,这是更改时间的显示格式
    4,date -s 设置时间,这个需要切到root用户才能有权限更改
    5,date查看的是操作系统的时间,他是从硬件的时间中来的,可以直接用clock(hwclock)来查看
    6,cal来打印日历
    7,uptime,用来查看系统运行了多久,系统的用户,系统的负载
    注:可以用 man uptime来查看对uptime的解释

    二,输出,查看命令
    1,echo:显示输入的内容,你输的啥就给你输出啥(格式:echo “内容”)
    2,cat:来显示文件的内容,它直接显示出所有的文件内容,很不人性化,麻烦
    3,为了方便查看,避免cat的不便,可以用已下几个命令
    4,more:用于翻页显示内容,但是不能向前翻页
    5,less:相对于more 可以上下来回翻页
    6,head:显示文件的头几行(默认10行)
    -n:来指定显示开头的n行
    7,tail:显示末尾的几行(默认10行)
    -n:来指定显示末尾的n行
    -f:追踪显示文件的更新,当我们用-f指令后,命令 行就会卡在这里,等待文件更新再显示出新内容。一般用于查看日志,持续显示新加入的内容

    三,查看硬件信息
    1,lspci 用于查看PCI设备(如声卡网卡等)
    -v查看详细信息
    这几条命令相当与Windows中点属性点设备管理器一样
    2,lsusb 查看USB设备,如摄像头等
    -v也是显示详细信息
    3,lsmod 查看当前加载的所有模块(模块即windows中相当于驱动)

    四,关机重启
    格式:shutdown【关机/重启】时间
    立即关机:shutdown -h now=poweroff
    立即重启:shutdown -r now=reboot
    n分钟后关机:shutdown -h +n
    定时关机:shutdown -h xx:xx

    五,归档和压缩
    1,zip用以压缩:zip xxx.zip file (把file这个源文件压缩成xxx.zip是目标文件)
    2,unzip xxx.zip 是解压文件
    3,gzip:也是一种压缩方式
    4,tar:一个归档命令,就是把许多文件打包成一个文件
    -cvf 名字.tar liunxfile :把Linuxfile这个文件夹中的文件打包归档成一个输出 .tar格式的文件,可以用来备份,但是他没有压缩哦
    -cvf out.tar 把一个归档的tar文件释放到当前文件下
    -cvzf: 在cvf命令下多了个z命令,就是归档并压缩一个文件。这里调用了一次gzip命令
    格式:tar -cvzf xxx.tar.gz/要保存的目录下
    其实用的最多的还是归档并压缩命令

    六,查找命令
    在我们的操作系统中寻找文件
    1,lacate 关键字 快速查找
    它需要预先建立数据库,比如你新建立了一个文件,然后用locate去查找这个命令,是找不到的。这个时候你可以用“updatedb"命令先更新数据库,然后在查找。
    2,find 支持很多查找条件,所以叫高级查找
    格式:find 查找位置 查找参数
    find .-name linuxcast "."表示在当前文件夹
    xxx表示关键字这句话表示在当前文件夹下所有包含“Linuxcast”关键字的文件
    find /-name *.conf 在/根分区下查找所有.conf结尾的文件
    find /-perm 777查找硬盘中所有权限是777的文件
    find /-type d 查找目录类型文件。d是目录,也可以跟l ,表示查找所有的连接
    find .-name "a *"-exec ls -l {};
    这句话表示查找所有以“a开头的文件,然后传送给“ls -s"这个命令去执行;其中{} ;是固定格式。-exec也是固定格式,执行的意思;
    find的后缀参数还有很多,可以直接在网络查找或者help文件

    *Vi文本编辑器*

    vi 命令行下面的文本编辑工具
    vim是vi的增强版本
    命令vim可以启动vim编辑器
    一般可以通过vim+目标文件路径的形式使用vim
    如果目标文件存在,则vim打开该文件
    若目标文件不存在,则新建该文件

    vi拥有三种模式:命令模式、插入模式和ex模式
    任何模式都可以通过esc键回到命令模式
    在命令模式中按”i“键可以进入到插入模式,在插入模式中按esc可以返回命令模式
    在命令模式中按”:“可以进入ex模式,在ex模式中可以保存、修改和退出
    命令模式常用的命令如下:
    i 在光标前插入文本
    o 在当前行的下面插入新行
    dd 删除正行
    u 撤销上一个操作
    yy 复制当前行
    n+yy 先按5,接着按yy,则是将5行内容复制
    p 粘贴
    r 替换当前关键字
    / 查找关键字

    EX模式
    :w 保存当前修改
    :q 退出
    :q! 强制退出
    :x 保存并退出
    :setr number 显示行号
    :! 执行一个系统命令并显示结果
    :sh 切换到命令行,使用ctrl+d切换回vim

    *磁盘基本概念*

    /dev/sda,/dev/sda1, /dev/sda2: 第一块硬盘的第一、第二分区(sd表示SATA接口第一个表示硬盘,后面两个表示分区)
    分区不是硬盘的物理功能,而是软件功能。

    主流分区:
    MBR:Master Boot Record,主引导记录,传统分区机制,应用于绝大多数使用BIOS的PC设备,苹果电脑就不使用BIOS。
    * 支持32bit和64bit系统
    * MBR支持分区数量有限
    * MBR只支持不超过2T的硬盘,超过2T的硬盘将只能使用2T空间(有第三方解决方法)
    * MBR结构,占了硬盘头512个字节, 前446字节是引导代码,后16字节 x 4 = 4个分区表,最后二个字节一定是55, AA。
    最多4个主分区,可以包含3个主分区 + 一个扩展分区,然后在扩展分区上面创建逻辑分区(IDE最多63个逻辑分区,SCSI最多创建15个分区)。

    GPT:GUID Paration Table是一个较新的分区机制,解决了MBR很多缺点。
    * 支持超过2T的硬盘
    * 向后兼容MBR
    * 必须在支持 UEFI 的硬件上才能使用,UEFI 是由Intel提出的取代 BIOS 的新一代硬件引导系统。
    * 必须使用64bit系统
    * Mac、Linux系统都能支持GPT分区格式
    * Windows7 64bit、windows Server 2008 64bit支持GPT

    fdisk :分区工具 来自IBM的老牌分区工具,支持绝大多数操作系统。fdisk是基于MBR的分区,所以如果需要使用GPT,则无法使用fdisk进行分区。

    fdisk 命令只有具有超级用户的权限才能够运行
    使用fdsik -l可以列出所有安装的磁盘及其分区信息
    容量大小 = 磁头大小 * 磁头数量 *扇区数量 *柱面数量

    使用fdisk /dev/sda(目标硬盘) 可以对目录磁盘进行分区操作
    进入fdisk交互窗口【m 查看帮助说明】:
    a toggle a bootable flag 切换可以开机
    b edit bsd disklabel BSD磁盘标签编辑
    c toggle the dos compatibility flag 切换到拒绝兼容标志
    d delete a partition 删除分区
    l list known partition types 列出已知的分区类型
    m print this menu 打印此菜单
    n add a new partition 添加新的分区
    {
    e extended (扩展分区)
    p primary partition(1-4) 主分区
    创建步骤如下:
    1.选着分区类型
    2.选着分区号
    3.选着起始分区柱面
    4.选着末分区柱面(柱面难算可使用 +大小和单位大写,eg: +2G)
    创建主分区和拓展分区后会出现 l logical(5 or over) 创建逻辑分区
    }

    o create a new empty DOS partition table 创建一个新的空分区表
    p print the partition table 打印分区表
    q quit without saving changes 退出不保存更改
    s create a new empty Sun disklabel
    t change a partition's system id 修改分区ID
    u change display/entry units
    v verify the partition table
    w write table to disk and exit 写入磁盘并退出
    x extra functionality (experts only)
    l logical (5 or over)
    p primary partition (1-4)
    Partition number (1-4): 2
    First cylinder (263-2610, default 263):
    Using default value 263
    Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610):

    为方便系统识别需要修改ID(system id)linux系统默认为83
    可以选择L查看ID对应类型,输入类型后回车

    目前操作还未写入硬盘,需要执行 write table to disk and exit进行保存退出
    若内核未重新读取分区表,可使用partprobe更新内核分区表

    *文件系统*

    操作系统通过文件系统管理文件及数据,磁盘或分区需要创建文件系统之后才能够让操作系统使用,创建文件系统的过程又称之为格式化。
    没有文件系统的设备又称之为裸(RAW)设备
    常见的文件系统有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等等
    cent os 6默认的是ext4
    cent os 5默认的是ext3
    文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等
    Linux支持的文件系统:ext2、ext3、ext4、fat、vfat、nfs、iso9660、proc、gfs、jfs

    mke2fs 用来创建文件系统
    mke2fs -t ext4 /dev/sda3 创建一个文件系统
    -b 指定文件系统块大小
    -c 建立文件系统时检查坏损块
    -L 指定卷标
    -j 建立日志文件系统

    mkfs也可以用来创建文件系统,相对于mke2fs比较简单,但是无法进行精细化的控制

    dumpe2fs 可以用来查看分区的文件系统信息,一般用来进行计算机性能调整
    dumpe2fs /dev/sda1

    带日志的文件系统拥有较强的稳定性,在出现错误时可以进行恢复
    带日志的文件系统哦会使用一个叫做”两阶段提交“的方式进行磁盘操作
    文件系统将准备执行的食物的具体内容写入日志
    文件系统进行操作
    操作成功后,将事物的具体内容从日志中删除
    这样做会丧失一些性能

    e2label 该命令可以用来问文件系统家标签
    e2label /dev/sdb1 显示sda2的系统标签
    e2label /dev/sdb1 LINUX 将sda2的标签设置为LINUX

    fsck 检查并修复损坏的文件系统
    fsck /dev/sda2
    使用参数-y 参数不提示而直接进行修复
    若文件系统损坏比较严重,请使用-t参数指定文件系统类型
    对于未识别的文件,则会放在lost+found目录中
    系统每次启动都会对磁盘进行fsck操作

    *挂载操作*

    磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用
    Windows或Mac系统会自动挂载,但是Linux需要手工挂载

    通过mount命令将格式化好的磁盘或分区挂载到一个目录上
    mount /dev/sda3 [要挂载的分区] /mnt[需要挂载的地方]

    使用不带任何参数的mount来显示已经挂载好的文件系统
    -t 指定文件系统的类型
    -o 指定挂载项
    ro,rw 以只读或读写形式挂载,默认是rw
    sync 代表不适用缓存,而是对所有操作直接写入磁盘
    async 代表使用缓存,默认是async
    noatime 代表每次访问文件时不需要更新文件的访问时间
    remount 重新加载文件

    umount用来卸载已经挂载的文件
    umount 文件系统/挂载点
    umount /dev/sda3

    如果出现device is busy,则表示该文件系统正在被使用,无法卸载,可以使用下面的命令查看是谁在使用:
    fuser -m /mut
    也可以使用命令lsof查看正在被使用的文件
    lsof /mnt

    配置文件/etc/fstab 用来定义需要自动挂载的文件系统,fstab中每一行代表一个挂载配置
    配置格式
    /dev/sda3[需要挂载的设备] /mnt[挂载点] ext4[文件系统] defaults[挂载选项] 0 0 [dump、fsck相关选项]
    要挂载的设备LABEL=LINUXCAST取代/dev/sda3
    mount -a 命令会挂fstab中定义的自动挂载项

    作者:hkb
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    weibo4j中的 jar解释
    Android使用系统Intent实现分享功能及将应用加入分享列表++分享邮箱实现
    Android ListView 技巧 (一) Android ListView Header
    [Android]使用AChartEngine画柱状图 .
    【TCPIP】握手挥手详解
    python : import this. 如此幽默,让人不得不爱
    Forbidden (403) CSRF verification failed. Request aborted.
    Django修改model如何同步数据库
    程序员的7种武器【转】
    Django Admin 录入中文错误解决办法
  • 原文地址:https://www.cnblogs.com/kbhome/p/12706274.html
Copyright © 2011-2022 走看看