Linux常用指令总结
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统
特点:Linux里面的一切皆是文件,文件没有后缀名这么一说
1、树状目录结构
/bin:是Binary的缩写,这个目录存放着系统必备执行命令
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:所有的系统管理所需要的配置文件和子目录。
/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/misc: 该目录可以用来存放杂项文件或目录,即那些用途或含义不明确的文件或目录可以存放在该目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/net 存放着和网络相关的一些文件.
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙
/srv:service缩写,该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/tmp:这个目录是用来存放一些临时文件的。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
2、VI/Vim编辑器
2.1一般模式
yy 复制当前一行
2.2编辑模式
进入编辑模式:vim 文件名 i 当前光标前 a 当前光标后 o 当前光标的下一行 退出编辑模式 ESC
2.3指令模式
:选项 w 保存 q 退出 wq 保存退出 wq!强制保存退出 / 选项 /被查找词,n是查找下一个。shift+n是往上查找 ?被查找词,n是查找上一个,shift+n是往下查找
3、常用的基本命令
3.1目录和文件的操作
pwd 显示当前工作目录的绝对路径 ls 列出目录的内容
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
mkdir 创建一个新的目录
mkdir 目录
mkdir -p 创建多层目录
rmdir 删除一个空的目录
rmdir 要删除的空目录
cd 切换目录
(1)cd 绝对路径
(2)cd 相对路径
(3)cd ~或者cd (功能描述:回到自己的家目录)
(4)cd - (功能描述:回到上一次所在目录)
(5)cd .. (功能描述:回到当前目录的上一级目录)
(6)cd -P (功能描述:跳转到实际物理路径,而非快捷方式路径)
cp 复制文件或目录
(1)cp source dest (功能描述:复制source文件到dest)
(2)cp -r sourceFolder targetFolder (功能描述:递归复制整个文件夹)
rm 移除文件或目录
(1)rmdir deleteEmptyFolder (功能描述:删除空目录)
(2)rm -rf deleteFile (功能描述:递归删除目录中所有内容)
mv 移动文件与目录或重命名
(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移动文件)
cat 查看文件内容: cat [选项] 要查看的文件,查看文件的命令还有tail(内容从后向前显示);more(一页一页的喜爱你是文件的内容);less(与more类似);head(只看头几行)
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
touch 创建空文件
touch 文件名称
重定向命令
(1)ls –l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
(2)ls –al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
echo
(1)echo 要显示的内容 >> 存储内容的的文件 (功能描述:将要显示的内容,存储到文件中)
(2)echo 变量 (功能描述:显示变量的值)
ln软链接
ln –s [原文件] [目标文件] (功能描述:给原文件创建一个软链接,软链接存放在目标文件目录)
history 查看所敲命令历史
3.2时间日期
date显示当前时间
(1)date (功能描述:显示当前时间)
(2)date +%Y (功能描述:显示当前年份)
(3)date +%m (功能描述:显示当前月份)
(4)date +%d (功能描述:显示当前是哪一天)
(5)date +%Y%m%d date +%Y/%m/%d … (功能描述:显示当前年月日各种格式 )
(6)date "+%Y-%m-%d %H:%M:%S" (功能描述:显示年月日时分秒)
date显示非当前时间
(1)date -d '1 days ago' (功能描述:显示前一天日期)
(2)date -d yesterday +%Y%m%d (同上)
(3)date -d next-day +%Y%m%d (功能描述:显示明天日期)
(4)date -d 'next monday' (功能描述:显示下周一时间)
date设置系统时间
date -s 字符串时间
如date -s "2017-06-19 20:52:18"
cal查看日历
cal [选项] (功能描述:不加选项,显示本月日历)
3.3用户管理命令
useradd 添加新用户
useradd 用户名 (功能描述:添加新用户)
passwd 设置用户密码
passwd 用户名 (功能描述:设置用户密码)
id 判断用户是否存在
id 用户名
su 切换用户
su 用户名称 (功能描述:切换用户)
userdel 删除用户
(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
who 查看登录用户信息
(1)whoami (功能描述:显示自身用户名称)
(2)who am i (功能描述:显示登录用户的用户名)
(3)who (功能描述:看当前有哪些用户登录到了本台机器上)
设置simon普通用户具有root权限
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
Allow root to run any commands anywhere
root ALL=(ALL) ALL simon ALL=(ALL) ALL 修改完毕,现在可以用atguigu帐号登录,然后用命令 su - ,即可获得root权限进行操作。
cat /etc/passwd 查看创建了哪些组
usermod修改用户
usermod -g 用户组 用户名
例:将用户simon加入dev用户组
4、用户组管理命令
groupadd 新增组
groupadd 组名
例子:添加一个simon组
groupdel删除组
groupdel 组名
groupmod修改组
groupmod -n 新组名 老组名
cat /etc/group 查看创建了哪些组
5、文件权限
操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在 Linux 中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
第一列的内容的信息解释如下:
文件的类型:
d:代表目录 -:代表文件 l:代表软链接(可以认为是 window 中的快捷方式)
Linux 中权限分为以下几种:
r:代表权限是可读,r 也可以用数字 4 表示 w:代表权限是可写,w 也可以用数字 2 表示 x:代表权限是可执行,x 也可以用数字 1 表示
文件和目录权限的区别:
对文件和目录而言,读写执行表示不同的意义。
对于文件:
权限名称 | 可执行操作 |
---|---|
r | 可以使用 cat 查看文件的内容 |
w | 可以修改文件的内容 |
x | 可以将其运行为二进制文件 |
对于目录:
权限名称 | 可执行操作 |
---|---|
r | 可以查看目录下列表 |
w | 可以创建和删除目录下文件 |
x | 可以使用 cd 进入目录 |
需要注意的是:超级用户可以无视普通用户的权限,即使文件目录权限是 000,依旧可以访问。
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
所有者(u) :一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用 ls ‐ahl
命令可以看到文件的所有者 也可以使用 chown 用户名 文件名来修改文件的所有者 。文件所在组(g) :当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组用 ls ‐ahl
命令可以看到文件的所有组也可以使用 chgrp 组名 文件名来修改文件所在的组。其它组(o) :除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
我们再来看看如何修改文件/目录的权限。
修改文件/目录的权限的命令:chmod
示例:修改/test 下的 aaa.txt 的权限为文件所有者有全部权限,文件所有者所在的组有读写权限,其他用户只有读的权限。
chmod u=rwx,g=rw,o=r aaa.txt
或者 chmod 764 aaa.txt
chown改变所有者
chown [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
chgrp改变所属组
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
6、磁盘分区
fdisk查看分区
fdisk –l (功能描述:查看磁盘分区详情)
df查看硬盘
df 参数 (功能描述:查看磁盘使用情况)
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
mount/umount挂载/卸载
7、搜索查找
find 查找文件或者目录
find [搜索范围] [匹配条件]
grep 在文件内搜索字符串匹配的行并输出
grep+参数+查找内容+源文件
-n:显示匹配行及行号。
案例:ls | grep -n test
which 文件搜索命令
which 命令 (功能描述:搜索命令所在目录及别名信息)
which ls /bin/ls
8、进程和线程
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
ps查看系统中所有进程 top查看系统健康状态 pstree查看进程树
pstree [选项]
-p: 显示进程的PID
-u: 显示进程的所属用户
kill终止进程
kill -9 pid进程号
-9 表示强迫进程立即停止
netstat显示网络统计信息
netstat –anp (功能描述:此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容)
9、压缩和解压
gzip/gunzip压缩
gzip+文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip+文件.gz (功能描述:解压缩文件命令)
zip/unzip压缩
zip + 参数 + XXX.zip + 将要压缩的内容 (功能描述:压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件)
例子:zip test.zip test1.java test.java
tar打包
tar + 参数 + XXX.tar.gz + 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
案例:
(1)压缩:tar -zcvf XXX.tar.gz n1.txt n2.txt
(2)解压:tar -zxvf XXX.tar.gz -C 解压目的地
10、后台服务管理
service后台服务管理
1)查看指定服务的状态service network status
2)停止指定服务service network stop
3) 启动指定服务service network start
4)重启指定服务service network restart
5)查看系统中所有的后台服务service --status-all
chkconfig设置后台服务的自启配置
1)查看所有服务器自启配置chkconfig
2) 关掉指定服务的自动启动chkconfig iptables off
3)开启指定服务的自动启动chkconfig iptables on
11、rpm
RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe 是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
查询
rpm –qa (功能描述:查询所安装的所有rpm软件包)
卸载
(1)rpm -e RPM软件包
rpm -e firefox
安装
rpm –ivh RPM包全名
-i=install,安装
-v=verbose,显示详细信息
-h=hash,进度条
--nodeps,不检测依赖进度
公众号回复:Java全套、Java架构、大数据、电子书、算法和刷题笔记、面经,即可获得对应的学习资源。