linux 常用指令

1.查看目录下有什么文件信息

ls          //list查看当前目录下有什么文件
ls  -l或ls ll     //list  -list 通过详细内容形式查看目录下的文件内容
ls 目录     //查看指定目录下文件名字信息
ls  -l 目录  //以详细列表形式查看指定目录下文件名字信息
ls  -a      //list  all 查看全部文件,包括隐藏文件
ls  -al     //list  list all 以详细列表形式查看全部文件,包括隐藏文件
ls  -i      //查看目录下文件名字的索引号码

2.目录切换

cd 目录名字
cd..   //向上级目录切换
cd~    //快速切换回自己的家目录

3.查看当前操作位置

pwd

4.查看操作者信息(是谁在操作系统)

whoami

5.不同用户间的切换

su -            //切换为root用户
su - root       //效果同上
su  普通用户名称  //向普通用户切换
exit            //当前用户退回到之前用户

su多次使用,用户会“累加”,建议“su” 和 “exit”匹配使用。

6.图形模式与命令模式进行切换

init 3     //图形 向 命令模式切换
init 5     //命令 向 图形模式切换

7.查看指令对应的可以执行程序文件位置

whic  指令

8.目录操作

1)创建目录 make directory

mkdir  newdir
mkdir -p newdir/newdir/newdir     //递归方式创建多级目录 newdir新目录多于1个层次(2/3/4等)就设置-p参数,如果就一个新的目录则无需-p参数
mkdir  dir/newdir
mkdir  dir/dir/newdir
mkdir -p dir/newdir/newdir

2) 移动(改名字)目录 move (目录/文件 都可以操作)

mv  dir1  dir2                //dir1移动到dir2目录下,并给改名字为"原名"
mv  dir1  dir2/newdir         //dir1移动到dir2目录下,并给改名字为newdir
mv  dir1/dir2  dir3/dir4      //dir2移动到dir4目录下,并给改名字为"原名"
mv  dir1/dir2  dir3/dir4/newdir  //dir2移动到dir4目录下,并给改名字为 newdir
mv  dir1/dir2  ./             //dir2移动到 当前 目录下,并给改名字为"原名"
mv  dir1/dir2  ./newdir           //dir2移动到 当前 目录下,并给改名字为newdir

3) 复制(改名字)目录 copy (目录/文件 都可以操作)

复制普通文件:

cp  file1  dir1             //file1被复制到dir1目录下一份,并给改名字为“原名”
cp  file1  dir1/newfile     //file1被复制到dir1目录下一份,并给改名字为newfile

复制目录 -r 参数要求:

//recursive递归方式拷贝目录
cp -r dir1  dir2            //dir1被复制到dir2目录下一份,并给改名字为“原名”
cp -r dir1  dir2/newdir     //dir1被复制到dir2目录下一份,并给改名字为newdir
cp -r dir1/dir2/dir3   dir4/dir5  //dir3被复制到dir5目录下一份,并给改名字为"原名"

4) 删除 remove

rm  filename      //普通文件删除
rm -r dir         //删除目录[无视层次]需要-r参数
rm -rf  文件      //recursive force 递归强制删除文件,force 避免删除隐藏文件的提示
rm -rf /         //递归强制方式删除系统里边的全部内容

9.文件操作

1) 查看文件内容

cat  filename     //在终端显示文件全部内容
more filename     //通过"敲回车"方式从第一行逐行查看文件内容,不支持回看,q键退出查看
less filename     //"上下左右"键方式查看文件各个部分内容,支持回看,q键退出查看
head  -n  filename  //查看文件“前n行”内容
tail  -n  filename  //查看文件“末尾n行”内容
wc  filename      //计算文件行数

2) 创建文件

touch  filename  
touch  dir/filename

3) 追加内容(文件不存在会“自动”创建)

echo  内容 > filename    //给文件“覆盖写”方式追加内容
echo  内容 >> filename   //给文件纯追加内容

10.用户操作

user,配置文件/etc/passwd

1) 创建 add

