Linux 常用命令
- 工具
-
xshell 工具
-
链接:https://pan.baidu.com/s/1gLwhcbPQuRbOWK87sjTmBQ
提取码:ep4n
-
- putty 工具
下载地址:https://www.putty.org/
-
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 文件
- 命令tail
# 显示文件后200行并持续打印正在改变的日志文件 tail -200f 文件
- 命令cat
# 文档内容加上行号后输入新文件里 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 比较文件的差异 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/ \;
- 语法
- find 指定目录下查找文件