Linux常用命令
目录结构具体介绍
- /bin: 是Binary的缩写,这个目录存放着最经常使用的文件
- /sbin:s就是super user的意思,这里存放着系统管理员使用的系统管理程序
- /home:存放着普通用户的主目录,在linux中的每一个用户都有一个自己的目录,一般该目录是以用户的账号命名的
- /root:该目录为系统管理员,也称作超级权限者的用户主目录
- /boot:存放的是启动linux的一些核心文件,包括一些链接文件以及镜像文件
- /proc:虚拟目录,是系统内存的映射,可以访问该目录获得系统信息
- /srv:server缩写,存放服务启动后需要提取的数据
- /sys:安装了2.6内核中新出现的一个文件系统
- /tmp:存放临时文件
- /dev:类似于windows的设备管理器,把硬件用文件存储
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,识别后,linux会把识别的设备挂载在这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看内容了。d:/home
- /opt:这是给主机额外安装软件的目录
- /usr/local: 这是另一个给主机额外安装软件的目录,一般通过编译源码方式安装的程序
- /var:该目录存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括日志文件。
- /selinux[security-enhanced linux]360:sElinux是一种安全子系统,他能控制程序只访问特定文件
vi与vim的命令模式
- 三种模式:正常模式、插入/编辑模式、命令模式
- 正常模式(可使用快捷键):以vim打开一个档案就直接进入正常模式,此模式中,可使用上下左右键来移动光标,可使用删除字符和删除整行来处理档案内容,也可以使用复制粘贴
- 插入/编辑模式:在命令模式下按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可。
- 命令模式:按下:(英文冒号)就进入了命令模式。 命令模式可以输入单个或多个字符的命令,可用的命令非常多。完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的。比如:
- :wq//写并退出
- :q//直接退出
- :q!//强制退出不保存
开机、重启和用户登陆注销
关机和重启命令
1.shutdown
shutdown -h now:表示立即关机
shutdown -h 1:表示一分钟后关机
shutdown -r now:立即重启
2.halt
直接使用,效果等价于关机
3.reboot
重启系统
4.sync
把内存数据同步到磁盘
用户登录和注销
登录时尽量少用root登录,避免操作失误,因为root有最大的权限。可以用普通用户登录,再su -用户名 切换
在提示符后输入logout(在运行级别3以下才有效)即可注销登录。(root用户输入exit,普通用户用logout)
用户管理
添加用户
添加用户语法:useradd 【可选项】 用户名
创建用户后,会自动创建和用户同名的家目录,也可以通过:
useradd -d 指定目录 新用户名 例:useradd -d /home/aaa/usera
指定用户修改密码
修改用户密码语法:passwd 用户名
删除用户
删除用户但保留家目录:userdel 用户名
删除用户及用户主目录:userdel -r 用户名
查询用户信息
查询用户id语法:id 用户名
切换用户
切换用户语法:su 切换的用户名
注意事项:
1.从高权限的用户切换到低权限的用户不需要输入密码,反之需要
2.当需要返回原来用户时,使用exit指令
用户组
用户组介绍:类似于角色,系统可以对共性用户进行统一管理
增加组:语法:groupadd 组名
删除组:语法:groupdel 组名
增加用户时直接加上组 语法:useradd -g 用户组 用户名
修改用户的组 语法:usermod -g 用户组 用户名
配置文件
1.用户配置文件 /etc/passwd
记录用户的各种信息
含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
2.口令配置文件 /etc/shadow
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3.组配置文件 /etc/group
记录linux包含的组信息
每行含义:组名:口令:组标识号:组内用户列表
常用的命令
运行级别
[0]关机
[1]单用户【找回丢失密码】
[2]多用户状态没有网络服务
[3]多用户状态有网络服务
[4]系统未使用保留给用户
[5]图形界面
[6]系统重启
切换运行级别指令
语法:init 数字(数字即为运行级别)
帮助指令
- 当我们对某个指令不熟悉时候,可以使用linux的帮助指令来了解指令使用方法:man/help
man
语法: man [命令或配置文件]
help
语法:help [命令]
文件目录类
pwd指令(Print working directory 显示当前工作路径)
语法:pwd
ls指令(List files)
列出目录下的文件
基本语法:ls [选项]
-
ls -a:显示当前目录所有的文件和目录,包括隐藏的
-
ls -l:以列表的方式显示信息。
cd指令(Change directory 切换目录)
基本语法:cd [选项]
-
cd [绝对路径] 例:cd /home/root
-
cd [相对路径] 例:cd ../../root (要返回root目录的上一级,再/root,其中../一次表示返回上一级)
-
cd ~或者cd :表示返回到家目录
-
cd .. 表示回到当前目录的上一级目录
mkdir指令(Make directory 建立目录)
语法:mkdir [选项] 要创建的目录
-
mkdir /home/dog 在home下创建单级目录dog
-
mkdir -p /home/animal/tiger 在home目录下创建多级目录analimal及tiger
rmdir(Remove directory 仅删除空目录)(非空目录使用 rm -rf 非空目录)
语法:rmdir [选项] 即删除的空目录
touch指令(创建空文件)
语法:touch 空文件名称(可一次性创建多个空文件)
cp指令(copy 拷贝指令)
基本语法:cp [可选项] source dest
- 拷贝文件到指定目录下
例:cp aa.text bbb/(拷贝当前目录下aa.text文件到当前目录下bbb中)
- 拷贝整个目录到指定目录下
cp -r source dest
例:cp -r test/ zwj/(拷贝当前目录下test/的文件到zwj/)
注:cp前可加“\”代表强制拷贝
rm指令(remove 删除一个文件或目录)
-
基本语法:rm [选项] 要删除的目录或文件
-
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示
mv指令(move file 移动文件与目录或重命名)
- 基本语法:
重命名:mv oldnamefile newnamefile
移动文件:mv 文件名 目录
cat指令(concatenate 查看文件,以只读的形式打开)
-
基本语法:cat [选项] 要查看的文件
-
常用选项:
-n:显示行号
- 使用细节:
cat只能浏览文件,而不能修改文件,为了浏览方便,一般带上 管道命令 |more
cat 文件名 | more (分页浏览)
more指令(more指令是一个基于VI编辑器的文本过滤器,以全屏的方式按页显示文本文件内容。more指令内置了若干快捷键)
基本语法:more 要查看的文件
less指令(分屏查看文件内容)
less与more类似,但是比more更强大,支持各种显示终端。less指令 在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有更高的效率
- 基本语法:less 要查看的文件
>指令与>>指令
指令:输出重定向,会将原来的文件内容覆盖
指令:追加,不会覆盖原来文件内容,而是追加到文件的尾部
- 基本语法:
ls -l >文件(将列表的内容写文件a.txt中,覆盖写)
ls -l>>文件(列表内容追加到文件末尾)
cat 文件1>文件2(将文件1的内容覆盖到文件2)
echo “内容” >> 文件(将会内容追加到文件里)
echo指令(输出内容到控制台)
基本语法:echo [选项] 输出内容
head指令(显示文件开头部分内容,默认显示前十行)
- 基本语法:
head [可选项] 文件(查看文件前十行)
- 常用可选项
-n 数字:表示查看前n行,如head -n 5 文件(查看文件前五行)
tail指令(默认查看文件后十行)
- 基本语法
tail [可选项] 文件
- 常用可选项
-n 数字:查看后数字行
-f:实时追踪该文件的所有更新,即显示更新内容
ln指令(软连接)
软连接也叫符号链接,类似于windows里面的快捷方式,主要为了存储链接其他文件的路径
- 基本语法:
ln -s [源文件或目录] [软连接名称](给源文件创建一个软连接)
注意:使用pwd查看目录时候,仍然看到的是软连接所在的目录
history指令
查看已经执行过的历史指令,也可以执行历史指令
-
基本语法:history [可选项]
-
可选项
history 数字(查看过往执行的数字条指令)
!数字:执行第数字条指令
- 时间日期类指令
date指令(显示当前日期时间)
- 基本语法:
date:(显示当前时间)
date + %Y:(显示当前年份)
date + %m:(显示当前月份)
date + %d:(显示当前是哪一天)
date “+%Y-%m-%d %H:%M:%S”(显示年月日时分秒)
date指令(设置日期)
- 基本语法: date -s 字符串时间
cal指令(查看日历指令)
- 基本语法:
cal [可选项] (默认显示本月日历)
cal 年份 (显示当年日历)
- 搜索查找类
find指令
find指令将从指定目录向下递归的遍历各个子目录,将满足条件的文件或者目录显示在终端。
- 基本语法:
find [搜索范围] [可选项] (搜索范围,即路径信息)
locate指令
locate能够快速定位文件路径。local指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,但需要定期更新locate时刻
- 基本语法:
locate 目标文件
注意:使用locate指令前,必须用updatedb指令创建locate数据库
grep指令和管道符号 |
- 压缩与解压类
gzip与gunzip指令
gzip用于压缩文件
gunzip用于解压文件
- 基本语法:
gzip 文件 (压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz(解压缩文件命令)
- 注意
使用gzip对文件进行压缩时候,不会保留原文件
zip/unzip指令
zip用于压缩,unzip用于解压
- 基本语法:
zip [选项] XXX.zip 要压缩的内容(压缩文件和目录的命令)
unzip [选项] XXX.zip(解压缩文件)
- 常用可选项
zip常用选项
-r:递归压缩,即压缩目录
unzip常用选项
-d 目录:指定解压后文件存储目录
例:unzip -d /opt/tmp/ mypackage.zip
tar指令
tar指令是打包指令,最后打包的文件是.tar.gz文件
- 基本语法:
tar [选项] XXX.tar.gz 打包内容(打包目录,压缩后的文件格式为.tar.gz)
文件/目录 所有者
一般为文件的创建者。
- 查看文件的所有者
语法:ls -ahl
- 修改文件所有者
语法:chown 用户名 文件名
组的创建
语法:groupadd
文件/目录 所在组
当某个用户创建了一个文件后,默认这个文件所在组就是这个用户所在组
- 查看文件/目录所在组
语法:ls -ahl
- 修改文件所在组
语法:chgrp 组名 文件名(chgrp:change group)
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
改变用户所在组方法:
在添加用户时,可以指定将用户添加到哪个组中,同样的root的管理权限可以改变某个用户所在组
语法:
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变用户登陆的初始目录
权限的基本介绍
ls -l显示的内容如下
0-9位说明:
-
第0位确定文件类型(d,-,l,c,b)
-
第1-3位确定所有者(该文件所有者)拥有文件的权限
-
第4-6位确定所属组(同用户组的)拥有文件的权限
-
第7-9位确定其他用户拥有文件的权限
rwx权限详解
rwx作用到文件
-
[r]代表可读read:可以读取,查看(read)
-
[w]代表可写:可以修改但是不代表可以删除文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件(write)
-
[x]代表可执行:可以执行(execute)
rwx作用到目录
-
[r]代表可读read:可以读取,ls查看目录内容(read)
-
[w]代表可写:可以修改,目录内创建+删除+重命名目录(write)
-
[x]代表可执行:可以进入该目录(execute)
chmod修改权限
通过chmod指令,可以修改目录
- 通过+、-、=变更权限
u:所有者、g:所在组、o:其他人 、a:所有人
-
chmod u=rwx,g=rx,o=x 文件目录名
-
chmod o+w 文件目录名
-
chmod a-x 文件目录名
②第二种方式:通过数字变更权限
规则:r=4、w=2、x=1
chmod u=rwx,g=rx,o=x 文件目录名 =>chmod 751 文件目录名
chown:修改文件所有者
语法:chown newowern file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录,则使用其下所有子文件或目录递归生效
修改文件所在组-chgrp
语法:chgrp newgroup file
磁盘使用情况查询
- 查询系统整体磁盘使用情况
1)基本语法:
df -h
- 查询指定目录的磁盘占用情况
1)基本语法:
du -h /目录 (查询指定目录的磁盘占用情况,默认为当前目录)
-s:指定目录占用大小汇总
-h:带计量单位
-a:含文件
--max-depth=1 子目录深度
-c:列出明细的同时,增加汇总值
网络配置
*看windows环境中VMnet8网络配置(ipcongfig)
*看Linux环境(ifcongfig)
固定ip
- 修改配置文件来指定ip,并可以连接到外网,编辑vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改后要重启服务
服务器重启:serive network restart
进程管理
进程基本介绍
在Linux中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个ID号
每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
每个进程都可能以两种方式存在。前台和后台。
前台进程:用户目前的屏幕上可以进行操作
后台进程:实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
显示系统执行的进程
基本语法:
ps (一般来讲,使用的参数是ps aux)
ps:查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。
PID:进程识别号;TTY:终端机号;TIME:此进程所消耗的CPU时间;CMD:正在执行的命令或进程名
ps -a:显示当前终端的所有进程信息。
ps -u:以用户的格式显示进程信息。
ps -x:显示后台进程运行的参数。
ps -axu | grep xxx:过滤得到xxx的信息。
ps -ef:以全格式显示当前所有的进程,查看进程的父进程。
-e:显示所有进程。
-f:全格式。
终止进程kill和killall
若是某个进程执行到一半需要停止,或是已经消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill来完成此项任务
1.基本语法
kill [选项] 进程号 (功能描述,通过进程号杀死)
kill alll 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢很有用)
2.常用选项
-9:表示强迫进程立即停止
查看进程树
- 基本语法:
pstree [选项],可以更加直观的来看进程信息
- 常用选项:
-p:显示进程的PID
-u:显示进程的所属用户
服务管理(service)
服务本身就是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如(mysql、sshd、防火墙)因此我们又称为守护进程
service 管理指令
service 服务名 [start|stop|restart|reload|status](启动服务|停止服务|重启服务|重加载服务|服务器状态)
注意:上述方法关闭或者启用防火墙后,立即生效;若要设置某个服务自启动或者关闭永久生效,要使用chkconfig指令
查看服务名:
方法1:使用 setup ->系统服务就可以看到
方式2: /etc/init.d/服务名称
服务器的运行级别
查看或修改服务器运行级别:vi /etc/inittab
开机流程说明:
开机->BIOS->/boot->init进程1->运行级别->运行对应服务
chkconfig指令
通过chkconfig命令可以给每个服务的各个运行级别设置自启动或关闭
基本语法
查看服务:chkconfig --list|grep xxx(xxx代表服务名)
动态监控进程
top与ps指令很相似。他们都用来显示正在执行的进程。top与ps最大不同之处,在于top在执行一段时间可以更新正在运行的进程
基本语法
top [选项]
查看系统网络情况netstat
基本语法
netstat [选项]
netstat -anp
选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
实操篇 RPM和YUM
rpm包管理
-
rpm是一种用于互联网下载包的打包及安装工具,包含在某些Linux分发版中,生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似windows的setup.exe
-
rpm包的简单查询指令
查询已安装的rpm列表:rpm -qa|grep xx -
rpm包名基本格式:
一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm -
rpm包的其他查询指令
rpm -qa: 查询所安装的所有rpm软件包
rpm -qa|more 分页显示
rpm -qa | grep X 显示特定X的软件包
rpm -q 软件包名 查询软件包是否安装
rpm -qi 软件包名 查询软件包信息
rpm -ql 软件包名 查询软件包中的文件
rpm -qf 文件全路径名 查询文件所属的软件包
-
卸载rpm包:
基本语法:rpm -e 【--nodeps】RPM包的名称 【括号中为强制删除,解决可能因为存在依赖而无法删除的问题】 -
安装rpm包
基本语法:rpm -ivh RPM包全路径名称
参数说明:i=install(安装)、v=verbose(提示)、h=hash(进度条)
yum
- yum是一个shell前端软件包管理工具。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。使用yum的前提是可以联网
- yum的基本指令
查询yum服务器是否有需要安装的软件:yum list|grep xx 软件列表
安装指定的yum包:yum install xxx 下载安装