Linux学习(1)-常用快捷键、文件管理和查询

 

阅读目录

 

有话要说

为什么要用Linux?要用Linux的原因太多,想说说不完啊。
如果你说用Linux只是为了装逼,那证明你真的还很菜。不排除有装逼了因素,那也只占非常少的比例,可以忽略不计。
我们反问一下,为什么不用Linux呢?回答无非就是:没有图像界面、操作太复杂、和我以前的使用习惯不一样、学习新的系统需要学习成本。
其实只是我们排斥未知的恐惧,从心底里面抵触,而找的各种理由。要想做好一件事,我们会去找各种方法。不想做一件事,我们会去找各种理由。
.net core的推出绝对不是让我们在Windows上玩玩的。特别是多年经验的.net er,需要快速适应这种变化,不然这是个危险的信号啊。
我们正在进行一场革命,革的不好就没命了。微软都已经拥抱Linux了,你还有在坚持什么呢?(当然,如果你只是想玩.net framework的话,当我没说。

进入Linux你将进入另一个世界,下面开始我们Linux的学习吧~

Shell应用技巧,常用快捷键

  1. Shift + insert #粘贴
  2. Ctrl + insert #复制
  3. Tab【按键】或者 Ctrl + i #命令补齐 【这个快捷键太有用了,这不就是linux下的智能提示么】
  1. Ctrl + w #删除前一个单词
  2. Ctrl + u #删除光标前全部字符
  3. Ctrl + k #删除光标后全部字符
  4. Ctrl + d #删除光标所在字符
  5. Ctrl + y #将删除的字符粘出来
  1. Ctrl + a #将光标移动到行首
  2. Ctrl + e #将光标移动到行尾
  3. 或者 ctrl + b #光标左移动
  4. 或者 Ctrl + f #光标右移动
  1. 或者 Ctrl + p #显示上一条命令
  2. 或者 ctrl + n #显示下一条命令
  3. ctrl + s #暂时冻结输入
  4. ctrl + q #解冻(解冻后会自动输入之前的输入)
  1. Ctrl + l #清屏
  2. Ctrl + c #退出正在的执行命令或另起一行
  3. Ctrl + d #退出登录
  4. Ctrl + z

帮助命令

man (帮助命令)

  1. 原意:manual
  2. 语法:man [命令或配置文件]
  3. 首先我们学习linux命令太多,不可能记住所有命令。那么这个man命令就是个很好的帮助命令。
  4. 示例:
  5. man 1 passwd # 1查看命令帮助 ,1默认可以省略
  6. man 5 passwd # 5查看配置文件帮助
  7. #只要按下/,光标就会跑到这个地方来,你就可以开始输入搜寻字串(n继续往下查询,N方向查询)
  8. #q退出、空格向下翻页、pgup向上翻页

info (和man差不多)

  1. 原意:information
  2. 语法:info [任何关键字]

whatis (查询基本信息,等效于man -f)

  1. #mandb 更新whatis数据库

help (帮助)

可以查询一些shell内置命令帮助,如 cd、pwd

--help (获取选项信息【常用】)

  1. 示例:
  2. [root@localhost ~]# cat --help
  3. 用法:cat [选项]... [文件]...
  4. 将[文件]或标准输入组合输出到标准输出。
  5. -A, --show-all 等于-vET
  6. -b, --number-nonblank 对非空输出行编号
  7. -e 等于-vE
  8. -E, --show-ends 在每行结束处显示"$"
  9. -n, --number 对输出的所有行编号
  10. -s, --squeeze-blank 不输出多行空行
  11. -t 与-vT 等价
  12. -T, --show-tabs 将跳格字符显示为^I
  13. -u (被忽略)
  14. ...
  15. 有了这个命令,我们学习起来就有了诀窍。

alias (别名)

  1. 查看别名:alias
  2. 命令别名:alias mycp='cp'
  3. 这样起的别名只在当前窗口有效,如果要是命令长期有效则要修改配置文件.bashrc,在/root目录下。
  4. 这样就很方便我们定制自己的个性命令了。比如重启supervisorctl reload这个命令记不住,太长了。我们可以别名alias reloadsupervisorctl='supervisorctl reload'。这样我们只要记住reload然后按tab键就可以自动补全了。

文件管理、文件搜索命令

cd (切换目录)

  1. 原意:change directo
  2. 语法:cd [目录]

pwd (显示当前目录)

  1. 原意:print working directory
  2. 语法:pwd

特殊目录

  1. . 代表此层目录(cd ./dotnet cd dotnet等效)
  2. .. 代表上一层目录
  3. - 代表前一个工作目录(上次执行cd前的目录)
  4. ~ 代表“目前使用者身份”所在的主文件夹(和直接执行cd等效)
  5. ~account 代表 account 这个使用者的主文件夹( account是个帐号名称)
  6. 示例:
  7. cd ~ #和直接cd 等效
  8. cd .. #返回上层目录
  9. cd - #回到上次执行cd执行前的目录

ls (显示目录文件)

  1. - 原意:list
  2. - 语法:ls [-ald] [文件或目录]

touch (创建空文件)

  1. 语法:touch [文件名]
  2. 查看文件的时间信息:
  3. modification time mtime):内容数据变更时
  4. status time ctime):状态改变时
  5. access time atime :该文件的内容被取用时
  6. 示例:
  7. [root@localhost dotnet]# ls -l dotnet #查看dotnet文件的创建时间(默认就是mtime)
  8. -rwxr-xr-x. 1 1002 27 105664 7 21 07:16 dotnet
  9. [root@localhost dotnet]# ls -l --time=atime dotnet #查看dotnet文件的读取时间
  10. -rwxr-xr-x. 1 1002 27 105664 8 19 17:31 dotnet
  11. [root@localhost dotnet]# ls -l --time=ctime dotnet #查看dotnet文件的状态更新时间
  12. -rwxr-xr-x. 1 1002 27 105664 8 15 20:23 dotnet

