linux常用shell指令学习笔记总结【更新中...】

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888

1、简介

shell
是一个程序,他在用户和操作系统提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的shell把命令转化成指令代码发送给操作系统。
Shell提供了很多高级特性,使得用户和操作系统之间的交互变得简单而高效。

2、shell指令介绍

2.1、显示当前目录(pwd)

pwd : 显示当前所在的位置,即当前的工作目录。

格式: 
    pwd

举例:
    pwd : 显示当前的工作目录。

2.2、目录切换(cd)

cd : 指令表示切换文件夹(跳到指定的文件下)

格式: 
    cd + 空格 + 路径

举例:
    cd ~ : 切换到主目录,比如是user用户,则切到 /user下。   
    cd /test : 切换到目录test下。
    cd test :切换到当前目录下的test目录下。
    cd / : 切换到跟目录。
    cd .. : 切换到当前目录的上一级。
    cd ../.. :切换到当前目录的上二级(上上级)目录。


注意:
    在shell中, “..”表示当前目录的上一级,“.”则表示当前目录。而“~”表示用户主目录,这个符号通常在键盘 Esc 按键的下方。

2.3、列出文件(ls, dir, vdir)

ls : 打印列出当前目录下的所有文件(不包含子文件夹中的内容)

格式:
    ls + 空格 + [option] + [文件参数]

举例:
    ls : 列出当前目录下的所有文件(带后缀)以及文件夹名。
    ls A* : 列出当前目录下以字母 A 开头的所有文件(带后缀)以及文件夹。
    ls -l *.txt : 列出当前目录下后缀名是 txt 的所有文件。
    ls -F : 列出当前目录下所有文件以及文件夹,并在文件夹后面添加 /, 而文件依旧显示文件名(带后缀)。可以用于区分文件与文件夹。
    ls -l : 查看当前目录下的文件以及文件的属性(包含文件的可读写属性,编辑时间,内存大小,编辑用户等信息)。
    ls -a : 显示当前目录下的所有文件(带后缀)以及文件夹,包含隐藏的文件。

注意:
    ls 的指令是可以合并使用的,比如ls –la , ls –aF 等,功能是叠加的。

option可选参数如下:
    -A  列出所有文件,包含隐藏文件
    -l  列表形式,包含文件的绝大部分属性
    -F  显示当前目录下的文件以及文件夹(目录),并在文件夹(目录)后添加 “/”
    -R  递归显示
    --help  此命令的帮助

dir : 列出当前目录下的所有文件(带后缀)以及文件夹。

格式:
    dir

举例:
    dir : 列出当前目录下的所有文件(带后缀)以及文件夹。

vdir : 列出当前目录下所有文件以及文件夹的属性信息,相当于ls -l 。

格式:
    vdir

举例:
    vdir : 列出当前目录下所有文件以及文件夹的属性信息。

2.4、查看文本文件内容(cat, more, less)

cat : 用于查看文件的内容(通常是一个文本文件);文件的内容会一次性的显示出来,文件内容比较多时,不便于阅读。

格式:
    cat + 空格 + [option] + 文件名(带后缀)

举例:
    cat text.txt : 查看文件text.txt的内容。
    cat -n text.txt : 查看文件text.txt的内容,并在每一行前显示行号。

more : 用于查看文本文件的内容,和cat相比,more会一页一页的显示,并在当前页的最后一行显示百分比,表示当前阅读的进度。 

格式:
    more + 空格 +文件名(带后缀)

按键操作:
    Enter键 :向下滚动一行。
    空格键:向下滚动一页。
    Q键:表示退出more指令。

举例:
    more text.cpp : 用于查看text.cpp文本文件的内容。

less : 用于查看文本文件内容,和more相比功能更强大;在more指令的基础上添加了可编辑功能。

格式:
    less + 空格 + 文件名(带后缀)

