前言

一些常用的命令行指令进行总结分享

以下命令均可查阅帮助手册(格式如下)

命令 /?
命令 /help
help 命令

一、Windows

windows下所有指令不区分大小写
通配符号*
管道符号|


打开终端 win+r
输入cmd回车即可(可执行文件在C:\Windows\System32的目录下)
输入cmd(Ctrl+Shift+回车)以管理员身份运行


1.1 路径操作

cd(切换路径)

1
2
3
4
5
6
cd                   显示当前所在目录
cd .. 回到上级目录
cd \ 回到根目录
cd 指定路径 切换到指定路径下(但是不切到其他盘)
cd /d 指定路径 切换到指定路径下(可以切到其他盘)
直接输入盘符D: 切换到D盘

dir(查看路径下内容)

1
2
3
dir /a               列出当前文件夹下所有文件/文件夹
dir 指定路径 列出指定路径下文件列表
dir /q 同时列出所有者

1.2 文件操作

创建文件

1
2
3
4
5
6
7
8
9
创建空文件
touch 文件名
type null > 文件名 创建空文件
单行写入
echo 内容 >> 文件名 向文件中写入内容(创建文件)
echo 内容 > 文件名 将内容写入文件里
echo 内容 >> 文件名 追加内容到文件里
多行写入
copy con 文件名 将终端输入的内容写到文件中(Ctrl+Z结束)

删除文件

1
2
del 文件名                 删除文件
del /q 文件名 删除文件(不进行确认)

查看文件内容

1
2
3
type 文件名                查看文件内容(分页显示文件内容)
more 文件名 查看文件内容(不是一次性展示完全)
type 文件名 | more 通过分页查看文件内容(分页部分加载)

打开文件

1
2
start 文件名              使用默认程序打开文件
notepad 文件名 使用指定程序运行文件(无环境变量需要指定路径)

重命名文件

ren(rename) 旧文件名 新文件名 重命名文件

比较文件

fc 文件名1 文件名2 比较两个文件的差异

查找文件内容

1
2
3
find "xxx" 路径文件名        查找文件中是否出现xxx内容
/i 忽略大小写
/c 返回所在行

1.3 文件夹操作

创建&删除文件夹

1
2
3
4
5
md(mkdir) 文件夹名               创建文件夹

rd(rmdir) 文件夹名 删除文件夹(不可以删除非空)
rd /s 强制删除(可以删除非空)
rd /q 删除时安静模式(默认确认删除)

1.4 移动拷贝

1
2
3
4
copy 原文件路径/文件名 目的文件路径/文件名   复制文件
copy 1.txt + 2.txt 3.txt 合并1.txt和2.txt的内容保存为 3.txt 文件
move 原文件路径/文件名 目的文件路径/文件名 移动(拷贝)文件
move 1.txt ..\b\ 移动1.txt到上一级目录b文件夹下

1.5 开关机相关

1
2
3
4
5
6
7
8
shutdown /s                  立即关机
shutdown /f 强制关机
shutdown /s /t 60 关机倒计时
shutdown /a 取消关机
shutdown /r 重启电脑
shuwdown /r /t 60 60秒后重启电脑
shutdown /l 注销(同logoff)
shutdown /h 休眠计算机

1.6 网络相关

本地网络

1
2
3
4
5
6
ipconfig  /all               查看网卡详细信息
ipconfig /flushdns 清除本地 DNS 缓存、
arp -a 显示当前所有网卡的ARP信息表
netstat -ano 查看网络连接状态
netstat -ano | findstr xxx 前面内容作为后面内容的输入进行选择
route print 本机路由表

远端网络

1
2
3
ping ip/域名                 检测网络连通性和延迟
100~130ms之间,Windows系统 ;
240~255ms之间,UNIX/Linux系统。

1
2
tracert ip/域名              跟踪路由途径
nslookup 域名 解析IP

1.7 进程操作

查看当前运行进程

tasklist 显示当前进程表

终止进程

1
2
3
4
5
taskkill /F /IM  进程名称
taskkill /f /pid 进程pid号
- /f 表示强制终止
- /im 表示指定的进程名称
- /pid 表示进程pid号

1.8 环境变量相关

path 查看系统环境变量