mkdir (创建新目录)

  1. 语法:mkdir [目录名]

cp (复制文件或目录)

  1. 语法:cp -r [原文件或目录][目的目录]
  2. 示例:
  3. [root@localhost ~]# cp mytest.txt mytest2.txt #复制mytest.txt 到 mytest2.txt
  4. [root@localhost ~]# cp project project2 #复制文件夹(如果文件夹里面有内容赋值失败)
  5. cp: 略过目录"project"
  6. [root@localhost ~]# cp -r project project2 #复制文件夹 (需要带上 -r参数,递回持续复制)

mv (移动文件或重命名)

  1. 原意:move
  2. 语法:mv [源文件或目录 ][目的目录]

rm (删除文件)

  1. 原意:remove
  2. 语法:rm -rf [文件或目录] #r是删除目录 f是不需要确认
  3. 示例:
  4. [root@localhost ~]# rm mytest2.txt #删除文件mytext2.txt(会默认给出提示)
  5. rm:是否删除普通文件 "mytest2.txt"y
  6. [root@localhost ~]# rm -f mytest.txt #删除文件不需要提示(带上 -f参数)
  7. [root@localhost ~]# rm project2 #不能删除目录
  8. rm: 无法删除"project2": 是一个目录
  9. [root@localhost ~]# rm -rf project2 #删除目录需要带上-r(-r递回删除、带上f是不需要确认提示,如果一百个文件,提示一百次会疯的)
  10. [root@localhost project2]# rm System.Xml* #删除System.Xml开头的文件
  11. rm:是否删除普通文件 "System.Xml.ReaderWriter.dll"y
  12. rm:是否删除普通文件 "System.Xml.XDocument.dll"y

cat (显示文件内容)

  1. 原意:Concatenate
  2. 语法:cat [文件名]
  3. 示例:
  4. [root@localhost ~]# cat mytest.test #查看文件mytest.test
  5. [root@localhost ~]# cat -n mytest.test #-n显示行号 (类似nl命令)
  6. 这个命令有个缺点,就是显示全部信息,如果内容过多,浏览就不方便了。

