Linux常用的命令
一、特殊符号的意思
|
文件类型 |
属主权限 |
属组权限 |
其他用户权限 |
|
- |
4 2 1 |
4 2 1 |
4 2 1 |
|
d |
r w x |
r - x |
r - - |
|
- : 文件 d: 目录 |
对于root来说: 可读 可写 可执行 |
对于root同组的其它用户来说: 可读 不可写 可执行 |
对于不同组的用户来说: 可读 不可写 不可执行 |


ll:展示指定目录下的所有文件、文件夹
-rw...---- 左侧第一个是“-”的为文件
d... 左侧第一个是“d“的为文件夹
二、常用命令
1.一般模式(是对文件内部,不能在编辑模式)
(1)yy 复制:复制光标的所在的一整行内容(不在编辑模式)
(2)yNy 复制N行:例如y2y:复制两行(从哪行开始复制,光标就在哪行,然后再按y2y进行复制)
(3)p 粘贴:粘贴复制的内容(在哪粘贴,光标就要在那行的上一行,再按p进行粘贴)
(4)u 撤销
(5)dd 删除一行
(6)dNd 删除N行:例如d3d:删除3行
(7)shift + ^ 移动到行头
(8)shift + $ 移动到行尾
(9)N + shift + g 跳到第N行
(10)shift+g 跳到最后一行
(11)gg 跳到第一行
(12)/关键词:搜索文件中的关键词所在的位置,按 n 查找下一个位置
2.编辑模式
(1)i 进入编辑模式
(2) o 进入下一行的编辑模式
(3)esc 退出编辑模式
3.指令模式
(1)w 保存文件
(2)q 退出:shift+:+q+回车
(3)!感叹号强制执行
例如:命令行 ” :q! “ 表示 强制执行退出
建议在w/q后面加!
4.文件目录类
Linux中的一切都是文件,就是说目录其实也类似于文件,对于文件操作使用的一些命令也可以用在目录上。
(1)pwd显示当前工作的绝对路径
显示的结果以 / 为开头,例如:/opt/mudulc,
相同的文件夹下不可以创建相同名字的文件/文件夹
不同的文件夹下可以创建相同名字的文件/文件夹
绝对路径和相对路径
Windows下的相对路径:不带磁盘头 /2
Linux下的绝对路径:以 / 为开头 Linux下的相对路径:./2(相对路径是指不以 / 为开头的路径)
. :当前目录 .. :上一级目录 |
(2)ls:列出目录内容-横着
|
ls -l 以列表的形式列出(竖着的) ls -lh 以列表的形式列出(并将文件大小进行转换,从Byte换成可以整除的更大的单位-KB 或 MB等) ls -lt 以时间的形式排序竖着列出(最新的在前面) ls -lrt 以时间的形式排序竖着列出(最旧的在前面) ls -lart 将隐藏的文件(.开头的文件)也显示出来 |
ll:ls -l 的缩写,展示指定目录下的所有文件、文件夹-竖着
(3)mkdir 创建新目录:在当前目录下创建新的目录
mkdir -p 递归创建:例如 mkdir -p ./A/B/C 相当于 mkdir -p A/B/C
(4)cd 切换目录
cd+空格+目录名: 进入当前所在的目录
例如cd /opt/(最后的/加不加均可):进入opt这个目录中
(5)cd - 返回之前操作的目录(或者直接按向上箭头)
cd+空格+ - :返回之前操作的目录
(6)cd+ 空格+.. :返回上一级目录
执行命令:cd后面什么都不加,意思就是进入/root路径下
~ 表示当前所在的目录为/root
它的再上一级目录为 /