设置临时环境变量

  • 添加或者修改环境变量
    1
    2
    3
    set 变量名=变量内容
    # 设置变量 tmp 的值为 c:\tmp
    set tmp=c:\tmp
  • 追加环境变量
    1
    2
    3
    set 变量名=%变量名%;变量内容
    # 给path追加一个变量为d:\go
    set path=%path%;d:\go

设置永久环境变量

  • 用户环境变量
    1
    2
    3
    4
    设置用户环境变量:setx "变量名" "变量值"  
    setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_281"
    将 JAVA_HOME 的值设置为 "C:\Program Files\Java\jdk1.8.0_281"。
    echo %JAVA_HOME% 查看是否生效
  • 系统环境变量
    1
    2
    3
    设置计算机(全局)环境变量:setx "变量名" "变量值" /m
    setx /m PATH "%PATH%;C:\MyFolder"
    将系统的 PATH 环境变量添加 "C:\MyFolder" 这个路径。

1.9 防火墙相关

1
2
3
4
netsh firewall show state        查看防火墙状态
netsh firewall show config 查看防火墙配置
netsh advfirewall set allprofiles state off 关闭防火墙(管理员)
netsh advfirewall set allprofiles state on 开启防火墙(管理员)

添加规则(应用)

1
2
netsh advfirewall firewall add rule name="f.exe" dir=in program="e:\f.exe" action=allow     为e:\f.exe 添加防火墙入站规则
netsh advfirewall firewall delete rule name="f.exe" 删除规则

添加规则(端口)

1
2
3
4
添加规则
netsh advfirewall firewall add rule name="HTTP" protocol=TCP dir=in localport=8080 action=allow(block为关闭)
删除规则
netsh advfirewall firewall delete rule name="HTTP" protocol=TCP dir=in localport=8080

查看配置的规则

1
netsh advfirewall firewall show rule name="HTTP"

1.10 用户相关

windows 内置账户

1
2
3
4
5
6
7
8
administrator  #管理员账户 (权限很高)
guest              #来宾账户 (权限很低)
计算机服务组件相关的账户:
system                #系统账户 == 权限至高无上(只能系统使用,不能人使用,系统偷偷运行的)
local services       #本地服务账户 == 权限等于普通用户
network services   #网络服务账户 == 权限等于普通用户 (联网相关的服务都是它在启)

所有用户的密码均存放在电脑的C:\Windows\System32\config\SAM中,但是全部(hash加密)且无法打开

查看用户

1
2
3
4
net user                 查看当前系统下的用户(但是看不到隐藏账户)
net localgroup 查看所有的用户组
net localgroup +组名 查看当前组下的用户
net localgroup administrators 查看管理组下的用户

添加用户

1
2
3
4
net user 用户名  密码  /add          添加一个用户
net user admin admin /add
net localgroup 组名 +用户名 /add 添加用户到组
net localgroup administrators admin /add

删除用户

1
2
3
4
net user 用户名  密码  /del          删除用户
net user admin /del
net localgroup 组名 +用户名 /del 从组中删除用户
net localgroup administrators admin /del

影子账户

1
2
3
4
5
6
7
8
net user 用户名$ 密码   /add
net user test$ test /add
net user 看不到
compmgmt.msc 可以看到


net localgroup 组名 用户名$ /add
net localgroup administrators test$ /add

1.11 远程桌面

前提条件:
家庭版只能连接他人,而不能被别人连接
专业版既可以连接别人,也可以被别人连接
只限于局域网,如果要跨网段连接,请在路由器做端口转发

查找真实端口

1
2
3
4
5
6
7
8
9
默认方式   netstat -ano | findstr 3389    查看远程桌面服务是否开放

其他方式1:
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber
若返回0xd3d 则10进制为3389 其他则自行转换

其他方式2:
tasklist /svc | find "Ter"(在tasklist /svc中找到TermService)的PID
netstat -ano | find "PID"

开启和关闭远程服务

1
2
3
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f   开启远程桌面

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f 关闭远程桌面

修改远程桌面端口

1
2
3
4
5
6
7
8
9
在regedit中找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp 下面的PortNumber