more (分页显示文件内容)

  1. 语法:more [文件名]
  2. 空格或f显示下一页
  3. 回车显示下一行
  4. q退出
  5. 示例:
  6. [root@localhost ~]# more 三体.txt
  7. 输入/ 然后输入关键字比如“三”
  8. /三
  9. ...跳过
  10. 相关文章
  11. 《三体3》未获雨果奖 ...
  12. 《三体》电影确定上映日程,...
  13. #把带“三”的行都搜索出来了。

less (分页查询,比more更加强大)

  1. more 只能翻下一页,less可以上下翻页。
  2. 参数:
  3. [pagedown]:向下翻动一页;
  4. [pageup] :向上翻动一页;
  5. /字串 :向下搜寻“字串”的功能;
  6. ?字串 :向上搜寻“字串”的功能;
  7. n :重复前一个搜寻 / ? 有关!)
  8. N :反向的重复前一个搜寻 / ? 有关!)
  9. g :前进到这个数据的第一行去;
  10. G :前进到这个数据的最后一行去 注意大小写)
  11. q :离开 less 这个程序;
  12. 示例:
  13. [root@localhost ~]# less 三体.txt
  14. 输入/ 然后输入关键字比如“三” 可以高亮关键字。

head (查看文件的前几行)

  1. 语法:head -num [文件名]
  2. 示例:
  3. [root@localhost ~]# head -n 5 三体.txt #显示前五行
  4. [root@localhost ~]# head -n 5 三体.txt #不显示后五行

tail (查看文件的后几行)

  1. 语法:tail -num [文件名]

ln (产生链接文件)

  1. 原意:link
  2. 语法:ln -s [源文件] [目标文件]
  3. 示例:
  4. ln -s /home/testfile /home/testfile.soft #创建文件的软链接testfile.soft
  5. ls -s /home.testfile /home/testifle.hard #创建文件的硬链接testfile.hard

which (显示系统命令所在目录)

  1. 语法:which [命令名称]
  2. 示例:
  3. [root@localhost dotnet]# which ifconfig
  4. /usr/sbin/ifconfig

find (查找文件或目录)

  1. 语法:find [搜索路径][搜索关键字]
  2. -a 逻辑与 -o 逻辑或 -name文件名 -size文件大小 -cteime文件修改时间
  3. 示例:
  4. find /etc -name init #查找目录下名字是inti的文件
  5. find /etc -size +204800 #查找目录下大于100M的文件
  6. find /etc -ctime -1 #查找24小时内被修改过属性的文件和目录
  7. find mytest -exec ls -l {} \; #查看当前目录mytest文件夹下的文件执行 ls -l 命令。 -exec {}\; 是固定格式。
  8. find mytest -name F* #查找mytest文件夹下以F开头的文件
  9. find mytest -name F??? #查找mytest文件夹下以F开头的并且文件名只有四个字母

locate (寻找文件或目录)

  1. 用法:locate [搜索关键字]
  2. 示例:
  3. [root@localhost dotnet]# locate dotnet #查询所有包含dotnet的文件和目录
  4. [root@localhost dotnet]# locate Dotnet #查询不到,因为区分大小写
  5. [root@localhost dotnet]# locate -i Dotnet #查找所有路径或文件名包含dotnet关键字文件路径,且不区分大小写
  6. [root@localhost dotnet]# locate -ic Dotnet#查询搜索结果的数量
  7. 3661
  8. 说明:
  9. 查询缓存数据库里查询(可以使用updatedb命令 [建立目录文件的数据库],默认每天更新一次)

grep (在文件内容中搜索匹配的行并输出)

  1. 用法:grep [指定字符串][源文件]
  2. 示例:
  3. grep testfile #搜索当前目录下的文件testfile中包含“我”的行

其他

