视频地址:http://study.163.com/course/courseMain.htm?courseId=1002910005
命令帮助
使用命令man
使用命令的–help选项
使用infor命令
使用help命令查看内部命令
目录路径概念
非以根目录”/”表达的路径是相对路径
.表示当前目录,..表示当前目录的上一级目录,~表示当前用户的家目录
./1.txt当前目录下的1.txt文件
../1.txt当前目录的上一级目录下的1.txt文件
以根目录”/”表达的路径是绝对路径
/home/1.txt根目录下home文件夹下的1.txt文件
pwd 查看当前所在的目录
目录操作
非以根目录”\”表达的路径是相对路径
.表示当前目录,..表示当前目录的上一级目录
./1.txt当前目录下的1.txt文件
../1.txt当前目录的上一级目录下的1.txt文件
以根目录”\”表达的路径是绝对路径
/home/1.txt根目录下home文件夹下的1.txt文件
ls 目录内容显示指令
cd 当前目录切换命令
pwd 当前目录显示命令
mkdir 目录新增命令
-p递归创建目录,如mkdir -p aa/pp
在当前目录下创建了一个目录aa,aa下面有一个子目录pp
cp 目录拷贝命令
rmdir 删除空目录
rm -rf 非空目录删除命令(-r用于递归删除,-f用于强制删除)
mv 目录的移动和改名
路径+文件名=完全合格文件名(mv实际修改的是完全合格文件名)
mv a b 把a改为b
mv c b/c 把c移动到b目录下面去
mv d b/e将d移动到b目录下面去的同时改为e
mv d b把d移动到当前文件夹下的b目录
文件显示和过滤
cat 文件内容的全屏显示命令
more 文件内容的分屏显示命令
less 文件内容的滚屏显示命令
head 文件头部内容的显示命令
-n 指定显示文件信息的行数
tail 文件尾部内容的显示命令
grep 文件内容的过滤显示命令
-v 反向筛选出不含关键词的行
-i将以忽略大小写的方式来筛选
文件增删及拷贝
touch 新增空文件的命令
cp 拷贝文件的命令
-a 可以拷贝文件和目录
-i 可以提示拷贝时是否覆盖
rm 文件的删除命令
-i 提示确认被删除的内容
-r 递归删除指定的文件或目录
-f 强制删除指定的文件或目录,无论其是否存在
mv 文件的移动改名命令
//将test.jar重名名为test.jar-bak
mv test.jar test.jar-bak
//将test.jar-bak文件移动到当前文件夹下的backup目录
mv test.jar-bak backup/ find 文件的查找命令
find [路径] [参数] [文件名]
-name 输出搜索结果并且打印
如在当前文件夹下以文件名查找aa的文件find . -name “aa”
which 系统命令文件的查找命令
locate 系统文件的快速查找命令
文本编辑器的基础编辑
i当前光标插入
a当前光标后插入
vi 打开文件操作
文本编辑器的高级编辑
文件基础归档和压缩
tar 文件归档命令(缺省仅仅打包归档,不进行文件压缩)
-c 创建归档文件包
-x 释放归档文件包
-t 查看归档文件包
-v 显示归档包操作过程信息
-f 指定归档包文件名
创建包(不会进行压缩)包含文件夹123
tar -cvf yasuobao.tar 123
查看包
tar -tvf yasuobao.tar
解包
tar -xvf yasuobao.tar
解压缩到指定目录aa
tar -xvf yasuobao.tar -C aa
-z文件包以*.tgz格式压缩
-j文件包以*.bz2格式压缩
创建压缩包,以.tgz格式压缩
tar -czvf yasuo.tgz 123
查看和解压在上面的基础上加z即可
zip 文件压缩命令(压缩文件包为*.zip格式)
zip 123.zip 123
unzip 文件解压缩命令
unzip 123.zip将文件解压到当前目录
7z压缩及库归档
7z 文件压缩命令(提供rar,iso在内的多种压缩格式的解压支持)
-a 添加文件到压缩包中
-e 释放压缩包中的文件到当前目录
-l 列式压缩包中的子文件列表
-d 删除压缩包文件中的某个子文件
-t 测试压缩文件的完整性
7za文件压缩命令
设备挂载和卸载
mount 设备挂载命令
特殊格式 mount.ntfs
设备卸载
目录卸载
设备文件卸载
一般在media目录下面,系统会帮你自动挂载
软件包升级
apt-get APT软件包管理命令(sudo是提供管理员权限)
apt-get download 在线软件包下载
eg:sudo apt-get download vim
apt-get install 在线软件包安装
eg:sudo apt-get install vim
apt-get update 软件列表更新
apt-get upgrade 软件在线升级
eg:sudo apt-get upgrade vim
dpkg Debian包管理命令
离线deb软件包安装 dpkg -i
eg:安装某个版本的indent的deb离线包
dpkg -i intent*.deb
离线deb软件包卸载 dpkg -r
eg: dpkg -r indent
进程查看
ps 进程查看命令
ps -aux
-a 显示关联终端的所有进程信息
-u 显示所有有效用户的进程信息
-x 显示没有控制终端的进程信息
ps -ef
-e 表示显示所有进程信息同-a
-f 表示以完全格式来显示进程信息
pstree 进程查看命令
-p 以附加显示进程号的方式来显示进程树
top 进程动态查看命令
缺省显示占用CPU资源最多的所有进程信息
-p 仅显示指定进程号进程的资源占用情况
如top -p 950,不能直接输入top -950
进程控制
终止 正常退出
中止 中断退出
kill 进程中止命令,缺省发送TERM信号给指定进程
-l 表示查看所有系统支持的信号
-9 发送中止该进程的信号
如中止当前进程 kill -9 $$,有时候前面得加sudu,表示管理员权限
kiallall 进程中止命令 缺省发送TERM信号给指定进程名的进程(和kill的区别是指定进程名,而不会进程号)
gedit打开一个文本编辑器
killall -9 gedit 关闭文本编辑器
pidof gedit 查看编辑器的进程号
简单系统操作
clear 清屏命令(上面的东西还是存在的,只是将当前行置顶)
reboot 重启命令
halt,shutdown 关机命令
cat /proc/meminfo 系统内存硬件信息查看
cat /proc/cpuinfo 系统CPU硬件信息查看
uname -a 操作系统信息查看
hostname 主机名查看
计划任务
crontab 计划任务查看与设置命令
crontab条目包括
分钟(m) 0-59
小时(h) 0-23
日(dom) 1-31
月份(mon) 1-12
星期(dow) 0-7
man 5 crontab查看计划表的定义语句
crontab -e
编辑计划表
重新启动计划表
sudo service cron restart
-r 删除crontab
-i 提示用户(是否删除crontab)
-l 显示crontab
crontab -ri
内存状态查看
free 内存状态查看
缺省以字节为单位显示内存信息
-s 以指定的间隔秒数来显示信息
free -s 5 每隔5秒显示信息
df 磁盘文件系统空间使用查看命令
缺省以字节为单位显示磁盘文件系统的空间使用
-h 以人性化方式显示
du 文件空间占用查看命令
-s 概括描述文件空间占用情况
-h 以人性化方式显示
磁盘分区
fdisk -l 磁盘分区查看
需要有特权 sudo fdisk -l
网络连接及地址查看
ping 网络联通测试命令
-c 用于指定发送ICMP_REQUEST的包计数
ping -c 6 127.0.0.1
可以支持域名如:ping www.baidu.com
ifconfig 网络地址查看及设置命令(windows是ipconfig)
域名解析查询
nslookup 域名地址解析命令
域名通过域名服务器(DNS服务器)解析得到IP地址
如QQ能登录,网页看不了,则说明域名解析有故障
缺省解析指定域名的IP地址
nslookup www.baidu.com
反向解析指定IP地址的域名信息
nslookup 8.8.8.8(谷歌的域名)
路由及网络统计查看
route 路由信息查看及设置命令
缺省检测和显示路由信息
-n 用于简单显示缓存于主机的路由信息
netstat 网络统计信息查看命令
-a 用于显示包含监听信息的所有网络统计信息
-t 用于仅显示与TCP协议相关的网络统计信息
用户增删与查看
useradd 用户添加命令
-m 用于添加用户的同时创建该用户的家目录
useradd -m bencai
userdel 用户删除命令
-r 用于删除用户的同时删除包含该用户家目录的所有文档
sudo passwd bencai 为bencai设置密码
su bencai 用bencai登录
whoami 查看当前用户命令
who 查看所有登录用户命令
id 用户id查看命令
-u 用于仅显示当前的有效用户ID
id -u
id -u bencai 显示bencai的ID
用户切换
su 用户名 用户间切换命令
在ubuntu系统中,切换到root用户的推荐方法sudo -i
sudo 命令名 用户临时获取管理员授权命令
将用户erlie加入到sudo组
gpasswd -a erlie sudo
用户账户配置
usermod -L 用户账户的锁定
usermod -U 用户账户的解锁
用户账号文件 /etc/passwd
用户影子密码文件 /etc/shadow
用户组增删与查看
groupadd 用户组添加
缺省分配当前未被占用的最小gid给新用户组
-g 用于指定新用户组的gid(确保没有被占用)
groupadd user01
groupadd -g 1002 user01
groupdel 用户组删除(删除指定的未被占用的用户组)
eg:groupdel user01
查看组的账号
tail /etc/group
groups 用户组查看命令
缺省查看当前用户所在的所有用户组
指定用户名时,查看指定用户所在的用户组
groups bencai
用户组账户配置
gpasswd 组名 用户组成员更改
-a 用于将新增用户加入组群
add user erlie to group bencai
gpasswd -a erlie bencai
-d 用于将用户从该组群删除
gpasswd -d erlie bencai
newgrp 所属组名 改变有效登录群组
用户组账号文件 /etc/group
用户组影子文件 /etc/gshadow
文件权限概念
-普通文件
r 目录文件
l 符号链接文件
c 字符设备文件
b 块设备文件
p 管道文件
s socket文件
d 目录文件 
第一个字符-表示文件性质,是一个普通文件,d代表的是一个目录,后面9个字符是权限,第一个erlie是所有者用户,第二个erlie是组用户,目录的可执行是这个目录能成为当前目录,即这个目录可以cd进去
权限也可以用数字表示为755,664之类的 
文件权限设置
文件权限字符形式设置
u是user(所有者)
g是group(组)
o是other(其他用户)
a是all(所有用户)
r是read
w是write
x是execute
chmod u+w 所有者加write权限
chmod g-x 123.txt
chmod o=r 其他用户设置为只读权限,其他权限没有
chmod o=wr 其他用户设置为读写权限,其他权限没有
chmod a+x 所有用户设置为可执行权限
文件权限数字形式设置
chmod 644 123.txt
对所有者来说权限为6,即可读写
umask 缺省权限设置命令
输出 0002,第一位0为粘滞位,表示一些读写权限,现在用的不多,777-002=775
umask -S查看缺省默认权限为
u=rwx,g=rwx,o=rx,和上面一样
设置缺省权限为 022 umask 022
文件属主和属组设置
chown 文件属主设置命令
-R 递归设置目录中所有文件的属主
chown -R testdir
chgrp 文件属组设置命令
-R 递归设置目录中所有文件的属组
eg:把文件456的属主变为bencai
sudo chown bencai 456
把文件456的属组变为erlie
sudo chown :erlie 456
把文件456的属主和属组都变为erlie
sudo chown erlie:erlie 456
chown能改属组但是不能递归的改,所以出现了chgrp
sudo chgrp -R bencai 456,同时修改456和456文件夹下面的文件
FTP的使用
命令补全及命令历史
shell是操作系统与用户进行交互操作的界面 
最常用的为bash,在/bin/bash目录下
Tab键单击补全命令,Tab键双击来列示可能的命令
history 命令历史的查看
-c 命令历史的清空
使用键盘上下键来调阅最近的命令历史
使用”!”调用前端字符匹配的最近使用过的命令,并且立即执行
命令别名
alias 命令别名的查看
将ls -a这个命令设置昵称为myls
alias myls=’ls -a’
系统默认的有ls的昵称为ls –color=auto
which ls查看ls在哪个文件,运行这个文件,显示出来的没有颜色
将显示所有文件设置昵称为myls
alias myls=’ls -a’
通配符
*任意多个0-n
?任意一个字符
[]eg:test[0-9],0-9当中的任意一个,表示的是范围,也可以这样写
[0-9,a-z],用逗号分隔
作业控制
命令后台发送的使用
在原有命令的末端使用&符号即可将命令发送至后台运行
使用jobs命令可以查看当前的后台作业任务
使用bg命令可以将当前命令作业(要被挂起)切换到后台
使用fg命令可以将最近的一个后台作业切换回前台
如在命令行输入gedit,在记事本关闭之前,命令行没法交互,这样就可以放到后台
睡1000s并且放到后台
sleep 1000&
返回[1] 35351
将这个进程杀死
kill -19 35351
jobs查看这个进程停止
bg (%1可以不写因为就一个)
jobs查看这个进程被唤醒
变量的概念及自定义变量
Shell变量的设置
COLOR=red不能空格
Shell变量的引用
echo $COLOR
echo ${COLOR}
之所以有大括号,是为了不产生歧义
eg:echo $COLORBALL是引用COLOR还是COLORBALL
自定义变量建议一个字母大写(全部大写有可能是环境变量,全部小写有可能是数据)
PATH环境变量
环境变量可以保存在配置文件~/.bashrc(~是当前用户的家目录)中,供固化的长期使用
PATH变量的概念
1环境变量PATH存储系统命令的所在路径,通常为绝对路径
2.环境变量PATH提供了对于系统命令搜寻的便利,意义重大
如Java要配置环境变量当在doc窗口下输出javac之类的命令时,系统知道从哪里运行,像javac之类的命令其实是执行一个javac.exe程序
修改PATH环境变量(在当前PATH变量前加上新的变量)
PATH=/home/erlie:$PATH
其他变量及预定义变量
其他环境变量的使用
环境变量PS1存储命令行的提示符
环境变量PS2存储命令行的换行符 
erlie@ubuntu就是PS1显示的内容,\表示换行没有结束
.>表示换行符 
预定义变量的概念
1.预定义变量是由Shell程序提供的内置变量
2.预定义变量用来存储Shell程序运行过程中的状态信息
3.预定义变量无需设置,只能引用
预定义变量的使用
变量$$存储当前进程的进程号信息
变量$0存储当前进程的进程名信息
变量$?存储上一个命令的返回值信息
变量$!存储最近一个后台进程的进程号信息
eg: echo $.$ $0(中间加点是因为博客编辑器的原因)
kill -9 $!杀死最近一个后台进程
位置变量
位置变量的概念
位置变量是由shell程序提供的变量,可用来引用传递给程序的参数
位置变量通过该程序参数在传递给程序时的位置顺序来引用
位置变量的使用
位置变量
位置变量的切取命令shift即$1的内容变成$2,$2的内容变成$3,以此类推
test.txt的内容为
ls -ld $1
ls -l $1
ls $2 ls -ld $1
ls -l $1
shift
ls $2 运行结果为 
shift之后原来$1的值被$2覆盖,$2没有值,缺省显示当前目录下的东西
管道的使用
ps -aux | grep "bash"
//筛选出含有bash同时不含有grep的进程,这个就是管道的级联使用
ps -aux | grep -v "grep" 
标准出错信息不能通过管道传递出去 
有456这个目录,没有789这个目录,456这个目录下面有test123.txt和test456.txt这2个文件
输出重定向
重定向的概念
重定向是指将原本关联输入或输出到标准设备文件的信息重新定向到指定的磁盘文件的举措
标准输出重定向
ls -l text.* ﹥output.txt(覆盖重定向)
ls -l text.* ﹥﹥output.txt(追加重定向) 标准出错重定向
ls -l text.* 2﹥output.txt(覆盖重定向)
ls -l text.* 2﹥﹥output.txt(追加重定向) 输入及合并重定向
合并重定向是指合并标准输出和标准错误的信息输出
使用合并重定向符&即可实现合并输出
ls -l text.* filenotfound &﹥ output.txt cat默认敲一行显示一行
//从文件中读取显示出来
cat < test.txt
//直接写成这样也可以
cat test.txt(显示的是stdin里面的内容) 管道与重定向应用
管道+重定向
ls -l | gerp erlie ﹥ output.txt 实现复制功能(cp)
cat < test.txt ﹥ test2.txt 脚本编程概述
.空格运行是将脚本内容读取出来提交到当前环境运行,不是脚本真实运行
./运行是脚本真实在运行
#!/bin/bash
ls -l /home
echo "hello world"
echo $$ $0
Linux部署JavaWeb项目
screen -ls (显示目前所有的screen作业)
screen -r <作业名称> 恢复离线的screen作业
Ctrl+C 停掉服务
按住Ctrl+A再按D退出screen
rz 上传文件
screen -r <作业名称> 恢复离线的screen作业
java -jar camx-dp.jar(运行jar包) screen命令:http://man.linuxde.net/screen
kill掉一个screen
1.使用screen名字,kill掉。
screen -S session_name -X quit 2.激活screen:
screen -r session_name 3.新建一个screen:
screen -S screen_name 并利用exit退出并kiil掉session
curl www.baidu.com通过命令行访问网页
查看端口是否被占用
netstat -anp | grep 端口号 找到pid
lsof -i:端口号 kill掉进程
kill -9 pid 一直显示日志
tail -f server.log 查找monit路径
ps aux | grep monit 线上日志排错
// 排除指定内容
grep -v
// 显示行数
grep -n
// 跳到指定行数,n为行数
ngg 或者 nG 参考博客
[1]https://www.cnblogs.com/hindy/p/7249234.html
vim跳到指定行
[2]https://www.cnblogs.com/sench/p/8675141.html
[3]https://blog.csdn.net/wide288/article/details/39477393
vim基本命令
[4]https://www.cnblogs.com/imzye/p/8496120.html









还没有评论,来说两句吧...