1、/- 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样
2、/bin中 - 用户二进制文件 包含二进制可执行文件。 在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。 例如:ps、ls、ping、grep、cp
3、/sbin目录 - 系统二进制文件 就像/bin,/sbin同样也包含二进制可执行文件。 但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令
4、/etc - 配置文件 包含所有程序所需的配置文件。 也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。
5、/dev - 设备文件 包含设备文件。 这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
6、/proc - 进程信息 包含系统进程的相关信息。 这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。 这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime
7、/var - 变量文件 var代表变量文件。 这个目录下可以找到内容可能增长的文件。 这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
8、/tmp - 临时文件 包含系统和用户创建的临时文件。 当系统重新启动时,这个目录下的文件都将被删除。
9、/usr - 用户程序 包含二进制文件、库文件、文档和二级程序的源代码。 /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。 /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。 /usr/lib中包含了/usr/bin和/usr/sbin用到的库。 /usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
10、/home - HOME目录 所有用户用home目录来存储他们的个人档案。 例如:/home/john、/home/nikita
11、/boot - 引导加载程序文件 包含引导加载程序相关的文件。 内核的initrd、vmlinux、grub文件位于/boot下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
12、/lib - 系统库 包含支持位于/bin和/sbin下的二进制文件的库文件. 库文件名为 ld或lib.so.* 例如:ld-2.11.1.so,libncurses.so.5.7
13、/opt - 可选的附加应用程序 opt代表可选的。 包含从个别厂商的附加应用程序。 附加应用程序应该安装在/opt/或者/opt/的子目录下。
14、/mnt - 挂载目录 临时安装目录,系统管理员可以挂载文件系统。
15、/media - 可移动媒体设备 用于挂载可移动设备的临时目录。 举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;
16、/srv - 服务数据 srv代表服务。 包含服务器特定服务相关的数据。 例如,/srv/cvs包含cvs相关的数据。
ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
1.创建普通用户并进行授权 超级用户 root 下: //1.创建普通用户名字 沒有分組默认放进名字和用户名一样的组中 [root@bob ~]# useradd -m adam //2.设置密码 [root@bob ~]# passwd adam //3.创建分组 [root@bob ~]# groupadd term //4.1加入组 [root@bob ~]# gpasswd -a adam term //4.2移除组 [root@bob ~]# gpasswd -d adam term //5进入home文件文件分配权限 [root@bob ~]# cd /home //6.分配权限 [root@bob home]# chmod 777 -R adam //7.切换到普通用户 [root@bob home]# su adam [adam@bob home]$ //8.1切换回超级用户 当然超级用户名可以不输 输su即可 [adam@bob home]$ su root //密码输对回车就行 Linux 不会显示你的密码 Password: [root@bob home]# //8.2 切换回超级用户 直接exit也可以切换回超级用户 [adam@bob home]$ exit exit [root@bob home]#
权限信息
可读,可写 、可执行 Linux的文件和目录有以下三种方式:
r 、w 、x:可读,可写 、可执行
r-可读(read)
w-可写(write)
x-可执行(execute) 为了方便表示,linux用了一个很简单的方法来区别, r用4表示, w用2表示, x用1表示 所有者 、所属组 、其他人 Linux的文件和目录又可以有三个所有者概念:
u、g 、o: 所有者 、所属组 、其他人
u:所有者
g:所属组
o:其他人
R -> 递归修改目录文件的权限 具体详细请参考https://blog.csdn.net/weixin_44077227/article/details/90177636
2.查询目录中的内容:ls [目录]; 不写目录 默认是当前目录 ;英文原意:list 用法
-l列出长数据串,包含文件的属性与权限数据等-a列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)-d仅列出目录本身,而不是列出目录的文件数据-h仅列出目录本身,而不是列出目录的文件数据-R连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 #创建目录 创建命令见第六条命令 [root@bob home]# mkdir -p software/java python C [root@bob home]# ls C python software [root@bob home]# cd software [root@bob software]# ls java [root@bob software]# cd /home #ls -lR 显示某一目录下所有文件,包括文件中的子文件 [root@bob home]# ls -lR .: total 0 drwxr-xr-x. 2 root root 6 Oct 31 20:24 C drwxr-xr-x. 2 root root 6 Oct 31 20:24 python drwxr-xr-x. 3 root root 18 Oct 31 20:24 software ./C: total 0 ./python: total 0 ./software: total 0 drwxr-xr-x. 2 root root 6 Oct 31 20:24 java ./software/java: total 0 #ls l 列出所有目录和文件,但不包括子目录 [root@bob home]# ls -l total 0 drwxr-xr-x. 2 root root 6 Oct 31 20:24 C drwxr-xr-x. 2 root root 6 Oct 31 20:24 python drwxr-xr-x. 3 root root 18 Oct 31 20:24 software3.cd [目录] 命令英文原意: change directory 简化操作:
cd ~进入用户主目录cd进入用户主目录cd . .切换到上一级目录cd .切换到当前目录cd -返回进入此目录之前所在的目录注意:cd 后面是有个空格的!
#切换到用户目录 [root@bob java]# cd ~ [root@bob ~]# cd /home #切换到上一个访问的目录 [root@bob home]# cd [root@bob ~]# #创建目录 结构:study[java[helloword]] [root@bob home]# mkdir -p study/java/helloword #切换到helloword目录 [root@bob home]# cd study/java/helloword #切换到上一级目录 注意cd后有个空格!!!!!! [root@bob helloword]# cd .. #切换到当前目录 [root@bob java]# cd . #进入用户主目录; 与cd效果一致 [root@bob java]# cd ~ [root@bob ~]# #返回进入此目录之前所在的目录 [root@bob ~]# cd /home [root@bob home]# cd study/java/helloword [root@bob helloword]# cd -4.pwd 返回进入此目录之前所在的目录 命令英文原意:print working directory Linux pwd命令用于显示工作目录。 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
[root@bob helloword]# pwd /home/study/java/helloword小拓展: /bin/pwd与pwd命令的区别:当前目录被删除pwd命令仍会显示这个目录,而/bin/pwd不会。
5.touch 文件名 :创建文件(普通的文本文件)
[root@bob helloword]# touch a.txt [root@bob helloword]# ls a.txt注意:创建的文件有没有后缀都是一样的,主要是让别人可以知道这是个什么文件,里面是什么类型的数据。
6.mkdir -p [目录名] -p 递归创建 命令英文原意: make directories
mkdir 目录名创建目录mkdir -p xx/yyy/zz创建多级目录7.rmdir [目录名] 命令英文原意:remove empty directory
[root@bob java]# rmdir helloword rmdir: failed to remove ‘helloword’: Directory not empty [root@bob helloword]# rmdir a.txt rmdir: failed to remove ‘a.txt’: Not a directory只需注意他只可以删除空文件夹
8.rm -rf [文件或目录] 命令英文原意:remove 选项
-r递归删除目录(英文原意:recurrence 递归)-f强制 (英文原意:force)用法
rm -r 目录递归文件夹 带提示rm -f 文件删除文件rm -rf 文件/文件夹递归删除,无提示禁止: rm -rf / 删除所有文件 删了你的虚拟机就木得了(还是想删库跑路? ^ _ ^)
#每删除一个文件 都会提示一次 同意删除 y,否, n [root@bob java]# rm -r helloword rm: descend into directory ‘helloword’? y rm: remove regular empty file ‘helloword/a.txt’? y rm: remove directory ‘helloword’? y #rm -rf 文件/文件夹 递归删除,无提示 [root@bob home]# rm -rf study [root@bob home]# ls [root@bob home]#9.cp [选项] [原文件或目录] [目标目录] 命令英文原意:copy Linux cp命令主要用于复制文件或目录 选项: -r 复制目录
cp 源文件 备份文件备份文件cp -r 源目录目标目录例 $ cp ./a/aa.txt ./b 使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:
$ cp –r test/ newtest 注意:用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。
10.mv [原文件或目录] [目标目录] 命令英文原意:move
mv 文源文件件 目标文件目录剪切mv 源文件 不存在的文件重命名mv 源文件 文件夹/不存在的文件剪切重命名 #创建 a,b目录,a目录下创建文本文件m.txt [root@bob home]# mkdir a [root@bob home]# mkdir b [root@bob home]# cd a [root@bob a]# touch m.txt #mv 源文件 不存在的文件 相当于重命名 [root@bob a]# mv m.txt q.txt [root@bob a]# ls q.txt #a目录移到b目录,相当于剪切 [root@bob a]# mv q.txt ../b/ [root@bob a]# cd ../b [root@bob b]# ls q.txt #b目录下移动到a目录下不存在的文件 相当于剪切完+重命名 [root@bob b]# mv q.txt ../a/m.txt [root@bob b]# cd ../a [root@bob a]# ls m.txt [root@bob a]#1.whereis 命令名 搜索命令所在路径及帮助文档所在位置
选项:
-b只查找可执行文件-m值查找帮助文件whereis 命令名 :搜索命令所在来的路径与帮助文档所在的位置 Linux whereis命令用于查找文件。
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。 该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
使用指令"whereis"查看指令"bash"的位置,输入如下命令:
[root@bob home]# whereis bash bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz2.which 命令名 Linux which命令用于查找文件。 which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
使用指令"which"查看指令"bash"的绝对路径,输入如下命令:
[root@bob home]# which bash /usr/bin/bash3.PATH环境变量:定义的是系统搜索命令的路径 相当于window下的path echo $PATH : 查看环境变量
[root@bob home]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin4.find [搜索范围] [搜索条件] 示例: find / -name install.log #避免大范围搜索,会非常耗费系统资源 #find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
find /root -iname install.log按名字查询: 不区分大小写find /root -user root按照所有者搜索find /root -nouser查找没有所有者的文件5.grep [选项] 字符串 文件名 ;在文件当中匹配符合条件的字符串(常用)
选项:
-i忽略大小写-v排除指定字符串cat anaconda-ks.cfg 查看内容(cat命令见)
grep timezone anaconda-ks.cfg
经典使用: ps -ef |grep java
注:find和grep的区别 find命令:在系统中搜索符合条件的文件名. grep命令:在文件中搜索符合条件的字符串.
6.man 命令 Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。 查看帮助命令 f b 键翻页 q退出
man ls 查看ls的帮助
[root@bob home]# man ls7.命令 --help #获取命令选项的帮助 实例: ls --help 命令 --help :简洁版帮助
但是不适用内部命令,如cd: help cd
命令特殊时,使用 help 命令 比如: help cd
8. .zip格式的文件压缩和解压 1.压缩 命令: zip 压缩文件名 原文件
先安装zip 软件
yum install zip yum install -y zip : 不带确认的安装 卸载: yum removezip 压缩文件名 原文件 :压缩文件
示例: zip a.zip a.txtzip -r 压缩文件名 原文件夹 :递归要是文件夹 (将文件内所有东西压缩成一个压缩包) zip -r a.zip a
zip压缩文件解压 unzip 压缩文件 #解压缩.zip文件
unzip 压缩文件名 ;解压
yum -y install unzip
9. .gz格式的压缩和解压 压缩 gzip 原文件 #压缩为.gz格式的压缩文件,原文件会消失 语法:
gzip -c 原文件 > 压缩文件 #压缩为.gz格式,原文件保留 #-c的意思不是说需要保留文件,而是要把压缩的结果输出到控制台. #>的意思是把结果输出到什么地方去.gzip -r 目录 #压缩目录下的所有子文件,但是不能压缩目录
gzip 原文件 : 压缩文件, 源文件会消失 gzip a.txt
gzip -r 原文件夹 :遍历文件夹,压缩文件夹中文件,目录不压缩 gzip -r learn
解压 gzip -d 压缩文件 #解压缩文件
gunzip 压缩文件 #解压缩文件
gunzip -r 压缩文件目录 ;解压
10. .bz2格式的压缩和解压 压缩 bzip2 -d 压缩文件 #解压缩,-k保留压缩文件
bunzip2 压缩文件 #解压缩,-k保留压缩文件
解压 bzip2 源文件 #压缩为.bz2格式,不能保留源文件
bzip2 -k 源文件 #压缩之后保留源文件
注意:bzip2命令不能压缩目录
11.打包命令&解打包 打包命令: tar -cvf 打包文件名 源文件 选项: -c 打包 -v 显示过程 -f 指定打包后的文件名
tar -cvf learn.tar learn
解打包命令: tar -xvf 打包文件名 选项: -x 解打包
12. .tar.gz格式的文件压缩和解压(常用) 压缩 tar -zcvf 压缩包名.tar.gz 源文件 选项: -z 压缩为.tar.gz格式
tar -zcvf learn.tar.gz learn
tar -zcvf 压缩包名.tar.gz 源文件
解压 tar -zxvf 压缩包名.tar.gz 选项: -x 解压缩.tar.gz格式
#加上-C表示解压到指定的目录 tar -zxvf 压缩包名.tar.gz -C 指定目录
解压 tar -zxvf learn.tar.gz -C ./
压缩 tar -zcvf 压缩包名.tar.gz 源文件
1.shutdown shutdown [选项] 时间 选项: -c 取消前一个关机命令 -h 关机 -r 重启
#使用shutdown会在关机的时候帮我们保存数据
shutdown -c :取消上一个关机命令
shutdown -h 时间 :多少时间后关机 shutdown -h now :马上关机 shutdown -f :重启
2.halt -n : 在关机前不做将记忆体资料写回硬盘的动作 -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里 -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令 -i : 在关机之前先把所有网络相关的装置先停止 -p : 当关机的时候,顺便做关闭电源(poweroff)的动作
3.poweroff 关机,不保存数据
4.init 0 init 0 :关机 init 6 :重启 init 3 :切换字符界面 inti 5 :切换可视化界面
5.重启命令 reboot init 6
6.退出登录命令 logout
1.查看用户登陆信息 1>w 用户名 命令输出: USER 登陆的用户名 TTY 登陆终端 FROM 从哪个IP地址登陆 LOGIN@ 登陆时间 IDLE 用户闲置时间 JCPU 指的是和该终端连接的所有进程占用时间.这个事件并不包括去后台作业的时间,但却包括当前正在运行的后台作业所占用时间; PCPU 是指当前进程所占用的时间 WHAT 当前正在运行的命令 例:
w root2>who 命令输出: 用户名 登陆终端 登陆时间(登陆来源IP地址)
2.last last命令默认时读取/var/log/wtmp文件数据 命令输出 -用户名 -登陆终端 -登陆IP -登陆时间 -退出时间(在线时间) 3.lastlog lastlog命令默认时读取/var/log/lastlog文件内容 命令输出 用户名 登陆终端 登陆IP 最后一次登陆时间 4.df df:用于显示磁盘的使用情况 df -h: 格式化显示输出磁盘使用情况 5.top 任务进程 第一行: 10:01:23 — 当前系统时间 126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过) 2 users — 当前有2个用户登录系统 load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
第二行: Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行:cpu状态 6.7% us — 用户空间占用CPU的百分比。 0.4% sy — 内核空间占用CPU的百分比。 0.0% ni — 改变过优先级的进程占用CPU的百分比 92.9% id — 空闲CPU百分比 0.0% wa — IO等待占用CPU的百分比 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比 0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态 8306544k total — 物理内存总量(8GB) 7775876k used — 使用中的内存总量(7.7GB) 530668k free — 空闲内存总量(530M) 79236k buffers — 缓存的内存量 (79M)
第五行:swap交换分区 2031608k total — 交换区总量(2GB) 2556k used — 使用的交换区总量(2.5M) 2029052k free — 空闲交换区总量(2GB) 4231276k cached — 缓冲的交换区总量(4GB)
第五行以下: PID — 进程id USER — 进程所有者 PR — 进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR — 共享内存大小,单位kb S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 %CPU — 上次更新到现在的CPU时间占用百分比 %MEM — 进程使用的物理内存百分比 TIME+ — 进程使用的CPU时间总计,单位1/100秒 COMMAND — 进程名称(命令名/命令行)
6.free 内存占用情况: total:内存总数; used:已经使用的内存数; free:空闲的内存数; buffers Buffer:缓存内存数; cached Page:缓存内存数。
7.history 用于显示执行过的历史命令记录
8.echo 在显示器输出内容:echo
9.文件查看命令 1>cat 整个文件的内容显示出来 2>tail 默认在屏幕上显示指定文件的末尾10行 参数: -f 显示文件最新追加的内容。 -行数 在屏幕上显示指定文件的末尾参数设置的行数
1.编辑器的三种模式 三种模式: 编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式 输入模式:大部分机键动作都会理解为输入的字符 末行模式:在末行模式,输入很多文件管理命令
模式之间的相互转换: 编辑–>输入 i:在光标所在字符前开始插入 a:在光标所在字符后开始插入 o:在光标所在行的下面另起一新行插入 s:删除光标所在的字符并开始插入 ----------------------------------------- I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入 A:在光标所在你行的行尾开始插入 O:在光标所在行的上面另起一行开始插入 S:删除光标所在行并开始插入
输入模式–>编辑模式 ESC(键盘左上方的按键)
编辑模式—>末行模式 : 末行模式:–>编辑模式 ESC(键盘左上方的按键)(一次或者多次) 打开和关闭文件 打开文件 vi /path/to/file 关闭文件 在末行模式下 wq: 保存退出 q!: 退出不保存
移动光标 逐字符移动: h:左移动 l:右移动 j:向下移动 k:向上移动 行内跳转: 0:跳转到行首 $: 跳转到行尾 行间跳转;(末行模式) num: 跳转到某一行(末行模式) G: 跳转行最后一行(编辑模式) gg: 跳转到第一行(编辑模式)
翻屏操作 在编辑模式下: ctrl+f 向下翻一页 ctrl+b 向上翻一页
删除命令 dd: 删除光标所在行 (编辑模式) 3dd:从光标行开始删除3行(编辑模式) : 1,4d 删除第一行到第四行(末行模式)
复制和黏贴命令 yy 复制光标所在行 (编辑模式) 2yy 从光标行开始复制2行(编辑模式) p: 粘贴命令
查找和替换 文件的查找 /parttern 从前往后查找 比如要查找hello的位置上:/hello ?parttern 从后往前查找 n: 下一个匹配的字符串 N: 上一个匹配的字符串 文本的替换(末行模式) startNum,endNums/partter/string/gi g:全局替换 i:忽略大小写 %s/f/F/gi :.,$s/F/f/gi
/关键字 按n找下一个
set number 设置行号 或者 set nu
取消行号 set nu!