useradd  username                //创建用户会同时创建同名组
useradd  -g  组编号   username     //创建用户的同时设置组别
useradd  -g 组编号 -u 用户编号 -d 家目录 username //创建用户同时,指定组别、用户编号、家目录

2) 修改 modify

usermod  -g gid  username     //修改组别是常见操作
usermod  -g gid -u uid -d 家目录  -l  newname   username//修改组别、用户编号、家目录、名字

注意:

  • 家目录修改后需要手动创建,不同于创建用户家目录设置
  • 创建用户时设置家目录,该目录会自动创建
  • 修改用户家目录时,该目录不会自动创建(需要手动创建)

3) 删除 delete

userdel username     //删除用户(删除passwd文件对应信息),此时其家目录需要手动删除
userdel -r username  //删除用户的同时也删除其“家目录”

11.组别操作

group,配置文件/etc/group

1) 创建 add

groupadd  groupname

2) 修改 modify

groupmod -g gid  -n newname  groupname

3) 删除 delete

groupdel 组名

注意:只有空组(内部没有用户信息)才允许删除

12.vi编辑器使用

1) 命令模式-->编辑模式切换(插入/Insert)

a "光标" 向后移动一位
i "光标" 和 "内容" 没有变化
o "新"起一个空白行
s "删除"光标所在字符

2) 尾行模式作用

:q      quit退出编辑器
:wq     write quit 保存并退出
:w      write 保存
:q!     强制退出(不要保存)
:w!     强制写保存
:wq!    强制保存退出

:set number 或 set nu           //给编辑器设置行号
:set nonumber 或 set nonu       //取消行号设置

:数字   光标跳转到数字所在行
:/内容/  或 /内容         //内容查找,小写n(next)下一个,大写N(next)上一个

:s/cont1/cont2/         //把光标所在行的"第一个"cont1替换为cont2
:s/cont1/cont2/g        //把光标"所在行"的全部cont1替换为cont2
:%s/cont1/cont2/g       //把"整个文档"中的全部cont1替换为cont2

3) 命令模式操作

① 光标移动

a.字符级

上(k)  下(j)  左(h)  右(l) 键

b.单词级

w  word下个单词首字母
e  end下(本)个单词尾字母
b  before上(本)个单词首字母

c.行级

$ 行尾
0 行首

d.段落级(两部分内容中间有空行,彼此成为段落)

{  上(本)个段落首部
}  下(本)个段落尾部

e.屏幕级(不给翻屏)

H  屏幕首部
L  屏幕尾部

f.文档级

G   文档尾行
1G  文档第一行
nG  文档第n行

② 内容删除

dd      删除光标所在行
n+dd    包括当前行在内向下删除n行内容
x       字符级删除,删除光标所在字符
cw      光标所在字符删除至单词结尾(是删除单词的便捷方式),同时会进入编辑模式

③ 内容复制

yy      复制光标所在行
n+yy    包括当前行在内向下复制n行内容
p       对复制(删除)好的内容进行粘贴操作

④ 便捷操作

u       undo撤销,从文件打开后的所有操作都可以撤销
r       对单词字符进行替换
.       重复执行"最近"的一条指令
J       合并上下两行

13.权限设置

1) "字母相对方式"设置权限

权限: r读 w写 x执行

用户: u主人 g同组 o其他组

chmod u+/-rwx, g+/-rwx, o+/-rwx 文件

说明:

  • 不同用户通过",逗号"分隔
  • 在同一个用户里边,+/-只能用“一个”
  • "rwx"在同一个用户里边可以设置一个或多个
  • "ugo" 每次权限操作可以设置一个或多个用户
chmod u+rw  filename        //主人增加读、写
chmod g-rx  filename        //同组删除读、执行
chmod u-w,g+x filename      //主人删除写,同组增加执行
chmod o+w,o-x  filename     //其他组用户“增加写、删除执行”

2) "数字绝对方式" 设置权限

权限类型:

  • 0: 没有权限
  • 1: 执行
  • 2: 写
  • 3: 写、执行
  • 4: 读
  • 5: 读、执行
  • 6: 读、写
  • 7: 读、写、执行
