• java预备作业


    作业一

    1.你对专业的认识和期望是什么:

      我们的专业名字是叫做信息管理与信息系统的,而我们的专业导论课也是叫做“电子政务导论”,所以我们所应该学习与掌握的知识也与之相对应的。以系统化的信息管理手段对信息进行管理,以达到简化、自动化政务工作平台的目的。
      对此,我的期望是可以学习和掌握相关的知识,不止步于纸上谈兵,能够较为熟练地运用相关知识解决面对的困难或任务。

    2.上学期代码总量,以及对于这学期10000代码的看法:

      上个学期中总代码量大概7000行,全部为c语言,在暑假中大概有20000行,大部分为c++,但由于暑假时间相对集中,而本学期还需兼顾其它学科,所以对于本学期实践10000行代码,可能有点难度,但应该能够实现。

    3.对于学习c语言的经验与教训:

      我觉得我c语言学得还行,我认为学习中比较好的经验是能够做到不会就想,不懂就问,对于碰到的问题总是会付出足够的思考,并积极尝试,而对于实在没有办法的题目,也会去寻求帮助,使得问题能够在一定时间内得到解决,不积贫积弱。但其实也还是存在着不足,比如我面对问题总是过于个人化,没有与他人一同讨论的习惯,导致我的思路一直都比较封闭,没有办法与他人产生交流。

    作业二

    1.VMWare上安装linux系统过程和所遇到的问题及解决方法:

    • 过程:

      通过一些网上的资料发现网上一边倒地认为VMWare在性能和功能上是要强过VirtualBox的,于是先在网上找到了VMWare的破解软件,下载好并用网上的密钥成功打开程序。一开始直接在csdn上搜索安装方法,根据一部分网上的教程,然后发现开始没有安装操作系统这个过程,导致一直都没有办法成功打开。后来通过向同学求助才用时发现问题并得以成功解决。

    • 问题:在开始安装系统时,按照一些网上的教程并不能成功打开系统

      之前对于系统的基础基本是零,所以在安装系统时也只能照葫芦画瓢,一步一步按照网上的方法来做,因为开始我对于系统的知识不够了解,而找的教程也不够详细,导致我在开始安装时未能意识到还有安装操作系统这一步骤。于是在运行程序时也总是无法打开,后来请教同学才弄明白其中的原因。然后安装了ubunto后问题也迎刃而解了。

    2.对于linux系统的学习:

    命令查找大全有关内容请点击查看

    对于学习过程的记录及总结(为了方便补充知识,问题采用了边写边问边写解答的形式 内含部分吐槽 ):

    • 一些快捷键的应用:

    CTRL+ALT+T:打开终端
    CTRL+SHIFT+T:新建一个标签页,一般会乃至三个标签页
    ALT+n:切换到第几个标签页
    Tab这个可以用来补全一些命令
    上下键盘可以用来切换命令历史,可以让你省很多事
    CTRL+C中断程序的进行,虽然和windows的有很大出入,但其实和cb中还是有一样的效果(用于及时止损

    • man

    是一个在我们忘了某些命令的用途时可以用来查寻用法的工具。可以直接接命令的名字也可以以main 2 cd类似的形式。

    附:
    1是普通的Linux命令
    2是系统调用,操作系统的提供的服务接口
    3是库函数, C语言中的函数
    5是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
    6是给游戏留的,由各个游戏自己定义
    7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
    8是系统管理用的命令,这些命令只能由root使用,如ifconfig

    当然,也可以做到访问关键字,如:man -k key1 | grep key2 | grep key3 | ...

    • cheat

    这不是一个系统自带的命令,得自己下,用途(不是用法)和man相近,用法示例:cheat find

    Linux 基础入门(新版)课程:

    一些快捷键

    按键 作用
    ctrl+d 键盘输入结束或退出终端
    Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
    Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
    Ctrl+a 将光标移至输入行头,相当于Home键
    Ctrl+e 将光标移至输入行末,相当于End键
    Ctrl+k 删除从光标所在位置到行末
    Alt+Backspace 向前删除一个单词
    Shift+PgUp 将终端显示向上滚动

    用户及文件权限管理(链接内容点击查看)

    -a 打印能打印的全部
    -d 打印死掉的进程
    -m 同am i,mom likes
    -q 打印当前登录用户数及用户名
    -u 打印当前登录用户登录信息
    -r 打印运行等级

    su <user>可以直接切换到用户user
    su -l <user> 切换用户,同时环境变量也会跟着改变成目标用户的环境变量
    adduser 新建用户
    passwd 设置密码
    sudo <cmd>以特权级别行使cmd命令

    • group

    groups创建一个用户组
    etc group |sort | sort 表示将读取的文本进行一个字典排序再输出
    /etc/group 的内容包括用户组(Group)、用户组口令、GID及该用含的用户(User),每个用户组一条记录。
    cat /etc/group | grep -E "shiyanlou"查找这个内容的文件
    sudo usermod -G sudo [用户名]赋予用户得root权限,需root权限用户操作
    sudo useradd -G [用户组][用户名]将用户加入用户组
    sudo deluser lilei --remove-home删除用户

    • 文档

    touch新建文件

    $ cd /home/lilei
    $ ls iphone6
    $ sudo chown shiyanlou iphone6
    

    转移文件所有者

    • 修改权限

    chmod控制文件如何被别人所利用

    ‘.’表示当前目录,‘..’表示上一级目录,‘.’开头的文件为隐藏文件
    -a显示目前所有文件,包括隐藏文件
    -l显示文件及其详细信息
    -d把目录像文件一样显示,而不是显示其下的文件
    -lh以易读形式来显示大小
    s和Ss是显示文件大小,S为按文件大小排序

    • cd

    cd [dirName]切换当前目录到目标目录

    目录结构及文件基本操作

    • 采用FHS标准
    • 绝对路径:从根目录出发
      相对路径:从当前目录出发
      .当前目录
      ..上一级目录
      ../../上一级的上一级目录

    ls: 列出目录
    cd:切换目录
    pwd:显示目前的目录
    mkdir:创建一个新的目录(可以创建多级目录-p
    rmdir:删除一个空的目录
    cp: 复制文件或目录(自制目录要有-r-R
    rm: 移除文件或目录(强制删除-f,对目录操作也要有-r-R
    mv: 移动文件与目录,或修改文件与目录的名称

    文件内容查看:
    cat: 由第一行开始显示文件内容
    tac: 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
    nl: 显示的时候,顺道输出行号!
    more: 一页一页的显示文件内容
    less: 与 more 类似,但是比 more更好的是,他可以往前翻页!
    head: 只看头几行
    tail: 只看尾巴几行
    file:查看文件类型

    关于vim(点击有惊喜哦)

    • 命令模式
    • vim 打开文件
    按键 说明
    h
    l 右(小写L)
    j
    k
    w 移动到下一个单词
    b 移动到上一个单词
    • 插入模式(按i或a进入)
    命令 说明
    i 在当前光标处进行编辑
    I 在行首插入
    A 在行末插入
    a 在光标后插入编辑
    o 在当前行后插入一个新行
    O 在当前行前插入一个新行
    cw 替换从光标所在位置后到一个单词结尾的字符

    :w 文件名可以将文档另存为其他文件名或存到其它路径下

    退出

    命令 说明
    :q! 强制退出,不保存:
    :q 退出:
    :wq! 强制保存并退出:
    :w <文件路径> 另存为:
    :saveas 文件路径 另存为:
    :x 保存并退出:
    :wq 保存并退出:

    普通模式下输入Shift+zz即可保存退出vim

    删除

    命令 说明
    x 删除游标所在的字符
    X 删除游标所在前一个字符
    Delete 同x
    dd 删除整行
    dw 删除一个单词(不适用中文)
    d$或D 删除至行尾
    d^ 删除至行首
    dG 删除到文档结尾处
    d1G 删至文档首部

    shell变量

    变量名与=之间不能有空格(可以用来赋值)。

    declare定义一个变量
    '$' 引用一个定义过的变量,只要在变量名前面加美元符号即可

    echo是一个非常便捷的输出命令,它有点类似于c++中的cout甚至比cout还要简洁。
    这个命令在这个链接中有比较详细的说明。
    echo "hello world!"

    • 环境变量
    命 令 说 明
    set 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
    env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
    export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

    按生存周期分类:
    永久:需要修改配置文件,变量永久生效
    临时:使用 export 命令行声明,关闭 shell 后也失效。

    两个重要文件
    /etc/bashrc(有的 Linux 没有这个文件)和/etc/profile
    它们分别存放的是 shell 变量和环境变量。

    Shell 是怎么知道去哪找到这个命令然后执行的:
    环境变量 PATH 来进行搜索的

    创建一个 Shell 脚本文件:

    $ cd /home/shiyanlou    
    $ touch hello_shell.sh    
    $ gedit hello_shell.sh
    

    !!!打脚本时一定要有#!/bin/bash

    执行脚本:

    $ cd /home/shiyanlou
    $ ./hello_shell.sh
    

    创建一个 C 语言“ hello world ”程序:

    $ cd /home/shiyanlou
    $ gedit hello_world.c
    

    使用 gcc 生成可执行文件:(gcc 生成二进制文件默认具有可执行权限,不需要修改)

    $ gcc -o hello_world hello_world.c
    

    PATH 里面的路径是以 : 作为分割符的,所以我们可以这样添加自定义路径:

    $ PATH=$PATH:/home/shiyanlou/mybin
    

    >> 表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的
    > 是以覆盖的方式重定向到一个文件中,使用的时候一定要注意分辨。
    在指定文件不存在的情况下都会创建新的文件。

    • 修改和删除已有变量
    变量设置方式 说明
    ${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
    ${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
    ${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
    ${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
    ${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
    ${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串

    变量删除
    可以使用 unset 命令删除一个环境变量:

    $ unset temp
    

    可以使用 source 命令来让其立即生效,如:

    $ cd /home/shiyanlou
    $ source .zshrc
    

    source 命令还有一个别名就是 .,上面的命令如果替换成 . 的方式就该是:

    $ . ./.zshrc
    

    在使用.的时候,需要注意与表示当前路径的那个点区分开。
    注意第一个点后面有一个空格,而且后面的文件必须指定完整的绝对或相对路径名,source 则不需要。

    搜索文件

    与搜索相关的命令常用的有 whereiswhichfindlocate

    • whereis 简单快速

    whereis 只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)

    • locate 快而全

    • which 小而精

    which 本身是 Shell 内建的一个命令,我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令

    • find 精而细

    find 应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。

    参数 说明
    -atime 最后访问时间
    -ctime 最后修改文件内容的时间
    -mtime 最后修改文件属性的时间

    以 -mtime 参数举例:
    -mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
    -mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
    -mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
    -newer file:file 为一个已存在的文件,列出比 file 还要新的文件名

    黑客帝国中的数字雨:cmatrix(要先下)

    $ sudo apt-get update; sudo apt-get install cmatrix
    

    按下 F11 可以全屏显示。

    还可以改变代码的颜色:

    cmatrix -C red
    

    文件打包和解压缩

    • linux觉压缩文件形式
    文件后缀名 说明
    *.zip zip 程序打包压缩的文件
    *.rar rar 程序压缩的文件
    *.7z 7zip 程序压缩的文件
    *.tar tar 程序打包,未压缩的文件
    *.gz gzip 程序(GNU zip)压缩的文件
    *.xz xz 程序压缩的文件
    *.bz2 bzip2 程序压缩的文件
    *.tar.gz tar 打包,gzip 程序压缩的文件
    *.tar.xz tar 打包,xz 程序压缩的文件
    *tar.bz2 tar 打包,bzip2 程序压缩的文件
    *.tar.7z tar 打包,7z 程序压缩的文件

    zip

    zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
    

    -A 调整可执行的自动解压缩文件。
    -b<工作目录> 指定暂时存放文件的目录。
    -c 替每个被压缩的文件加上注释。
    -d 从压缩文件内删除指定的文件。
    -D 压缩文件内不建立目录名称。
    -e可以创建加密压缩包
    -f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
    -F 尝试修复已损坏的压缩文件。
    -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
    -h 在线帮助。
    -i<范本样式> 只压缩符合条件的文件。
    -j 只保存文件名称及其内容,而不存放任何目录名称。
    -J 删除压缩文件前面不必要的数据。
    -k 使用MS-DOS兼容格式的文件名称。
    -l 压缩文件时,把LF字符置换成LF+CR字符。
    -ll 压缩文件时,把LF+CR字符置换成LF字符。
    -L 显示版权信息。
    -m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
    -n<字尾字符串> 不压缩具有特定字尾字符串的文件。
    -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
    -q 不显示指令执行过程。
    -r 递归处理,将指定目录下的所有文件和子目录一并处理。
    -S 包含系统和隐藏文件。
    -t<日期时间> 把压缩文件的日期设成指定的日期。
    -T 检查备份文件内的每个文件是否正确无误。
    -u 更换较新的文件到压缩文件内。
    -v 显示指令执行过程或显示版本信息。
    -V 保存VMS操作系统的文件属性。
    -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
    -x<范本样式> 压缩时排除符合条件的文件。
    -X 不保存额外的文件属性。
    -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
    -z 替压缩文件加上注释。
    -$ 保存第一个被压缩文件所在磁盘的卷册名称。
    -<压缩效率> 压缩效率是一个介于1-9的数值。

    但是,其实这些也不是特别常用,真正有用的是加粗的几个

    补充说明在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。要用-l来解决。

    unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
    

    -P<密码> 使用zip的密码选项。
    [文件] 指定要处理.zip压缩文件中的哪些文件。

    tar好强大,它的功能好多,就不一一列举了,想知道的话就点击链接

    -c 表示创建一个 tar 包文件,
    -f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后
    解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)

    压缩文件格式 参数
    *.tar.gz -z
    *.tar.xz -J
    *tar.bz2 -j

    火炉

    $ sudo apt-get install libaa-bin 
    # 提示 command not found ,请自行解决
    $ aafire
    

    解决方法

    这个是在考我们活学活用,它这个就是想把一个环境变量换一个位置,所以也就比较好解决了。

    文件系统操作和硬盘管理

    • 使用 df 命令查看磁盘的容量
    $ df
    

    -h以更易懂方式查看

    • 使用 du 命令查看目录的容量
    # 默认同样以 块 的大小展示
    $ du 
    # 加上`-h`参数,以更易读的方式展示
    $ du -h
    

    -d参数指定查看目录的深度

    # 只查看1级目录的信息
    $ du -h -d 0 ~
    # 查看2级
    $ du -h -d 1 ~
    

    常用参数
    du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。
    du -a #同--all 显示目录中所有文件的大小。
    du -s #同--summarize 仅显示总计,只列出最后加总的值。

    • dd

    dd的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为选项=值,而不是更标准的--选项 值或-选项=值。dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(outputfile,输出文件)改变。bs(blocksize)用于指定块大小(缺省单位为Byte,也可为其指定如'K','M','G'等单位),count用于指定块数量

    • 使用 mkfs 命令格式化磁盘

    使用方法mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
    device : 预备检查的硬盘分区,例如:/dev/sda1
    -V : 详细显示模式
    -t : 给定档案系统的型式,Linux 的预设值为 ext2
    -c : 在制做档案系统前,检查该partition 是否有坏轨
    -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
    block : 给定 block 的大小

    • 使用 mount 命令挂载磁盘到目录树

    使用mount来查看下主机已经挂载的文件系统:

    $ sudo mount
    

    mount命令的一般格式如下:

    mount [options] [source] [directory]
    

    一些常用操作:

    mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
    

    使用 umount 命令卸载已挂载磁盘

    • 使用 fdisk 为磁盘分区

    fdisk [必要参数][选择参数]

    必要参数:
    -l 列出素所有分区表
    -u 与"-l"搭配使用,显示分区数目

    选择参数:
    -s<分区编号> 指定分区
    -v 版本信息

    菜单操作说明
    m :显示菜单和帮助信息
    a :活动分区标记/引导分区
    d :删除分区
    l :显示分区类型
    n :新建分区
    p :显示分区信息
    q :退出不保存
    t :设置分区号
    v :进行分区检查
    w :保存修改
    x :扩展应用,高级功能

    • fdisk [必要参数][选择参数]

    必要参数:
    -l 列出素所有分区表
    -u 与"-l"搭配使用,显示分区数目

    选择参数:
    -s<分区编号> 指定分区
    -v 版本信息

    菜单操作说明
    m :显示菜单和帮助信息
    a :活动分区标记/引导分区
    d :删除分区
    l :显示分区类型
    n :新建分区
    p :显示分区信息
    q :退出不保存
    t :设置分区号
    v :进行分区检查
    w :保存修改
    x :扩展应用,高级功能

    • 使用 losetup 命令建立镜像与回环设备的关联

    losetup [-d][-e <加密方式>][-o <平移数目>][循环设备代号][文件]
    参数:
    -d 卸除设备。
    -e<加密方式> 启动加密编码。
    -o<平移数目> 设置数据平移的数目。

    linux下的命令帮助

    • 内建命令:shell的先天技
    • 外部命令:后天加成,可以人为添加

    如果你确实想知道的话可以用type
    type exit像这样一下子就会输出是哪的,也不止有上面两种。

    • 先介绍两双胞胎:

    这两人家伙有点死脑筋,help只可以打内建命令,--help与它互补。
    help命令在help后
    --help命令在--help前

    • man

    这个家伙我们已经在上面说过了,我就不再说了

    • 再讲一个比较大牌的,因为它不是一个自带的,得下载
    $ sudo apt-get update
    $ sudo apt-get install info
    

    关于下载也是用得多了,就这样吧
    关于它的用法
    就是$ info ls这种样子的啦。

  • 相关阅读:
    magento删除local.xml后必须要页面安装
    magento后台无法打开
    ubuntu安装phpmyadmin
    数据结构有关于最优二叉树——最优哈夫曼树的建立过程和哈夫曼编码
    计算后缀表达式的过程(C#)
    mysql语句的相关操作整理
    mysql在控制台里出现中文问号问题
    Wampserver由橙变绿的解决过程
    重装win7系统的过程
    数据结构(C#):图的最短路径问题、(Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/ydfy/p/11443728.html
Copyright © 2020-2023  润新知