双击修改PortNumber,默认是十六位进制,点击十进制。我们将端口号修改

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStaions\RDP-Tcp 下面的PortNumber
双击修改PortNumber,默认是十六位进制,点击十进制。我们将端口号修改
重启电脑(或者服务)生效

关于远程桌面的连接问题

  • 开启远程服务
  • 1.win+i 打开远程桌面
  • 2.sysdm.cpl 打开远程
  • 3.查看ip地址(win+r -> cmd -> ipconfig)
  • 4.win+r 输入mstsc 打开远程,输入IP:Port连接(用户信息继续看下面)

用户名和密码必需输入被控制电脑的管理组成员
默认情况下,无密码不能登录

  • 本地用户
    1
    2
    3
    系统默认最高权限时Administrator 无密码(需添加)
    可以给其设置密码 net user Administrator 密码
    添加新用户也同理
  • 微软账户
    1
    2
    3
    4
    5
    6
    7
    8
    9
    不需要退出微软用户登录本地用户(这也算一种方式)
    使用微软邮箱+微软密码进行登录
    微软账号为: bighard@qq.com 
    密码为12344qwert@&&
    那就把MicrosoftAccount\bighard@qq.com作为用户名
    12344qwert@&&
    作为密码即可。

    现在发现账号填微软账号,密码填微软账号密码也行

如何判断密码

1
2
1.如果使用的是本地用户,开机或者win+l后,需要输入密码,那就是那个账户的密码
2.如果用的微软账户,且已经设置了Hello pin,那个Hello pin并不是你的远程密码

无密码登录(不推荐)

win+r gpedit.msc ->Windows设置->安全设置->本地设置->安全选项
找到账户:使用空密码的本地账户,设置为禁用,即可通过无密码远程登录
注:不推荐,不安全!!!

1.12 远程下载文件

  1. cmd下
    curl http://xx.xx.xx.xx/test.zip -o 文件名 将文件下载并重命名
  1. powershell下
    wget http://xx.xx.xx.xx/test.zip -o 文件名 将文件下载并重命名

其他

cmd下

1
2
3
4
5
6
7
8
start           再打开一个cmd
start /b 后台执行
exit 退出当前cmd
title xxx 将cmd命令行窗口标题换为xxx
color xy x表示背景色,y表示字体色(x,y∈[0,F])
cls 清空屏幕
Ctrl+c 终止命令
pause 暂停命令

特殊符号使用

1
2
3
4
5
6
7
8
9
10
11
12
13
&   顺序执行多条命令,而不管命令是否执行成功
&& 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
|| 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
| 管道命令
dir *.* /s/a | find /c ".exe"
管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令
该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数
> 和 >> 均为重定向符号(指定文件不存在则自动创建)
> 清除文件中原有的内容后再写入,相当于直接覆盖整个文件
>> 追加内容到文件末尾,而不会清除原有的内容
< 从文件中获得输入信息,而不是从屏幕上
echo 2005-05-01>temp.txt 写入内容到文件
date < temp.txt 从文件中读取

转义字符

1
2
3
^ 在特殊字符前加入,进行转义,避免与其他字符使用冲突
echo ^<?php 123; ?^> > 222.txt
将<?php 123; ?>写入222.txt文件中

输出到空

1
dir > NULL            输出信息不显示

查看系统信息

1
2
3
4
5
6
ver                      查看系统版本
winver 显示系统版本
systeminfo 显示电脑详细配置信息
echo %username% 输出当前用户名
echo %userprofile% 输出用户配置文件位置
hostname 查看当前电脑名称

快捷打开方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
noetpad                   打开系统自带的记事本
mstsc 打开远程桌面连接
regedit 打开注册表
mspaint 打开画图
write 打开写字板
calc 打开计算器
taskmgr 打开任务管理器
services.msc 打开服务
control 打开控制面板
sysdm.cpl 系统属性(常用)
compmgmt.msc 打开计算机管理(常用)
explorer 打开文件资源管理器
gpedit.msc 打开组策略
lusrmgr.msc 打开本地用户和组
schtasks.exe 查看计划任务
firewall.cpl 打开防火墙配置
desk.cpl 打开屏幕设置
ncpa.cpl 打开网络连接(常用)

二、Linux

2.1 文件系统

