❤️让初学者欲罢不能的❤️Linux实用命令

Linux简介

Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux不仅系统性能稳定,而且是开源软件。随着开源软件越来越多,而Linux平台比windows要稳定可靠很多。

Linux用户组与管理

root用户  (ID:0)
系统用户   (ID:1 ~ 499)
普通用户   (ID:500以上)
Linux用户在操作系统中可以进行日常管理和维护
/etc/passwd  保存用户信息
/etc/shdaow  保存用户密码(以加密形式保存)
/etc/group   保存组信息
/etc/login.defs    用户属性、密码过期时间、密码最大长度等限制
/etc/default/useradd  显示或更改默认的useradd配置文件。
Linux权限二进制显示:
rwx = 111
r-x = 101
rw- = 110
r-- = 100
以此类推,转为十进制显示:
rwx = 111 = 4+2+1 = 7
r-x = 101 = 4+0+1 = 5
rw- = 110 = 4+2+0 = 6
r-- = 100 = 4+0+0 = 4
r=4,w=2,x=1 来表示权限

Linux实用命令

cd

主要使用目录切换

[root@localhost ~]# cd /root
ls

主要用于浏览文件或文件夹

-a  -all 不隐藏任何以“.”开始的文件或文件夹
-l  显示详细信息
-h  文件大小显示为GB MB KB
-t  根据修改时间排序
[root@localhost ~]# ls /etc/passwd
pwd

主要用于查看当前所在目录路径

[root@localhost ~]# pwd
/root
mkdir

用于创建一个或多个空目录

-m  --mode=模式 设定权限<模式> (类似 chmod)
-p  --parents 可以创建目录的上层目录(类似递归)
-v  --verbose 每次创建目录都显示信息
[root@localhost ~]# mkdir /root/network
rm

删除文件或目录

-f  --force 强制删除,不提示确认
-i  在删除前需要确认
-r  -R  --recursive 递归删除目录及内容
[root@localhost ~]# rm -rf /root/network
cp

主要用来复制文件,备份

-i  --interactive  覆盖前提示
-R  -r  --recursive  递归复制目录及其子目录内的所有内容
[root@localhost ~]# cp /etc/passwd /root/passwd # 也可以将/root/passwd改成其他名字,相当于是复制重命名
mv

用于重命名或移动文件

-f --force  覆盖前不提示
-i --interactive  覆盖前提示
-v --version  显示版本详细信息
[root@localhost ~]# mv /root/network /opt/network  # 移动目录
[root@localhost ~]# mv /root/network /root/network_mv  # 重命名
touch

用于创建普通文件

-a  只更改访问时间
-m  只更改修改时间
[root@localhost ~]# touch /root/network.txt
cat

用于查看文件内容

-A  --show-all
-n  --number  对输出的所有行编号
-s  --squeeze-blank  不输出多行空行
[root@localhost ~]# cat /etc/passwd
head

查看文件内容,默认查看文件前10行内容

-v  --verbose  显示包含给定文件名的文件头
-n  --lines==[-]K  定义显示多少行
[root@localhost ~]# head -n 1 /root/passwd
tail

查看文件内容,默认查看文件尾部10行

-n  --lines==[-]K  定义显示多少行
[root@localhost ~]# tail -n 1 /root/passwd
chmod

修改文件或目录的权限

u 表示该档案的拥有者
g 表示与该档案的拥有者属于同一个群体(group)者
o 表示其他以外的人,a 表示这三者皆是。
+表示增加权限
- 表示取消权限
= 表示唯一设定权限
r 表示可读取
w 表示可写入
x 表示可执行
X 表示只有当该档案是子目录或者该档案已经被设定过为可执行
-R 递归添加权限
[root@localhost ~]# chmod a+x /root/network
[root@localhost ~]# chmod a-r /root/network
[root@localhost ~]# chmod a=rwx /root/network
chown

修改文件的拥有者

-R  递归变更权限
[root@localhost ~]# chown root:root /root/network
echo

打印字符或回显

[root@localhost ~]# echo "hello word!" >> /root/network-mv.txt
df

显示指定文件的可用空间

