考試月終於暫告一段落,終於有時間回歸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. 实现AOP功能的封装与配置的小框架

    内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util.ArrayList中 代码 Advice接口 MyAdvice类 BeanFacto ...

  2. 【Android Developers Training】 65. 应用投影和相机视图

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. 你应该知道的jQuery技巧【收藏】

    jQuery的存在,让学习前端开发的人感到前端越来越容易入门了,用简单的几行代码就可以实现需求,但是,你真的会用jQuery么,当代码运行 后无法看到自己预期的效果,是不是觉得jQuery出了问题,其 ...

  4. js中各个类型的转换总结

    字符串转换为数组:   1 正则表达式var string=“abcdedef”var obj=string.replace(/(.)(?=[^$])/g,"$1,").split ...

  5. maven编译常见错误解决方法整理

    程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...

  6. HTML5头部标签中<meta>常用信息

    整理一些平时常用的,方便查阅 <!-- 字体编码 --> <meta charset="utf-8" /> <!-- 关键字 --> <m ...

  7. [CF486D]有效集合-树形dp

    Problem 有效集合 题目大意 给出一棵树,求出这棵树的不同联通子节点集合的数量,这些集合必须满足最大权值点减最小权值点小于等于d. Solution 再一次树d乱搞. 因为数据范围贼小,所以我们 ...

  8. 输出a-b之间的随机数并考虑异常

    输出a-b之间的随机数并考虑异常 代码如下: package Day05;import java.util.Scanner;import java.util.Random; public class ...

  9. React Native App设置&Android版发布

    React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native un ...

  10. ConcurrentLinkedQueue 源码 since java1.5

    1 父类 java.lang.Object 继承者 java.util.AbstractCollection<E> 继承者 java.util.AbstractQueue<E> ...