Linux基础命令大全

linux
linux的组成
linux的版本
linux内核
外围程序
Linux内核由芬兰赫尔辛基大学的Linus Torvalds创建
GPL和LGPL协议
Lesser General Public License宽通用公共许可证
Red Hat Linux企业版简称
RHEL(Red Hat Enterprise Linux)
目前较新版本为 7.x 系列
Centos企业版
目前较新的稳定版本为: Centos 7
Fedora Core社区版
目前较新的稳定版本为:fedora 29
交互接口
多用户字符界面(命令行界面)
TTY2~TTY6
 
快捷键:
【Ctrl】+【Alt】+【F2】~【F6】
图形化界面(GNOME)
TTY1
快捷键:
【Alt】+【F1】
目录结构
文件管理
绝对路径
相对路径
绝对路径:指以根目录“/”为起点来表示系统中某个文件(或目录)位置的方式。
相对路径:指以当前目录为起点表示系统中某个文件(或目录)位置的方式。
/boot/grub2
(1)直接使用目录名或文件名
(2)使用一个点号“.”开头
(3)使用两个点号“..”开头
(4)使用“~/用户名”的形式开头
文件位置
文件类型
普通文件 -
目录文件 d
链接文件 l
特殊文件 c b
Linux的文件类型主要可分为:
普通文件:用于存放数据、程序等信息的文件。
目录文件:由文件系统中一个目录所包含的目录项组成的文件。
链接文件:又称符号链接文件,用于不同目录下文件的共享。
设备文件:用于与I/O设备提供连接的一种文件,分为
块设备文件:表示磁盘、光盘等。
字符设备文件:如键盘、字符进行操作的终端等。
Linux文件没有隐藏属性,文件或目录若要实现隐藏,则只需要在命令时以“.”开头即可。
对于隐藏文件或目录,必须使用带“-a”参数的ls命令才能查看到。
操作命令
查看当前的工作目录(Print Working Directory)
命令格式:pwd
切换工作目录(Change Directory)
命令格式:cd 【路径】
列出显示目录内容(list)
命令格式:ls 【选项】 目录名
创建目录(Make Directory)
命令格式:mkdir 【-p】 [/路径/]目录名
-p:可以快速创建出目录结构中指定的每个目录,对于已经存在的目录不会被覆盖。
统计目录及文件的空间占用情况(du)
功能:查看某个目录中的各级子目录所占用的磁盘空间数。
命令格式:du 【选项】 目录名
新建空文件(touch)
命令格式:touch 【选项】 [/路径/]文件名
若指定的文件已存在,则将文件的日期修改为当前系统的日期。
若指定的文件不存在,则以指定的文件名创建空文件。
复制文件或目录(copy)
命令格式:cp 【选项】 源文件 目标文件
移动文件或目录(move)
命令格式:mv 【选项】 源目录或文件名 目标目录或文件名
移动文件或目录:若源路径与目标路径不同,则为移动目录或文件。
重命名文件或目录:若路径相同,仅文件名或目录不相同,则为重命名文件或目录。
删除文件或目录(remove)
命令格式:rm 【选项】文件或目录名及路径
功能:删除文件或目录,可包含一个或多个文件名(各文件名间使用空格分隔)。
为文件或目录建立链接(link)
命令格式:ln 【选项】 被链接的源文件或目录 链接文件或目标目录
链接可分为硬链接和软链接。
硬链接只能作用于文件,但软链接能够作用于文件和目录。
对任何一方内容的修改都会影响到另外一方。
查找文件或目录(find)
命令格式:find 【搜索的目录】【查找条件表达式】
查看文件文件的内容(cat)
命令格式:cat 【选项】 文件名
范例:
在/etc/目录下查找文件名以“.conf”结尾的文件:
[root@localhost ~]# find /etc -name "*.conf"
在计算机上查找由root用户和mail组拥有的文件:
[root@localhost ~]# find / -user root -group mail
在/boot目录中查找大小大于2MB且文件名以“vm”开头的文件:
[root@localhost ~]# find /boot -size +2M -a -name "vm*"
分页查看文件内容(more和less)
命令格式:more | less 【选项】 文件名
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
文件末尾时more会自动退出,less需要按下q键退出
查看文件开头和末尾部分内容(head和tail)
命令格式:head | tail 【选项】 文件名
常用选项:-n——指定需要显示的行数(默认为10行)。
检索、过滤文件内容(grep)
命令格式: grep [选项] 要查找的字符串或条件表达式 被查找的文件名
常用选项:-i——查找时忽略大小写
-v——反向查找,输出与查找条件不相符的行
在grep命令中,可以直接指定关键字串作为查找条件,也可以使用复杂的条件表达式,例如:字符“^”表示
行的开始;字符“$”表示行的结尾;如果查找的字符串中带有空格,可以用单引号或双引号括起来。又如:
"^read"表示以read开始;"read$"表示以read结束;"^$"表示空行。
tar——是一种标准的文件归档格式
利用tar命令可将要备份的一组文件和目录打包成一个文件,以便于保存和网络传输。
tar命令内置了相应的参数选项,以实现对tar文件的压缩或解压。
命令格式:tar 【选项】 归档文件名 被归档的源文件或目录列表
tar 【选项】 归档文件名 [-C 目标文件夹]
创建归档文件:
命令格式:tar cvf 归档文件名 被归档的源文件或目录列表
创建压缩的归档文件:
命令格式:tar c[ z | j | J ]vf 压缩包文件名 被压缩的源文件或目录
提取压缩包中的文件到指定目录:
命令格式:tar x[ z | j | J ]vf 压缩包文件名 [-C 目标目录]
提示:在提取压缩过的包文件时,可以省略在创建压缩包文件时使用的同一压缩选项,因为tar命令可以自 动判断使用的压缩方式。
管道操作符(“|”)
管道是由符号“|”隔开的若干条命令组成的序列。
管道符“|”的作用:将前一个命令的输出通过一个无形的“管道”作为下一个命令的输入,即实现将前一
个命令的输出的数据结果作为后一条命令所需要的数据源参数。
范例:
查看/etc/passwd文件的第11行到第15行?
[root@localhost ~]# head -n 15 /etc/passwd | tail -n 5
echo命令:在显示器上显示一段文字,一般起到一个提示的作用。
命令格式:echo 字符串
输出重定向:
“>”: 输出到指定的文件中,会覆盖原文件中的内容
“>>”: 输出到指定的文件中,会追加到原文件内容尾部
系统类操作
修改主机名:hostnamectl set-hostname 主机名
查看内核版本:uname -r
查看CPU信息:cat /proc/cpuinfo
查看内存信息:cat /proc/meminfo
重启主机:reboot
关机:shutdown –h now | poweroff
用户管理
用户与组的管理
Linux操作系统是一个多用户的操作系统,它允许多个用户同时登陆到系统上使用系统资源。
Linux下的用户可以分为三类:
超级用户——用户名为root,它具有一切权限,只有进行系统维护或其他必要情形下才用超级用户登录,
以避免系统出现安全问题。
系统用户(伪用户)——是Linux系统正常工作所必需的内建的用户。
普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。
Linux中的组有以下三种:
基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是
基本组,基本组只容纳一个用户。当把其他用户加入到该组中,则基本组就变成了附加组。
附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。
系统组:一般加入一些系统用户。
 
