一、基本的bash shell命令

一点建议,学习的时候把命令行工具开着,随时敲,验证,别光看,没用
涉及到得命令:

命令 作用
cd 目录
pwd 显示当前所在文件的绝对路径
ls 显示当前目录下的文件和目录
touch 创建一个文件
cp 复制文件
ln 符号链接
mv 从命名文件或将文件移动到另外一个位置
rm 删除文件
mkdir 创建目录
rmdir 删除一个目录
file 查看文件类型
cat 查看文件内容

1.遍历目录

cd 进入某一目录
其后跟的参数有两种形式,绝对文件路径和相对文件路径
绝对和相对的区别就是看是否以/开头
.表示当前目录
..表示当前目录的父目录
cd ..就会返回当前目录的父目录

pwd 显示当前所在文件的绝对路径

2.文件和目录列表

ls 显示当前目录下的文件和目录
ls后面可以跟多个参数,分别代表不同的操作

参数 作用
-F 可以区分文件和目录
-a 显示隐藏文件
-R 递归显示当前目录下的子目录中的文件
-l 以列表的形式显示子文件(会附带一些文件的信息)

*注意:ls后跟的参数不一定是一个,可以同时跟多个参数
例如:ls -a -lls -al表示的是一样的意思,以列表形式显示文件,并同时显示隐藏文件

ls -l后面还可以跟参数,用于过滤输出列表

代码 作用
ls -l my_dir 匹配名字是my_dir的文件
ls -l my_?ir ?替代任意位置的单个字符
ls -l my_* *匹配零个或多个字符(*也可以放在中间,例如ls -l my_*r
ls -l my_[abcd]ir []匹配固定位置中出现的字符([]中可以用范围标示,例如ls -l my_[a-z]ir
ls -l my_[!a]ir !去除给位置不需要的内容

列出的只是简单常用的,还有很多参数没有列出

3.处理文件

touch 创建一个文件,该文件是一个空文件,大小是0
例: touch test_one

cp复制文件 后面会跟两个参数——源对象和目标对象
例:cp test_one test_two
复制后的文件名字是test_two

如果单纯写cp test_one test_two可能会覆盖原来的test_two文件,这时候可以加参数-i
例:cp -i test_one test_two
这样就会弹出选项,询问你是否覆盖已有的test_two文件

第二个参数还可以跟一个路径名
例:cp -i test_one ~/Desktop/shell学习/ 会在指定的文件下复制一个名字为test_one的文件
注意路径最后的/表示shell学习是一个目录,缺失/会产生不必要的错误
另外这个路径也可以使用相对路径,不是一定要绝对路径

将指定路径的文件复制到当前目录下,这时候就用到了前面提到的.
例:cp -i ~/Desktop/shell学习/test_one . 将test_one复制到当前目录下

递归复制整个目录下的所有内容
例:cp -R ~/Desktop/shell学习/ ~/Desktop/shell学习2 将shell学习中的所有文件都复制到了shell学习2目录下

*注意 cp命令也支持通配符? *
*注意 使用命令行工具的时候使用tab键进行自动补全
*注意 使用命令行工具的时候使用上下键进行查找已经输入过得命令语句

文件链接,方便在系统上维护同一个文件的多个副本,有两种方式:
符号链接 ln -s test_one sl_test_one
下面是操作结果

➜  shell学习 ls
test_one test_two
➜  shell学习 ln -s test_one sl_test_one
➜  shell学习 ls -l
total 8
lrwxr-xr-x  1 musong  staff  8  8  8 14:55 sl_test_one -> test_one
-rw-r--r--  1 musong  staff  0  8  8 11:59 test_one
-rw-r--r--  1 musong  staff  0  8  8 11:59 test_two

产生的是一个实实在在的文件sl_test_one,当你打开sl_test_one文件的时候,实际打开的是test_one文件,但是sl_test_one和test_one是两个不同的文件
使用命令ls -i *test*可以查看文件在inode编号,不同的文件编号是不同的

➜  shell学习 ls -i *test*
11296164 sl_test_one 11292136 test_one    11292173 test_two

硬链接 ln test_one sl_test_one1
查看生成的sl_test_one1文件的inode编号

➜  shell学习 ls -i *test*
11296164 sl_test_one  11292136 sl_test_one1 11292136 test_one     11292173 test_two

发现sl_test_one1和test_one的编号是相同的,这说明硬链接其实是同一个文件
*注意 我们一般不要cp连接

mv 从命名文件或将文件移动到另外一个位置
例: mv test_two test_three将文件test_two改名为test_three
mv test_three ~/Desktop/shell学习2将文件test_three移到shell学习2目录下
承接上面的例子
mv test_three ~/Desktop/shell学习/test_two(注意:该操作是在shell学习2目录下)将shell学习2目录下的test_three文件移回shell学习目录同时将文件名字改为test_two

*注意 在mv命令中也可插入-i参数,用来判断相同名字文件是否存在
*注意 mv的第一个参数也可以是路径

rm 删除文件
例:rm test_two删除test_two文件
*注意 rm命令中也可插入-i参数,用来提出是否删除的警告
*注意 rm命令中也可使用通配符? *等同时删除多个数据
*注意 bash shell不存在回收站之类的东西,删除则彻底删除

4.处理目录

创建目录 mkdir
例:mkdir dir1创建一个目录dir1
同时创建多个目录层级要用参数 -p
例:mkdir -p dir2/sub_dir1/sub_sub_dir1
*注意 可以用ls -R查看目录层级关系

删除目录 rmdir
例:rmdir dir1删除一个目录dir1
*注意 rmdir只能删除空目录,当目录中有文件的时候,上面的命令是不会起作用的

rmdir -rf dir1删除一个目录以及目录中的所有文件
*注意 该条命令是很危险的,该删除没有任何提示

rmdir -ir dir1删除一个目录以及目录中的所有文件
*注意 -ir-fr命令的不同是-ir会逐条提示你是否删除目录下的子文件,但是这样带来的问题就是,当目录下有很多文件的时候,要逐条同意删除
*注意 这两个命令中的rR效果是一样的,都是递归的意思

5.查看文件内容

查看文件类型 file
例:file dir2查看dir2的文件类型(该命令适用于文件和目录)

查看文件内容 cat
例:cat 文本文件.rtf查看名字为文本文件.rtf文本的内容

例:cat -n 文本文件.rtf查看名字为文本文件.rtf文本的内容,并为所有行加上行号

例:cat -d 文本文件.rtf查看名字为文本文件.rtf文本的内容,并为所有文本行加上行号

more 命令 查看大型文件
cat命令比的好处就是more命令支持通过回车键或者空格键逐行查看,而cat命令不支持该功能
*注意 退出按q

less 命令 查看大型文件
less命令是more的升级版,提供更多的命令集,具体的命令集自行了解
*注意 可以用man less命令查看具体命令集
*注意 man命令查看各种shell命令的详细说明

查看部分文件 tail (查看文件尾)
例:tail 文本文件.rtf查看最后10行文件内容
*注意 可以通过参数-n修改显示的行数,tail -n 2 文本文件.rtf显示最后两行内容
*注意 可以在-之后直接接数字,省略n,上面的语句等同于tail -2 文本文件.rtf

查看部分文件 head (查看文件头)
headtail

这里介绍的知识一些常用的基本命令,还有很多功能没有具体介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容