Linux 命令集锦
linux 一切从根开始,一切皆文件~ 让我们从一些命令开始了解吧
基本命令
man command:manual;查看命令帮助手册
ls:list;查看当前文件夹下的内容
-a 查看所有内容,包含隐藏文件及文件夹
-l 以列表形式显示文件及文件夹的详细信息
-h 配合 -l 以人性化的方式显示文件及文件夹的大小
pwd:print work directory;查看当前工作目录
cd [路径]:change directory;切换工作目录
cd ~ 切换到家目录
cd 切换到家目录
cd .(点) 切换到当前目录
cd .. 切换到上级目录
cd - 切换到上次所在的目录,相当于回看功能
touch [文件名]:新建文件
mkdir [目录名]:make directory;创建目录
-p 递归创建目录
rm [文件名]:remove;删除指定文件
-r recursion;递归删除目录下的内容,删除目录时需要添加此参数
-f force;强制删除;忽略不存在的文件,取消提示
-i 为了防止误删,以逐个确认要删除的文件
clear:清屏;快捷键是 ctrl + l
cp:copy;拷贝文件或目录
-a 通常在复制目录时使用,它保留链接、文件属性、并递归的复制目录;简单来说,就是保持文件的原有属性
-f force;已经存在的目标文件直接覆盖,不会提示
-i 交互式复制,在覆盖目标文件之前给与提示,要求用户确认
-r recursion;递归拷贝目录下的内容,拷贝目录时需要添加此参数
-v 显示拷贝进度
scp:拷贝远程文件/目录
远程拷贝:scp TargetUserName@TargetHostIP : TargetFileName LocalPath(Absolute or Relative)
复制到远程:scp LocalFileName RemoteUserName@RemoteHostIP : RemoteFileName
-r recursion;递归拷贝目录下的内容,拷贝目录时需要
注意:scp 的前提条件是目标主机已经安装了 openssh-server;安装命令:sudo apt-get install openssh-server
mv:move;移动、重命名
-f force;已经存在的目标文件直接覆盖,不会提示
-i 交互式操作,在覆盖目标文件之前给与提示,询问是否重写
-v 显示移动进度
history:历史命令记录,保存在 ~/.bash_history 文件中
history 查看历史命令
!n 根据编号使用第n条命令
初级命令
echo:回显命令,输出 echo 后面的内容,默认输出到控制台
>:输出重定向
如 ls > test.txt;将执行结果重定向到一个文件(会覆盖)
>>:追加重定向
如:ls >> test.txt;将执行结果追加到一个文件
more:分屏显示;每次只显示一页,按空格键显示下一页,按 q 退出显示,按 h 获取帮助
|:管道;一个命令的输出可以通过管道作为另一个命令的输入,| 的左端表示放,右端表示取
如:ls -lh | more
ln:链接
硬链接:ln 源文件 链接文件
软链接:ln -s 源文件 链接文件
xargs:分组
-n 分几组
head:默认取文件的前 10 行内容
-n20 取前 20 行,简写为 -20
tail:默认取文件的最后 10 行内容
-n100 取最后 100 行,简写为 -100
-f 动态打印,常用于动态查看日志
例子:取文件的第 20 - 30 行内容:head -30 /home/Desktop/test.txt | tail -11
grep:文本搜索;如果找到过滤内容,则输出包含内容的所有行(排行老三)
-v 显示不包含匹配文本的所有行(取反)
-n 显示行号
-c 只输出匹配行的数量
-i 忽略大小写
-An 显示过滤结果及接下来的 n 行
多个条件:
- & grep -n 'read' | grep 'download' | grep 'write' 过滤包含 read 和 download 和 write 内容的行
- || grep -n 'read\|download\|write' 过滤包含 read 或 download 或 write 的行,(\| 表示转义 |)
支持正则表达式:
^ 行首,搜寻 a 开头的行;grep -n '^a' 1.txt
$ 行尾,搜索 z 结尾的行;grep -n 'z$' 1.txt
[] 匹配中括号里一系列字符中的一个;grep -n '[AB]cd[EF]' 1.txt,那么包含 AcdE... 的行被输出
.(点) 匹配一个非换行的字符;grep -n 'A.A' 1.txt,那么包含 AbA, AcA... 的行被输出
sed:行文件编辑工具(擅长对行内容进行操作)(排行老二)
匹配条件分为两种:数字行号或者匹配关键字
关键字匹配格式:'/keyword/' (隔离符号 / 可以换成 @、#、!等符号)
-n 取消默认输出
-i 文件编辑
i (insert)在匹配到的内容上一行增加内容
a (append)在匹配到的内容下一行增加内容
d 删除匹配的内容
s 替换匹配到的内容
例子:
查看:
- 取文件的第 20 - 30 行内容:sed -n '20, 30p' /home/Desktop/test.txt
替换:sed -i '行号s#原内容#替换后内容#列号' 文件名
- 替换全部sed为SED sed -i 's#sed#SED#g' sed.txt
- 替换首每行的第1个sed为SED sed -i 's#sed#SED#' sed.txt
- 替换第2行的首个SED为sed sed -i '2s#SED#sed#' sed.txt
- 替换每行的第2个SED为sed sed -i 's#SED#sed#2' sed.txt
- 替换第3行的第2个SED为sed sed -i '3s#SED#sed#2' sed.txt
增加:sed -i '行号a\增加的内容' 文件名
- 在第一行上增加内容(内容占一行)(不指定行数,则在每行上增加内容) sed -i '1i\insert-1' sed.txt
- 在第二行下增加内容 sed -i '2a\zengjia-2' sed.txt
- 在1~3行上都增加内容 sed -i '1,3i\tongshi-2' sed.txt
- 在1~3行下都增加内容 sed -i '1,3a\tongshi-2' sed.txt
删除:sed -i '行号d' 文件名
- 删除第4行内容 sed -i '4d' sed.txt
- 删除3~5行内容 sed -i '3,5d' sed.txt
awk:非常强大的文档编辑工具,不能能操作文件的行,还能操作文件的列(排行老大)
-F 指定行的分隔符
! 取反
print 显示内容:
$0 显示当前行所有内容
$n 显示当前行的第 n 列内容,如果存在多个 $n,它们之间有逗号,隔开
常见内置变量:
FILENAME 当前输入文件的文件名,该变量是只读的
NR 指定显示行的行号
NF 输出最后一列的内容
OFS 输出格式的列分隔符,缺省是空格
FS 输出文件的列分隔符,缺省是连续的空格和 Tab 建
例子:
- 取文件中不包含 test 的行 awk '!/test/' test.txt
- 取文件的第 20 - 30 行内容 sed -n 'NR==20, NR==30' /home/Desktop/test.txt
- 打印第1列的内容 awk '{print $1}' awk.txt
- 打印第一行第1和第3列内容 awk 'NR==1 {print $1,$3}' awk.txt
- 指定行的分隔符,查看内容 awk -F ':' '{print $1,$7}' awk.txt
- 设置显示分隔符,查看内容 awk 'BEGIN{OFS=":"} {print NR,$0}' awk.txt
find:查找文件/目录;用法:find 路径 -type f/d -name test -size 2M/+2M
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-size 指定文件大小(或范围)来查找文件
-type 查找某一类型的文件
- f 普通文件
- d 目录
- b 块设备文件
- c 字符设备文件
- p 管道文件
- l 符号链接文件
例子:
- find ./ -name test.sh 当前目录,名称为 test.sh 的文件
- find ./ -name '*.sh' 当前目录,后缀为 .sh 的文件
- find ./ -name '[A-Z]*' 当前目录,以大写字母开头的文件
- find /tmp -size 2M /tmp 目录,等于2M的文件
- find /tmp -size +2M /tmp 目录,大于2M的文件
- find /tmp -size -2M /tmp 目录,小于2M的文件
- find ./ -size +4K -size -5K 当前目录,大于4K,小于5K的文件
- find ./ -perm 777 当前目录,权限为 777 的文件或目录
tar:归档命令
打包压缩:tar [参数] 打包文件名 文件
tar -zcvf test.tar.gz * 将当前路径下所有的文件和文件夹打包并压缩到 test.tar.gz 文件中
解压:tar -zxvf test.tar.gz 解压到当前路径下
tar -zxvf test.tar.gz -C /home/ubuntu/Desktop/ 解压到指定路径
chmod:修改权限
数字法:
字母 | 说明 |
---|---|
r | 读取权限,数字代号为 "4" |
w | 写入权限,数字代号为 "2" |
x | 执行权限,数字代号为 "1" |
- | 不具任何权限,数字代号为 "0" |
如执行:chmod u=rwx, g=rx, o=r filename 就等同于:chmod u=7, g=5, o=4 filename
chmod 751 file:
文件所有者:读/写/执行
同组用户:读/执行
其它用户:执行
&:后台展示符号(将一个命令从前台转到后台执行,并输出进程ID)
// 界面暂停5秒
[root@centos7_3 ~]# sleep 5 &
[1] 22760
[root@centos7_3 ~]# ps -aux | grep "sleep" | grep -v auto
root 22760 0.0 0.0 107896 608 pts/0 S 10:30 0:00 sleep 5
[root@centos7_3 ~]#
全部信息符号:2>&1
- 1 表示正确输出的信息
- 2 表示错误输出的信息
- 2>&1 代表所有输出的信息
符号示例:
- 标准正确输出:cat test.txt 1>>true.log
- 标准错误输出:fsdfaasdfsdfa test.txt 2>>false.log
案例:
脚本内容
#!/bin/bash
echo "$0"
bad command
1 和 2 分开使用(把正确输出追加到true.log,错误输出追加到false.log,注意空格):bash case.sh 1>>true.log 2>>false.log
1 和 2 混合使用(把输出全部追加到 result.log):bash case.sh 1>>result.log 2>&1
管理命令
sudo -s:切换到root用户
passwd test:设置 test 用户的密码
exit:退出登录用户
who:查看登录用户
reboot、init6:重启
shutdown -now、init0:立即关机
shutdown -h 20:23:定时关机
shutdown -h +10:十分钟后自动关机
查看内核版本
cat /etc/redhat-release
[root@hahaha ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
查看运行级别
runlevel
0 关机状态
1 单用户
2 多用户,但没有 NFS(网络文件系统)
3 完整的多用户模式,命令模式,文本模式
4 未使用
5 x11,桌面模式
6 重启状态
网卡
网卡启动:ifup 网卡名称
重启某个网卡:ifup 网卡名称 && ifdown 网卡名称; 千万不要只关闭网卡噢
demo: ifdown enp0s3 && ifup enp0s3
修改主机名
临时修改:hostname test
永久修改(需要重启):vim /etc/hostname(centos7版本) 或者 使用命令 hostnamectl set-hostname hahaha
查看磁盘分区使用情况
df -h
随时补充 ~
Linux 命令集锦的更多相关文章
- 手把手 git建立仓库,远程推拉及常用git命令和部分Linux命令集锦
方法一:直接在GitHub上建立一个项目,然后git clone (git address name): 此时已经建立好了一个git仓库: cd 文件夹 > 添加文件进去 >git add ...
- Linux命令集锦
梳理常用的Linux命令 day1--cd命令 cd命令:(注意以下的命令,cd后均有一个空格) 1.进入盘符: cd f: 2.进入当前目录命令: cd . 3.进入指定文件夹(在进入确定盘符之后, ...
- Linux命令集锦:crontab命令
Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...
- Linux命令集锦:scp命令
scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度.当你服务器硬盘变为只读 read on ...
- 有用的linux命令集锦
http://blog.csdn.net/hackerain/article/details/7946193 1. 查看内存使用情况 free -m 2. 查看系统版本信息 sudo lsb_rele ...
- linux命令集锦 基于centos7---优化linux的命令
sed -i ‘s###g’ /etc/selinux/config 3个# 用于更改selinux配置文件:sed -i 's#SELINUX=enforcing#SELINUX=disabled ...
- 常用Linux命令集锦-ls命令
1.命令格式:ls [选项] [目录名] 2.常用参数 -a:列出该目录下所有文件(包含隐藏文件). -A:列出该目录下除了隐藏文件的所有文件. -l:以行显示目录下的所有文件.输出信息从左到右分别是 ...
- Linux命令集锦:ansible命令
ansible 命令主要用于批量管理,来实现自动化管理.常用批量操作包括:主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 一.安装 ansible yum instal ...
- Linux命令集锦:chown命令
chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者变成文件所属的组. 使用 chown -R liu /usr/wang //将目录/usr ...
随机推荐
- [插件式开发][C#]
Demo 下载 参考文章:https://www.cnblogs.com/hippieZhou/p/9398354.html 技术方面要使用到 依赖注入,可以参考此示例逐步学习:https://git ...
- Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
现象:Windows 操作系统的Oracle 数据库,使用sqlplus 连接(不指定实例名)连接很快,程序连接或使用连接工具或在Net Manager 中测试连接都需要花费约三四十秒的时间(程序连接 ...
- Carve ifc failed
Detected IFC version: IFC2X3 Warning: Sweeper::createTriangulated3DFace, carve::triangulate::incorpo ...
- Cisco Port-Channel 设置(链路聚合--重点)
Port-Channel 的在实际工作中的主要作用是将两个或多个端口捆绑成为一个虚拟通道. interface Port-channel1 description port(1/0/5-6) swit ...
- MySQL从.ibd文件中恢复数据
首先,在MySQL命令行下执行如下命令可以查看MySQL中存放数据的位置: show global variables like "%datadir%"; 我这里的执行结果: +- ...
- 偶尔要用的git命令备忘
文档:https://git-scm.com/docs 列出所有远程空间: git remote -v 重命名远程空间: git remote rename <old> <new&g ...
- CenOS 7 权限命令
修改拥有者chown chown 拥有者名称 文件名 修改组chgrpchgrp 组名 文件名 修改权限 chmodchmod 权限 文件名
- js 数组去重、去空(收藏)
function unique (arr) { return Array.from(new Set(arr)) } var arr = [1,1,'true','true',true,true,15, ...
- 【leetcode算法-中等】3. 无重复字符的最长字串
[题目描述] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 " ...
- Airflow怎么删除系统自带的DAG任务
点击这个按钮 找到dag文件所在路径,并进入路径将其文件删除即可