1.Linux一切皆文件
2.只有一个顶级目录
注意事项:命令区分大小写

Linux 含义
/bin 所有用户可用的基本命令存放的位置
/sbin 需要管理员权限才能使用的命令
/boot linux系统启动的时候需要加载和使用的文件
/dev 外设连接linux后,对应的文件存放的位置
/etc 存放系统或者安装的程序的配置文件,注册服务等
/home 家目录,linux中每新建一个用户,会自动在home中为该用户分配一个文件夹
/root root账户的家目录,仅供root账户使用
/lib linux的命令和系统启动,需要使用一些公共的依赖,放在lib中,类似我们开发的代码执行需要引入的jdk的jar
/usr 很多系统软件的默认安装路径
/var 系统和程序运行产生的日志文件和缓存文件放在这里

2.2 路径操作

ls

1
2
3
4
5
6
ls [-参数1参数2] [目标文件夹]     查看文件列表
ls 查看当前目录下的文件列表
ls / 查看根目录下的文件
ls -l 查看详细信息
ls -a 查看隐藏文件(.开头的就是隐藏文件)
ls -la 参数可并用

cd

1
2
3
4
5
cd 目标文件夹           切换目录
cd ~ 切换到当前用户的home目录
cd . 当前目录
cd .. 切回上一级目录
cd - 切到上次所在的目录

pwd

pwd 查看当前命令所在的目录

2.3 文件操作

创建文件

1
2
touch 文件名          创建空文件
vim 文件名 使用vim编辑器创建文件

删除文件

1
2
rm 文件              删除文件
rm -rf 文件 强制删除不询问

查看文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
stat 文件名          显示文件详细信息

cat 文件名 一次性查看文件全部内容
cat -n 文件名 查看文件内容,并从1开始对所有输出的行数(包括空行)进行编号
cat -b 文件名 查看文件内容,并从1开始对所有输出的非空行进行编号

tac 文件名 倒叙输出文件内容

more 文件名 分页查看内容
more -num 文件名   查看文件内容,一次显示num行
more +num 文件名   查看文件内容,从第num行开始显示

less 文件名 滚动查看文件内容
按   Q退出less命令

head 文件名 指令用于显示文件开头的内容,默认显示文件的前10行内容
head -n <行数> filename      显示文件内容的前n行
head -c <字节> filename      显示文件内容的前n个字节

tail 文件名 指令用于显示文件尾部的内容,默认显示指定文件的末尾10行
tail -n <行数> filename    显示文件尾部的n行内容
tail -c <字节数> filename   显示文件尾部的n个字节内容;

打开文件编辑

vim 操作见Linux vi/vim
vim 文件名

重命名文件

mv 旧文件名 新文件名

比较文件

diff 文件1 文件2 逐行比较文件

查找文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
find 搜索路径 -name "文件名关键词"
find / -name "passwd"
find / -perm 4000 2>/dev/null
寻找 4000权限的文件,不显示其他的错误信息相当于过滤。

which xxx 从环境变量从查找程序

whereis xxx 全盘查找文件
-b 查找二进制文件
-m 查找帮助手册

locate 文件名 从整个磁盘查找文件(每次重启时更新数据库)
若是要查找新建的文件或者新下载的程序,请输入以下命令更新数据库
sudo updatedb
再使用locate 文件名查找

查找文件内容

1
2
3
grep -参数 内容 要查找的目录范围
参数 -n 显示查找结果所在行号
grep 1 1.txt

2.4 文件夹操作

创建&删除文件夹

1
2
3
mkdir 文件夹名
rmdir 文件夹名 删除一个非空文件夹
rm(remove) -rf 文件夹 删除文件夹(递归且强制)

2.5 移动拷贝

1
2
3
4
mv 旧文件路径 新文件路径      移动文件到新目录
区分 mv 旧文件名 新文件名 这是修改文件名

cp 旧文件路径 新文件路径 复制文件

2.6 权限管理

