考試月終於暫告一段落,終於有時間回歸Linux 的懷抱。不知怎的,在VMware Workstation 12 上登入Ubuntu後總是blue screen,明明昨天用terminal 也沒有事啊真令人摸不著頭腦@@ 算吧,反正有kali linux 用著吧。早晚VMware 會被換掉的。

哈哈,但是荒廢太久的關係,連賬號密碼也給忘了。被迫爬文:http://www.technig.com/reset-lost-password-of-kali-linux/

昨天剛開始,試了一下command:

pwd: print working directory

cd: change directory,cd ~ 就是回家的意思。

ls: list current directory

rm -rf <--哈哈這個當然沒有,也千萬不要試(remove, forced recursive: remove every OS files!!!)

在mkdir上除了一點狀況。實際上要用 mkdir -p /apple/orange/banana, 但是這個指令會overwrite existing directories. 就是,無論舊的、同名的directory裡面有什麼,都會被移除。還有,用rmdir 的話,如果targetted directory 不是空的,那就不能用這個。you must have to delete the sub-directories beneath it first.

哎,雖然學了普通話拼音都有這些年了,但是用拼音輸入還是很慢。還不如用英語輸入。

But noted you cannot delete the particular directory where you are in.

Also, for beginners, it's very easy to forget the '/' preceeding the name of directory. It is particular problematic when we are trying to use rmdir, cd, etc.

Another common error when using 'cd' is forgetting to place '/ <current_directory>' in front of the targetted directory. It causes an error "such directory does not exist"...

===========================

mkdir  vs mkdir -p

mkdir -p /apple: establish 'apple' directory in parent directory. Therefore, changes invisible in root.

mkdir /root/apple: changes visible in root

Similarly, 'rmdir /apple' would only remove that in parent directory, not that in the root.

Common mistake in using mkdir, rmdir, cd

$ mkdir root/pineapple     # missing '/' before 'root'

$ mkdir /root/pineapple/banana  #greedy declaration: pineapple missing directory

$ rmdir /pineapple/banana    # missing '/root': directory DNE

$ rmdir /root/pineapple/banana

$ cd /banana   #missing '/root' in changing directory; directory DNE

$ cd /root/banana

$ rm /root/pineapple    #rm: for removing non-empty directory; rmdir: remove empty dir

 ===========================

pushd vs popd

remark: pushd, pushes current directory into stack and go to the destinated directory.

!! No confusion: pushd does not push the destinated directory into stack!

popd, pop the lastest visited directory

===========================

File I/O

touch new.txt  #establish a new text file

cat >> new.txt << EOF  #open txt file for editing 

START RANDOM WRITING IN FILE

Hello World this is my first linux txt document!!

EOF  #indicate end of file-input; return to parent directory 

cat new.txt  #view the txt file in terminal 

cat << new.txt << EOF  #open txt file and move cursor to the end of file

Overwriting in process...

EOF

cat /root/new.txt

START RANDOM WRITING IN FILE

Hello World this is my first linux txt document!!

Overwriting in process...  #overwrite existing txt failed :(

echo > a.txt  #empty the txt file 

echo >> Hello! >> /root/hello_world.txt  #append at EOF

rm hello_world.txt   #directly remove a file in terminal 

===========================

How to check the type of shell your Unix/Linux is using

ps -p $$  #well, usually it's bash shell

===========================

To-slash, or not to slash

~# ls

> Documents  Music  Pictures

~# cd Documents  #access under current directory, need not '/'

c.f.

~# pwd

/root/Documents

~# cd /root/Pictures  #access directories not at current level, use '/'

** same principle for 'rmdir', e.g. rmdir apple, rmdir hello_world.txt, iff in current directory

===================

cp: copy file or directory

#this command bit-wise copy from one document to another

~# ls

a.txt

~# cp a.txt b.txt

~# ls

> a.txt  b.txt

~# mkdir something

~# ls

> a.txt  b.txt  something

~# cp -r something another

~#ls

> a.txt  b.txt  something  another

===========================

Forcefully remove non-empty directory

sudo rm -r somthing  # '-r' usually for directory-level command

c.f.

cd -r somthing anotherThing  #copy entire directory

===========================

Move a file from one place to another

~# pwd

> /root/temp

~# ls

> a.txt  b.txt  another

~# mv a.txt /root  #move file from one directory to next 

~# mv another /root   #move directory from one to another 

~# pushd /root

~# ls

a.txt  Documents  Music  Pictures  temp

~# cd temp

> b.txt another

===================

題外話:昨晚寫了一個小工具程序給哥哥,他好像很喜歡呢<3 太好了!原來路徑用程序下載時default的路徑就可以了,根本不用在batch當裡面動態產生。哎,真爬文爬死了。看來要認真的學batch的基礎。還有,原來哥哥都會用虛擬機,顆顆真棒!都說我的哥哥是宇宙最強的哈哈哈哈<3 瞎扯瞎遠了,言歸正傳。

