xshell常用命令
Linux 常用命令
- 工具
xshell 工具
- xshell 常用快捷键
# 停止日志
chrl+s
# 继续日志
ctrl+q
# 中断日志
ctrl+C
# 挂载
ctrl+z
# ' 单引号进入>状态
# 退出状态
ctrl+d
# 透明窗口
ALT + R
- 常用命令
- 查看服务状态
# 查看服务启停状态
service xxx status
- 启动/停止服务
# 启动服务
service xxx start
# 停止服务
service xxx stop
- 更改文件属性
# chgrp:变更文件或目录的所属群组,允许普通用户改变文件所属的组,只要该用户是该组的一员。
# -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
# -v 显示指令执行过程。
# 直接更改组
chgrp -v 组名 文件
# 根据文件更改组
chgrp -v --reference=文件1 文件2
# chown:更改文件属主,也可以同时更改文件属组
chown 属主名 文件名
# chmod:更改文件权限,两种设置方法,
# 数字 r=4,w=2,x=1,
# 符号 -rwxrwxrwx
chmod 777 文件 # 全部可读可写可执行
chmod a+r 文件 # 全部增加可读权限
chmod ug=rwx,o=x 文件 # 除其他用户仅可执行,主和组成员均可读可写可执行
chmod 4755 filename # root 的权限
- 命令sudo 以系统管理者的身份执行指令
# 以管理员执行命令
sudo 命令
#eg:
# 显示目录
sudo ls
# 修改服务器日期(时间保持原样)
sudo date -s "2021-08-27 'date +%T'"
# 频繁使用root权限操作命令,提示输入密码为当前用户密码而非root密码
sudo -i
- 命令date 日期
# 显示当前时间
date
# 修改服务器日期(时间保持原样)
date -s "2021-08-27 17:30:30"
- 命令ls 查看目录
# 查看目录名称:
ls
# 查看目录详情:
ls -l
或
ll
# 第一个字符代表这个文件类型: d 则是目录, - 则是文件,
# 三个为一组的代表权限,且位置不会改变:r 代表可读(read)、 w 代表可写(write)、 x代表可执行(execute) 、没有权限用-代表
# 示例: drwxr-xr-x
# 0位-->d:目录文件; 123位-->rwx:属主权限 可读可写可执行;456位-->r-x:属组权限 可读不可写可执行; 789位-->r-x 可读不可写可执行
ls -lh # size 使用KB/M/G 易读显示
ls -l *.doc # 列出当前目录以。doc结尾的所有文件
ls -la # 给出当前目录下所有文件的一个长列表,包括以. 开头的“隐藏”文件
ls a* # 列出当前目录下以字母a开头的所有文件
- 命令cd 更改目录
cd ~ # 切换到主目录
cd /tmp # 切换到目录/tmp
cd dir # 切换到当前目录下的dir目录
cd / # 切换到根目录
cd .. # 切换到到上一级目录
cd ../.. # 切换到上二级目录
cd ~ # 切换到用户目录,比如是root用户,则切换到/root下
- 命令pwd 查看当前路径
pwd
- 命令mkdir 创建目录
# 正常创建目录
mkdir 目录名
# 递归创建多层目录
mkdir -p 目录1/目录11/目录111
# 创建包含权限的目录(eg: rwx--x--x )
mkdir -m 711 目录
- 命令rmdir 删除空目录
# 可删除空目录,存在文件的目录需要使用rm
rmdir 目录/
# 连同上一级空目录删除
rmdir -p 目录/子目录1/子目录11/子目录111
- 命令touch 创建或修改文件(时间属性)
# 文件不存在,创建一个空白文件
touch 文件名
# 文件存在 ,修改文件时间为当前时间
touch 文件名
- 重定向文件
# 打印文本到控制台
echo "打印文本到控制台"
# 打印所有的文件或目录
echo *
# 打印内容重定向到一个文件
echo "Hello World">xx.log
# 清空文件内容
echo >xxx.log
- 命令vim 编辑器
# 三种模式,命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
vim 文件 # 编辑文件
i # 编辑
esc # 退出编辑
:wq # 保存并退出
# 命令模式
i # 切换到输入模式
x # 删除当前光标所在处的字符
: # 切换到底线命令模式,以在最底一行输入命令
# 输入模式 ,键盘按键生效
esc #退出输入模式
# 底线命令模式
q # 退出程序
w # 保存文件
- 命令cp 复制文件
# -v: 告诉用户正在做什么
# -i:若目标存在,在覆盖前询问用户
# -p:连同文件的属性一起复制过去 (常用于备份)
# -r:递归持续复制
# -a:相当於 -pdr 的意思
#把文件1复制为新文件
cp 文件1 新文件
# 把文件从当前目录复制到/home/usr/目录下
cp 文件 /home/usr/
# 把当前目录下的所有未隐藏文件复制到/tmp/目录下
cp * /tmp
# 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项
cp -a docs docs.bak
- 命令mv 移动或重命名
# 将文件1重命名为文件2
mv 文件1 文件2
# 把当前目录下的文件1 移动到/tmp/目录下
mv 文件1 /tmp
- 命令rm 删除
# 直接删除
rm 文件
# 强制删除不提示
rm -f 文件
# 询问用户是否删除
rm -i 文件
# 递归删除,可删除目录
rm -r 文件
#递归删除全部数据
rm -rf *
# 删除a开头的所有数据
rm -rf a*
- 命令df 检查文件系统的磁盘空间占用情况
# 列出磁盘所有文件系统
df
# 以 KBytes 的容量显示各文件系统
df -k
# 易读展示
df -lh
# -a 所有文件
- 命令du 查看使用空间
# -s 列出总量
# -h 易读的容量格式 (G/M) 显示
# 查看当前目录总大小
du –sh
# 查看当前目录下各文件 总大小
du -sh *
# 根目录底下每个目录所占用的容量
du -sm /*
- 命令rz 本地文件上传
# 从本地选择文件上传到服务器
rz # 弹出选择框
# 覆盖原文件上传
rz -y
- 命令sz 下载到本地
# 将选定的文件发送到本地机器
sz 文件
- 命令scp 远程拷贝文件
# 基于 ssh 登陆进行安全的远程文件拷贝命令;加密的
# -r: 递归复制整个目录
scp 复制的资源路径 粘贴的路径
# 从远程复制到本地
scp 用户@地址:路径 路径
# 从本地复制到远程
scp 文件 用户@地址:路径
##### 拓展 #####
rcp 用户@地址:路径 路径 远端复制到本地(不加密)
- 命令top 实时显示进程动态
# 显示进程信息
top
# 设置信息更新次数 (更新2次后终止)
top -n 2
# 设置信息更新时间 周期单位s
top -d 3
- 命令ps 显示当前进程状态
# 查看后台启动项
ps
# 列出所有进程
ps -A
# 查找指定进程
ps -ef | grep 进程关键字
# 显示所有包含其他使用者的行程 (-au 显示较详细的信息)
ps -aux
###### 拓展 ######
# 重启bin:
../exec_bin ''
# 后台启动:
exec_bin &
# 前台启动:
exec_bin
- 命令jobs 查看进程号
# 查看已挂载的程序
jobs
- 命令kill 删除执行中的程序或工作
# 1 (HUP):重新加载进程。
# 9 (KILL):杀死一个进程。
# 15 (TERM):正常停止一个进程。
# 显示信号
kill -l
# 杀死进程
kill 进程号
# 强制杀死进程
kill -KILL 进程号
# 发送SIGHUP信号,可以使用一下信号
kill -HUP pid
# 彻底杀死进程
kill -9 进程号
- 命令killall 杀死一个进程
# 与kill不同 killall会杀死指定名字的所有进程
killall 进程名
- 查看文件内容
- 命令 head
# 显示文件前十行
head 文件
# 显示文件前五行
head -n 5 文件
# 显示文件前20个字节
head -c 20 文件
# 显示文件后200行并持续打印正在改变的日志文件
tail -200f 文件
# 文档内容加上行号后输入新文件里
cat -n 文件 > 新文件
# 文档内容加上行号(空白行不加)之后将内容附加新文件
cat -b 文件1 文件2 >> 新文件
# 清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/文件
# 根据关键词查看日志
cat xxx.log |grep -C 10 '关键字'
- 命令more
# 类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读
# 逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s 文件
# 从第 20 行开始显示
more +20 文件
- 命令less
# 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页
# 查看文件
less 文件
# ps查看进程信息并通过less分页显示
ps -ef |less
# 浏览多个文件 n 向后切换,p 向前切换
less 文件1 文件2
- 命令 grep
# grep 关键词查找,查找文件里符合条件的字符串
grep 关键字 文件
# 递归查找 -r(包含关键字)
grep -r 关键字 文件
# 反显查找-v(不包含关键字)
grep -v 关键字 文件
# 关联查找
cat 文件名 | grep -C 20 '关键字' 显示匹配关键字的上下20行
cat 文件名 | grep -B 20 '关键字' 显示关键字及前20行
cat 文件名 | grep -A 20 '关键字' 显示关键字及后20行
# diff 比较文件的差异
diff 文件1 文件2
# 以并列的方式显示文件的异同之处 并设置列宽
diff 文件1 文件2 -y -W 50
- 命令reboot 重启
# 重启服务器
reboot
- xshell 操作sqlite数据库
# 进入数据库:
sqlite3 数据库名
# 退出数据库:
crtl+c
##### 拓展 #####
# 查询表:
select * from 表;
# 显示方式 行
.mode line
# 修改数据:
update 表名 set 列1= 'value1' where 列2= 'value2';
# 查询所有表:
.tables
# 查询表结构:
PRAGMA table_info(表名)
- xargs 替换工具,读取输入数据重新格式化后输出
参数:
-a file 从文件中读入作为 stdin
-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
-p 当每次执行一个argument的时候询问一次用户。
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
-t 表示先打印命令,然后再执行。
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
-s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
-L num 从标准输入一次读取 num 行送给 command 命令。
-l 同 -L。
-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
-x exit的意思,主要是配合-s使用。。
-P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。
- find 指定目录下查找文件
- 语法
find 搜索路径 [选项] 搜索内容
Tips:第一个参数用来指定搜索路径; 第二个参数用来指定搜索内容。
- 按文件名搜索 选项:
-name: 按照文件名搜索;
-iname: 按照文件名搜索,不区分文件名大小;
-inum: 按照 inode 号搜索;
- find 命令是完全匹配的,必须和搜索关键字一模一样才会列出
- 按文件大小搜索 选项
-size[+-]大小:按照指定大小搜索文件
- 按修改时间搜索 选项
-atime [+-]时间: 按照文件访问时间搜索
-mtime [+-]时间: 按照文改时间搜索
-ctime [+-]时间: 按照文件修改时间搜索
- 按权限搜索 选项
-perm 权限模式:査找文件权限刚好等于"权限模式"的文件
-perm -权限模式:査找文件权限全部包含"权限模式"的文件
-perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件
- 按所有者和所属组搜索 选项
-uid 用户 ID 按照用户 ID 査找所有者是指定 ID 的文件
-gid 组 ID 按照用户组 ID 査找所属组是指定 ID 的文件
-user 用户名 按照用户名査找所有者是指定用户的文件
-group 组名 按照组名査找所属组是指定用户组的文件
-nouser 査找没有所有者的文件
-nogroup 查询没有所属组的文件
- 按文件类型搜索 选项
-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件
- 逻辑运算符
-a:and逻辑与
-o:or逻辑或
-not:not逻辑非
- 操作查找到的文件
-print 打印输出。 默认的选项,即打印出找到的结果。
-exec 对搜索到的文件执行特定的操作,固定的格式为:-exec 'commond' {} \; 注意:{} 表示查询的结果。
-ok 和 -exec 的功能一样,只是每次操作都会给用户提示
举例1: 搜索 /etc 目录下的文件(非目录),文件以 conf 结尾,且大于 10k,然后将其删除。
find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;
举例2: 将 /data/log/ 目录下以 .log 结尾的文件,且更改时间在 7 天以上的删除。
find /data/log -name '*.log' -mtime +7 -exec rm -f \;
举例3: 搜索条件同 例1 一样,但是不删除,只是将其复制到 /root/conf 目录下
find /etc -type f -name '*.conf' -size +10k -exec cp {} /root/conf/ \;