-a  --all  全部文件系统列表
-h  人类可阅读的方式显示
-T  文件系统类型
[root@localhost ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  899M     0  899M   0% /dev
tmpfs                   tmpfs     910M     0  910M   0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M   2% /run
tmpfs                   tmpfs     910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        37G  6.0G   32G  16% /
/dev/sda1               xfs      1014M  194M  821M  20% /boot
tmpfs                   tmpfs     182M     0  182M   0% /run/user/0
du

检查硬盘使用情况,统计文件或目录及子目录使用硬盘的空间大小

-a  显示所有目录或文件的大小
-b  以byte为单位,显示目录或文件的大小
-c  显示目录或文件的总和
-k  以KB为单位输出
-m  以MB为单位输出
-s  仅显示目录或文件的总计数值
-h  以K,M,G为单位,提高信息可读性
-D  显示指定符号链接的源文件大小
[root@localhost ~]# du -h /home/  # 显示目录或者文件所占空间
20K	/home/network
20K	/home/hfish
40K	/home/
free

显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer

-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-g   以GB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        573M        896M        9.6M        349M        1.1G
Swap:          2.0G          0B        2.0G
vi/vim

文本编辑器,编辑文本

[root@localhost ~]# vim /root/network/network-mv.txt
rpm

软件管理工具,安装卸载软件

-i   安装软件包
--nodeps   不验证软件包的依赖
-v  可视化,提供更多的详细信息的输出
-h  显示安装进度
另外的常用的附带参数为:
--force  强制安装,即使覆盖其他包的文件也要安装
-a  查询所有已经安装的软件包
-f  查询 文件所属于的软件包
-q  查询软件包(通常用来看下还未安装的软件包)
-l  显示软件包的文件列表
-d  显示被标注为文档的文件列表
-c  显示被标注为配置文件的文件列表 最后这两个用的很少了
[root@localhost ~]# rpm -ivh package.rpm    #安装一个rpm包
[root@localhost ~]# rpm -ivh --nodeeps package.rpm   #安装一个rpm包而忽略依赖关系警告
[root@localhost ~]# rpm -U package.rpm        #更新一个rpm包但不改变其配置文件
[root@localhost ~]# rpm -F package.rpm        #更新一个确定已经安装的rpm包
[root@localhost ~]# rpm -e package_name.rpm   #删除一个rpm包
[root@localhost ~]# rpm -qa      #显示系统中所有已经安装的rpm包
[root@localhost ~]# rpm -qa | grep httpd    #显示所有名称中包含 "httpd" 字样的rpm包
[root@localhost ~]# rpm --checksig package.rpm      #确认一个rpm包的完整性
[root@localhost ~]# rpm -qa gpg-pubkey      #确认已安装的所有rpm包的完整性
[root@localhost ~]# rpm -V package_name     #检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
[root@localhost ~]# rpm -Va                 #检查系统中所有已安装的rpm包- 小心使用
[root@localhost ~]# rpm -Vp package.rpm     #确认一个rpm包还未安装
tar

解压与压缩命令

-c  表示需要打包档案
-C  在解压的时候, 可以定位到指定目录下解压
-t  显示都有哪些档名
-x  表示需要解压
-j  通过bzip2 压缩/解压 档名命名为*.tar.bz2
-z  通过gzip  压缩/解压 档名命名为*.tar.gz
-r  向包中追加,只能向不带压缩的包中追加
-v  显示处理的详情 
-f  后面跟上压缩包
[root@localhost ~]# tar -cvf package.tar.gz package # 打包package文件或目录为.tar.gz后缀的压缩包
[root@localhost ~]# tar -tf package.tar.gz  # 查看package.tar.gz的内容
[root@localhost ~]# tar -rf package.tar.gz network.txt # 将network.txt文件追加到package.tar.gz中
[root@localhost ~]# tar -czvf network.tar.gz network # 使用gzip格式打包并压缩network目录
[root@localhost ~]# tar -cjvf network.tar.gz network # 使用bzip2格式打包并压缩network目录
zip

zip压缩工具

-f freshen:只更改文件;
-u update:只更改或新文件;
-d 从压缩文件删除文件;
-m 中的条目移动到 zipfile(删除 OS 文件);
-r 递归到目录;
-j junk(不记录)目录名;
-l 将 LF 转换为 CR LF(-11 CR LF 至 LF);
-1 压缩更快 1-9 压缩更好;
-q 安静操作,不输出执行的过程;
-v verbose 操作/打印版本信息;
-c 添加一行注释;
-z 添加 zipfile 注释;
-o 读取名称使 zip 文件与最新条目一样旧;
-x 不包括以下名称;
-F 修复 zipfile(-FF 尝试更难);
-D 不要添加目录条目;
-T 测试 zip 文件完整性;
[root@localhost ~]# zip -rv network.zip /root/network/
unzip

解压zip格式工具

-c   将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f   更新现有的文件。
-l   显示压缩文件内所包含的文件。
-p   与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t   检查压缩文件是否正确。
-u   与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v   执行是时显示详细的信息。
-z   仅显示压缩文件的备注文字。
-a   对文本文件进行必要的字符转换。
-b   不要对文本文件进行字符转换。 
-C   压缩文件中的文件名称区分大小写。
-j   不处理压缩文件中原有的目录路径。
-L   将压缩文件中的全部文件名改为小写。
-M   将输出结果送到more程序处理。
-n   解压缩时不要覆盖原有的文件。
-o   不必先询问用户,unzip执行后覆盖原有文件。
-P <密码>   使用zip的密码选项。
-q   执行时不显示任何信息。
[root@localhost ~]# unzip test.zip 				->将test.zip解压到当前文件下
[root@localhost ~]# unzip -n test.zip -d /tmp 	->将test.zip解压到/tmp目录下,并且不要覆盖已有文件
[root@localhost ~]# unzip -v test.zip			->查看test.zip内容,但不解压
[root@localhost ~]# unzip -o test.zip -d tmp/	->将test.zip解压到/tmp目录下,并且覆盖已有文件
chattr

用来改变文件属性,可执行lsattr指令查询其属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

模式:
-a:让文件或目录仅供附加用途。
-b:不更新文件或目录的最后存取时间。
-c:将文件或目录压缩后存放。
-d:将文件或目录排除在倾倒操作之外。
-i:不得任意更动文件或目录。
-s:保密性删除文件或目录。
-S:即时更新文件或目录。
-u:预防意外删除。
选项:
-R	递归处理,将指令目录下的所有文件及子目录一并处理;
-v<版本编号>	设置文件或目录版本;
-V	显示指令执行过程;
+<属性>	开启文件或目录的该项属性;
-<属性>	关闭文件或目录的该项属性;
=<属性>	指定文件或目录的该项属性。
# 用chattr命令防止系统中某个关键文件被修改
# 然后试一下rm、mv、rename等命令操作于该文件,都是得到Operation not permitted的结果。
[root@localhost ~]# chattr +i /etc/fstab 

# 让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作
[root@localhost ~]# chattr +a /data1/user_act.log
lsattr

查看文件的第二扩展文件系统属性

-a: 列出目录中的全部文件
-E: 显示设备属性的当前值, 从设备数据库中获得
-D: 显示属性的名称, 属性的默认值,描述和用户是否可以修改属性值得标志
-R: 递归的操作方式
-V: 显示指令的版本信息
[root@localhost ~]# lsattr -R  nentwork  # 递归显示abc 目录下所有文件属性
[root@localhost ~]# lsattr network.txt  # 查看文件属性
----i----------- network.txt
源码包软件安装

以zip/tar结尾的源代码包安装

./configure  # 预编译,用于检测系统基准环境库是否满足gcc,生成makefile文件
make # 编译,基于第1步生成的maksefile文件进行编译
make install # 安装,编译完成之后将相关可运行文件安装到系统内。
常见的源码安装需要./configure、make、make install 三个步骤,某些特殊的可能只要1个或2个步骤
nginx源码安装
[root@localhost ~]# tar -xcvf nginx-1.20.tar.gz
[root@localhost ~]# cd nginx-1.20
[root@localhost nginx-1.20]# ./configure # 预编译
[root@localhost nginx-1.20]# make    # 编译 
[root@localhost nginx-1.20]# make install  # 安装
yum

安装软件工具,需要联网,使用简便、快捷、高效

[root@localhost ~]# yum install httpd  # 安装httpd软件包
[root@localhost ~]# yum search 软件名  # 搜索软件
[root@localhost ~]# yum list   # 显示所有已安装及可安装包
[root@localhost ~]# yum remove httpd  # 删除软件包httpd
[root@localhost ~]# yum erase httpd  # 删除软件包httpd
[root@localhost ~]# yum update  # 内核升级或软件更新
[root@localhost ~]# yum update httpd  # 更新httpd软件
[root@localhost ~]# yum check-update  # 检查可更新的程序
[root@localhost ~]# yum info httpd  # 显示安装包信息httpd
[root@localhost ~]# yum provides */bin/cat  # 列出软件包提供哪些文件
[root@localhost ~]# yum deplist httpd  # 查看程序httpd依赖情况
[root@localhost ~]# yum clean all  # 清除缓存目录下软件包及旧的headers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值