按键操作:
    空格键:向下翻页。
    B 键:向上翻页。
    ↑↓←→键 : 光标向上,下,左,右移动。
    Q 键:退出less指令。

举例:
    less text.cpp : 用于查看text.cpp文本文件的内容。

2.5、文件/文件夹操作(mkdir, rmdir, touch, rm)

mkdir : 在当前目录下创建文件夹,一次可以创建1个或者多个。

格式:
    mkdir + 空格 + 文件夹名 [ + 空格 + 文件夹名 … ]

举例:
    mkdir test1 test2 : 在当前目录下创建test1 和test2文件夹。
    mkdir test/test1 : 在当前目录下的子级目录test下创建test1文件夹(注意 :此时子级目录test必须是存在的,否则该指令执行失败)。
    mkdir -p test/test1 : 在当前目录下的子级目录test下创建test1文件夹(注意 :此时如果子级目录test不存在的,否则该指令会先依次创建子级目录test,然后再创建test1)。

rmdir : 该指令用于删除目录(文件夹)。

格式:
    rmdir + 空格 + [目录(文件夹名)]

举例:
    rmdir test : 删除文件夹test。

注意:
    1、目录(文件夹)为执行该指令会失败,因此使用该指令时,需要先清除该目录下的所有文件以及文件夹。因为rmdir的这一局限性,导致该指令很少被用,反而功能更强大的rm(下面有介绍)很受欢迎。

touch : 在当前目录下创建一个或者多个文件。

格式:
    touch  + 空格 + 文件夹名 [ + 空格 + 文件夹名 … ]

举例:
    touch text1.txt text2.txt :创建文件text1.txt 和 text2.txt。

rm : 用于删除一个或者多个文件(包含目标路径下的全部文件及文件夹,是一种递归删除)。

格式:
    rm  + 空格 + [option] + 空格 + [文件/文件夹名 … ]

举例:
    rm text.txt :  删除当前目录下的text.txt文件。
    rm *.txt : 删除当前目录下以“.txt”为后缀名的全部文件。
    rm -i text.txt : 删除当前目录下的text.txt文件,在删除前,系统会询问用户是否执行删除操作,如果回答“y”表示确认删除;“n”则表示跳过该文件。
    rm -r test/ : 遍历删除当前目录下子级目录test下的全部文件和文件夹。

注意:
    1、通过该指令被删除的文件将永远的从系统中消失,而不会被放在几个被称为“回收站”的临时目录下。
    2、使用rm指令时应该格外小心些,特别是以root权限操作时。因为文件彻底删除的特性,往往会导致一些惨痛的教训。

2.6、编辑文本文件(vi, vim)

vi/vim : 编辑文本文件。

格式:
    vi/vim + 空格 + 文件

编辑操作:
    I 键 : 表示进入编辑模式。
    Page Up & Page Down : 键可以上下翻页,
    Esc键 : 退出编辑模式。
    :x :  删除当前字符;
    :dd :  删除当前行;
    :u : 恢复前一步操作;
    :p : 复制之前删除的行。
    :wq: 退出当前编辑并保存。
    :q!: 退出当前编辑,不保存本次编辑内容。

举例:
    vi/vim file.txt :  编辑当前路径下file.txt文件。
    vi/vim /bin/file.txt :  编辑当前自己下路径下file.txt文件。

2.7、查找文本文件内容(grep)

grep  : 有时候我们并不需要查文件的全内容,此时就可以根据该指令包含查询信息的一行或者多行。

格式:
    grep + 空格 + [option] + 空格 + 查询信息(条件) + 文件

举例:
    grep 1111 text.txt : 在文件中查询包含“1111”文本的一行或者多行。

2.8、移动文件/文件夹(mv)

mv : 用于移动文件或者文件夹。重名时将会覆盖目标路径下的原有文件。

格式:
    mv + 空格 + 文件/文件夹 + 空格 + 目录

