Linux基本命令合集

一、认识Linux系统及基础命令
Linux中一切皆文件

1 构成
内核 + 文件系统 + shell = Linux

文件系统结构:文件进行读写
Linux是一个树形的文件系统结构
第一层目录:/ 整个文件系统的访问入口
2 重要的二级目录
bin:放Linux上常用的命令
dev:放设备的目录
etc:Linux配置文件目录
home:普通用户会在该目录下创建属于自己的目录
root:管理员用户家目录
media:即插即用型的设备的挂载目录
光盘自动挂载到media目录下
mnt:挂载目录
将硬盘中的分区(C/D/E)与目录进行关联
/datas/cpan 《- C分区
/datas/Dpan 《- D分区
/datas/Epan 《- E分区
opt:可选目录
usr:放安装的应用程序
sbin:只有管理员才能执行的命令
var:Linux日志默认存储目录

3 基础命令
ls : list,用于列举一个目录或者文件
ls [-ald] file_path
a:所有的:列举包含隐藏文件

.开头的为隐藏文件
l:长格式查看详细信息
ls -l = ll

d:列举本身

.为本身
cd:change directory 改变目录
用于切换工作目录
cd target_path

./为本身或当期目录,…/文上一级目录
相对路径:相对当前路径,依次进行访问
more target_file:分页查看文件内容
more /shell/startserver.sh

绝对路径:当访问文件或者目录时,从/目录开始访问
cd /shell/
more startserver.sh

pwd:print work directory 打印当前工作目录

clear:用于清屏
快捷键:Ctrl+l
whereis:用于查看某个命令的位置
whereis more

history:用于查看自己运行过的命令

回到顶部
二、文件管理命令:Linux中没有后缀之分
1 增:mkdir touch
创建文件夹 创建文件夹创建文件夹
mkdir [-p] dir_path
mkdir /root/test01

mkdir -p /root/test02/test
p:表示递归创建 p:表示递归创建p:表示递归创建

创建文件 创建文件创建文件
touch file_path
touch test01/file1

2 删、清空
rm−rffile/dir rm -rf file/dirrm−rffile/dir
r:递归,用于删除目录 r:递归,用于删除目录r:递归,用于删除目录
f:确认文件 f:确认文件f:确认文件

3 改:vim
vi/vim:Linux中的文本编辑工具

3.1 命令模式:刚刚打开时进入命令模式
i:进入插入模式 i:进入插入模式i:进入插入模式
yy:复制当前行 yy:复制当前行yy:复制当前行
10yy:复制从当前开始的十行 10yy:复制从当前开始的十行10yy:复制从当前开始的十行
p:粘贴 p:粘贴p:粘贴
dd:剪切当前行 dd:剪切当前行dd:剪切当前行
10dd:剪切从当前行开始的十行 10dd:剪切从当前行开始的十行10dd:剪切从当前行开始的十行
G:跳到最后一行 G:跳到最后一行G:跳到最后一行
gg:跳到第一行 gg:跳到第一行gg:跳到第一行
10gg:跳到第10行 10gg:跳到第10行10gg:跳到第10行
o:在下一行进行插入 o:在下一行进行插入o:在下一行进行插入
O:在上一行进行插入 O:在上一行进行插入O:在上一行进行插入
u:撤销上一步 u:撤销上一步u:撤销上一步

3.2 插入模式:在命令模式中按i,进入插入模式
退出插入模式进入命令模式:esc 退出插入模式进入命令模式:esc退出插入模式进入命令模式:esc

3.3 最后行模式:在命令模式下,按shift+:,进入最后行模式
进入命令模式:按esc
q:退出
wq:保存退出
!:强制的
x:保存退出
X:加密
set nu:显示行号
1,$s/nologin/1234/g
1:从第一行开始
$:最后一行
s:替换
g:如果一行出现多个,全部替换

4 查:more、cat、less、head、tail
cat:一次性读取所有文件内容
cat /etc/passwd
cat -n /etc/passwd

显示行号
more:分页查看,一页一页的显示
只能向下翻页,最后自动退出
less:分页查看
按q退出,可以上下翻页
head:查看文件的前多少行
head [-n] file_path
head -10 /etc/passwd

tail:查看文件的后多少行 tail:查看文件的后多少行tail:查看文件的后多少行
tail[−n]file tail [-n] filetail[−n]file_path pathpath
tail−10/etc/passwd tail -10 /etc/passwdtail−10/etc/passwd