==注意:root账户不受文件权限的读写限制,执行权限受限制==

  • 文件类型

    当为 d 则是目录
    当为 - 则是文件
    若是 l  则表示为链接文档(link file)
    若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
    若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

    owner 属主,缩写u
    group 属组,缩写g
    other 其他,缩写o

  1. chgrp(更改文件属组(Group))
    1
    2
    chgrp [-R] 属组名 文件夹名   -R递归更改文件属组
    chgrp root 1.txt 修改1.txt的所属组为root
  2. chown(更改文件所有者(owner),也可以同时更改文件所属组(Group))
    1
    2
    3
    4
    chown [–R] 所有者 文件名    -R递归更改文件属组
    chown root 1.txt 修改1.txt的所有者为root
    chown [-R] 所有者:属组名 文件名
    chown root:root 1.txt 修改1.txt的所有者和属组为root
  3. chmod(更改文件9个属性)

    r:4
    w:2
    x:1

    1
    2
    3
    4
    5
    6
    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的
    例如当权限为:-rwxrwx--- 分数则是:
    - owner = rwx = 4+2+1 = 7
    - group = rwx = 4+2+1 = 7
    - others= --- = 0+0+0 = 0
    则命令为 chmod 770 1.txt

2.7 解压缩

unzip

1
2
3
4
unzip 压缩包名                  解压到当前目录
unzip -d /temp test.zip 解压到指定的目录下
unzip -l test.zip 只看zip压缩包中包含哪些文件,不进行解压缩

gzip

1
2
3
4
压缩
gzip -9(高度压缩(可选)) 文件名 压缩文件名+gz 即可
解压
gzip -d 压缩包

bzip2

1
2
3
4
压缩
bzip2 -9(高度压缩(可选)) 文件名 压缩文件名+bz2 即可
解压
bzip2 -d 压缩包

打包内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
tar -cvf a.tar xxx		打包多个内容为a.tar压缩包
tar -tvf a.tar 查看压缩包里有什么东西
tar -rvf a.tar 1.txt 追加1.txt到a.tar中
tar -xvf a.tar 解压a.tar

再进行压缩
gzip -9 a.tar
解压(一步到位)
tar zxvf a.tar.gz

再进行压缩
bzip2 -9 a.tar
解压(一步到位)
tar jxvf a.tar.gz
  1. 软连接

    软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    软链接可以对目录进行链接
    软链接可以 跨文件系统 ,硬链接不可以

    1
    2
    3
    4
    ln [参数][源文件或目录][目标文件或目录]
    -s 软连接
    ln -s 源文件或目录 目标文件或目录
    ln -s log2013.log link2013 为log2013.log文件创建软链接link2013
  2. 硬链接

    硬链接,以文件副本的形式存在。但不占用实际空间
    不允许给目录创建硬链接
    硬链接只有在同一个文件系统中才能创建

    1
    2
    ln log2013.log ln2013    
    为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同

2.9 开关机相关

1
2
3
4
5
6
shutdown -h now            立即关机(root权限)
halt 立即关机
shutdown -h 10 10 分钟后自动关机
shutdown -c 取消操作
shutdown -r now 重启
reboot 重启

2.10 系统管理

查看进程

1
2
3
4
ps -aux                 静态查看系统进程

top 实时查看系统进程(快捷键 ↑下翻 ↓上翻 q退出)

关闭进程

1
2
kill 进程id             关闭进程 
kill -9 进程id 强制关闭进程(谨慎使用)

2.11 用户管理

添加用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源

useradd 选项 用户名
选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
示例:useradd –d /home/sam -m sam
创建了用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam
useradd -s /bin/sh -g group –G adm,root gem
新建了用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

增加用户账号就是在/etc/passwd(用户密码所在地(加密存储))文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。

删除账户

1
2
3
4
从系统中删除不再使用的用户账号。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

userdel 选项 用户名
userdel -r sam -r就是连同用户目录删除

修改账号相关信息

1
2
3
usermod 选项 用户名
usermod -s /bin/ksh -d /home/z –g developer sam
将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

用户密码的设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

passwd 选项 用户名
选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。

当前如果登录sam
则直接passwd 输入对应信息即可

当前如果登录root(超级管理员)
passwd [选项] sam 输入对应信息即可
passwd -d sam 删除sam的口令
passwd -l sam 锁定sam用户

用户相关文件解读

  1. /etc/passwd

    /etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式如下
    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
    口令只是一个标识,真正的加密后密码在/etc/shadow中

  2. /etc/shadows

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

