文件操作
ls
:显示当前目录下的所有文件及文件夹ll
:以详细方式显示所有文件与文件夹。(相当于ls -l
命令)cd /user
:打开user文件夹pwd
:显示当前目录路径
文件的增、删、查、移
mkdir test
:创建test目录touch test.txt
:创建test.txt文件cp test.txt test2.txt
:把test.txt文件当前文件夹下复制出个test2.txtcp test.txt /hzh/test
:将test.txt 复制到/hzh/test 目录下rm aa.txt
:删除aa.txt文件rm -r bb
:删除bb目录(包括目录下的所有文件)rm -rf bb
:删除bb目录(不对目录下的每个文件提醒删除)mv dd.txt ..
:将dd.txt文件移动上一级目录(注意尾部的两个点)mv bb.txt /hzh/test/
:将bb.txt文件移动到hzh/test/目录下mv dd.txt dd2.txt
:将dd.txt改名为dd2.txt
文件查找
find /etc -name ini?
:查找/etc目录下,以ini打头且后面一位的文件find /etc -name ini*
:查找/etc目录下,以ini打头的文件locate aa.txt
:查整个系统中的aa.txt文件,locate\slocate
命令后面跟文件或文件夹。不过在执行这个命令之前要先更新数据库,所以选执行updatedb
命令
用户权限
Linux下面的三类用户:
- u:所有者
- g:所属组
- o:其他人
修改权限符号:
- +:加权限
- -:减权限
- =:等于什么权限
chmod u+w a
:给a文件的所有者加上写权限chmod 641 a
:给a文件的设置权限641
软链接与硬链接
**软链接:**类似于我们windows系统的“快捷方式”。主要是文件名过长,不便于输入。
ln -s ruanlianjie.abc /hzh/test/rlj.soft
:对当前目录下的ruanlianjie.abc文件,在/hzh/test/目录下创建一个软链接,名为rlj.softvi rlj.soft
:编辑rlj.soft文件,其实也就是编辑ruanlianjie.abc文件
**硬链接:**相当于把原文件拷贝了一份,唯一特殊的地方就是,两个文件是同步的。当你对其中一个文件进行修改时,另一个文件也就会同步更新你的修改。
ln yinglianjie.abc /hzh/test/ylj.hard
:对yinglianjie.abc文件在/hzh/test/目录下创建一个硬链接文件ylj.hardvi ylj.hard
:对硬链接ylj.hard文件进行修改。yinglianjie.abc也会同步修改
文件压缩与解压
gzip
- 只能压缩文件,不能压缩目录
- 不保留源文件
gzip aaa
:将aaa文件进行压缩gunzip aaa.gz
:将aaa.gz文件进行解压gzip -d aaa.gz
:将aaa.gz文件进行解压
tar
参数:
-c
:创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。-x
:解包.tar文件-t
:列出档案文件的内容,查看已经备份了哪些文件。-v
:压缩的过程中显示文件!这个常用-f
:指定解压文件,使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!-z
:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz-p
:使用原文件的原来属性(属性不会依据使用者而变)
注意:
- 在linux下扩展名不是标识文件的属性
- 在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
tar -zcvf tatga.tar.gz tatgz
:压缩tatgz文件夹为tatga.tar.gz压缩文件
file [文件名]
:查看任何一个文件的类型
tar -cf tatga.tar tatgz
:对tatgz文件打包
gzip tatga.tar
:对tatga.tar包文件压缩
tar -zxvf tatga.tar.gz
:对压缩文件进行解压
zip
**功能:**可以压缩文件和目录,是windows 和linux 通用的压缩格式
zip a.zip a
:把a文件压缩成a.zipzip -r tatgz.zip tatgz
:压缩tatgz目录为tatgz.zipunzip tatgz.zip
:解压文件
bzip2
- 和gzip功能基本相同
- 只能压缩文件
- 用 -k 命令可以保留原文件
bzip2 -k fnngj
:对fnngj文件进行压缩bunzip2 fnngj.bz2
:对压缩文件fnngj.bz2进行解压
通信命令
Linux有别于Windows是的一个特性就是,多用户的操作系统。允许多个用户同进对系统进行操作。
write
:发给某个用户信息
write fnngj
:给fnngj用户发送信息- 输入发送内容:hello fnngj !! I like you!!xixi
- 按键
ctrl + D
结束
wall
:发给所有使用系统的用户
wall [信息内容]
ping
:测试本机与某一地址时候连通的
ping 192.168.203.128
ping www.baidu.com
ping -c 4 192.168.203.1
:-c 相当于windows(dos) 下的默认情况(会发送4次数据时行测试)。其实,我们可以设置发送数据包的次数ping -s 5000 192.168.203.1
:设置ping包的个数为5000; 最大为65507
ifconfig
:这个命令类似于dos下面的ipconfig
ifconfig
:查看本机IP地址详细信息
命令链接符
有时候,我们为输入方便为把多个命令放在一起输入执行。有点类似于dos下的批处理。就是一组命令的集合。那么我们看看都有哪些符号用于命令之间的连接。
管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入。
ls -l /etc | more
:显示/etc目录下的所有文件,以分页形式morels -l /etc | grep init | wc -l
:显示/etc目录下的所有文件,查找init文件,显示查找结果的数量。
;(逗号):用;间隔的各命令按顺序依次执行
pwd ; ll ; data
&&:前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,他后面的命令才能被执行
ls kk && pwd
:如果第一个命令执行失败,第二个命令就不执行。
||:前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,他后面的命令才被执行。
ls kk || pwd
:如果第一个命令执行失败,第二个命令就执行。
输入/输出重定向
Shell 对于每一个进程预先定义了个文件描述
- 0 (stdin):标准输入
- 1 (stdout):标准输出;
- 2 (stderr):标准错误输出。
输出重定向:将某个输入的信息保存到一个文件中
ls -l /tmp > /tmp.msg
:将查看tmp目录的信息保存到/tmp.msg 文件中。屏幕中不显示任何结果。data >>/tmp.msg
:“ >>”表示追加,在/tmp.msg 再追加一些新的信息。
输入重定向:将某个输入保存到一个文件中
wall < /etc/motd
:将motd文件中的信息进行广播。
错误输出重定向: 假如,我要对一个目录进行备份(/usr),备份到/backup/usr.bak目录下。设置,如果备份时发生错误,将错误信息保存到/bak.error文件中。
cp -R /usr /backup/usr.bak 2> /bak.error
别名的使用
别名:顾名思义,不同的两个名字指的是一个人,不同的两个命令具有相同的作用。
alias
:查询系统中的别名alias copy=cp
:给cp命令定义一个别名copyalias drm="rm -rf"
:将“ rm -rf ” 命令定义一个drm的别名。unalias copy
:取消别名copy
vim/vi编辑器
vim/vi
是一个功能强大的屏幕文本编辑器,是linux、UNIX 上最常用的文本编辑器,他的作用是建立、编辑、显示文本文件。vim/vi
没有菜单,只有命令。vim
是vi
的加强版
vi的三种模式(命令模式、插入模式和编辑模式)转换:
命令模式
下输入 a、i、o进入插入模式
插入模式
下按ESC进入命令模式
命令模式
下输入 : (冒号)进入编辑模式
编辑模式
下指令错误则返回命令模式
- 即:vi 进入文件后,按 i 键可以对文件时行编辑了。编辑完成后,按Esc 键退出编辑模式。
退出时命令:
:q
:是退出(文件没发生更改时):q!
:不保存退出(文件发生改变时):wq
:保存并退出 vim/vi的具体操作
修改本机的软硬件时间
软件时间指的是系统时间。硬件时间指的是CMOS时间。
date
:查看本机的软件时钟hwclock
:查看本机的硬件时钟hwclock --help
:查看帮助信息hwclock --hctosys
:设置系统时间与硬件时间对应。hwclock --systohc
:设置硬件时间与系统时间对应。hwclock --set --data="月/日/年 时:分:秒"
:假如两个时间都是错误的,我们自己设置时间
挂载光盘
mkdir /mnt/cdrom
:创建一个目录存放挂载光盘的内容mount /dev/cdrom /mnt/cdrom
:挂载光盘的内容(/dev/cdrom)到 /mnt/cdrom目录下。cd /mnt/cdrom
:进入目录ls
:查看光盘下有的所有文件
RPM包管理
rpm软件包的一个例子:sudo-1.7.2pl-5.el5. 5.el5 .rpm
其中包括软件名(sudo),版本号(1.7.2pl),发行号(5.el5)和硬件平台(5.el5)
参数:
-i
: 安装所选择的一个或多个软件包-H
: 用“#”显示完成的进度-q
: 查询软件包系统或所选择的一个或多个软件包-e
: 删除所有选择的一个或多个软件包-u
: 把一个已经安装好的软件包升级到新版本-v
: 验证已安装或已选择的一个或多个软件包--excludedocs
:不安装软件包中的文档文件--prefix PATH
:将软件包安装到由PATH指定的路径下--test
:只对安装时行测试,并不实际安装--replacepkgs
:覆盖安装,假如我们不小心删除掉了安装包里的某些软件,这个参数就非常有用了-U
:在参数中加入大写的U可以对软件进行升级
rpm -ivh sudo-1.7.2pl-5.el5. 5.el5 .rpm
:安装sudo-1.7.2pl-5.el5. 5.el5 .rpmrpm -ivh sudo
:查询sudo软件包是否被安装
注意:如果其它软件包有依赖关系,卸载时会产生提示信息,可使用–nodeps强行卸载rpm -e --nodeps sudo
:但是一般不推荐这样用,我们可以先卸载依赖的软件包然后再卸载。
YUM包的管理
首先我们要确保可以连接互联网,当然你也可以在局域网设置一个yum仓库,但意义不大。
好处:
- 自动解决软件包的依赖关系
- 方便的软件包升级
相关操作:
yum install
:安装yum check-update
:检测升级yum update
:升级yum list
:软件包查询yum info
:软件包信息yum remove
:卸载yum -help
:man yum
:帮助
yum install mysql
:自动帮我们下载安装mysql
参考网站:
用户管理
用户信息与密码的配置文件
相关配置文件
- 用户信息文件:
/etc/passwd
- 密码文件:
/etc/shadow
- 用户组文件:
/etc/group
- 用户组密码文件:
/etc/gshadow
- 用户配置文件:
/etc/login.defs
/etc/default/useradd
- 新用户信息文件:
/etc/skel
- 登录信息:
/etc/motd
用户信息文件:/etc/passwd
每一行内容存放一个用户的信息,每个用户信息有7部分组成
root:x:0:0:root:/root:/bin/bash
命令 | 名称 | 备注 |
---|---|---|
root |
用户名 | 用户登录系统时使用的用户名 |
x |
密码 | 密码位 |
2 |
UID | 用户标识号 |
2 |
GID | 缺省组标识 |
root |
注释性描述 | 例如存放用户全名等信息 |
/root |
宿主目录 | 用户登录系统后的缺省目录 |
/bin/bash |
命令解释器 | 用户使用的Shell ,默认为bash |
UID
关于上面的UID这里细说一下,其实决定用户是什么权限,是由UID号决定的。
- 超级用户:(root UID=0)
- 普通用户: (UID 500~60000)
- 伪用户: (UID 1~499)
- 伪用户与系统和程序服务相关
bin
、daemon
、shutdown
、halt
等,任何Linux系统默认都有这些伪用户。
news
、games
、apache
、ftp
、mysql
及sshd
等,与linux系统的进程相关。- 伪用户通常不需要或无法登录系统
- 可以没有宿主目录
密码文件:/etc/shadow
用户密码文件,用户信息文件中留有密码位,为什么没密码了呢? 其实,最早的linux这个位置真的是放密码的,因为不全安,所以,就将密码单独存放了,现在只是用x表示这里有存放密码的位置。
linux对用户登录的验证就是通passwod文件来验证用户名是否存在,然后通过shadow文件来验证用户名对应的密码是否正确。
常用命令
授权用户 chongshi 和 bugmaster 对目录/logs有写权限
mkdir /logs
:创建目录useradd chongshi
:创建用户passwd chongshi
:设置密码useradd bugmaster
passwd bugmaster
groupadd testing
:创建组grep testing /etc/group
:查看组信息usermod -G testing chongshi
:用户chongshi添加到组testinggpasswd -a bugmaster testing
:用户bugmaster添加到组testinggrep testing /etc/group
chgrp testing /logs
:将logs目录的所属组修改为testingchmod g+w /logs
:对logs目录的所属组加写权限su -- chongshi
:切换用户touch /logs/abc
:创建文件
添加用户
参数:
-u
:UID-g
:缺省所属用户组GID-G
:指定所属多个组-d
:宿目录-s
:命令解释器Shell-c
:描述信息-e
:指定用户失效时间
useradd -u 1888 -g webadmin -G sys,root -s /bin/bash -c "market lisi" -e 2012-12-12 jack
添加用户到组
usermod -G [组名] [用户名]
usermod -G webadmin tom
:添加tom用户到组webadmingrep webadmin /etc/group
:查看组webadmin信息
修改用户名
usermod -l [新用户名] [旧用户名]
usermod -l tom jack
:把jack改为tom
删除用户
userdel -r [用户名]
-r
:删除用户组
手工删除:
使用find命令查找属于某个用户或用户组的文件
find选项 -user、-uid、-group、-gid、
1、对需要保留的文件进行移动和备份
2、对不需要的文件进行删除
3、清除用户文件中的相关表项
4、清除用户宿主目录
find /home -user fnngj
用户信息查看命令
pwck
检测/etc/passwd文件。
检测用户的设置文件是否正常。直接输入命令,后面不用带参数。
vipw
编辑/etc/passwd文件。
这个命令与vi最大的区别就是编辑的时候锁定文件。如果多人对passwd文件都有编辑权限,那么多人同时编辑就会造成混乱。使用vipw编辑passwd文件时,别人就无法打开passwd文件。
id
查看用户ID和组信息,直接输入命令,后面不用带参数。
finger
查看当前用户的登录信息。
finger [用户名]
查看某个用户的详细信息。
su [用户名]
切换用户(su- 环境变量切换)。
su - [用户名]
切换的时候也会把环境的时候也会切换环境变量。
passwd -S [用户名]
查看用户密码状态。
who、w
查看当前登录用户信息。
用户禁用与恢复
当一个用户在操作的时候经常有违规操作或近期一段时间不用,我们可以对这个用户进行锁定。就像你的游戏账号发生异常被禁用一样。
禁用
usermod -L username
passwd -l username
恢复usermod -U username
passwd -u username
passwd -l fnngj
:禁用fnngj用户passwd -S fnngj
:查看用户fnngj密码状态passwd -u fnngj
:密码解锁passwd -S fnngj
:查看用户fnngj密码状态
用户组常用操作命令
添加用户组
groupadd [用户组名]
groupadd webadmin
:添加一个组webadmingrep webadmin /etc/group
:查看组信息groupadd -g 8888 webuser
:添加一个组webadmin,添加时指派好组的IDgrep webuser /etc/group
: 查看组信息
删除用户组
groupdel [用户组名]
groupdel webadmin
:删除组webadmin
修改用户组信息
groupmod -n [新组名] [旧组名]
groupmod -n apache webadmin
:修改组名webadmin为apache
用户组信息查看命令
groups
查看用户隶属于哪些用户组。
groups fnngj
newgrp
切换用户组。
newgrp fnngj
:不是组成员,知道组密码(如果有密码)一样可以切换。
grpck
用户组配置文件检测。
chgrp
修改文件所属组。
vigr
编辑/etc/group文件(锁定文件)。
与vipw用法一样,在编辑group文件时,禁止其他人编辑。防止多人写操作,造成写混乱。
用户组管理命令
gpasswd命令
参数:
-a
:添加用户到组-d
:从组删除用户-A
:指定管理员-M
:指定组成员和-A的用途差不多-r
:删除密码-R
:限制用户登入组,只有组中的成员才可以用newgrp加入该组-h
:帮助
gpasswd -a tom webadmin
:添加用户到组gpasswd -d tom webadmin
:把用户从组中删除gpasswd webadmin
:给用户组设置密码gpasswd -A tom webadmin
:将tom提升为组管理员gpasswd -r webadmin
:删除组密码gpasswd -R webadmin
:禁止其他用户切换到该组
进程管理
进程管理的概念
进程和程序区别
- 程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
- 程序和进程无一一对应关系。一个程序可以由多个时程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序。
父子进程的关系
- 子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。
- 在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
- 父进程终止子进程自然终止。
前台进程
在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令。
find / -name init
:在执行这个查找命令时,无法进行其它操作,这个查找就属于前台进程
后台进程
在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。“后台进程必须是非交互式的”。
find / -name init > /hzh/test/init.find &
:用同样的条件进行查找,把查找记过放到hzh/test/init.find这个文件中。不影响我们前台其它的操作。
常用进程命令
w
查看当前系统信息
w显示信息的含义:
- JCPU: 以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的CPU时间会显示在这里
- PCPU: cpu执行程序消耗的时间
- WHAT: 用户下在执行的操作
- load average :分别显示系统在过去1、5、15分钟内的平均负载程度。
- FROM: 显示用户从何处登录系统,“:0”的显示代表该用户时人X Windows下,打开文本模式窗口登录的
- IDLE: 用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置
w
:查看当前系统活动摘要w root
:查看root用户信息
发表评论