−F:动态查看该文件的末尾 -F:动态查看该文件的末尾−F:动态查看该文件的末尾

$光标闪烁,等待更新 $

Ctrl+c退出 Ctrl+c退出Ctrl+c退出

5 复制
cp [-r] source_path target_path
cp /etc/passwd /root/
cp /etc/passwd /root/passwd2

$ -r表示递归,可以复制文件夹下的所有目录及文件,目标文件夹如果没有则递归创建$

拷贝过程中可以直接重命名
移动剪切:也可以实现重命名
mv source_path target_path

6 常见错误:
No such file or directory
意思:没有对应的文件或者目录
原因:
1-真的没有该文件或者目录,路径写错了
2-没有权限
Permission denied
意思:没有权限
原因:没有权限
解决:修改权限
-bash:cdd : command not found
错误:命令没有找到
原因
1-命令错了
cdd /
2-语法不对
cd/加粗样式
回到顶部
三、Linux中用户管理及权限管理
1 用户、组
默认用户:root 管理员用户
默认组:root
Linux默认自带的用户的id都在500以内,用户自己创建的用户id从500开始
用户配置文件:/etc/passwd
root❌0:0:root:/root:/bin/bash
用户名:密码:用户id:组id:组名称:家目录:使用的shell类型
1
2
3
4
5
6
2 管理用户
2.1 创建用户
-o:or 或者条件
useradd fuyun

2.2 删除用户
-r:删除时是否同时删除家目录

设置密码
passwd fuyun

修改用户名
usermod -l NewUser -d /home/NewUser -m OldUser
-l 修改用户名
-d 修改登录后使用的路径
-m 修改登录名称的同时将目录名称一同修改

切换用户
su - root
记得退出:exit

3 管理组
3.1 创建组
groupadd

3.2删除组
groupdel

3.3 更改组
chgrp
groupmod -n newGroup oldGroup

4 权限管理
所属用户

所有者同组用户其他人所有人
ugoa

权限

执行没有权限
rwx-

drwxr-xr-x:表示一个文件的所有权限

drwxr-xr-x
文件类型所有者同组用户其他人

4.1 更改权限
chmod:用于修改某个文件或者目录权限的
chmod o+w /passwd
chmod a+x /passwd
chmod u+x,g-x /passwd
|r |w |x |
|— |— |---- |
|4 |2 |1 |
rwxrwxrwx:777
chmod 755 /passwd
chown:用于修改某个文件或者目录的所有者的
chown -R username:groupname file_path
−R:表示递归,用于修改目录时,将目录下所有的文件一起更改 -R:表示递归,用于修改目录时,将目录下所有的文件一起更改−R:表示递归,用于修改目录时,将目录下所有的文件一起更改

回到顶部
四、虚拟机管理
1 关机 :管理员才能执行
shutdown -h now
halt
init 0

2 重启
reboot
init 6

3 快照:关机状态下拍摄
4 克隆:用于复制多个机器的
五、Linux中常用的工具命令
1 sudo:用于普通用户越级执行管理的命令
visudo:用于配置sudo,只有管理员能通过该命令分配权限给普通用户
root ALL = (ALL) ALL
用户名 从什么地方登陆 以什么身份 执行什么命令
需求:配置rdedu用户拥有启动防火墙的权限
rdedu ALL=(root) /sbin/service iptables start
测试:
sudo service iptables start
rdedu ALL=(root) NOPASSWD:ALL

2 grep:用于数据过滤
grep ‘root’ /etc/passwd

3 常用工具符号
.:表示当前目录
…:表示上一级目录
~:代表家目录
|:管道符,用于数据流的转接
stdin
stdout
cat /etc/passwd | grep ‘root’

:输出重定向,覆盖
grep ‘root’ /etc/passwd > /grep_root.txt

:输出重定向,追加

grep ‘root’ /etc/passwd >> /grep_root.txt

