zoukankan      html  css  js  c++  java
  • 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这种样子的啦。

  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/ydfy/p/11443728.html
Copyright © 2011-2022 走看看