输入/输出重定向

  1. - > 输出重定向
  2. 示例: ls -l > mytest.txt #将当前目录的所以文件信息写入mytest.txt文件下。
  3. - < 输入重定向
  4. 示例:wall < mytest.txt #将mytest.txt文件里面的内容广播(wall广播命令)
  5. - 2> 错误重定向
  6. 示例:ggg 2> err.txt # err.txt将记录错误信息 (ggg是个错误命令)

history (显示历史命令)

| (管道)

  1. ls查询到的文件可能很多,如果我们想要分页浏览,我们可以使用管道命令
  2. ls -l /etc | more #分页查看etc目录下的文件
  3. ls -l /etc | grep init #查看etc目录下文件名包含init的文件
  4. ls -l /etc | grep init | wc -l #查看etc目录下文件名包含init的文件的个数

命令连接符

  1. ;
  2. 示例:cd /home ; ls #跳转到home目录并且查看里面的文件(就算是错误的命令也会继续执行后面的命令。)
  3. &&
  4. 示例:ggg && ls #不会查看目录下的文件(中间有错误的命令存在就不会执行后面的命令)
  5. ||
  6. 示例:ggg || ls #会执行查看目录下的文件(遇到可以执行成功的命令就会停止执行后面的命令)

命令替换符

  1. 用法:命令1 `命令2`
  2. 示例:
  3. ls -l `which cd` #查看cd命令的文件信息(which定位命令的位置)

netstat

  1. netstat -lntp #查看监听(Listen)的端口
  2. netstat -antp #查看所有建立的TCP连接
  3. netstat -tunlp #查看端口使用情况 (如 netstat -tunlp | grep 3306 查看3306端口是否被使用)
  4. netstat -n | grep tcp | grep 80 | wc -l #监控网络客户连接数

负载信息

  1. ps -eLf | grep dotnet | wc -l #监控dotnet线程数
  2. mpstat #不但能查看所有CPU的平均信息,还能查看指定CPU的信息。
  3. top -u mysql #查看使用情况 按键盘数字“1”,可监控每个逻辑CPU的状况 (http://blog.csdn.net/dxl342/article/details/53507673)
  4. df -lh #显示所有硬盘的使用状况

firewall防火墙

  1. firewall-cmd --zone=public --add-port=80/tcp --permanent #开放80端口
  2. firewall-cmd --zone=public --remove-port=80/tcp --permanent #关闭80端口
  3. firewall-cmd --reload #重新载入,使其生效
  4. systemctl restart firewalld #重启防火墙
  5. firewall-cmd --zone=public --list-ports #查看防火墙开启的端口
  6. http://www.cnblogs.com/moxiaoan/p/5683743.html

其他

  1. - su #用户切换
  2. [root@localhost dotnet]# su BennyZhao
  3. [BennyZhao@localhost dotnet]$ su root
  4. - 图形界面与字符界面切换
  5. init 5 #切换到图形界面
  6. init 3 #切换到命令行界面
  7. - 安装rz
  8. yum install lrzsz #安装rz和sz命令
  9. - curl访问
  10. curl #访问
  11. 注意:除了 / 之外,所有的符号都可以为文件或文件夹命名。命名大小写敏感。

推荐

我的博客只是个人学习总结,并不适合园友用来学习。
这里推荐《鸟哥的Linux 私房菜》:http://linux.vbird.org/linux_basic/0220filemanager.php 这是网页版(默认是繁体字,可以使用chrome浏览器自动翻译成简体。可以用pocket插件在手机端看)网上也有PDF、mobi版。
然后喜欢看视频的可以:http://study.163.com/course/introduction.htm?courseId=266032#/courseDetail?tab=1 李明老师的视频也很不错,你也可以下载网易云课堂手机版在公交车或地铁上看。