(7)cp复制文件或目录(无子文件夹的)
cp 要复制的文件名 目标文件名
(8)cp -r 递归复制(有或没有子文件夹的均可)
(9)touch 创建空文件:touch+空格+文件名: 创建新的文件
(10)vi+空格+文件名:进入此文件
例如:vi ITSTAR 进入ITSTAR文件中
(11)rm 删除文件(无子文件夹的)
(12)rm -rf 递归强制删除 (有或没有子文件夹的均可)
- rm+空格+-rf+文件名:递归强制删除指定目录下的某个文件(有或没有子文件夹的均可)
- rm+空格+-rf+空格+*:递归强制删除当前目录下的所有文件
(13)mv 移动文件所在目录/改名
mv+空格+要移动的文件名+空格+移动到的位置:移动目录/改名
(14)cat 查看文件
cat+空格+文件名 :查看指定目录下的文件(打印出所有的内容,如果文件较大不建议使用cat)
(15)more分页查看文件
more+空格+文件名:分页查看指定目录下的文件(仅打印出当前查看页的内容,生产环境下推荐使用more)
按空格 或 按CTRL+f 继续读下一页内容 ;CTRL+B返回上一屏
(16)tac+空格+文件名:倒着放文件内容(不常用)
(17)tail -F监控文件
tail+空格+-F+空格+文件名:监控文件
(18)echo追加文件
echo+空格+覆盖上的内容+空格+>+要进行覆盖的文件名 进行文件内容的覆盖
(19)ln -s[原文件][目标文件] 软链接
ln+空格+ -s +空格+原文件+空格+目标文件:软链接
(20)history历史服务器:显示之前敲过的命令
(21)tail -X 文件名 :打印指定文件中倒数X行的内容
EG: tail -10 test.txt
打印test.txt文件内倒数10行的内容(从最后一行算起,倒数10行)
(22)head -X 文件名 :打印指定文件中正数X行的内容
EG: head -10 test.txt
打印test.txt文件内正数10行的内容(从第一行算起,正数10行)
(23)tr
eg:
cat test1.txt | tr '[a-z]' '[A-Z]' 将大小写进行互转后打印出来 (其中 | 是管道符) ,该命令执行后可以打印出test1.txt文件的内容
cat test1.txt | tr '[a-z]' '[A-Z]' > test2.txt 将大小写进行互转后再以覆盖的形式重定向给新文件test2.txt,
(这里新文件test2.txt可以是原来不存在的文件,执行此命令不会打印出文件内容,源文件test1.txt内容不变)
cat test2.txt | tr -d "." 将源文件test2.txt中的"."删除并打印出修改后的内容,
(实现字符串的删除,源文件test2.txt的内容不变)
5.时间日期类
(1)date 显示当前时间
date -s设置系统时间--例如:date -s ‘2019-03-09 23:23:23’
(2)cal 查看日历--例如:cal -3:查看最近3个月的日历
(3)tab 自动补充键
6.用户管理命令

(1)useradd [用户]添加新用户
useradd + 用户名:添加新的用户
EG:useradd newuser1 -g newgroup -s /bin/nologin 新创建用户newuser1在newgroup用户组中
-g 后加的是组ID ; -s 后加的是Shell
id newuser1 可以查询新建的用户信息:
![]()
(2)userdel [用户]删除新用户
userdel+ 空格+用户名:删除用户
(3)passwd [用户]设置用户密码
passwd+空格+用户, 然后根据提示输入新的密码
(4)id [用户]判断用户是否存在
id+空格+用户名:判断用户是否存在
(5)su [用户]切换用户
su+用户名:切换用户

输入exit可以回到原来的用户-root用户
(6)vi /etc/sudoers 设置普通用户具有root权限
vi+空格+/etc/sudoers:设置普通用户具有root权限
注: 前提是当前在root用户下
(7)usermod修改用户
usermod -g dev itstar把用户itstar加入到dev用户组
(8)groupadd+用户名:新增用户组
例如:groupadd itstar新增itstar用户组
查看用命令:cat /etc/group
(9)groupdel删除组
groupdel+用户组名
注: 如果用户组里面有用户,则会删除失败
(10)groupmod修改组
(11)cat /etc/group查看创建了哪些组
cat +空格+/etc/group:查看创建了哪些组
(12)whoami 查看当前用户名
(13)w 显示当前登陆系统的用户信息

7.文件权限类
(1)chmod改变权限
chmod -R 777 用户名 (给某用户最大的权限)
chmod u+x/w/r 文件/目录名 (给属主增加执行/写/读功能)
chmod u-x/w/r 文件/目录名 (给属主去掉执行/写/读功能)
chmod g+x/w/r 文件/目录名 (给属组增加执行/写/读功能)
chmod g-x/w/r 文件/目录名 (给属组去掉执行/写/读功能)

