目录
一、SecureCRT相关知识
SecureCRT上传文件到服务器:https://blog.csdn.net/youran66666/article/details/51556650
在Windows用SecureCRT上传下载命令:rz\sz
在Windows用SecureCRT上传下载命令(存在则覆盖):cunrz -y
rz相关命令介绍:http://www.cnblogs.com/leeyongbard/p/9356760.html
- 查看远程端口是否开启
在远程机上输入setup,选择系统服务
带*号表示已经启动
解压:tar -zcvf /home/zdzlibs.tar.gz /home/zdz/java/zdzlibs/
文件名快速填充:cd my+tap键 就会列出以my开头的文件
删除文件:rm -f 文件名
编辑文件:vim 文件名
按i进行输入模式,强制退出保存 先按ESC再输入 :wq!
查看是否有gcc环境:gcc -v
二、vim常用知识
vim常用命令
1,删除
dd: 剪切光标所在的一整行
ndd:删除光标向下的n行
2,复制
yy:复制当前光标一整行
nyy:复制当前光标n行
p:粘贴
3,搜索内容
:/搜索内容 可以快速搜索打开的文本内容内容
4,设置/取消行号
:set nu和:set nonu
5,到大文件末端和顶端
在正常模式下,输入G到达底端,输入gg到达顶端
6,撤销
在正常模式下,输入u撤销
7,光标移动到第20行
第一步:显示行号 :set nu
第二步:输入20
第三步:输入shift+g
三、关机/重启命令
shutdown
shutdown -h now:表示立即关机
shutdown -h 1:表示1分钟后关机
shutdown -r now:立即重启
halt
直接使用,等价于关机
reboot
就是重启系统
sync
把内存的数据同步到磁盘
重启命令推荐使用shutdown -r now,这条命令在重启时会正常保存和中止服务器正在运行的程序,
是安全重启命令。而且最好在重启前执行几次“sync”命令,这条命令是数据同步命令,
把暂时保存在内存的数据写入磁盘,防止数据丢失。
用户登陆和注销
尽量少用root登陆
退出登陆:logout(此命令在图形界面无效)
服务器建议
不要再服务器访问高峰运行高负载命令
比如复制大量的数据、压缩或者解压缩大文件、大范围的硬盘搜索等都会有较大的运算压力。
一般认为17:00-24:00是访问高峰期。凌晨4:00-5:00可以执行这些命令。
远程配置防火墙不要把自己踢出服务器
最好在本地测试完善后再进行上传。虽然本地测试好了但是传到服务器上时仍有可能发生问题。可以采用一个笨的办法:如果需要远程配置防火墙,那么先写一个系统定时任务,让它每5分钟清空一下防火墙规则,就算写错了也有反悔的机会,等测试没问题了再删除这个定时任务。
合理分配权限
管理一个最简单原则:给予用户最小的权限。
定期备份重要数据和日志
备份的基本原则:不要把鸡蛋放在同一个篮子里
四、用户/用户组管理
1,用户管理
Linux系统是多用户多任务的操作系统。
1.1,添加用户
useradd xm //这种方式默认创建一个xm的账号,并创建一个xm的分组,并且xm账号属于xm分组
useradd -d /home/manager zhangsan //创建张三,并且家目录在/home/manager文件夹里
创建用户的时候,会在家目录下生成模板文件,模板在/etc/skel/目录下
1.1.1useradd默认值
useradd添加用户的参数默认值主要是/etc/default/useradd和/etc/login.defs
1.2,指定/修改密码
passwd zhangsan //给张三设置密码
用zhangsan的账号登陆可以看到当前的家目录为/home/manager
1.3,删除用户
userdel 用户名
userdel xm//删除xm的账号,但是家目录保留
userdel -r xiaoming//删除xiaoming账号,并且删除家目录
一般在删除用户时候会保留家目录(比如一个员工离职了,在家目录下面有很多源代码的情况)
手工删除用户:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/home/user1
/var/spool/mail/user1 邮箱
1.4,查询用户信息
id 用户名
1.5,切换用户
当用户权限不够时,可以通过su 切换到高用户
su - 用户名//当高权限用户到低权限用户,不用输入密码
这时候想要进入root目录就会权限不够,exit可以回到原来的用户
1.6,查看当前登陆的账户
whoami
2,用户组
2.1,增加组
groupadd 组名
2.2,删除组
groupdel 组名
2.3,增加用户属于测试组
groupadd test//先增加测试组
useradd -g test xiaoliu//增加用户xiaoliu属于test组
2.4,修改用户组
usermod -g 用户组 用户名
例如将xiaoliu修改为kaifa组
3,用户配置文件/组配置文件存放位置
用户配置文件:/etc/passwd
组配置文件:/etc/group
口令配置文件(密码和登陆信息,是加密的):/etc/shadow
密码前面如果有感叹号!,则该账户无法登陆
五、实用操作
1,指令运行级别
0:关机
1:单用户(找回丢失密码)
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6系统重启
常用运行级别是3和5,系统运行级别的配置文件在/etc/inittab,查看配置文件cat /etc/inittab
init 3//切换到dos状态
init 5//切换到图形界面状态
init 0//关机的另一种方式
面试题
如何找回root密码,如果我们不小心忘记roott密码,怎么找回。
思路:以root身份进入到单用户模式,然后修改root密码
2,帮助指令
man ls //查看ls使用帮助
help ls//查看ls使用帮助
3,文件目录类
3.1,pwd指令
显示当前工作目录的绝对路径
3.2,ls指令
ls [选项] [目录或文件]
常用选项
-a:显示当前目录所有的文件和目录,包含隐藏文件
-l:以列表的方式显示信息
3.3,cd指令
cd ~ //回到家目录
cd .. //回到上一级目录
cd ../../bin //使用相对路径回到bin目录
3.4,创建目录mkdir
用于创建目录
mkdir [选项] 要创建的目录
常用选项
-p:创建多级目录(递归创建)
mkdir -p test1/test2 //在当前目录同时创建test1,test2目录
3.5,删除目录rmdir
用于删除目录
rmdir [选项] 要删除的空目录
常用选项
-p:递归删除目录
如果目录下有内容rmdir无法删除,需要使用rm -rf 来删除非空目录
3.6,创建空文件touch
touch 文件名
也可以一次性创建多个文件
touch test1.txt test2.txt
3.7,拷贝cp
cp [选项 ] source dest
常用选项
-r:递归复制整个文件夹
cp test1.txt /usr //将当前目录下的test1.txt拷贝到/usr目录下
cp test1.txt /usr/test2.txt //将当前目录下的test1.txt拷贝到/usr目录下,并更名为test2.txt
\cp -r test1 /usr //可以强制覆盖所有
3.8,移除文件或目录rm
rm [选项] 要删除的文件或目录
常用选项
-r:递归删除整个文件夹
-f:强制删除不提示
3.9,移动文件或重命名mv
mv 旧的文件名 新的文件名 //重命名
mv /usr/test1 /usr/bin/test2 //移动文件
3.10,查看文件内容cat
cat [选项] 要查看的文件
常用选项
-n:显示行号
cat -n /etc/profile | more //more为分页显示,可以按空格换页
3.11,more查看文件指令
more 文件名
一行行看:enter
一页页看:空格
回看上一页:ctrl+b
向下滚动一屏:ctrl+F
离开more:q
3.12,less指令
less用来分屏查看文件内容,功能于more指令类似,但是比more指令更强大。less在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
less 要查看的文件
3.13,>和>>指令
>输出重定向和>>追加
ls -l>file.txt //列表的内容写入文件file.txt文件中(覆盖写)
ls -l>>file.txt //列表的内容追加到文件file.txt的末尾
cat file1.txt>file2.txt //将file1.txt的内容覆盖到file2.txt中
echo "内容">>file3.txt //将内容追加写入file3.txt中
例子:将日历写入文件
cal>>file3.txt
3.14,echo head tail
echo:输出内容到控制台
echo [选项] [输出内容]
例如:使用echo指令输出环境变量,输出当前的环境路径
echo $PATH
例如:使用echo直接输出文本
echo "hello"
head:用于显示文件的开头部分,默认情况下head指令显示文件的前10行内容
head 文件 //查看文件头10行内容
head -n 5 文件 //查看文件头5行内容
tail:用于输出文件尾部的内容,默认情况下tail指令显示文件的后10行内容。
tail 文件 //查看后10行内容
tail -n 5 文件 //查看文件后5行内容
tail -f 文件 //实时追踪该文档的所有更新(非常好用,工作中经常用)
案例:实时监控log.txt,看文件有变化时,是否看到实时的追加日期
3.15ln软链接
软链接也叫符号链接,类似于windows里的快捷方式
ln -s [原文件或目录] [软链接名]
删除软链接
rm -rf linkToRoot
3.16history查找命令历史记录
查看已经执行过历史命令
案例:显示最近的执行的10个指令
history 10
执行指定编号的指令
!900
4,时间日期类
4.1,date指令-显示当前日期
date //显示当前时间
date "+%Y-%m-%d" //显示年月日
date "+%Y-%m-%d %H:%M:%S" //显示年月日时分秒
4.2,date指令-设置当前时间
date -s 字符串时间
date -s "2019-01-10 10:10:10"
4.3,cal查看日历
cal [选项] //不加选项,显示本月日历
cal 2020 //显示1年的日历
5,搜索查找类
5.1,find查找
find将指定目录下递归地遍历其中子目录,将满足条件的文件或者目录显示在终端。
find [搜索范围] [选项]
-name:按文件名搜索
-user:按文件拥有者者查找
-size:按文件大小查询
案例1:在/目录下搜索指定文件位置
find / -name iSeez.h
案例2:按拥有者:查找/目录下,用户名为xie的文件
find / -user xie
案例3:按文件大小:查找/usr/local/bin目录下,文件大于20M的(大于+ 小于- 等于直接写数字)(很有用,有时候磁盘突然变小,可以查看原因)
find /usr/local/bin -size +20M //大于20M的文件,M大写
find /usr/local/bin -size +2k //大于2k的文件,k小写
案例4:按文件名通配符查找
find / -name *.txt
5.2,locate快速定位文件路径
locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,locate指令无需遍历整个文件系统,查询速度较块。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
locate 搜索文件
说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
数据库文件保存在/var/lib/mlocate/mlocate.db文件下,该文件普通用户是无法读取的,因为/usr/bin/locate命令赋予了GID的权限,所以可以用locate命令查看
5.3,grep指令和管道符号|
grep过滤查找,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件
常用选项
-n:显示匹配行及行号
-i:忽略字母大小写
案例:在hello.txt文件中,查找“yes”所在行,并且显示行号
cat hello.txt | grep -n yes
案例:在hello.txt文件中,查找“yes”所在行,并且显示行号,并忽略大小写
cat hello.txt | grep -ni yes
6,压缩和解压缩
6.1,gzip/gunzip(用的不多)
gzip用于压缩文件,gunzip用于解压缩
gzip 文件 //只能将文件压缩为*.gz文件,原来的压缩文件不保留
gunzip 文件.gz //解压缩文件,解压缩文件不保存
6.2,zip/unzip
zip [选项] xxx.zip 将要压缩的内容 //压缩文件和目录的命令
unzip [选项] xxx.zip // 解压缩文件
zip常用选项
-r:递归压缩,即为压缩目录
unzip常用选项
-d<目录>:指定解压后文件的存放目录
案例1:将/home下的所有文件进行压缩成myhome.zip
zip -r myhome.zip /home/
案例2:将myhome.zip解压到/usr/local/bin/tmp目录下
unzip -d /usr/local/bin/tmp myhome.zip
6.3tar打包指令
打包后的文件是.tar.gz的文件
tar [选项] xxx.tar.gz 打包的内容 //打包目录
选项
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar文件
案例1:压缩多个文件,将~目录下的test1.txt和test2.txt压缩成test.tar.gz
tar -zcvf test.tar.gz test1.txt test2.txt
案例2:将文件夹下所有东西都打包
tar -zcvf myhome.tar.gz /usr/local/bin/
案例3:将a.tar.gz解压到当前目录
tar -zxvf a.tar.gz
案例4:将a.tar.gz解压到/usr/local目录下
tar -zxvf a.tar.gz -C /usr/local/ //指定解压到的那个目录,事先要存在才能成功,否在会报错
7,组管理和权限管理
7.1组基本介绍
在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其它组的概念。
7.2文件/目录的所有者
文件的创造者,谁创建了该文件,就成为该文件的所有者。
查看文件的所有者
指令:ls -ahl //h即为human
范例:创建一个test组,在创建一个test_zs,将test_zs放在test组里,然后用test_zs来创建文件test.java
useradd -g test test_zs//添加用户
passwd test_zs//设置密码
su - test_zs//切换登陆
touch.java//创建文件
ls -ahl//查看文件所有者
修改文件所有者
指令:chown 用户名 文件名
组的创建
指令:groupadd 组名
范例:创建用户xiaoli属于master组
groupadd master
useradd -g master xiaoli
7.3文件/目录所在组
当某个用户创建一个文件后,默认这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
指令:ls -ahl
修改文件所在的组
chgrp 组名 文件名
范例:将test.java所在组改为xie
7.4改变用户所在组
用root的管理权限可以改变某个用户所在的组。
指令:usermod -g 组名 用户名
usermod -d 目录名 用户名 //改变该用户登陆的初始目录
范例:修改用户xie为test组
7.5权限详解
rwx作用到文件
r-可读,可以读取,查看
w-可写,可以修改,但是不代表可以删除文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
x-可以被执行
rwx作用到目录
r-可读,可以用ls查看目录内容
w-可写,可以修改,目录内可以创建+删除+重命名目录
x-可执行,可以进入该目录
7.6修改权限chmod
方式一:+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
方式二:通过数字变更权限
规则:r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
等价于
chmod 751 文件目录名
7.7修改文件所有者chown
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录则使其下所有子文件或目录递归生效
案例1:将test.java文件的所有者修改成test_zs
chown test_zs test.java
案例2:将/test1目录下所有文件和目录的所有者都修改成test_zs
chown -R test_zs test1/
7.8修改文件所在组chgrp
chgrp newgroup file
案例:将test1目录下所有文件和目录的所有者都改成test组
chgrp -R test test1/
7.9权限最佳实践-警察和土匪游戏
jack,jerry是警察
xh,xq是土匪
1)创建组police、bandit
groupadd police
groupadd bandit
2)创建用户
useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
并指定密码passwd jack
3)用jack登陆,创建一个文件,自己可以读写,本组人可以读,其它组没有任何权限
chmod 640 jack01.txt
4)jack修改该文件,让其它组人可以读,本组人可以读写
chmod o=r,g=rw jack01.txt
5)xh投靠警察,看看是否可以读写
xh无法进入jack的家目录
修改xh为police组
usermod -g police xh
此时xh还是没法进入jack的家目录,需要jack改变组的权限
chmod g=rx jack
修改完后,xh的账号需要重新连接就可以进入jack的家目录
8,任务调度
8.1crond任务调度
指令:crontab [选项]
常用选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
如果只是简单的任务,可以不写脚本,直接再crontab中加入任务即可
案例:设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e命令。
接着输入任务到调度文件
如:*/1**** ll /etc/>>/tmp/to.tx
任务调度案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
1)先编写一个文件/home/mytask1.sh
date>>/tmp/mydate
2)给mytask1.sh一个可以执行的权限
chmod 744 /home/mytask1.sh
3)crontab -e
4)*/1 * * * * /home/mytask1.sh
任务调度案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
1)先编写一个文件/home/mytask2.sh
date>>/tmp/mycal
cal>>/tmp/mycal
2)给mytask2.sh一个可以执行的权限
chmod 744 /home/mytask2.sh
3)crontab -e
4)*/1 * * * * /home/mytask2.sh
8.2查看所有的任务调度
指令:crontab -l
8.3删除所有的任务调度
指令:crontab -r
Linux查看当前的进程并过滤
Linux下修改文件产生.swap文件错误
在linux里修改文件时,不小心非正常关闭了文件。再次打开的时候提示 E325: 注意发现交换文件 "filename.swp",具体报错如下:
E325: 注意
发现交换文件 ".nginx.conf.swp"
所有者: root 日期: Fri Jun 23 09:44:19 2017
文件名: /usr/local/src/nginx-1.1.10/conf/nginx.conf
修改过: 是
用户名: root 主机名: demo
进程 ID: 5168
正在打开文件 "nginx.conf"
日期: Fri Jun 23 09:57:15 2017
比交换文件新!
(1) 另一个程序可能也在编辑同一个文件。
如果是这样,修改时请注意避免同一个文件产生两个不同的版本。
退出,或小心地继续。
(2) 上次编辑此文件时崩溃。
如果是这样,请用 ":recover" 或 "vim -r nginx.conf"
恢复修改的内容 (请见 ":help recovery")。
如果你已经进行了恢复,请删除交换文件 ".nginx.conf.swp"
以避免再看到此消息。
----------------------------------------------------------
交换文件 ".nginx.conf.swp" 已存在!
原因如下:
在用vim打开一个文件时,其会产生一个cmd.swap文件,用于保存数据,当文件非正常关闭时,可用此文件来恢复,当正常关闭时,此文件会被删除,非正常关闭时,不会被删除,所以提示存在.swap文件。
解决方法如下:
方法1、此时你可以恢复文件:
vim -r nginx.conf
恢复以后把.swap文件删掉,在打开时就不会用提示良,注意.swap文件是个隐藏文件。可用:la查看。以.开头的是隐藏文件。
方法2、ls -a 查询隐藏文件
将后缀名为.swp的文件删除
rm -f .nginx.conf.swp
再次编辑文件不在出现提示警告!
Linux中~与/的区别
/是根节点,~是home
若以root登陆,~是/root/。若以name登陆,~是/home/name
Linux top各参数详解
https://www.cnblogs.com/sbaicl/articles/2752068.html
Linux目录
/proc、/srv、/sys是linux内核的东西,Linux高手动的文件夹,一般不要轻易乱动
/mnt可以挂载Windows的共享文件夹
/usr/local这是给主机安装软件所安装的目录。一般是通过编译源码方式安装的程序。
更新中