举例:
    mv file.txt bin/ : 将当前目录下的file.txt文件移动到bin目录下。   
    mv test/ bin/ : 将当前目录下的test文件夹移动到bin目录下。 


注意:
    1、  如果目标目录下有同名的文件或者文件夹,将会被迁移进来的文件或者文件夹覆盖。

2.9、拷贝复制文件/文件夹(cp)

cp : 用来赋值文件或者文件夹。默认情况下cp命令会跳过文件夹(目录),此时就可以使用-r指令实现递归拷贝,将文件夹以及其目录下的内容一起拷贝到目标路径下。

格式:
    cp + 空格 + [option] + 空格 + 文件/文件夹 + 空格 + 目录

option 可选参数如下:
    -a : 是指archive的意思,也说是指复制所有的目录
    -d : 若源文件为连接文件(link file),则复制连接文件属性而非文件本身
    -f : 强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
    -i : 若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
    -l : 建立硬连接(hard link)的连接文件,而非复制文件本身
    -p : 与文件的属性一起复制,而非使用默认属性
    -r : 递归复制,用于目录的复制操作
    -s : 复制成符号连接文件(symbolic link),即“快捷方式”文件
    -u : 若目标文件比源文件旧,更新目标文件


举例:
    //普通拷贝复制
    cp file.txt bin/ : 拷贝复制文件file.txt到目录bin下。      
    cp -i file.txt bin/ :  考本文件file.txt到目录bin下,在真正执行拷贝前,系统会先询问,“y”表示覆盖,“n”表示跳过该文件。    
    cp -r test/ bin/ : 递归拷贝test文件夹下的内容到bin目录下。
    cp * /home : 把当前目录下的所有为隐藏文件都拷贝到home目录下。
    cp -rf /usr /root :将 /usr 文件夹复制到 /root 文件夹下(会形成: /root/usr 文件夹)。
    cp -rf /usr/** /root :将 /usr 文件夹下的全部文件复制到 /root文件夹下。 (会形成: /root/usr文件夹下的内容)


    //强制拷贝覆盖、替换文件(如果目标路径有重名的,强制覆盖)
    \cp src dest : 前面增加 反斜杠“\” , 表示强制覆盖文件。
    \cp Hello.java World.java : 将 Hello.java 文件强制替换到 World.java下。 (相当于: World.java 删除,Hello.java 文件复制过来,改名 World.java)
    \cp -rf /usr /root : 将 /usr 文件夹复制到 /root 文件夹下,遇到相同,会强制覆盖掉!
    \cp -rf /usr/** /root :将 /usr 文件夹下的全部文件复制到 /root 文件夹下,遇到相同,会强制覆盖掉!

2.10、文件/文件夹权(chmod)

chmod : 用于改变一个文件的权限,该指令使用“用户组+/-权限”的表达方式来增加或者删除对应的权限。

格式:
    chmod + 空格 + 用户组+/-权限 + 空格 + 文件

用户组:
    u : 文件属主
    g : 文件属组
    o : 其他人
    a : 所有人

权限:
    r : 读取
    w : 写入
    x : 执行
    
注意事项:
    1、用户还可以通过“用户组=权限”的规则直接设置文件的权限。例如:chmod ug=rw, a=r file.txt 表示赋予属主(u)和数组(g)的读写权限和所有人(a)的读取权限。

举例:
    chmod u+x file.txt : 增加了属主对文件file.txt的执行权限。
    chmod o=u file.txt : 直接将属主的权限赋值给其他人,赋值后,两者的权限相同。

2.11、其他基础常用操作*

su root : 切换用户到root。
svn checkout svn路径 : 下载svn中的代码到当前路(目录)径下(该过程需要录入svn代码)。
df : 查看磁盘使用情况(详细参见:截图1:df 指令)。df 命令会收集当前已经挂载的全部文件系统的一些重要的统计数据。显示的信息有 : 文件系统名、1K-blocks、已用、可用、已用%、挂载点等信息。

截图1:df 指令:

image.png

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