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 可读不可写可执行

xshell 停止java项目 xshell暂停命令_xshell 停止java项目

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/ \;