Linux Command Line(I): Beginner
考試月終於暫告一段落,終於有時間回歸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的更多相关文章
- Linux Command Line(II): Intermediate
Prerequisite: Linux Command Line(I): Beginner ================================ File I/O $ cat > a ...
- 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令
Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- Linux Command Line Basics
Most of this note comes from the Beginning the Linux Command Line, Second Edition by Sander van Vugt ...
- Linux Command Line 解析
Linux Command Line 解析 0 处理模型 Linux kernel的启动包括很多组件的初始化和相关配置,这些配置参数一般是通过command line进行配置的.在进行后续分析之前,先 ...
- 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 ...
- 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( ...
- Reso | The Linux Command Line 的中文版
http://book.haoduoshipin.com/tlcl/book/zh/ 本书是 The Linux Command Line 的中文版, 为大家提供了多种不同的阅读方式. 中英文双语版- ...
随机推荐
- 实现AOP功能的封装与配置的小框架
内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util.ArrayList中 代码 Advice接口 MyAdvice类 BeanFacto ...
- 【Android Developers Training】 65. 应用投影和相机视图
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 你应该知道的jQuery技巧【收藏】
jQuery的存在,让学习前端开发的人感到前端越来越容易入门了,用简单的几行代码就可以实现需求,但是,你真的会用jQuery么,当代码运行 后无法看到自己预期的效果,是不是觉得jQuery出了问题,其 ...
- js中各个类型的转换总结
字符串转换为数组: 1 正则表达式var string=“abcdedef”var obj=string.replace(/(.)(?=[^$])/g,"$1,").split ...
- maven编译常见错误解决方法整理
程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...
- HTML5头部标签中<meta>常用信息
整理一些平时常用的,方便查阅 <!-- 字体编码 --> <meta charset="utf-8" /> <!-- 关键字 --> <m ...
- [CF486D]有效集合-树形dp
Problem 有效集合 题目大意 给出一棵树,求出这棵树的不同联通子节点集合的数量,这些集合必须满足最大权值点减最小权值点小于等于d. Solution 再一次树d乱搞. 因为数据范围贼小,所以我们 ...
- 输出a-b之间的随机数并考虑异常
输出a-b之间的随机数并考虑异常 代码如下: package Day05;import java.util.Scanner;import java.util.Random; public class ...
- React Native App设置&Android版发布
React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native un ...
- ConcurrentLinkedQueue 源码 since java1.5
1 父类 java.lang.Object 继承者 java.util.AbstractCollection<E> 继承者 java.util.AbstractQueue<E> ...