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 的中文版, 为大家提供了多种不同的阅读方式. 中英文双语版- ...
随机推荐
- ajax同步请求JS代码
ajax同步请求JS代码 <script type="text/javascript"> var txt = document.getElementById('txt' ...
- Linux编程之epoll
现在有这么一个场景:我是一个很忙的大老板,我有100个手机,手机来信息了,我的秘书就会告诉我"老板,你的手机来信息了."我很生气,我的秘书就是这样子,每次手机来信息就只告诉我来信息 ...
- 11.page,pagcontext,config对象
- 1.Smarty的下载安装
下载地址:https://github.com/smarty-php/smarty/tree/v3.1.29 官网:smarty.net 下载解压后的目录:
- JanaScript预解析
JS预解析是什么? 在当前的作用域下,js运行之前.会有带有 var 和 function关键字的代码事先声明, 并在内存中安排好,然后从上到下的执行js代码. JS预解析 js逐 ...
- Mac之OS系统下搭建JavaEE环境 <二> 之Tomcat 的安装配置
二.Tomcat的安装与配置 1.下载Tomcat 找到Tomcat的官网 百度搜索Tomcat 点击下载即可 下载网址:http://tomcat.apache.org/download-80.cg ...
- eclipse打开时提示:failed to create the java virtual machine
Eclipse打开时提示: failed to create the java virtual machine 原因:C盘空间不够 编辑删除 处理:1.用金山清理临时文件: 2.用金山手机卫士连接 ...
- 如何查看安装的sql server是什么版本
方法 1:通过使用 SQL Server Management Studio 中的对象资源管理器连接到服务器.连接对象资源管理器后,它将显示版本信息(在括号中),以及用于连接到 SQL Server ...
- hibernate的对象状态分析
开发框架 springMVC hibernate5.0.1 hibernate三种状态 Hibernate定义并支持下列对象状态(state): 临时状态(Transient) 当new一个实体对象后 ...
- 事务之使用JDBC进行事务的操作
本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...