linux常用命令

系统目录结构

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 (安全外壳协议)

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 software

3.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.gz

2.which 命令名
Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

使用指令"which"查看指令"bash"的绝对路径,输入如下命令:

[root@bob home]# which bash
/usr/bin/bash

3.PATH环境变量:定义的是系统搜索命令的路径 相当于window下的path
echo $PATH : 查看环境变量

[root@bob home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

4.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 ls

7.命令 --help
#获取命令选项的帮助
实例:
ls --help
命令 --help :简洁版帮助

但是不适用内部命令,如cd:
help cd

命令特殊时,使用
help 命令 比如: help cd

8. .zip格式的文件压缩和解压
1.压缩
命令:
zip 压缩文件名 原文件

先安装zip 软件

yum install zip  
yum install -y zip  : 不带确认的安装 
卸载: yum remove 

zip 压缩文件名 原文件 :压缩文件

示例:
zip a.zip a.txt

zip -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 root

2>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!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值