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