预备作业:课程基础
20182316胡泊 2019-2020-1 《數(shù)據(jù)結(jié)構(gòu)與面向?qū)ο蟪绦蛟O計》第0周學習總結(jié)
1.預備作業(yè)
你對專業(yè)的認識和期望是什么?
- 百度百科中對于信息管理與信息系統(tǒng)專業(yè)的概述是這樣的“集信息技術與管理科學于一體、實踐性和創(chuàng)新性很強的交叉學科”。
- 經(jīng)過我自己一年來的學習,我對這個專業(yè)也有了一些自己的理解。
首先是我們專業(yè)不同于計算機專業(yè),比他們多了文科的部分,也多了一些人文精神。 - 又不同于文科專業(yè),因為我們還是要靠技術吃飯的,無論是考研還是工作,這都是顯露在外面的、最重要的能力。
- 而當職位越來越高,成為一個真正的管理者時,技術已經(jīng)不是限制的因素了,管理能力與相關理論知識就成為了主要限制因素。
- 經(jīng)過我自己一年來的學習,我對這個專業(yè)也有了一些自己的理解。
我的期望就是能夠在大學期間充實自己,無論是能力還是內(nèi)心,學到一些我認為對自己以后工作或生活有用的東西,使我的專業(yè)能夠幫助我更好的發(fā)展。
上學期C語言總代碼量大概多少行,本學期實踐10000行代碼,你覺得這個負擔大嗎?
大概6000~7000行左右,對于Java的10000行沒有什么概念,但我覺得問題應該不大。
你的C語言學習怎么樣?如果學的還行,你認為從C語言學習中比較好的經(jīng)驗是什么?如果學的不好,那么你學的不好的原因是什么?
- c語言學的不太好,有點馬馬虎虎的。我覺得原因主要有三方面。
- 首先,是我自身上機較少,做題庫有時會偷懶,不動腦筋,比其他優(yōu)秀的同學練習量少了很多,做的不夠熟練。
- 其次,就是課時量不夠,老師不得已將課時刪減并壓縮了一部分,由此導致上課聽的不是很懂。
- 最后,就是我的個人定力不足,經(jīng)常受到手機、電腦等的誘惑,在其中浪費了大量學習時間,這些我都會做出改變,也懇請老師督促。
總結(jié) : 練習、課堂、誘惑、改變。
2.Linux自學筆記
==學習內(nèi)容總結(jié)==
基本概念
shell(殼):中間程序,terminal:終端模擬器,console:控制臺。
命令行操作體驗
快捷鍵:
- tab : 補全命令(這個暫時還看不懂)
- 連續(xù)兩次tab:顯示全部候選結(jié)果
- Ctrl+c
:強行終止當前程序且不退出終端。我的猜測就是在學c語言時,我們是在Windows系統(tǒng)下操作,當出現(xiàn)溢出等情況時,Windows系統(tǒng)會自動給出警告并結(jié)束進程,而Linux系統(tǒng)由于自由度高,需要自己動手結(jié)束。 - 上鍵 :恢復之前輸入過的命令(Ctrl+z)
- 通配符 : (*/?)
- 用來對字符串進行模糊匹配(比如文件名、參數(shù)名),可以代替一個或多個字符,確實很好用。
- 一次性創(chuàng)建多個文件
- 包括:NAME , SYNOPSIS(摘要) ,DESCRIPTION(說明) , EXAMPLES(示例) , SEE ALSO(參見)
==在man中使用搜索== :
n鍵切換到下一個關鍵字所在處,shift+n為上一個關鍵字所在處。使用Space 翻頁,Enter 向下滾動一行,或者使用 k , j 進行向前向后滾動一行。按下h鍵為顯示使用幫助,按下q 退出。interesting thing :
- 輸出圖形字符——==banner==
用戶
sudo:Superuser do
允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個工具,面向每個命令。
chmod:
改變文件的讀寫許可設置
- su, su- 與 sudo :
- su 切換用戶,需密碼
- sudo 特權級別運行cmd,需密碼且屬于sudo組
- su - 切換用戶且環(huán)境變量跟著切換
- 查看用戶組
- 方法一:groups命令
冒號前為用戶名,冒號后為所屬用戶組
- 方法二:查看/etc/group文件
- 將其他用戶加入sudo用戶組
linux文件權限
文件權限
- r、w、x :read 、 write、 execute(執(zhí)行)
查看某一個目錄的完整屬性,而不顯示里面的屬性
修改文件權限
方法:二進制數(shù)字表示
- 三組權限:擁有者、所屬用戶、其他用戶,對應一個rwx,也就是一個 7 (111)
$ echo "echo\"hello shiyanlou\"">iphone6 $ chmod 600 iphone6Linux目錄結(jié)構(gòu)及文件基本操作
- linux與windows目錄結(jié)構(gòu)的區(qū)別:windows是以盤符為主,而linux是以目錄為主來管理文件的。
- 關于這一點,我自己的感受就是,當在Windows中打開我的電腦后,首先出現(xiàn)的是盤符,而我們通過鼠標就可以打開想要的文件了,而在linux操作時,往往需要通過 " / "來實現(xiàn)文件的打開、編輯、刪除等操作,因此更為方便一些。
- 關于這一點,我自己的感受就是,當在Windows中打開我的電腦后,首先出現(xiàn)的是盤符,而我們通過鼠標就可以打開想要的文件了,而在linux操作時,往往需要通過 " / "來實現(xiàn)文件的打開、編輯、刪除等操作,因此更為方便一些。
- FHS標準(英文:Filesystem Hierarchy Standard 中文:文件系統(tǒng)層次結(jié)構(gòu)標準),FHS 定義了兩層規(guī)范
- 第一層是, ==/== 下面的各個目錄應該要放什么文件數(shù)據(jù),例如 /etc 應該放置設置文件,/bin 與 /sbin 則應該放置可執(zhí)行文件等等
- 第二層則是針對 ==/usr== 及 ==/var== 這兩個目錄的子目錄來定義。例如 /var/log 放置系統(tǒng)日志文件,/usr/share 放置共享數(shù)據(jù)等等。
- link FHS_2.3 標準文檔
路徑
- cd :切換目錄
- cd. :當前目錄
- cd.. :上一級目錄
- cd~ 或cd /home/:當前用戶的home目錄
- pwd :獲取當前路徑(絕對路徑)
- 文件的操作
- 創(chuàng)建
- 復制文件 cp
- 復制目錄
- 刪除文件 rm——(remove files or directories)
$ rm -f test- 刪除目錄
- 移動文件: mv +源目錄文件 + 目的目錄
- 重命名文件:mv +舊的文件名+ 新的文件名
- ==批量重命名 rename==
- 查看文件 cat(正序),tac(倒序),nl
-b : 指定添加行號的方式,主要有兩種: -b a:表示無論是否為空行,同樣列出行號("cat -n"就是這種方式) -b t:只列出非空行的編號并列出(默認為這種方式) -n : 設置行號的樣式,主要有三種: -n ln:在行號字段最左端顯示 -n rn:在行號字段最右邊顯示,且不加 0 -n rz:在行號字段最右邊顯示,且加 0 -w : 行號字段占用的位數(shù)(默認為 6 位)- 查看文件類型
- ELF:可執(zhí)行與可鏈接格式。
executable:可執(zhí)行的。
使用more和less命令分頁查看文件
enter向下一行,space向下一屏,q退出。
目的:減少鼠標使用,簡化操作。
環(huán)境變量
變量
$ declare tmp $ tmp=shiyanlou $ echo $tmp- 與C語言的不同之處:c中變量必須先定義后使用,而linux可以不用 declare 預聲明一個變量,直接即用即創(chuàng)建。
- 并不是任何形式的變量名都是可用的,變量名只能是英文字母、數(shù)字或者下劃線,且不能以數(shù)字作為開頭。
變量類型
- 當前 Shell 進程私有用戶自定義變量,只在當前 Shell 中有效。
- Shell 本身內(nèi)建的變量。
- 從自定義變量導出的環(huán)境變量。
按照時間分類
- 永久的:需要修改配置文件,變量永久生效
- 臨時的:使用 export 命令行聲明即可,變量在關閉 shell 時失效。
永久生效
- ==/etc/bashrc==:存放shell變量
- ==/etc/profile==:存放環(huán)境變量
如果想要添加一個永久生效的環(huán)境變量,只需要打開 /etc/profile,在最后加上你想添加的環(huán)境變量。
創(chuàng)建腳本文件
$ cd /home/shiyanlou $ touch hello_shell.sh $ gedit hello_shell.sh (gedit :文本編輯器)加入
#!/bin/bashfor ((i=0; i<10; i++));doecho "hello shell" doneexit 0為文件添加可執(zhí)行權限:
$ chmod 755 hello_shell.sh7(111) / 5(101)
執(zhí)行腳本:
$ cd /home/shiyanlou $ ./hello_shell.sh./hello_shell.sh 這句的命令是什么?
創(chuàng)建C語言程序
$ cd /home/shiyanlou $ gedit hello_world.c在編輯欄中輸入
#include <stdio.h>int main(void) {printf("hello world!\n");return 0; }保存后用gcc生成可執(zhí)行文件
$ gcc -o hello_world hello_world.c我認為是用hello_world代替了hello_world.c
也相當于C語言中的編譯過程
驗證:
- 我在輸入內(nèi)容時少輸了一個 ==;==
- 于是,在執(zhí)行gcc命令時出現(xiàn)了
創(chuàng)建目錄,并將文件移入其中
$ cd /home/shiyanlou $ mkdir mybin $ mv hello_shell.sh hello_world mybin/在mybin目錄中分別運行程序
$ cd mybin $ ./hello_shell.sh $ ./hello_world刪除修改已有變量
- 修改
==${變量名#匹配字串}== 從頭向后開始匹配,刪除符合匹配字串的最短數(shù)據(jù)
==${變量名##匹配字串}== 從頭向后開始匹配,刪除符合匹配字串的最長數(shù)據(jù)
==${變量名%匹配字串}== 從尾向前開始匹配,刪除符合匹配字串的最短數(shù)據(jù)
==${變量名%%匹配字串}== 從尾向前開始匹配,刪除符合匹配字串的最長數(shù)據(jù)
==${變量名/舊的字串/新的字串}== 將符合舊字串的第一個字串替換為新的字串
==${變量名//舊的字串/新的字串}== 將符合舊字串的全部字串替換為新的字串
- 刪除變量 : unset命令
### 如何讓環(huán)境變量立即生效 - source
source的別名就是 ==.== ,因此上面的命令可替換為:
$ . ./.zshrc
注意第一個點后面有一個空格,而且后面的文件必須指定完整的絕對或相對路徑名,source 則不需要。
搜索文件——whereis/which/find/locate
- whereis簡單快速
快:沒有從硬盤中依次查找,而是直接從數(shù)據(jù)庫中查詢
- locate 快而全
不只是在 /bin 目錄下查找,還會自動遞歸子目錄進行查找。
$ locate /usr/share/\*.jpg查找/user/share/下所有的jpg文件
注意要添加 號前面的反斜杠轉(zhuǎn)義,否則會無法找到*。
which 小而精
通常使用 which 來確定是否安裝了某個指定的軟件- find 精而細(強大!)
例:
find后第一個參數(shù)為搜索范圍
find [path] [option] [action]
#### 與時間相關的命令參數(shù)
| -atime | 最后訪問時間 |
| -ctime | 最后修改文件內(nèi)容的時間 |
| -mtime | 最后修改文件屬性的時間 |
以-mtime為例
- mtime n:n 為數(shù)字,表示為在 n 天之前的“一天之內(nèi)”修改過的文件
- mtime +n:列出在 n 天之前(不包含 n 天本身)被修改過的文件
- mtime -n:列出在 n 天之內(nèi)(包含 n 天本身)被修改過的文件
newer file:file 為一個已存在的文件,列出比 file 還要新的文件名
文件的打包與解壓縮
壓縮包形式
==.zip,.7z
.rar .gz,.xz,.bz2,.tar,.tar.gz,.tar.xz,.tar.bz2==zip
使用 zip 打包文件夾:
==-r== 參數(shù)表示遞歸打包包含子目錄的全部內(nèi)容,==-q== 參數(shù)表示為安靜模式,即不向屏幕輸出信息,==-o==,表示輸出文件,需在其后緊跟打包輸出文件名。 ==du== 命令查看打包后文件的大小
$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou/Desktop -x ~/*.zip $ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou/Desktop -x ~/*.zip1~9: 1表示快但體積大,9表示體積小但慢。
必須使用絕對路徑。
tar
- 創(chuàng)建tar包
-c 表示創(chuàng)建一個 tar 包文件,-f 用于指定創(chuàng)建的文件名,注意文件名必須緊跟在 -f 參數(shù)之后
- 解包
解包一個文件(-x 參數(shù))到指定路徑的已存在目錄(-C 參數(shù))
總結(jié)
- zip:
- 打包 :zip something.zip something (目錄請加 -r 參數(shù))
- 解包:unzip something.zip
- 指定路徑:-d 參數(shù)
- tar:
- 打包:tar -cf something.tar something
- 解包:tar -xf something.tar
- 指定路徑:-C 參數(shù)
磁盤管理
查看目錄容量
$ du -h -d 0 ~- du -h #同--human-readable 以K,M,G為單位,提高信息的可讀性。
- du -a #同--all 顯示目錄中所有文件的大小。
- du -s #同--summarize 僅顯示總計,只列出最后加總的值。
- -d +number 表示查看目錄的深度。
vim快捷鍵的使用
虛擬機的安裝
我暑假期間按照知乎上一篇的教程,一步步的安裝,過程還算順利,沒有什么大的問題。
https://zhuanlan.zhihu.com/p/42001070
學習過程中的問題
- 問題1:
linux中“l(fā)s” 、“l(fā)s -a”、“l(fā)s -al”的區(qū)別 - 問題1解決方案:在網(wǎng)上查詢:
- ls 顯示當前下面的文件及文件夾
- ls -a 顯示當前目錄下的所有文件及文件夾包括隱藏的.和..等
- ls -al 顯示當前目錄下的所有文件及文件夾包括隱藏的.和..等并顯示詳細信息,詳細信息包括大小,屬組,創(chuàng)建時間
- 問題2:在虛擬機linux的環(huán)境中Ctrl+ c/v不能用
- 問題2解決方案: 打開虛擬機設置,點擊進入選項點擊客戶及隔離,然后啟用復制粘貼及文件拖拽。
- 問題3: $ ./hello_shell.sh 為什么可以執(zhí)行 命令是什么
- 問題3解決方案: source命令是bash shell的內(nèi)置命令。而點命令(即“.”命令)則是source的另一名稱。這兩個命令都以一個腳本為參數(shù),該腳本將作為當前shell的環(huán)境執(zhí)行,即不會啟動一個新的子進程。通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。
- 問題4:英語的不足
- 問題4解決方案:雖然我的英語基礎不算太差,但是讓我讀全英的文章和許多的專有名詞還是很吃力,甚至想要自閉,但是也只能見一個查一個,然后記一個了。
- 問題5:學習過程中有很多很多縮寫,比較難以記憶,尤其是最近在學計算機三級,縮寫以及專有名詞更多了.
- 問題5解決方案:將其展開后,查詢意思來記憶,就輕松了不少。
轉(zhuǎn)載于:https://www.cnblogs.com/hp12138/p/11483087.html
總結(jié)
- 上一篇: React之HOC(高阶组件)
- 下一篇: 当年,我被智联招聘坑惨了!