Linux常用操作
命令的格式:
Linux的命令基本都是在终端执行的
打开终端的方式:
- 在桌面中鼠标右键选择打开终端
- 使用快捷键ctrl+alt+t
终端提示符:
stu@qfedu:~$
- stu:用户名
- qfedu:主机名
- ~:表示路径
- ~:家目录(桌面)
- /:根目录(c盘)
- $:普通用户权限
- #:管理员权限
显示当前路径:pwd
功能描述:显示当前目录的绝对路径
语法:pwd
目录处理命令:ls (list)
功能描述:显示目录文件
语法: ls [] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息(第一个显示:“-”文件, “d”目录 ,“l”软链接)
-d 查看目录属性
目录处理命令:mkdir (make directories)
功能描述:创建新目录
语法:mkdir [] [目录名]
-p 递归创建
示例:
mkdir /tmp/demo1
mkdir -p /tmp/demo1/test1
目录处理命令:cd (change directory)
功能描述:切换目录
语法:cd [目录]
示例:
cd /tmp/demo1/test1 切换到指定目录
cd .. 回到上一级目录
目录处理命令:pwd (print working directory)
功能描述:显示当前目录
语法:pwd
目录处理命令:rmdir (remove empty directories)
功能描述:删除空目录
语法:rmdir [目录名]
示例:
rmdir /tmp/demo1/test1
目录处理命令:cp (copy)
功能描述:复制文件或目录(非动态)(文件修改时间会改变)
语法:cp [] [原文件或目录] [目录目标]
-r 复制目录
-p 保留文件属性(时间不变)
目录处理命令:mv (move)
功能描述:剪切文件、改名
语法:mv [原文件或目录] [目标目录]
目录处理命令:rm (remove)
功能描述:删除文件
语法:rm [] [文件或目录]
-r 删除目录
-f 强制执行
文件处理命令:touch (touch)
功能描述:创建空文件
语法:touch [文件名]
示例:
touch /tmp/demo1/test1/adc.list
文件处理命令: cat
功能描述:显示文件内容
语法:cat [] [文件名]
-n 显示行号
示例:
cat /etc/issue
cat -n /etc/issue
文件处理命令: more
功能描述:显示文件内容
语法:more [文件名]
((空格)或f 翻页
Enter 换行
q或Q 退出)
示例:
more /etc/services
f
Enter
文件处理命令: less
功能描述:显示文件内容(可向上翻页)
语法:less [文件名]
Pgup 向上翻页
示例:
lsee /etc/services
文件处理命令: head
功能描述:显示文件前面10行
语法:head [] [文件名]
-n 指定行数
示例:
head -n 20/etc/services
文件处理命令: ln (link)
功能描述:生成链接文件
语法:ln [] [原文件] [目标文件]
-s 创建软链接
示例:
ln -s /etc/issue /tmp/issue.soft 创建issue的软链接为issue。soft
ln /etc/issue /tmp/issue.hard 创建issue的硬链接为issue。hard
软连接特征:
- l表示软链接,类似与windows的快捷方式
- 文件大小为符号链接
- 箭头指向原文件
硬链接特征:
-
拷贝cp -p同步更新
-
通过i节点识别,与原文件相同(每个文件和进程都有一个i节点,用数字进行标识)
-
不能跨分区
-
不能针对目录使用
权限管理命令:chmod (change the permissions mode of a file)
功能描述:改变文件或目录权限
语法:chmod [{ugoa} {±=} {rwx}] [文件或目录]
[mode=421] [文件或目录]
-R 递归修改
示例:
ls -l /tmp/demo1/adc.list
-> -rw-r--r--
chmod u+x adc.list
-> -rwxr--r--
chmod g+w o-r adc/list
ls -l adc.list
-> -rwxrw----
权限的数字表示:
r–4
w–2
x–1
rwxrw-r–
7 6 4
示例:
chmod g+w testfile 赋予文件testfile所属组写权限
chmod -R 777 testdir 修改目录testdir及其目录下文件都为rwx权限
r | 读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
---|---|---|---|
w | 写权限 | 可以修改文件内容 | 可以在目录中创建,删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
权限管理命令:chown (change file ownership)
功能描述:改变文件或目录的所有者
语法:chown [用户] [文件或目录]
示例:
useradd hudali
chown hudali /tmp/demo1 改变dmeo1的所有者为胡大力
权限管理命令:chgrp (change file group ownership)
功能描述:改变文件或目录的所属组
语法:chgrp [用户组] [文件或目录]
示例:
groupadd hudali6
chgrp hudali6 demo1 改变demo1的所属组为胡大力6
权限管理命令:umask (the user file-creation mask)
功能描述:显示,设置文件的缺省权限
语法:umask -S 以rwx形式显示新建文件缺省权限
示例:
cd /tmp
umask -S
-> u=rwx,g=rx,o=rx
文件搜索命令:find
功能描述:文件搜索
语法:find [搜索范围] [匹配条件]
(别在服务器访问高峰期使用find进行查找,搜索范围越小越好)
示例:
find /etc -name init 在目录etc中查找文件init(-iname的话则不区分大小写)
find /etc -name *init* 查找etc中包含init的文件
find /etc -name init??? 查找的是initxxx的文件
find /-size +204800 在根目录下查找大于100MB的文件(+大于,-小于)[1数据块 512字节 0.5k]
find /home -user hudali 在根目录下查找所有者为胡大力的文件(-group根据所属者查找)
-amin 访问时间
-cmin 文件属性
-mmin 文件内容
示例:
find /etc -cmin -5 在etc下查找5分钟内被修改过属性的文件或目录
-a 两个条件同时满足(and)
-o 两个条件满足一个(or)
示例:
find /etc -size +163840 -a -size -204800 在etc下查找大于80MB小于100MB的文件
-exec/ok [命令] {} ; 对查找结果执行操作
示例:
find /etc -name inittab -exec ls -l {} \; 在etc下查找inittab文件并显示器详细信息
-type [] (根据文件类型查找)
f文件 d目录 l软链接
-inum 根据i节点查找
示例:
find /tmp -inum 31531
文件搜索命令:locate
功能描述:在文件资料库中查找文件(速度快,但有可能新创立的文件还未被收入资料库中)
语法:locate [文件名]
文件搜索命令:which
功能描述:搜索命令所在目录及其别名信息
语法:which [命令]
示例:
which cp
-> alias cp='cp -i'
which useradd
-> /usr/sbin/useradd
文件搜索命令: whereis
功能描述:搜索命令所在目录及帮助文档路径(和which有小小的区别)
语法:whereis [命令]
文件搜索命令:grep
功能描述:在文件中搜寻字串匹配的行并输出
语法:grep [] [指定字串] [文件]
-i 不区分大小写
-v 排除指定字串
示例:
grep multiuser /etc/inittab 显示etc目录下inittab中带有multiuser的行
-> 3-Full multiuser mode
帮助命令:man (manual)
功能描述:获得帮助信息
语法:man [命令或配置文件]
示例:
man ls 查看ls命令的帮助信息
man services 查看配置文件services的帮助信息
1 命令的帮助
5 配置文件的帮助
帮助命令:whatis,–help
功能描述:获取帮助信息
示例:
whatis ls
touch --help
帮助命令:help
功能描述:获得shell内置命令的帮助信息
语法:help 命令
示例:
help umask 查看umask的命令帮助信息
用户管理命令:useradd
功能描述:添加新用户
语法:useradd 用户名
示例:
usesadd hudali
用户管理命令:passwd
功能描述:设置用户密码
语法:passwd 用户名
示例:
passwd hudali
-> 123456
用户管理命令: who
功能描述:查看登录用户信息
语法:who
第一行: 登录用户名
第二行: 登录终端
第三行: tty本地终端/pts远程终端
用户管理命令:w
功能描述:查看登录用户详细信息
语法:w
压缩解压命令:gzip (CNU zip)
功能描述:压缩文件(不能压缩目录,不保留原文件)
语法:gzip 文件
压缩后的文件格式:.gz
压缩解压命令: gunzip (GNU unzip)
功能描述:解压缩.gz的压缩文件
语法:gunzip 压缩文件
压缩解压命令:tar
功能描述:打包目录
语法:tar [] [压缩后文件名] [目录]
-c 打包
-x 解包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩
打包后文件格式: .gz
示例:
cd tmp
tar -cvf demo1.tar demo1
tar -zxvf damo1.tar.gz
压缩解压命令:zip
功能描述:压缩文件或目录
语法:zip [] [压缩后的文件名] [文件或目录]
-r 压缩目录
压缩后文件格式:.zip
压缩解压命令:unzip
功能描述:解压.zip的压缩文件
语法:unzip [压缩文件]
压缩解压命令:bzip2
功能描述:压缩文件
语法:bzip2 [] [文件]
-k 产生压缩文件后保留原文件
压缩后文件格式:.bz2
网络命令:write
功能描述:给用户发信息,按ctrl+D保存结束
语法:write 用户名
网络命令:wall
功能描述:发广播信息
语法:wall 发布信息
网络命令:ping
功能描述:测试网络连通性
语法:ping [] IP地址
-c 指定发送次数
示例:
ping 192.168.1.156
网络命令:ifconfig(interface configure )
功能描述:查看和设置网卡信息
语法:ifconfig 网卡名称 IP地址
网络命令:mail
功能描述:查看发送电子邮件
语法:mail 用户名
网络命令:last
功能描述:列出目前与过去登入系统的用户信息
语法:last
网络命令:traceroute
功能描述:显示数据包到主机间的路径
语法:traceroute [网站]
网络命令:setup
功能描述:配置网络(永久生效)
语法:setup
网络命令:netstat
功能描述:显示网络相关信息
语法:netstat []
-t TCP协议
-u UDP协议
-l 监听
-r 路由
-n 显示IP地址和端口号
示例:
netstat -tlum 查看本机监听的端口
netstat -an 查看本机所有的网络连接
关机命令:shutdown
功能描述:关机
语法:shutdown []
-h 关机
-r 重启
-c 取消前一个关机命令
语法:runlevel 查询系统运行级别
系统运行级别:
0 关机
1 单用户(windows下的安全模式)
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
退出登录命令:logout
语法:logout
Vim操作:
vi 文件名 进入
输入:wq 保存并退出
ESC:命令模式,回车结束运行
命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg/GG | 到第一行/到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
x | 删除光标所在字符 |
nx | 删除光标所在后n个字符 |
dd | 删除光标所在行 |
dG | 删除光标所在行至末尾 |
:n1,n2d | 删除指定范围的行 |
yy | 复制当前行 |
dd | 剪切当前行 |
p/P | 粘贴在当前光标所在行下/上 |
导入命令执行结果:r ! []
语法:r! [ls]
定义快捷键命令:map [快捷键] [触发命令]
示例:
map ^p(ctrl+v+p) i#<ESC> //在行首加入“#”号
连续注释:
n1,n2s/^/#/g //行首加上“#”
n1,n2s/^#//g //消除行首的“#”
替换:
ab mymail 1176529182@qq.com //输入mymail时自动替换成邮箱
软件包分类
1.源码包
脚本安装包
2.二进制包(RPM包,系统默认包)
源码包的优点:
开源
可以选择所需的功能
软件时编译安装,所以更加适合自己的系统,更加稳定也效率更高
卸载方便
源码包的缺点:
安装步骤较多,尤其安装较大的软件集合时,容易错误
编译时间较长
二进制包的优点:
包管理系统简单
安装速度快
二进制包的缺点:
经过编译,不能看到源代码
功能选择不如源码灵活
依赖性
RPM安装:rpm [-ivh] 包全名
-i 安装
-v 显示详细信息
-h 显示进度
--nodeps 不检测依赖性
RPM包升级:rpm -Uvh 包全名
-U 升级
卸载:rpm -e 包名
-e 卸载
--nodeps 不检测依赖性
RPM查询:
语法:rpm -q 包名(查询是否安装)
-a 包含包名的全部安装包
-i 查询软件信息
-p 查询未安装包信息
-f [系统文件名] 查询系统文件属于哪个软件包
-R 查询软件包的依赖性
常用yum命令:
查询:
yum list 查询所有可用软件包列表
yum search [关键字] 搜索服务器上所有和关键字相关的包
安装:
yum -y install 包名
install 安装
-y 自动回答yes
update 升级
卸载:
yum -y -remove 包名
-y 自动回答yes
remove 卸载
RPM包安装位置:
安装目录 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序锁使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
源码包安装位置:
安装在指定位置当中,一般是 /usr/local/软件名/
安装位置不同带来的影响:RPM包安装的服务可以使用系统服务管理命令(service)来管理,列如:service gcc start
而源码包安装服务则不能被服务管理命令管理,因为没有安装到默认路径中,所以只能用绝对路径进行服务管理,列如:
/usr/local/gcc/bin/gcc start
脚本安装包:
脚本安装包并不是独立的软件包类型,常见安装的是源码包
是人为把安装过程写成了自动安装脚本,只要执行脚本,定义简单的参数,就可以完成安装
非常类似windows下软件的安装方式
Webmin安装过程:
下载软件:http://sourceforge.net/projects/webadmin/files/webmin/
解压缩,并进入压缩目录
执行安装脚本
权限管理
ACL权限
文件特殊权限
文件系统属性chattr权限
系统命令sudo权限
ACL权限
查看ACL权限是否开启:
dumpe2fs -h /dev/sda3
临时开启ACL权限:
mount -o remount,acl/ //重新挂载根分区,并挂载加入acl权限
查看acl权限:
getfacle 文件名
设定acl权限:
setfacl [] 文件名
-m 设定acl权限
-x 删除指定的acl权限
-b 删除所有acl权限
-d 设定默认acl权限
-k 删除默认acl权限
-R 递归设定acl权限
最大有权限:mask
用来指最大有效权限,如果我给用户赋予ACL权限,是需要和mask权限相与,才能得到用户的真正权限。
setfacl -m m:rx [文件名] //设定权限为r-x
删除ACL权限:
setfacl -x u: [用户名] [文件名] //删除指定用户ACL权限
setfacl -x g:[组名] [文件名] //删除指定用户组的ACL权限
递归ACL权限:
递归式父目录在设定ACL权限式,所有的子文件和子目录也会拥有相同的ACL权限
setfacl -m u:用户名:权限 -R [文件名]
默认ACL权限:
默认ACL权限的作用式如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限
setfacl -m d:u: 用户名:权限 [文件名]
系统命令权限sudo:
root把本来只能超级用户执行的命令赋予普通用户执行
sudo的操作对象是系统命令