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 的中文版, 为大家提供了多种不同的阅读方式. 中英文双语版- ...
随机推荐
- PHP中利用redis实现消息队列处理高并发请求
将请求存入redis 为了模拟多个用户的请求,使用一个for循环替代 //redis数据入队操作 $redis = new Redis(); $redis->connect('127.0.0.1 ...
- [LeetCode] Friend Circles 朋友圈
There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...
- 【LeetCode】171. Excel Sheet Column Number
题目: Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, r ...
- 遇到looper之类关于消息循环的
原因大概是因为无法创建消息循环,这时候要考虑函数是否要在主线程或者不在主线程中进行,改一下即可
- Bootstrap table使用心得---thead与td无法对齐的问题
当使用工具条中的显示/隐藏列的时候, 经常出现表格的列头与内容无法对齐的问题. 1. 去掉option中的height,完美对齐,但当数据较多的时候,table会自动增加height,显示所有数据而不 ...
- Python 文件对象
Python 文件对象 1) 内置函数 open() 用于打开和创建文件对象 open(name,[,mode[,bufsize]]) 文件名.模式.缓冲区参数 mode: r 只读 w 写入 a 附 ...
- CentOS 下搭建FTP服务器
vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个.本文介绍了在CentOS 6 4下安装vsftpd.配置虚拟用户登录FTP的过程.正 vsftpd是Linux下比较著名 ...
- 仿网易新闻app下拉标签选择菜单
仿网易新闻app下拉标签选择菜单 仿网易新闻app下拉标签选择菜单,长按拖动排序,点击增删标签控件 ##示例 ##EasyTagDragView的使用 在layout布局里添加:
- FileOutputStreamTest
package JBJADV003; import java.io.FileOutputStream;import java.io.OutputStream;import java.io.IOExce ...
- JSON.parse()与JSON.stringify()的区别
JSON.parse()[从一个字符串中解析出json对象] 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析 ...