<:输入重定向
基本上在shell脚本里使用
command1 < infile > outfile:同时替换输入和输出,执行command1,从文件infile读取内容,然后将输出写入到outfile中
&:表示后台运行
command &
\:换行符
`:执行符号
用执行符号包裹命令,将命令先执行后返回

回到顶部
4 man:用于查看某个命令的帮助文档
man top

man yum

按q退出查看

5 find:用于查找文件的
格式:find 路径 条件
find /etc -name init*
条件:
-name
*:匹配多个字符
?:匹配单个字符

ls /etc/init*
ls /etc/init??

-size:
find /etc -size +50(b,k,M,G)
+:大于
-:小于

并列条件和或者条件
-a:and 并列条件
-o:or 或者条件
find /etc -size +500k -a -size -1000k

-atime n:查询文件最后访问时间
n表示n*24小时之前

-ctime n:查询文件状态最后改变时间

-mtime n:查询文件数据最后修改的时间

-type f/d:查询文件或文件夹的类型
-user:查询文件的所有者
-group:查询文件的组
stat:查看文件信息

7 du:统计目录中的大小
du [-sh] dir_path
s:表示总的

h: 人性化显示单位

8 wc:做文本统计
wc [-lwc] file_path
l:行
wc -l /grep.txt

w:单词
wc -w /grep.txt

c:字节
wc -c /grep.txt

m:字符

可以统计多件文件
wc /grep.txt /root/install.log

回到顶部
六、磁盘管理
1 df -h:查看每个分区的信息
查看每个分区的磁盘利用率
挂载信息

2 fdisk:用于管理Linux中所有的硬盘设备
插入硬盘
查看硬盘信息
fdisk -l

对硬盘进行分区

分区:
主分区
1
扩展分区(建立逻辑分区)
1
fdisk /dev/sdb
1
格式化
mkfs.ext4 /dev/sdb1
挂载

临时挂载
mount /dev/sdb1 /primary_part
永久挂载
vim /etc/fstab
/dev/sdb1 /primary_part ext4 defaults 0 0
回到顶部
七、系统管理
1 网络管理
ifconfig:用于查看和配置网络信息
/etc/sysconfig/network-scritps/ifcfg-eth0
route -n:查看路由

![图片46:

2 端口
每个应用程序启动以后会开放相应的端口
netstat -atunlp | grep 22

3 服务管理
service:用于管理Linux中所有系统安装的服务
service service_name start|stop|status|restart
linux中通过service管理的服务程序地址:/etc/init.d/
常见服务:
iptables:防火墙
network:网络
service network restart
NetworkManager:图形化界面的网络管理服务

sshd:安装登录访问服务
chkconfig:设置开机启动
chkconfig service_name on|off|–list
chkconfig iptables --list

chkconfig iptables off:关闭防火墙
chkconfig service_name on

4 进程管理
top:Linux中的任务管理器
1

free:用于查看内存
free -m

ps:process 用于查看当前所有的进程
ps -ef
kill :用于对服务发送信号的
关闭进程:
kill -9 pid
kill -9 1680
jps:java process
专门用于查看java进程的

5 udp与tcp的区别
tcp更安全,发送第一个信息后等待对方确认收到后再发送后面的信息,发送时间缓慢
udp更快速,将所有信息发送给对方,不管对方收到没有,所以会导致信息丢失,不安全
1
2
回到顶部
八、Linux中的压缩
windows:rar/zip
Linux:gzip、bzip2、zip
.tar.gz/tgz/.tar.bz2
压缩类型:snappy、lzo、lz4

gzip:压缩为gzip格式
后缀:.gz
压缩:gzip file_path
gzip passwd
解压:gunzip file.gz
gunzip passwd.gz
特点:
1-压缩完源文件不存在了
2-不支持压缩文件夹
bzip2:压缩格式为bz2
后缀:.bz2
压缩:bzip2 file_path
bzip2 passwd
解压:bunzip2 file.gz
bunzip2 passwd.bz2
特点:
1-压缩完源文件不存在了
2-不支持压缩文件夹
1 tar:用于打包,将多个文件或者文件目录合并为一个文件
1.1 打包:将文件夹打包为压缩包 可以直接更改打包后的名称
tar -cvf test02.tar test02

1.2 解包:
tar命令是调用了gunzip命令的,对只有一个压缩内容的文件来解压的时候才用tar, 而如果压缩包里有多个文件被压缩了
tar -xf /root/test02.tar -C /

1.3 打包并压缩为gzip格式
tar -zcvf /test02.tar.gz test02

1.4 查看压缩文件内容
tar -tvf /test02.tar.gz

1.5 解压gzip格式的压缩文件
tar -zxvf /test02.tar.gz -C /tmp

将上面的命令中的z改为j,即为bzip2格式的压缩和解压

1.6 格式
压缩:tar -zcvf 压缩后的文件的路径 压缩谁
解压:tar -zxvf 解压谁 -C 解压到哪
查看:tar -tvf 压缩文件路径

1.7 参数
z:gzip格式
j:bzip2格式
c:打包
x:解包
v:显示过程
f:档名,文件名,f后面必须直接跟文件名
t:text,查看
C:指定解压的路径
c/x/t:一条命令中不能同时存在

1.8 unzip解压
如果压缩包里有多个文件被压缩了,可以采用unzip命令去解压
解压到当前文件:unzip a.zip
解压到指定文件:unzip a.zip -d a

回到顶部
九、Linux中的软件管理
window类型
exe、jar、msi、zip(免安装)
Linux
rpm:Redhat系列的软件包管理工具
dpkg:Debian系列的软件包管理工具
压缩:免安装,直接配置即可
源码:
先要安装编译需要的依赖
c/c++:
执行configured脚本文件:预编译
make:编译
make install :安装
java:
maven
编译:mvn complie
打包:mvn package
安装:mvn intall
清除:mvn clean
1 rpm : rpm包的管理命令
rpm包:每个软件厂商都会提供对应的软件的rpm包的版本
xxxxx.rpm
yum-presto-0.6.2-1.el6.noarch.rpm
yum-utils-1.1.30-30.el6.noarch.rpm
zd1211-firmware-1.4-4.el6.noarch.rpm
zenity-2.28.0-1.el6.x86_64.rpm
zip-3.0-1.el6.x86_64.rpm
zlib-1.2.3-29.el6.i686.rpm
zlib-1.2.3-29.el6.x86_64.rpm
zlib-devel-1.2.3-29.el6.i686.rpm
zlib-devel-1.2.3-29.el6.x86_64.rpm
zsh-4.3.10-7.el6.x86_64.rpm

rpm文件名称格式
zlib-1.2.3-29.el6.x86_64.rpm
rpm的名称-版本.操作系统.操作系统位数.rpm

1.1 查看
rpm -qa | grep zlib

1.2 安装
rpm -ivh file_path(完整的rpm文件名称)
rpm -ivh /media/CentOS_6.6_Final/Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm
i:install安装
v:显示详细过程
h:标记

zlib-lib.rpm
zlib-util.rpm
zlib-deve.rpm
zlib.rpm

1.3 卸载
rpm -e zlib-devel-1.2.3-29.el6.x86_64

e:卸载
−−nodeps:不考虑依赖 --nodeps:不考虑依赖−−nodeps:不考虑依赖
rpm -e --nodeps tzdata-java-2014g-1.el6.noarch java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64 java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64

1.4 更新
rpm -U package

1.5 查询一个程序安装了哪些文件
rpm -ql package_name
rpm -ql zlib-1.2.3-29.el6.x86_64

查询某个命令来自于哪个安装包
rpm -qf /bin/ls

2 yum:基于rpm的软件仓库式的管理工具
####2.1 软件仓库:yum源

2.2 查看:yum list
列举的当前yum中所有可安装或者已安装的程序
只想查看已安装的程序
yum list installed

2.3 安装:yum install -y package_name
y:表示全部yes
yum install -y gcc
yum install -y lrzsz

2.4 卸载:yum remove -y package_name
yum remove lrzsz

回到顶部
十、Linux中的变量及表达式
1 自定义变量
1.1 定义:key=value
定义变量时等号两边不能有空格
语义可读
系统变量大写
没有数据类型

1.2 引用:
${a}
$a

2 环境变量:整个系统中的变量
2.1 全局环境变量:对所有用户生效
/etc/profile
系统环境变量:PATH=PATH: PATH:PATH:JAVA_HOME\bin

2.2 用户环境变量:每个用户拥有自己的环境变量,只对自己生效
每个用户在自己的家目录下有一个配置文件:
~/.bash_profile

3 位置变量:脚本中$1-$9,表示第一个到第九个参数
4 预定义变量:
$0:执行的文件名称
$#:参数的个数
$*:所有的参数
$?:上一条命令执行的结果
0:上一条命令正确执行了

5 常见的通配符与正则
5.1 通配符
*:匹配多个字符
?:匹配单个
大部分用于这些命令:ls find cp rm

5.2 正则
[]:某个范围的单个字符
[0-9]:表示0-9之间的任意一个字符
[a-z]
[A-Z]
.:单个字符
:匹配多个
.
:匹配多个字符
:以什么开头:root.*bash$
中括号中表示非

[^ ]*
$:以什么结尾
grep
grep ‘r…t’ passwd
grep ‘^root’ passwd
grep ‘[0-9]:[0-9]’ passwd
sed:专门用于对Linux中文本行的处理
sed -i ‘1d’ passwd
sed ‘s/nologin/8888/g’ passwd

得到ip地址:
ifconfig | grep ‘inet addr’ | grep -v ‘127.0.0.1’ | sed ‘s/inet addr://g’ | sed ‘s/Bcast.*//g’ | sed ‘s/ //g’

awk:专门用于对Linux中文件列的处理
awk -F ‘:’ ‘{print $3}’ passwd

6 通用表达式
6.1 逻辑连接符
&&:与连接,第一个成功了,第二个才执行
||:或连接,第一个失败了,第二个才执行
;:无连接关系

6.2 内置判断测试
6.2.1 字符串
[ $a = $b ]
[ $a = $b ];echo $?
[ $a > $b ];echo $?
[ $a &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; $b ];echo $?
[ $a != $b ];echo $?

		-z:判断变量是否为空,空返回true,非空返回false
		-n:判断变量是否不为空,不为空返回true

6.2.2 数值
[]:
-eq:等于
-ne:不等于
-gt:大于
-ge:大于等于
-lt:小于
-le:小于等于
[ $a -eq $b ];echo ? ( ( ) ) : 高 级 语 言 ( ( ? (()):高级语言 (( ?(()):((a==$b))
!= >= <= < >s

6.2.3 文件
-f:判断是否是一个文件
[ -f /etc ];echo $?
-d:判断是否是一个目录
-e:判断是否存在
-w:判断是否有可写 权限
-r:
-x:

6.2.4 运算
( ( a + b ) ) / ((a+b))/ ((a+b))/(( a + a+ a+b))
$[ $a + $b ]
1
2
6.2.5 时间命令
获取当前系统时间
date
获取当前格式化时间
date +"%Y-%m-%d %X"
修改时间(必须为管理员账号才能修改,普通用可以用sudo)
date -s “2018-09-12 18:22:45”
获取前一天时间
date -d ‘-1 day’ +"%Y-%m-%d"
获取前两天时间
date -d ‘2 days ago’ +"%Y-%m-%d"
获取前两年时间
date -d ‘2 year ago’ +"%Y-%m-%d"

7 重点:脚本
7.1 脚本编写规范
1-必须声明头部,指定shell的类型
#!/bin/bash
2-运行脚本,必须有可执行的权限
chmod u+x location_var.sh
十一、shell脚本基础语法
1 循环
for:第一种
for 变量 in 集合
do
执行的命令
done

	第二种
	for((i=1;i<10;i++))
	do
		执行的命令
	done
while:
	while [表达式]
	do
	done

2 判断
if [条件表达式]
then
执行的命令
fi

if [条件表达式]
then
	执行的命令
else
	执行的命令
fi

if [条件表达式]
then
	执行的命令
elif [条件表达式]
then
	执行的命令
……
else
	执行的命令
fi

并列条件
	if [条件1] && [条件2]  if [条件1] || [条件2] 
	if [ 条件1 -a 条件2]  	if [ 条件1 -o 条件2]


case :类似于java中的switch case
case 变量 in
value1)
	怎么样?
	;;
value2)
	怎么样?
	;;
*)
	怎么样?
	;;
esac

执行脚本的方式:
	1-直接执行文件
	2-使用sh命令执行
		sh -x  script.sh

十二、crontab定时任务
service crond status
at:简单的定时任务,不好用

crontab:可以实现分钟级别的精准任务调度
crontab -e : 编辑定时任务
* * * * * command
分钟 小时 日 月 周
00-59 00-23 1-31 1-12 0-7 sh /tmp/test.sh

每天凌晨3点执行脚本
	00	03	*	*	*	sh /tmp/test.sh	
每周日中午12点30执行该程序
	30	12	*	*	7	sh /tmp/test.sh
每两个小时执行一次
	00	*/2 *	*	*
每天5点和7点执行一次
	00	5,7 *	*	*
每天5点到7点
	00	5-7 *	*	*

crontab -l  :列举当前所有的定时任务
crontab -r  : 删除所有的定时任务
crontab -u root  -f /tmp/test.txt:
	使用test.txt文件作为root用户的定时任务

————————————————
版权声明:本文为CSDN博主「浮云6363」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lz6363/article/details/82664130

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值