每次開虛擬機linux terminal 都耗時很久,等到它開了已經沒有熱情了,還是用一下網上的好了:https://www.tutorialspoint.com/execute_bash_online.php

===================

Opening txt file in bash

less a.txt

q  #quit viewing txt

less vs cat

less a.txt b.txt   #error: less for openning one document only one in a time!

cat a.txt b.txt  #allowed

===================

結語

這篇可算是第一篇結案的文章,算是有頭有尾吧,哈哈。這裡都是非常基本的bash shell command lines。接下來可能的發展方向是學windows' command prompt,或是繼續發掘:https://www.gnu.org/software/bash/manual/bashref.html

但是無論如何,都會跟大家在新的一篇裡面見面咯:)

~~全文完~~

Linux Command Line(I): Beginner的更多相关文章

  1. Linux Command Line(II): Intermediate

    Prerequisite: Linux Command Line(I): Beginner ================================ File I/O $ cat > a ...

  2. 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令

    Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...

  3. 《The Linux Command Line》 读书笔记02 关于命令的命令

    <The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...

  4. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  5. Linux Command Line Basics

    Most of this note comes from the Beginning the Linux Command Line, Second Edition by Sander van Vugt ...

  6. Linux Command Line 解析

    Linux Command Line 解析 0 处理模型 Linux kernel的启动包括很多组件的初始化和相关配置,这些配置参数一般是通过command line进行配置的.在进行后续分析之前,先 ...

  7. 15 Examples To Master Linux Command Line History

    When you are using Linux command line frequently, using the history effectively can be a major produ ...

  8. 10 Interesting Linux Command Line Tricks and Tips Worth Knowing

    I passionately enjoy working with commands as they offer more control over a Linux system than GUIs( ...

  9. Reso | The Linux Command Line 的中文版

    http://book.haoduoshipin.com/tlcl/book/zh/ 本书是 The Linux Command Line 的中文版, 为大家提供了多种不同的阅读方式. 中英文双语版- ...

随机推荐

  1. sublime text 3双击选择无法选择$符号

    创建/Data/Packages/User/PHP.sublime-settings文件,内容为"word_separators": "./\\()\"'-:, ...

  2. 响应式、手机端、自适应 百分比实现div等宽等高的方法

    在百分比布局中, 有时候会遇见一个头疼的问题,就是如果某个布局是正方形的话,我们在这种情况下考虑到适应各种媒体尺寸,又不能给它定固定的宽高. 之前遇见过纯色布局的结果我就用纯色图片代替实现的,现在有了 ...

  3. 探索Windows命令行系列(6):活用批处理解决实际问题

    1.批量修改文件名 2.批量重启服务 3.全盘搜索指定文件 3.1.全盘搜索名称为 mm.jpg 的文件,获取其全路径 3.2.查找系统中所有名称以 .docx 结尾的文件 4.调用可执行程序 4.1 ...

  4. 【LeetCode】138. Copy List with Random Pointer

    题目: A linked list is given such that each node contains an additional random pointer which could poi ...

  5. PyCharm 教程

    转自:http://blog.csdn.NET/u013088062/article/details/50388329 作者:山在岭就在 之间花了一周多的时间把Pycharm官方帮助文档翻译了一遍,一 ...

  6. Python3中文件处理

    1.txt,xls,doc等文件的使用 f=open("filename","w")   打开一个用于写入的文件,要写入内容时使用f.write("内 ...

  7. zabbix的Java API(一)

    上文说了,我是对zabbix做第二次开发的小白,既然要对zabbix做第二次开发又是小白,那么就得来研究zabbix提供的相关API了. 于是我在zabbix网站各种找,终于在下面网址找到了: htt ...

  8. 【亲测】自动构建多个指定的class并发执行:Jenkins+Maven+Testng框架

    要解决的问题:jenkins在自动构建maven项目时如何并发执行多个指定的class类 预置条件:testngXXX.xml文件已指定了多个class类 解决步骤:1.在maven项目中新建指定te ...

  9. 使用C#在VS中开发:未处理AccessViolationException “System.AccessViolationException”类型的未经处理的异常

    未处理AccessViolationException: “System.AccessViolationException”类型的未经处理的异常在System.Data.dll中发生 其他信息:尝试读 ...

  10. 关于MultipleActiveResultSets属性导致的There is already an open DataReader associated with this Command which must be closed first的解决方法

    执行SqlDataReader.Read之后,如果还想用另一个SqlCommand执行Insert或者Update操作的话,会得到一个错误提示:There is already an open Dat ...