• Linux基本操作笔记


    把近期OS课程的(被我翔鄙视的)Linux实验课上的一些东西总结一下

    了解文件系统结构、使用一些基本的指令、运用Linux下的C语言编译环境

    ls指令,cd指令,根目录,用户目录

    Linux的文件系统和MS-Windows的文件系统有很大的不同 。linux只有一个文件树,整个文件系统是以一个树根/为起点的,所有的文件和外部设备都以文件的形式挂结在这个文件树上。Linux是支持多用户的操作系统,每个用户都有自己的个人目录地址,这个地址就用波浪号~来表示。

    ls 指令。全写为List Show,可以显示当前目录下的文件。ls命令有两个最常用的参数:-a 和 -l 。ls -a 可以显示隐藏的文件。ls -l是以长列表显示内容,所以可以看到更加清晰的资料。其他详细用法可以用 ls --help 显示。

    cd 指令。全写为change directory。用处为更改目录。cd如果直接输入,后面不加任何东西,会回到使用者自己的Home Directory。cd后面加两个小数点:cd.. 可以回到上一级目录。

    建立or删除目录or文件

    mkdir 命令用来建立新的目录, rmdir 用来删除已经建立的目录

    rm 这个命令是用来删除文件的
    rm -r 目录名 这个操作可以连同这个目录下面的子目录都删除,功能上和rmdir相似。rm -f 文件名(目录名)这个操作可以进行强制删除。

    使用vi编辑器

    利用vi,在A目录下建立文件sum.c

    vi是Linux(UNIX)世界最强大的文本编辑工具

    Vi的三种状态

    • Command mode :

      控制萤幕游标之移动,字元或游标之删除,搬移复制某区段及进入 Insert mode 下,或者到 Last line mode 。

    • Insert mode :

      唯有在 Insert mode 下, 才可做文字资料输入,按Esc键可到 Command mode 。

    • Last line mode :

      将档案写入或离开编辑器,亦可设定编辑环境, 如寻找字串、列出行号..等。

    刚进入 vi 时处于 Command mode,此时按下aoi 三者任一按键即可进入 Insert mode 编辑文本。

    离开 vi 、存档要进入 Last Line mode 。方法是:

    • 在 Command mode 中按冒号键进入 Last Line mode。

    • 在 Insert mode 中先按 esc 键进入 Command mode,在根据上一条进入 Last Line mode。

    在 Last Line mode 中,根据最后一行输入来结束对vi 的操作。

    • w filename (存入指定档案)
    • wq (写入并离开 vi)
    • q! (离开并放弃编辑的档案)

    cat 指令

    这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文本文件。cat是concatenate的简写。下面是几个简略的用法介绍:

    • cat text

      显示text这个文件

    • cat file1 file2

      依顺序显示file1,file2的内容

    • cat file1 file2>file3

      把file1,file2的内容结合起来,再"重定向(>)"到file3文件中。

    • cat >file1

      结果是会"空出一行空白行",等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生file1这个文件,而file1的内容就是你刚刚输入的内容。

    • cat file1>>file2

      这将变成将file1的文件内容"附加"到file2的文件后面,而file2的内容依然存在,这种重定向符〉〉比〉常用,可以多多利用。

    编译运行C代码

    gcc [ -o execfile ] source

    execfile 是你所希望的执行文件的名称,如果没有加上 -o 选项编译出来的可执行文件会以 a.out 做为文件名。 source 是一个 .c 文件。

    在执行文件的时候,不能直接输入文件名。需要输入路径/文件名。如果要表示当前目录下,可以用一个小数点表示。

    复制文件

    cp -r 源文件(source) 目的文件(target)

    压缩文件

    与在Windows中不同,在Linux中,压缩文件分为两步。第一步要先把文件打包,然后才能对这个打包的文件进行压缩。

    例如要把目录A中的所有文件压缩成sum.tar.gz的操作是:

    更改文件(读、写、运行)权限

    使用ls -l 查看详细信息

    在每个文件和文件夹的前面有一串字符串来代表属性和权限。开头的第一个字符如果是一横线,代表是一个文件。如果是d代表是一个文件夹。后面连续跟着每组三个字符,一共三组的权限指示字符串。前三个小格是拥有者(user)本身的权限,中间三个小格是和使用者同一组的成员(group)的权限,最后三个小格是表示其它使用者(other)的权限。r是读权限,w是写权限,x是运行权限。如果是横线代表没有此项权限

    例如更改权限前的sum.tar.gz是不可执行的文件。

    现在我们用三位的2进制数来表示相应的三小格的权限,1代表打开这一个权限,0代表关闭。

    chmod命令用来改变目录或文件的属性,是linux中一个应当熟悉的命令。假如我们现在要修改sum.tar.gz的权限,使其只允许被所有者修改、读取和运行,而其他用户只能读取或运行。那么我们的修改之后,这个文件的属性字符串应该是这样的:-rwxr-xr-x 对应的二进制位表示就是111 101 101,每三个位用一个十进制数表示,结果就是755。运行结果如下:

    简单Shell脚本

    利用vi编写Linux脚本程序sum.sh,其功能如下:请求用户输入正整型数n,判断n的值,若n小于或等于0,则输出错误信息:<当前时间> Input Error! n = <输入的n的值>
    追加到error.log,并以5号错误代码退出脚本。
    若输入有效,则计算从1到n的所有整数的和,输出到sum.r。

    代码心得:

    • 开头加一句#!/bin/bash 说明是一个脚本
    • 变量不需要声明可以直接用
    • 变量取值的话加美元
    • If while中条件注意空格
    • 变量赋值不加空格
    • Echo重定向:如果需要变量值和字符串相连,加大括号。
    • 没写i自增导致死循环,结果找了很久才找出这个bug
    • If后一定要写fi代表结束
  • 相关阅读:
    Spring异常之版本错误
    SpringMVC格式转化错误之HTTP Status [400] – [Bad Request]
    Spring错误之org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'bookService' is expected to be of type 'pw.fengya.tx.BookService' but was actually of type 'com.sun.proxy.$Proxy1
    02_版本控制工具SVN
    Hibernate异常之命名查询节点未找到
    Hibernate异常之Integer转float(自动类型转换错误)
    Hibernate异常之cascade
    Hibernate异常之关键字错误
    DHCP保留地址批量导入导出
    H3C和CISCO交换机禁止MAC地址通信
  • 原文地址:https://www.cnblogs.com/ZCplayground/p/6761388.html
Copyright © 2020-2023  润新知