chmod  ABC  filename   //ABC分别代表主人、同组、其他组用户权限
chmod 764  filename   //主人读、写、执行,  同组读、写,    其他读
chmod 777  filename   //满贯权限
chmod 000  filename   //所有用户没有任何权限

字母和数字方式取舍:

  • 权限修改的比较"少",就使用字母方式
  • 权限修改的比较"多",就使用数字方式

14.在文件中查找指定内容

grep 内容 (绝对/相对路径)目标文件

grep  sbin  /etc/passwd       //在passwd文件中查找sbin字样,会把sbin所在行的内容都输出

15.查看文件占据磁盘空间大小

du -h 文件/目录

du -h  文件名称      //以k M的形式查看文件占据磁盘空间大小

16.文件查找

find 现值查找目录 选项 选项值 选项 选项值....

具体选项: 1)name 根据文件名字查找指定的文件

find 目录 -name 完整文件名称

find  /  -name  passwd[完整名称]    //"递归遍历"系统全部目录查找名字等于passwd的文件 
find  /etc  -name passwd[完整名称]   //递归遍历/etc及内部所有目录查找  名字等于passwd的文件

find  目录 -name  "an*"[部分名称]     //模糊查找文件名字以an开始的

2)对查找的目录层次进行限制

-maxdepth 限制查找的最"深"层次 -mindepth 限制查找的最"浅"层次

find / -name passwd -mindepth 3 -maxdepth 4   //在3到4个层次的目录里边定位passwd文件

3)根据文件大小进行查找

size 单位

find ./  -size  50c      //在当前目录下查找大小[等于]50个字节的文件

单位:

数量

单位

实际大小

100

512字节

100*512字节

50c

字节

50字节

50k

千字节

50*1024字节

50M

兆字节

5010241024字节

find  ./  -size  +50c    //在当前目录下查找大小[大于]50个字节的文件
find  ./  -size  -50c    //在当前目录下查找大小[小于]50个字节的文件

17.开关机指令

reboot    //重启
poweroff  //关机

原文发布于微信公众号 - 程序员宝库(chengxuyuanbaoku)

原文发表时间:2018-01-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jed的技术阶梯

Kafka 新版消费者 API(二):提交偏移量

最简单的提交方式是让消费者自动提交偏移量。如果 enable.auto.commit 被设为 true,那么每过 5s,消费者会自动把从 poll() 方法接收...

1.2K2
来自专栏有趣的django

10.socket网络编程

套接字工作流程 ? 先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端...

3857
来自专栏kangvcar

Ansible极简教程

4843
来自专栏Python小屋

Python批量提取PDF文件中的文本

首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库。 import os import sys import time p...

3635
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(三十四) ——Redis Lua脚本环境设计与实现

《Redis设计与实现》读书笔记(三十四) ——Redis Lua脚本环境设计与实现 (原创内容,转载请注明来源,谢谢) 一、创建lua环境 为了在redis...

4085
来自专栏开源优测

AutoLine源码分析之开始篇

AutoLine开源平台是一个开源自动化测试解决方案,基于RobotFramework进行二次开发,支持RobotFramework几乎所有的库。

1262
来自专栏coder修行路

Python 并发编程(一)之线程

常用用法 t.is_alive() Python中线程会在一个单独的系统级别线程中执行(比如一个POSIX线程或者一个Windows线程) 这些线程将由操作系统...

2836
来自专栏Java后端技术

解决jetty7.0.pre5启动时报ClassNotFoundException: javax.interceptor.InvocationContext异常的问题

一.背景介绍:最近项目在使用maven命令行运行jetty服务器时出现ClassNotFoundException: javax.interceptor.Inv...

781
来自专栏程序员宝库

使用 Node.js 开发简单的脚手架工具

像我们熟悉的 vue-cli,react-native-cli 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们...

1692
来自专栏高性能分布式系统设计

Go的PCRE包装在启用JIT的时候遇到的问题和解决方案

用CGO包装C的库, 如果启用了JIT的话,会有一些问题. 例如pcre用了JIT动态生成代码并JIT代码引用里自己线程的JIT Stack数据. 这时会有一个...

3057

扫码关注云+社区

领取腾讯云代金券