2.12 网络服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ifconfig  -a               查看ip信息
ip addr 查看ip信息

修改IP(重启会消失)
ifconfig 网卡名称 IP地址 netmask 子网掩码
ifconfig eth0 192.168.1.3 netmask 255.255.255.0

修改IP(长久)
vim /etc/network/interfaces文件
添加如下内容为静态IP
auto eth0
iface eth0 inet static/(dhcp)
address IP地址
netmask 子网掩码
gateway 网关

2.13 服务信息

1
2
3
4
5
6
systemctl status 服务名(sshd/mysql)      查看服务状态
systemctl start 服务名 启动服务
systemctl stop 服务名 关闭服务
systemctl restart 服务名 重启服务
systemctl disable 服务名 禁止开机自启动
systemctl enable 服务名 开机自启动

2.14 SSH配置

1
2
3
4
5
6
7
8
systemctl status sshd         查看SSH服务状态
/etc/init.d/ssh status 查看ssh的运行状态
/etc/init.d/ssh start 启动SSH服务
在/etc/ssh/sshd_config中取消注释
PermitRootLogin yes # 是否允许root用户登录
PasswordAuthentication yes # 是否使用密码验证,如果使用密钥对验证可以关了它
结束后重启SSH服务即可
/etc/init.d/ssh restart

2.15 权限管理

su和sudo的区别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
su一般后面加的是用户
su(switch user) 用户名 切换到目标用户(提供目标用户的密码)
su 123 切换到123
su 默认切换为root,切换到root用户但是pwd目录不变
su - root 切换到root用户,切换到root用户但是pwd目录/root

sudo一般后面加的是命令(提供自身用户的密码)
sudo cat /etc/sudoers 提升权限去直接命令(类似windows的以管理员身份运行)

谁能用sudo 在/etc/sudoers中定义

有时候会遇到sudo su 这是干嘛的呢?
sudo su 运行 sudo 命令给 su 命令提权,运行 su 命令。
要求执行该命令的用户必须在 sudoers 中才可以。
即su执行无权限,需要提前再执行

2.16 文件下载

1
2
3
4
5
6
7
8
9
10
wget http://xxx/a.txt  -o a.txt   下载文件并重命名
wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz
-c 支持断点续传
-b 后台下载
-e "https_prox=http://127.0.0.1:8087" 设置代理

curl http://www.linux.com www.linux.com 的html就会显示在屏幕
curl http://www.linux.com >> linux.html 内容写入文件
curl -o linux.html http://www.linux.com 下载到本地
-x "http://127.0.0.1:8080" 设置代理

其他

shell下

1
2
3
4
5
6
7
8
clear                 清除屏幕
file 文件名 查看文件类型
md5sum 文件名 计算和校验文件的 MD5 值。
wc 单词统计
id 查看用户的 uid,gid 及归属的用户组。
df 系统磁盘空间的使用情况。
date 获取当前时间
cal 查看日历

特殊符号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
~                        表示帐户的 home 目录
/ 代表根目录
* 通配符号
; 命令的分隔符
& 顺序执行多条命令,而不管命令是否执行成功
&& 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
|| 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
| 管道命令
echo "hello world" | wc -w 输出2 统计单词数量
> 和 >> 均为重定向符号(指定文件不存在则自动创建)
> 清除文件中原有的内容后再写入,相当于直接覆盖整个文件
>> 追加内容到文件末尾,而不会清除原有的内容
< 从文件中获得输入信息,而不是从屏幕上
echo 2005-05-01>temp.txt 写入内容到文件
date < temp.txt 从文件中读取
<< 多行输入重定向符
wc -w << EOF
heredoc> 123
heredoc> 123
heredoc> 123
heredoc> EOF 输出3

转义符号

1
2
3
4
\                        转义符号
示例:
echo \<\?php 123\;\?\> > shell.php
将<?php 123;?> 写入文件

输出到空

1
ls / > /dev/null          输出到空处

查看系统信息

1
2
3
uname -a             查看版本和内核
cat /proc/version  查看版本信息
hostname 获取

参考链接

Windows命令官方文档
windows命令
远程桌面端口问题
Linux Manpages Online