[root@localhost ~]#
root当前登录用户名
localhost:主机名(全名localhost.localdomain)
~当前目录,默认宿主目录(按登录名为其自动分配一个目录,/root /zhangsan)
# 用户身份-管理员($表示用户身份-普通用户)
常用命令
查看系统信息
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
ifconfig | 相当于Windows的ipconfig,查看IP地址 | ||
ping | 查看网络通信是否通畅(必须配合control+c停止后查看结果,否则会一直检测) | ||
service | iptables status | 查看防火墙状态 | |
iptables stop | 关闭防火墙 | ||
top | 查看系统进程(仅系统进程) | ||
free | -m | 查看系统中的用户 | |
ps | -e | 查看包括其他用户的进程 | |
ps | -f | ||
-aux | 类似-ef | ||
systemctl | list-unit-files | 列出所有启动文件 | |
enable | servicename.service | 加入开启自启动 | |
is-enabled | servicename.service | 查看是否开启自启动 | |
enable | servicename.service | 加入开启自启动 | |
status | servicename.service | 查看状态是否Active | |
start/stop/restart/reload | servicename.service | 开启、关闭、重启、重载配置 |
键盘操作
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
control+c | 停止某个命令 | ||
q | 退出当前命令 | ||
Ctrl+L | 清屏 | ||
tab | 自动补全 |
文件相关
【d文件类型】d目录 -文件
【rwx拥有者权限】r读read w写Write x执行Execute
【r-x所属组权限】r-x 可读可执行不可写
【r-x其他人权限】r-x 可读可执行不可写
【root拥有者】
【root所属组】root/
【4096文件大小】文件夹默认4096,文件则是其实际大小
【Nov 5 2014文件创建时间】
【Documents 文件名】
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
cd | 空格 | 返回上级目录 | |
/目录/XX | ChangeDirectory切换目录 | ||
pwd | printWorkDirectory查看工作目录 | ||
mkdir | 创建目录 | ||
ls | -l | 展示目录下所有文件的详细信息 | |
ls | -d | 展示展示文件夹自身的信息 | |
ls | -a | 展示隐藏文件(.开头的文件) | |
ls | -h | 显示一些单位等信息,方便阅读 | |
touch | 新建文件 | ||
mv | 原文件名 新文件名 | 修改文件 (名称、路径) | |
rm | 文件名 | 删除文件 | |
空目录名 | 删除目录(无法删除非空目录) | ||
-r | 递归删除非空目录 (需手动不断选择y确认删除其中的每个文件) | ||
-rf | 强制递归删除非空目录(直接删除无需确认) | ||
*s 正则表示法通配 删除当前目录下所有(*)以s结尾的文件 | |||
file | 文件名 | 显示文件名对应的类型信息 | |
-i | 文件名 | 显示MIME类型 | |
-b | 文件名 | 显示简单信息(不显示文件名) | |
find | 路径 -name 正则 | 指定路径下文件名符合正则标准的文件 | |
路径 - empty | 指定路径下的空文件 | ||
路径-size +300M | 指定路径下大小为300M以上的文件 | ||
路径 -type f | 指定路径下的普通文件( f表示普通文件) | ||
路径 -ctime 20 | 指定路径下20天内更新过的 | ||
路径 -mtime +7 | 指定路径下最新更新时间为7天以前 | ||
路径 -命令 -exec 查找之后执行的命令 {} \ | -exec :拼接要继续执行的命令 { } \ ; 结束符 固定的 find test -name tx -exec ls -l {} ; | ||
cat | 查看小文件(直接全部显示) | ||
more | 查看大文件(分页方式,回车继续,q或control+c退出) | ||
head | -n | 100 | 查看头部100条 |
tail | -n | 100 | 查看尾部100条 |
vi/vim | vim是vi的升级版本,一般使用vim | ||
文件名 | 进入对某文件的命令模式(vi、vim的模式);文件若不存在,会自动创建 | ||
-i | 进入 输入模式 | ||
esc | 退出当前模式(输入模式) | ||
:wq | 保存并退出 命令模式 | ||
:q | 不保存直接退出(文件如果已修改,无法退出) | ||
:q! | 不保存,强制退出 | ||
\ | 向后查找 | ||
n | 查找下一处 | ||
N | 查找上一处 | ||
A | 在行尾附加 | ||
tar | -zxf | 压缩包 | |
-czf | 压缩包名 | 需压缩的文件列表:打包并压缩 | |
-zxvf | 压缩包名 | ||
-C | 位置 | 指定解压位置:展示解压过程并解压到指定目录 | |
scp | 远程同步文件/目录 | ||
rsync | 远程同步文件/目录 |
进程相关
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
kill | - | 9 | 终止进程 |
nohup | 忽略输入,忽略session关闭信号(如终端窗口关闭)而持续运行程序,对Ctrl+C的退出信号敏感(收到CtrlC正常退出); 程序的输出默认保存到nohup.out; | ||
& | 忽略Ctrl+C的退出信号而持续运行程序,对session关闭信号(如终端窗口关闭)敏感 |
用户及权限
编号0:root 超级管理员
编号1-499:管理员用户
编号500以后:普通用户
查看身份信息:
etc/passwd
etc/shadow
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
useradd | |||
passwd | 为用户设置密码 | ||
chmod | 更改权限 | ||
所属组+= 或 -= 权限名 文件/文件夹名 | chmod o+=rwx /root 给其他组(o)在原有权限基础上(=)添加(+)读写执行权限(rwt)针对root文件夹(/root) | ||
数字表示法:r=4 w=2 x=1 | chmod 777 /root | ||
chown | -R | 新拥有者:所属组 路径名 | 递归(-R)更改某路径(路径名)下所有文件的拥有者和所属组 |
其他
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
grep | 筛选不能跟正则,只能模糊匹配字符串或使用内置命令 | ||
-v | XX | 筛选并排除XX | |
| | 管道符,连接两个命令 | ||
yum | install | filename | 在线安装 (到当前目录) |
rpm | -e | 卸载(存在依赖就卸载不了) | |
–nodeps | 无视依赖关系而直接卸载 | ||
-qa | 字符 | 查询已安装的含字符的文件 | |
awk | 文件处理 | ||
-F | 指定分隔符 | ||
nohup | |||
sed |
小功能
Server重启后服务自动重启
- 编写一个脚本,当服务没有在运行时,启动服务的最新版本
export version=`ls /path/ | grep app.*.jar | tail -n 1 | awk -F- '{print $2}'| awk -F.jar '{print $1}'`;
echo "app latest version=$version";
ps -ef | grep "app-$version.jar"|grep -v "grep" | grep -v "tail"
if [ ! $? = 0 ]
then
cd /path/
nohup /usr/bin/java -jar app-$version.jar --server.port=8000 >> /path/logs/app.log 2>&1 &
echo "restart app $version with system restart finish.";
fi
-
修改脚本权限为可执行
-
自动执行脚本(二选一,或者都配置)
a. profile.d 开机执行
将脚本放到 /etcc/profile.d下即可
b. crontab定时执行
执行 crontab -e 命令,以编辑crontab任务 : 插入一条新的定时任务执行脚本,:wq退出并保存
* */2 * * * /path/crontab.ksh >> /path/logs/crontab.log 2>&1
#corn表达式(每2分钟执行1次) 定时执行的脚本全路径 把crontab的输出重定向到 crontab的日志路径
Log重定向
即在程序中不使用日志框架的FileAppender,只使用Console输出Log,部署到Server后,执行 java -jar 时 跟上以下命令:
>> /path/logs/app.log 2>&1 &
将日志重定向到linuxServer的指定位置。
好处:
可以记录到一些程序异常退出的输出(日志框架是应用内部的,有些应用异常终止就不会记录了)
手写定时任务清理日志,更便捷自定义保存格式、时限等。
大文件切分
parallel=20
n=1
bgn=1
#切分成20份
total_cnt=`cat ${path}/file.txt|wc -l`
while [[ $n -le $parallel ]]
do
divide_num=`echo $total_cnt/$parallel*$n|bc`
divide_num_end=`echo $divide_num-1|bc`
echo "divide_num is $divide_num"
if [[ $n -eq $parallel ]]
then
cat ${path}/file.txt|sed -n ${bgn},'$'p >> $path/file_part${n}.txt
else
sed -n ${bgn},${divide_num_end}p ${path}/file.txt >> $path/file_part${n}.txt
fi
chmod +x $path/file_part${n}.txt
((n+=1))
((bgn=$divide_num))
done
Crontab
安装并启动Crontab服务
yum -y install crontabs
systemctl start crond.service
systemctl enable crond.service
systemctl is-enabled crond.service
systemctl status crond.service
修改权限
/etc/cron.allow
/etc/cron.deny
每行一个用户,不允许空格;控制文件在每次用户添加或删除一项 cron 任务时都会被读取;无论使用控制文件中的规定如何,root 都总是可以使用 cron。
如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。
如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。
编辑定时启动任务
命令 | 后缀 | 参数 | 含义 |
---|---|---|---|
Crontab | -e | *(分) *(时) *(日) *(月) *(周) command(命令) | 编辑该用户的计时任务 |
-l | 列出该用户的计时任务 | ||
-r | 删除该用户的计时任务 | ||
-u | <用户名称> | 指定要设定计时任务的用户名称 |
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
rz
手动选取要传至服务器的文件,添加,确定。(传到当前目录)
lrzsz软件提供的命令,传输主机与服务器之间的文件。