Linux快捷键、文件管理和查询的更多相关文章

  1. Linux快捷键列表

    Linux快捷键列表 快捷键 功能描述 快捷键 功能描述 control+p 查询命令历史纪录的上一条命令 方向上键 查询命令历史纪录的上一条命令 control+n 查询命令历史纪录的下一条命令 方 ...

  2. 转 Linux命令-文件管理命令

    http://jingyan.baidu.com/article/9113f81bc1c7a72b3214c7d3.html Linux命令-文件管理命令 浏览:4118 | 更新:2012-11-1 ...

  3. Linux学习笔记(七) 查询系统

    1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...

  4. Linux命令-文件管理(四)

    Linux命令-文件管理 Linux slocate命令 Linux slocate命令查找文件或目录. slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息. 语法 slocate ...

  5. Linux命令-文件管理(二)

    Linux命令-文件管理(二) Linux gitview命令 Linux gitview命令用于观看文件的内容,它会同时显示十六进制和ASCII格式的字码. 语法:gitview [-bchilv] ...

  6. NO9 Linux快捷键整理及最常用命令

    Linux快捷键整理及最常用命令 常用快捷键: Ctrl + u            删除光标之前到行首的字符 Ctrl + k            删除光标之前到行尾的字符 Ctrl + c   ...

  7. iterm快捷键及操作技巧(附Linux快捷键)

    标签操作 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:com ...

  8. Linux快捷键 Linux权限

    第1章 回顾昨天内容 1.1 取出网卡ip地址 取出文件权限 1.2 awk '找谁{干啥}'  awk 'NR==2{print $4}' 1.3 系统时间 [root@oldboyedu-40-n ...

  9. Linux如何修改和查询时区时间

    Linux如何修改和查询时区时间 我在日常工作中,最近遇到了在解压源码包的时候,提示时间比较旧,解压安装出现问题.原因是,租用的vps所在时区和自己所需要的时区不一致,于是在网上找了相关资料.并亲自实 ...

随机推荐

  1. SQL数值转字符串保留指定小数位

    IF EXISTS ( SELECT * FROM sysobjects WHERE xtype = 'fn' AND name = 'fn_NumberFormat' ) BEGIN DROP FU ...

  2. collapse折叠

    基本: <button class="btn btn-primary" data-toggle="collapse" data-target=" ...

  3. ZOJ 2301 Color the Ball 线段树(区间更新+离散化)

    Color the Ball Time Limit: 2 Seconds      Memory Limit: 65536 KB There are infinite balls in a line ...

  4. Python Jsonpath模块用法

    在使用Python做自动化校验的时候,经常会从Json数据中取值,所以会用到Jsonpath模块,这里做个简单的总结 1.关于jsonpath用来解析多层嵌套的json数据;JsonPath 是一种信 ...

  5. Boost解析xml——xml写入

    <?xml version="1.0" encoding="utf-8"?> <Config> <Item name=" ...

  6. Node.js笔记(九)Nodejs与shell

    众所周知.Nodejs是单进程异步执行的.但不光是单进程,Nodejs也提供了多进程方面的支持 其创始人应该还是比較重视这一块的,最有力的证据就是child_process是Nodejs核心模块之中的 ...

  7. golang iota

    package main import ( "fmt" ) const ( Low = * (iota + ) Medium High ) func main() { //iota ...

  8. 关于ES6(ES2015)的知识点详细总结

    ECMAScript6 ECMAScript简称就是ES,你可以把它看成是一套标准,JavaScript就是实施了这套标准的一门语言,现在主流浏览器使用的是ECMAScript5. http://ba ...

  9. 【Educational Codeforces Round 33 C】 Rumor

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然最后会形成多个集合,每个集合里面的人能够可以互相到达. 则维护并查集的时候,顺便维护一下每个集合里面的最小值就好. 最后答案就为 ...

  10. 【河南省多校脸萌第六场 A】分班级

    [链接]点击打开链接 [题意] 在这里写题意 [题解] 最大的给了最小的,实际上就对应了,最大值减1,最小值加1. 那么二分最后班级人数最小的最大可能是几->temp1; 二分最后班级人数最大的 ...