r,w,x分别对应的数字是4,2,1
用它们各自数值之和来代表属主、属组、其它用户的权限,例如:
命令:chmod 760 文件名
7代表的就是属主具有rwx的功能(4+2+1)
6代表的就是属组具有rw的功能(4+2)
0代表的就是其他的用户没有rwx的功能
分开表示出来就是:- rwx rw- ---
(2)chown [最终用户--用户名:组名][文件或目录]
chown 属主:属组 文件名 (来更改属主、属组)
例如:chown -R itstar:itstar [文件名]
|
-c显示更改的部分的信息 -f忽略错误信息 -h修复符号链接 -R处理指定目录以及其子目录下的所有文件 -v显示详细的处理信息 |
8.磁盘分区类
(1)fdisk+空格+ -l:在root用户下查看分区
(2)df 查看硬盘
(3)mount /unmount 挂载/卸载
9.搜索查找类
(1)find [搜索范围][匹配条件]
find+空格+搜索范围+匹配条件:搜索查找类
- 按文件名:find /opt -name '*.jar'(查找opt目录下所有的jar文件,注意不仅是单层的搜索)

- 按拥有者:find /opt -user itstar(查找拥有者为itstar的文件)
- 按文件大小:find /opt -size +1024(在某目录下查找大于1M的文件)
(2)grep 管道符
grep + 参数 + 查找内容 + 源文件
- rpm -qa|grep mysql 查找系统中是否有mysql的rpm包
-
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 删除mariadb包(这里--nodeps是强制性的~)
- rpm -ivh --nodeps 包名 强制安装...
- grep "C \ |A" A 注:区分大小写
- grep -i "C \ |A" A 是不区分大小写
- grep -A/B/C X '字符串' 文件名:

- grep 'SOHU' test2.txt 查询test2.txt文件中 含有SOHU的行,打印出来
- grep 'SOHU' test2.txt -n 查询test2.txt文件中 含有SOHU的行,打印出来 ,并显示所在行数:

- grep -A 3 'GOOGLE' test2.txt -c 输出test2.txt文件中含有GOOGLE的行的数量
- grep -A 3 'GOOGLE' test2.txt | wc -l 输出的是 执行grep -A 3 'GOOGLE' test2.txt 命令 打印出内容的行数:

(具体test2.txt文件的内容看grep的第一张图)
10.进程线程类
(1)ps -aux 查看系统中的进程
(2)top 查看系统的健康状态
(3)kill 进程 :kill -9 进程号,直接杀死进程
11.压缩和解压缩
(1)gzip + 文件 压缩文件注:不能压缩目录
(2)gunzip + 文件.gz 解压缩文件
(3)zip + 文件名 + 要压缩的内容
例如:zip a.zip a 把a压缩成zip格式的文件
(4)unzip + *.zip 解压所有文件
详见:https://www.cnblogs.com/liuxinrong/articles/12652400.html
(5)tar 的打包、压缩、解压缩
- tar cvf 要打包成的包名 指定的目录 (将指定目录下的所有文件打成一个包,c--可理解成创建)

- tar xvf 要解压的包名 (x--可理解成解包)

- tar zcvf 要压缩成的压缩包名 指定路径 (将指定路径下的所有文件打包后再压缩成一个压缩包,z-可理解成压缩)

- tar zxvf 要解压的压缩包名 (实现指定压缩包的解压)
12.其它
(1)sort
EG:cat test2.txt | sort 将test2.txt文件的内容按照字符ASCII从小到大顺序排列出来:

(2)cut
EG: cat test2.txt | cut -d ":" -f 1 将test2.txt文件内容用“:”分隔开并打印出第一列:

(3)uniq
EG:cat test3.txt | uniq 对test3.txt文件进行重复行的删除(注意:仅对挨着的重复行进行去重,不改变原文件的内容)


cat test3.txt | uniq | wc -l 输出对test3.txt文件去重后所具有的行数
cat test3.txt | uniq -c 输出对test3.txt文件去重后的内容,并计数(输出的顺序是字符串按照ASCII由小到大排好的)
cat test3.txt | sort | uniq -c 输出效果同上

浙公网安备 33010602011771号