为什么要用Linux?要用Linux的原因太多,想说说不完啊。
如果你说用Linux只是为了装逼,那证明你真的还很菜。不排除有装逼了因素,那也只占非常少的比例,可以忽略不计。
我们反问一下,为什么不用Linux呢?回答无非就是:没有图像界面、操作太复杂、和我以前的使用习惯不一样、学习新的系统需要学习成本。
其实只是我们排斥未知的恐惧,从心底里面抵触,而找的各种理由。要想做好一件事,我们会去找各种方法。不想做一件事,我们会去找各种理由。
.net core的推出绝对不是让我们在Windows上玩玩的。特别是多年经验的.net er,需要快速适应这种变化,不然这是个危险的信号啊。
我们正在进行一场革命,革的不好就没命了。微软都已经拥抱Linux了,你还有在坚持什么呢?(当然,如果你只是想玩.net framework的话,当我没说。)
进入Linux你将进入另一个世界,下面开始我们Linux的学习吧~
Shell应用技巧,常用快捷键
Shift + insert
Ctrl + insert
Tab【按键】或者 Ctrl + i
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
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
-A,
-b,
-e 等于-vE
-E,
-n,
-s,
-t 与-vT 等价
-T,
-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 -
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
-rwxr-xr-x.
1 1002 27 105664 8月
19 17:
31 dotnet
[root@localhost
dotnet]# ls -l
-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 ~]
输入/ 然后输入关键字比如“三”
/三
...跳过
相关文章
《三体
3》未获雨果奖
...
《三体》电影确定上映日程,
...
less (分页查询,比more更加强大)
more 只能翻下一页,
less可以上下翻页。
参数:
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻“字串”的功能;
?字串 :向上搜寻“字串”的功能;
n :重复前一个搜寻 ( 与 / 或 ? 有关!)
N :反向的重复前一个搜寻 ( 与 / 或 ? 有关!)
g :前进到这个数据的第一行去;
G :前进到这个数据的最后一行去 ( 注意大小写) ;
q :离开
less 这个程序;
示例:
[root@localhost ~]
输入/ 然后输入关键字比如“三” 可以高亮关键字。
head (查看文件的前几行)
语法:
head -num [文件名]
示例:
[root@localhost ~]#
head -n 5 三体
.txt #显示前五行
[root@localhost ~]#
head -n 5 三体
.txt #不显示后五行
tail (查看文件的后几行)
语法:
tail -num [文件名]
ln (产生链接文件)
原意:link
语法:ln
-s [源文件] [目标文件]
示例:
ln
-s /home/testfile /home/testfile.soft
ls
-s /home.testfile /home/testifle.hard
which (显示系统命令所在目录)
语法:which [命令名称]
示例:
[root@localhost dotnet]
/usr/sbin/ifconfig
find (查找文件或目录)
语法:find [
搜索路径][
搜索关键字]
-a 逻辑与 -o 逻辑或 -name文件名 -size文件大小 -cteime文件修改时间
示例:
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 (寻找文件或目录)
用法:locate [搜索关键字]
示例:
[root@localhost dotnet]
[root@localhost dotnet]
[root@localhost dotnet]
[root@localhost dotnet]
3661
说明:
查询缓存数据库里查询(可以使用updatedb命令 [建立目录文件的数据库],默认每天更新一次)
grep (在文件内容中搜索匹配的行并输出)
用法:grep [
指定字符串][
源文件]
示例:
grep 我 testfile #搜索当前目录下的文件testfile中包含“我”的行
其他
输入/输出重定向
- > 输出重定向
示例:
ls -l >
mytest.txt #将当前目录的所以文件信息写入
mytest.txt文件下。
- < 输入重定向
示例:
wall <
mytest.txt #将
mytest.txt文件里面的内容广播(
wall广播命令)
- 2> 错误重定向
示例:
ggg 2>
err.txt #
err.txt将记录错误信息 (
ggg是个错误命令)
history (显示历史命令)
| (管道)
ls查询到的文件可能很多,如果我们想要分页浏览,我们可以使用管道命令
ls
-l /etc | more
ls
-l /etc | grep init
ls
-l /etc | grep init | wc
-l
命令连接符
;
示例:
cd /home ; ls
&&
示例:ggg && ls
||
示例:ggg || ls
命令替换符
用法:命令1 `命令2`
示例:
ls
-l `
which cd`
netstat
netstat -lntp
netstat -antp
netstat -tunlp
netstat -n |
grep tcp |
grep 80 | wc -l
负载信息
ps
-eLf | grep dotnet | wc
-l
mpstat
top -u mysql
df -lh
firewall防火墙
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:
其他
- su
[root@localhost dotnet]
[BennyZhao@localhost dotnet]$ su root
- 图形界面与字符界面切换
init
5
init
3
- 安装rz
yum install lrzsz
- curl访问
curl
注意:除了 / 之外,所有的符号都可以为文件或文件夹命名。命名大小写敏感。