有话要说
为什么要用 Linux? 要用 Linux 的原因太多, 想说说不完啊.
如果你说用 Linux 只是为了装逼, 那证明你真的还很菜. 不排除有装逼了因素, 那也只占非常少的比例, 可以忽略不计.
我们反问一下, 为什么不用 Linux 呢? 回答无非就是: 没有图像界面, 操作太复杂, 和我以前的使用习惯不一样, 学习新的系统需要学习成本.
其实只是我们排斥未知的恐惧, 从心底里面抵触, 而找的各种理由. 要想做好一件事, 我们会去找各种方法. 不想做一件事, 我们会去找各种理由.
.net core 的推出绝对不是让我们在 Windows 上玩玩的. 特别是多年经验的. net er, 需要快速适应这种变化, 不然这是个危险的信号啊.
我们正在进行一场革命, 革的不好就没命了. 微软都已经拥抱 Linux 了, 你还有在坚持什么呢?(当然, 如果你只是想玩. net framework 的话, 当我没说.)
进入 Linux 你将进入另一个世界, 下面开始我们 Linux 的学习吧~
Shell 应用技巧, 常用快捷键
- Shift + insert #粘贴
- Ctrl + insert #复制
Tab[按键] 或者 Ctrl + i #命令补齐 [这个快捷键太有用了, 这不就是 Linux 下的智能提示么]
- Ctrl + w #删除前一个单词
- Ctrl + u #删除光标前全部字符
- Ctrl + k #删除光标后全部字符
- Ctrl + d #删除光标所在字符
- Ctrl + y #将删除的字符粘出来
- Ctrl + a #将光标移动到行首
- Ctrl + e #将光标移动到行尾
← 或者 ctrl + b #光标左移动
→ 或者 Ctrl + f #光标右移动
↑ 或者 Ctrl + p #显示上一条命令
↓ 或者 ctrl + n #显示下一条命令
- ctrl + s #暂时冻结输入
- ctrl + q #解冻(解冻后会自动输入之前的输入)
- Ctrl + l #清屏
- Ctrl + c #退出正在的执行命令或另起一行
- Ctrl + d #退出登录
- Ctrl + z
帮助命令
man (帮助命令)
原意: manual
语法: man [命令或配置文件]
首先我们学习 Linux 命令太多, 不可能记住所有命令. 那么这个 man 命令就是个很好的帮助命令.
示例:
- man 1 passwd # 1 查看命令帮助 ,1 默认可以省略
- man 5 passwd # 5 查看配置文件帮助
- # 只要按下 /, 光标就会跑到这个地方来, 你就可以开始输入搜寻字串(n 继续往下查询, N 方向查询)
- #q 退出, 空格向下翻页, pgup 向上翻页
- info (和 man 差不多)
原意: information
语法: info [任何关键字]
- whatis (查询基本信息, 等效于 man -f)
- #mandb 更新 whatis 数据库
- help (帮助)
可以查询一些 shell 内置命令帮助, 如 cd,pwd
--help (获取选项信息[常用] )
示例:
[root@localhost ~]# cat --help
用法: cat [选项]... [文件]...
将 [文件] 或标准输入组合输出到标准输出.
-A, --show-all 等于 - vET
-b, --number-nonblank 对非空输出行编号
-e 等于 - vE
-E, --show-ends 在每行结束处显示 "$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 - vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
- -u (被忽略)
- ...
有了这个命令, 我们学习起来就有了诀窍.
alias (别名)
查看别名: alias
命令别名: alias mycp='cp'
这样起的别名只在当前窗口有效, 如果要是命令长期有效则要修改配置文件. bashrc, 在 / root 目录下.
这样就很方便我们定制自己的个性命令了. 比如重启 supervisorctl reload 这个命令记不住, 太长了. 我们可以别名 alias reloadsupervisorctl='supervisorctl reload'. 这样我们只要记住 reload 然后按 tab 键就可以自动补全了.
文件管理, 文件搜索命令
cd (切换目录)
原意: change directo
语法: cd [目录]
pwd (显示当前目录)
原意: print working directory
语法: pwd
特殊目录
. 代表此层目录(cd ./dotnet 和 cd dotnet 等效)
.. 代表上一层目录
- 代表前一个工作目录(上次执行 cd 前的目录)
~ 代表 "目前使用者身份" 所在的主文件夹(和直接执行 cd 等效)
~account 代表 account 这个使用者的主文件夹( account 是个帐号名称)
示例:
- cd ~ #和直接 cd 等效
- cd .. #返回上层目录
- cd - #回到上次执行 cd 执行前的目录
- ls (显示目录文件)
- 原意: list
- 语法: ls [-ald] [文件或目录]
touch (创建空文件)
语法: touch [文件名]
查看文件的时间信息:
modification time ( mtime): 内容数据变更时
status time ( ctime): 状态改变时
access time ( atime) : 该文件的内容被取用时
示例:
[root@localhost dotnet]# ls -l dotnet #查看 dotnet 文件的创建时间(默认就是 mtime)
-rwxr-xr-x. 1 1002 27 105664 7 月 21 07:16 dotnet
[root@localhost dotnet]# ls -l --time=atime dotnet #查看 dotnet 文件的读取时间
-rwxr-xr-x. 1 1002 27 105664 8 月 19 17:31 dotnet
[root@localhost dotnet]# ls -l --time=ctime dotnet #查看 dotnet 文件的状态更新时间
-rwxr-xr-x. 1 1002 27 105664 8 月 15 20:23 dotnet
mkdir (创建新目录)
语法: mkdir [目录名]
cp (复制文件或目录)
语法: cp -r [原文件或目录][目的目录]
示例:
- [root@localhost ~]# cp mytest.txt mytest2.txt #复制 mytest.txt 到 mytest2.txt
- [root@localhost ~]# cp project project2 #复制文件夹(如果文件夹里面有内容赋值失败)
cp: 略过目录 "project"
- [root@localhost ~]# cp -r project project2 #复制文件夹 (需要带上 -r 参数, 递回持续复制)
- mv (移动文件或重命名)
原意: move
语法: mv [源文件或目录 ][目的目录]
rm (删除文件)
原意: remove
语法: rm -rf [文件或目录] #r 是删除目录 f 是不需要确认
示例:
[root@localhost ~]# rm mytest2.txt #删除文件 mytext2.txt(会默认给出提示)
rm: 是否删除普通文件 "mytest2.txt"?y
- [root@localhost ~]# rm -f mytest.txt #删除文件不需要提示(带上 -f 参数)
- [root@localhost ~]# rm project2 #不能删除目录
rm: 无法删除 "project2": 是一个目录
- [root@localhost ~]# rm -rf project2 #删除目录需要带上 - r(-r 递回删除, 带上 f 是不需要确认提示, 如果一百个文件, 提示一百次会疯的)
- [root@localhost project2]# rm System.xml* #删除 System.xml 开头的文件
rm: 是否删除普通文件 "System.Xml.ReaderWriter.dll"?y
rm: 是否删除普通文件 "System.Xml.XDocument.dll"?y
cat (显示文件内容)
原意: Concatenate
语法: cat [文件名]
示例:
- [root@localhost ~]# cat mytest.test #查看文件 mytest.test
- [root@localhost ~]# cat -n mytest.test #-n 显示行号 (类似 nl 命令)
这个命令有个缺点, 就是显示全部信息, 如果内容过多, 浏览就不方便了.
more (分页显示文件内容)
语法: more [文件名]
空格或 f 显示下一页
回车显示下一行
q 退出
示例:
[root@localhost ~]# more 三体. txt
输入 / 然后输入关键字比如 "三"
/ 三
... 跳过
- # 把带 "三" 的行都搜索出来了.
- Less (分页查询, 比 more 更加强大)
- [root@localhost ~]# head -n 5 三体. txt #显示前五行
- [root@localhost ~]# head -n 5 三体. txt #不显示后五行
- tail (查看文件的后几行)
- ln -s /home/testfile /home/testfile.soft #创建文件的软链接 testfile.soft
- ls -s /home.testfile /home/testifle.hard #创建文件的硬链接 testfile.hard
- which (显示系统命令所在目录)
- [root@localhost dotnet]# which ifconfig
- /usr/sbin/ifconfig
- find (查找文件或目录)
- find /etc -name init #查找目录下名字是 inti 的文件
- find /etc -size +204800 #查找目录下大于 100M 的文件
- find /etc -ctime -1 #查找 24 小时内被修改过属性的文件和目录
- find mytest -exec ls -l {
- } \; #查看当前目录 mytest 文件夹下的文件执行 ls -l 命令. -exec {
- }\; 是固定格式.
- find mytest -name F* #查找 mytest 文件夹下以 F 开头的文件
- find mytest -name F??? #查找 mytest 文件夹下以 F 开头的并且文件名只有四个字母
- locate (寻找文件或目录)
- [root@localhost dotnet]# locate dotnet #查询所有包含 dotnet 的文件和目录
- [root@localhost dotnet]# locate Dotnet #查询不到, 因为区分大小写
- [root@localhost dotnet]# locate -i Dotnet #查找所有路径或文件名包含 dotnet 关键字文件路径, 且不区分大小写
- [root@localhost dotnet]# locate -ic Dotnet# 查询搜索结果的数量
- 3661
- history (显示历史命令)
- | (管道)
- ls -l /etc | more #分页查看 etc 目录下的文件
- ls -l /etc | grep init #查看 etc 目录下文件名包含 init 的文件
- ls -l /etc | grep init | wc -l #查看 etc 目录下文件名包含 init 的文件的个数
- ls -l `which cd` #查看 cd 命令的文件信息(which 定位命令的位置)
- netstat
- netstat -lntp #查看监听 (Listen) 的端口
- netstat -antp #查看所有建立的 TCP 连接
- netstat -tunlp #查看端口使用情况 (如 netstat -tunlp | grep 3306 查看 3306 端口是否被使用)
- netstat -n | grep tcp | grep 80 | wc -l #监控网络客户连接数
- ps -eLf | grep dotnet | wc -l #监控 dotnet 线程数
- mpstat #不但能查看所有 CPU 的平均信息, 还能查看指定 CPU 的信息.
- top -u MySQL #查看使用情况 按键盘数字 "1", 可监控每个逻辑 CPU 的状况 (http://blog.csdn.net/dxl342/article/details/53507673)
- df -lh #显示所有硬盘的使用状况
- firewall-cmd --zone=public --add-port=80/tcp --permanent #开放 80 端口
- firewall-cmd --zone=public --remove-port=80/tcp --permanent #关闭 80 端口
- firewall-cmd --reload #重新载入, 使其生效
- systemctl restart firewalld #重启防火墙
- firewall-cmd --zone=public --list-ports #查看防火墙开启的端口
- http://www.cnblogs.com/moxiaoan/p/5683743.html
- - su #用户切换
- [root@localhost dotnet]# su BennyZhao
- [BennyZhao@localhost dotnet]$ su root
- init 5 #切换到图形界面
- init 3 #切换到命令行界面
- yum list installed | grep dotnet #查找已经安装的程序
- yum remove dotnet #卸载安装的程序
来源: http://www.bubuko.com/infodetail-2911004.html