每个用户都有一个UID数值:
超级用户的UID——0
系统用户的UID——1~999
普通用户的UID——≥1000
在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。
用户和组的配置文件
用户账号文件——/etc/passwd
passwd 是一个文本文件,用于定义系统的用户账号,而不保存口令。
 
passwd文件介绍:
每一行定义一个用户账户
每一行均由7个字段组成,字段之间用“:”分隔
用户账户名称:密码:UID:GID:描述信息:家目录:Shell
范例:
[root@rhel7-01 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
/etc/passwd文件中每行的字段说明:
用户账号名称:用户登录Linux系统时使用的名称。
密码:以前是以加密格式保存密码的位置,现在密码保存在/etc/shadow文件中,此处只是密码占位符“x”
。若为“x”,说明密码经过了shadow的保护
UID:用户的标识,是一个数值,用它来区分不同的用户
GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。
描述信息:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。
家目录:类似Windows 的个人目录,通常是/home/username,这里username是用户名,用户执行“cd
~”命令时当前目录会切换到个人家目录。
Shell:定义用户登录后激活的Shell,默认是Bash Shell
用户密码文件——/etc/shadow
shadow文件用户保存用户的密码信息及其他相关信息。
shadow文件介绍
每一行定义一个用户账户的密码信息,行中每个字段以“:”分隔
账户名称:加密口令:最后一次密码更改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:
失效时间:保留未使用
为提高安全性,用户真实的密码采用HASH算法加密后,保存在配置文件中
只有root用户有权限读取
范例:
[root@rhel7-01 ~]# cat /etc/shadow
root:$6$yNppMMdSGSoYeWFC
$vxi3kt7sKwltx8srUqnoFJUpeXsLeoPwvo1KiNPUsZExIFVulX9KY06nyj70XAtp1RIcBzubnadQG.yU/
R4cz0::0:99999:7:::
用户组账户文件——/etc/group
系统中的每个组,在/etc/group文件中有一行记录
任何用户均可以读取用户组账户信息配置文件。
用户组的真实密码保存在/etc/gshadow配置文件中。
每一行定义一个组账户的相关信息
组账户名称:密码:GID:用户名A,用户名B
范例:
[root@rhel7-01 ~]# cat /etc/group
root:x:0:
用户管理命令
添加新用户——useradd
命令格式:useradd 【选项】
为用户账户设置密码——passwd
命令格式:passwd 【账户名】
linux的账户必须设置密码后,才能登录系统。
修改用户属性——usermod
命令格式:usermod 【选项】 username
常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意
义与useradd命令中的选项一样,可以为用户指定新的资源值。
删除用户账户——userdel
命令格式:userdel 【-r】 username
在删除用户账户的同时,一并删除该用户的家目录。
用户间切换——su
命令格式:su 【-】 username
【-】表示切换至目标用户的家目录。
从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的
密码且验证成功后才可切换。
创建用户组——groupadd
命令格式:groupadd 【-r】 组名称
-g GID 指定新用户组的组标识(GID),默认值是已有的最大GID加1
-r 建立一个系统组账户,与-g不同时使用时,分配一个1~999的GID。
范例:向系统中添加一个组ID为1020,组名为group1的组。
groupadd -g 1020 group1
添加/删除组成员——gpasswd
命令格式:gpasswd 【选项】 用户名 组名
只有root用户和组管理员才有权限
范例:向group1组中添加用户rose和bob,并将rose设置为改
组的管理员。
[root@rhel7-01 ~]# gpasswd –M rose,bob group1
[root@rhel7-01 ~]# gpasswd –A rose group1
修改用户组属性——groupmod
命令格式:groupmod 【选项】 用户名
-g GID 为用户组指定新的组标识(GID)
-n 新用户组名 修改用户组的组名
范例:将组group1的GID修改为1030,且组名修改为group2。
groupmod -g 1030 -n group2 group1
删除组账户——groupdel
命令格式:groupdel 用户组名
被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组。
范例:删除用户组group2。
[root@rhel7-01 ~]# groupdel group2
用户账户和组的信息显示
范例:
[root@rhel7-01 ~]# users root root
[root@rhel7-01 ~]# id uid=0(root) gid=0(root) 组=0(root) 环境 =unconfined_u:unconfined_r:unconfined_t:s0- s0:c0.c1023
[root@rhel7-01 ~]# groups admin admin : wheel root adm
使用脚本批量创建用户
[root@rhel7-01 ~]# vim useradd.sh
#!/bin/bash
for id in $(seq 1 10)
do
useradd user$id
echo "redhat" | passwd --stdin user$id
done
权限管理
权限表示方式
文件和目录的一般权限
第1个字符:表示该文件的类型,其类型标识符和对应的文件类型。
第2~4个字符:表示该文件的属主用户(文件的所有者)对该文件的访问权限。
第5~7个字符:表示该文件的属组用户(文件的所属组)对该文件的访问权限。
第8~10个字符:表示其他所有用户对该文件的访问权限。
第11个字符:用来表示是否有一个可替换的访问控制措施应用在该文件上。当为一个空格时,表示系统没有
可替换的访问控制措施;当为“.”字符时,代表该文件使用了SElinux安全上下文,且未使用其他的访问控
制措施;当为“+”字符时,表示该文件在使用SElinux安全上下文的同时,还混用了其他访问控制措施(如:
访问控制列表ACL)。
文件或目录权限的表示方式:
3为八进制数表示
字符串表示
两种表示对应关系
权限管理命令
修改文件或目录的权限——chmod
命令格式1:chmod 【选项】 NNN 文件或目录
命令格式2:chmod 【选项】[ u g o a ] [ + - = ] [r w x] 文件或目录
常用选项:-R——递归修改指定目录下所有文件、子目录的权限。
ugoa——表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属
主(所有者);g(group)表示属组内的用户;o(others)表示其他任何用户;a(all)表示所有用户(即u+g
+o)。
+|-|= ——表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定的权
限,并取消原有的权限。
rwx——用字符形式表示的所设置的权限,可以是其中字母中的一个或组合。
NNN——用三位八进制数字表示的所设置的权限。
范例:文件/root/file1目前的权限时rw-r--r--,若要更改为rw-rw-r--,其命令为:
chmod 664 /root/file1
修改文件或目录的属主和属组——chown
命令格式:chown 【选项】 新属主[:[新属组]] 需要被改变归属的文件或目录
-R——可递归设置指定目录下的全部文件(包含子目录和子目录中的文件)的所属关系。
“需要被改变归属的文件或目录”若为多个时,可以使用空格进行分割。
范例:将/root/file1文件的属主修改为user1,属组修改为user2。
chown user1:user2 file1
umask
在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认
权限并不是继承了上级目录的权限,而是与umask值(称为权限掩码)有关,其具体关系是:
新建文件的默认权限=0666-umask值
新建目录的默认权限=0777-umask值
root用户创建的目录默认权限为755;文件默认权限为644。
普通用户创建的目录默认权限为775;文件默认权限为664。
VIM编辑器
工作模式
命令模式(Command mode)供用户执行命令,以对文档进行管理。不管用户当前处于何种模式,只要按
ESC键,则立即进入命令模式。
插入模式(Insert mode)可输入内容。
末行模式(Last line mode)让用户做一些与输入文字无关的事,如搜索替换字符、保存文件或结束编辑
等。
命令模式下操作
末行模式下操作
IP地址设置
目标文件为:
/etc/sysconfig/network-scripts
重新启动服务命令
systemctl restart network.service
配置参考
ROOT密码破解
启动界面按e进入安全模式
如图位置添加rd.break
按ctrl+x进入命令行,依次输入如下命令
mount -o remount,rw /sysroot
passwd root
此段为设置修改后的密码
touch /.autorelabel
exit
exit
YUM仓库
YUM(Yellow dog Updater Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的 软件包管理
器。它不是软件包,而是用来解决RPM依赖性问题的一种解决方式。基于RPM 软件包管理,Yum能够从指定
的服务器自动下载RPM软件包并且安装,可以自动处理依赖性关系, 并且一次安装所有依赖的软件包,无
需繁琐地一次次下载、安装。
kernel-3.10.0-514.el7.x86_64.rpm
软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm
YUM仓库配置目录:/etc/yum.repos.d/
注意:YUM仓库配置文件必须要以“.repo”结尾。
YUM仓库配置解析
[base] #yum仓库的标识
name=redhat #原件仓库的主机名称
baseurl=file:///mnt #指向软件仓库中repodata目录所在的路径
enabled=1 #配置是否启用该yum仓库
gpgcheck=0 #指定是否检查 rpm 软件包中的数字签名
路径查询及具体写法
Yum路径的查询命令:which yum
所有repository 服务器设置都应该遵循如下格式:
[serverid]
name=Some name for this server
baseurl=url://path/to/repository/
serverid 是用于区别各个不同的repository,必须有一个独一无二的名称;
name 是对repository 的描述,支持像$releasever $basearch这样的变量;
baseurl 是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
baseurl=url://server1/path/to/repository/
     url://server2/path/to/repository/
     url://server3/path/to/repository/
其中url 支持的协议有 http:// ftp:// file:// 三种。baseurl 后可以跟多个url,你可以自己改为
速度比较快的镜像站,但baseurl 只能有一个
国内YUM源列表
1. 企业贡献:
搜狐开源镜像站:http://mirrors.sohu.com/
网易开源镜像站:http://mirrors.163.com/
阿里源:http://mirrors.aliyun.com
2. 大学教学:
北京理工大学:
http://mirror.bit.edu.cn (IPv4 only)
http://mirror.bit6.edu.cn (IPv6 only)
北京交通大学:
http://mirror.bjtu.edu.cn (IPv4 only)
http://mirror6.bjtu.edu.cn (IPv6 only)
http://debian.bjtu.edu.cn (IPv4+IPv6)
兰州大学:http://mirror.lzu.edu.cn/
厦门大学:http://mirrors.xmu.edu.cn/
清华大学:
http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)
http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)
http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)
天津大学:http://mirror.tju.edu.cn/
中国科学技术大学:
http://mirrors.ustc.edu.cn/ (IPv4+IPv6)
http://mirrors4.ustc.edu.cn/
http://mirrors6.ustc.edu.cn/
东北大学:
http://mirror.neu.edu.cn/ (IPv4 only)
http://mirror.neu6.edu.cn/ (IPv6 only)
电子科技大学:http://ubuntu.uestc.edu.cn/
Apache服务器部署
部署前准备
关闭防火墙设置
设置SELinux模式为Permissive
预先设置好YUM仓库
systemctl stop firewalld.service
systemctl disable firewalld.service
vim /etc/selinux/config
Apache安装
yum -y install httpd
Apache的根目录
/var/www/html
管理Apache服务
启动 systemctl start httpd
开机启用 systemctl enable httpd
查看运行状态 systemctl status httpd
修改Apache默认文件夹及默认首页
直接修改Apache服务器的配置文件./conf/httpd.conf
范例:
DocumentRoot "/usr/local/apache/htdocs/web"
DirectoryIndex index.php index.php3 index.html index.htm
DNS服务器部署
部署前准备工作同Apache
安装bind软件包
yum -y install bind
编辑主配置文件
图中linsten-on port为侦听端口及需要侦听的IP,此处设为DNS服务器地址,allow-query为允许队
列,此处及设置可以享受该DNS服务器服务的主机范围,可指定网段,也可设置为any
特别说明:设置IP时,前后有一个空格,且结尾带分号。
编辑区域定义配置文件
文件位置:/etc/named.rfc1912.zones
注意空格,大小写,正向区域名称(一般为解析
的后半段)文件名称定义中正向区域文件名需与
后面的正向区域配置文件名称对应;反向区域命
名按照IP前三个字节逆序,且结尾为in
addr.apra,名称同样需要与后续的反向区域文件
名称对应
编辑区域数据库文件
文件位置:位于/var/named目录下
正向记录添加
前缀 IN A IP地址
反向记录添加
IP最后一个字节 IN PTR 对
应域名
注意事项:记录部分顶格写,不要有空
格,服务器名称部分需写完整
参考配置示例:
提权及测试命令
设置区域数据库文件的权限和属组:chmod chgrp
检查配置文件语法正确性:named-checkzone named-checkconf
管理Bind服务:
启动Bind服务:systemctl start named.service
启用Bind服务:systemctl enable named.service
查看Bind服务运行状态:systemctl status named.service
named-checkzone范例:
named-checkzone cj.com.zone /var/named/cj.com.zone
PHP部署
预先配置环境如Apache
安装软件包:yum –y install php
在Document目录下创建index.php文件
重启Apache服务:
重新启动Apache服务:systemctl restart httpd.service
测试PHP是否成功
部署MariaDB数据库
MariaDB是关系型数据库,是一个数据库管理系统(DBMS)。
预先配置环境如Apache
安装软件包:yum –y install mariadb-server
管理mariadb服务:
启动mariadb服务:systemctl start mariadb.service
启用mariadb服务:systemctl enable mariadb.service
查看mariadb服务运行状态:systemctl status mariadb.service
使用数据库管理员root登录数据库管理系统:
mysql –uroot –h127.0.0.1 –p
输入密码:(默认为空)
创建数据库discuz:create database discuz;
此处的数据库名称按需求配置
授权测试用户testuser能够从192.168.10.0/24网络内的主机远程访问discuz数据中的所有表,测试用户
testuser的密码为testpassword:
grant all privileges on discuz.* to ‘testuser’@‘192.168.10.%’identified by
‘testpassword’;
数据库名称,允许登录IP段,用户名,密码设置
刷新权限列表:flush privileges;
重启mariadb服务:
重新启动mariadb数据库服务:systemctl restart mariadb.service
php连接MariaDB数据库,需要安装连接数据库驱动程序——php-mysql
安装软件包:yum –y install php-mysql
测试连接数据库方法
在html目录下编写一个测试用PHP文件
部署第三方应用
下载压缩包至/root目录:Discuz_X3.4_GIT_SC_UTF8.zip,可以使用sftp进行传输
解压压缩包:unzip Discuz_X3.4_GIT_SC_UTF8.zip
在DocumentRoot目录下创建bbs目录:mkdir /var/www/html/bbs
将/root/dir_SC_UTF8/upload目录下的所有文件移动到/var/www/html/bbs目录下:
mv /root/dir_SC_UTF8/upload/* /var/www/html/bbs
设置Apache服务账户对/var/www/html/bbs目录及其目录内文件的权限:
setfacl –R –m u:apache:rwx /var/www/html/bbs

你可能感兴趣的:(linux)