一、基础知识
1、Linux系统的文件结构
/bin 二进制文件,系统常规命令
/boot 系统启动分区,系统启动时读取的文件
/dev 设备文件
/etc 大多数配置文件
/home 普通用户的家目录
/lib 32位函数库
/lib64 64位库
/media 手动临时挂载点
/mnt 手动临时挂载点
/opt 第三方软件安装位置
/proc 进程信息及硬件信息
/root 临时设备的默认挂载点
/sbin 系统管理命令
/srv 数据
/var 数据
/sys 内核相关信息
/tmp 临时文件
/usr 用户相关设定
2、Linux系统命令行的含义
示例:root@app00:~#
root //用户名,root为超级用户
@ //分隔符
app00 //主机名称
~ //当前所在目录,默认用户目录为~,会随着目录切换而变化,例如:(root@app00:/bin# ,当前位置在bin目录下)
# //表示当前用户是超级用户,普通用户为$,例如:("yao@app00:/root$" ,表示使用用户"yao"访问/root文件夹)
3、命令的组成
实例:命令 参数名 参数值
示例:shutdown -h now #立刻关机
二、基础操作
1、关闭系统
(1)立刻关机
shutdown -h now 或者 poweroff
(2)两分钟后关机
shutdown -h 2
# 重新启动操作系统,其中 now 表示现在
$ shutdown -r now
# 立刻关机,其中 now 表示现在
$ shutdown now
# 系统在今天的 20:25 会关机
$ shutdown 20:25
# 系统再过十分钟后自动关机
$ shutdown +10
# 取消之前指定的关机计划
$ shutdown -c
2、关闭重启
(1)立刻重启
shutdown -r now 或者 reboot
(2)两分钟后重启
shutdown -r 2
3、帮助命令(help)
ifconfig --help //查看ifconfig命令的用法
4、命令说明书(man)
man shutdown //打开命令说明后,可按“q"退出
5、切换用户(su)
su yao //切换为用户“yao“,输入后回车需要输入该用户的密码
exit //退出当前用户
三、目录操作(重点常用)
1、切换目录(cd)
cd / //切换到根目录
cd /bin //切换到目录下的bin目录
cd .. / //切换到上一级目录,或者使用命令 cd ..
cd ~ //切换到home目录
cd - //切换到上次访问的目录
cd XX (文件夹名) //切换到本目录下的名为XX的文件目录,如果目录不存在报错
cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键补全
2、查看目录(ls)
ls //查看当前目录下的所有目录和文件
ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令“II”效果一样
ls /bin //查看知道目录下的所有目录和文件
3、创建目录(mkdir)
mkdir tools //在当前目录下创建一个名为tools的目录
mkdir /bin/tools //在指定目录下创建一个名为tools的目录
4、删除目录与文件(rm)
rm 文件名 //删除当前目录下的文件
rm -f 文件名 //删除当前目录的的文件(不询问)
rm -r 文件夹名 //递归删除当前目录下此名的目录
rm -rf 文件夹名 //递归删除当前目录下此名的目录(不询问)
rm -rf * //将当前目录下的所有目录和文件全部删除
rm -rf /* //将根目录下的所有文件全部删除【慎用!相当于格式化系统】
5、拷贝目录(cp)
cp /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录复制到 /opt目录下面
cp -r /usr/tmp/tool /opt //递归剪复制目录中所有文件和文夹
6、搜索目录(find)
find /bin -name 'a*' //查找/bin目录下的所有以a开头的文件或者目录
7、查看当前目录(pwd)
pwd //显示当前位置路径
四、文件操作(重点常用)
1、新增文件(touch)
touch a.txt //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间
2、删除文件(rm)
rm 文件名 //删除当前目录下的文件
rm -f 文件名 //删除当前目录的的文件(不询问)
3、编辑文件(vi、vim)
vi 文件名 //打开需要编辑的文件
--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-刚进入文件就是命令模式,通过方向键控制光标位置,
-使用命令"dd"删除当前整行
-使用命令"/字段"进行查找
-按"i"在光标所在字符前开始插入
-按"a"在光标所在字符后开始插入
-按"o"在光标所在行的下面另起一新行插入
-按":"进入底行模式
插入模式
-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
-按"ESC"进入底行模式
底行模式
-退出编辑: :q
-强制退出: :q!
-保存并退出: :wq
## 操作步骤示例 ##
1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车 //保存并退出编辑
2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车 //撤销本次修改并退出编辑
## 补充 ##
vim +10 filename.txt //打开文件并跳到第10行
vim -R /etc/passwd //以只读模式打开文件
4、查看文件(超重点)
4.1 查看文件类型
file命令:
file file_name
4.2 查看文本内容
查看全部文本内容:
1、cat命令 cat file_name #输出所有文本内容 2、cat -n file_name #文本内容所有行加上行编号输出 3、cat -b file_name #文本内容非空行加上行编号输出
分页查看文本内容:
1、more命令(常用的分页工具) more file_name
2、less命令(more升级版分页工具) less file_name #显示行加-N参数,less -N file_name #更多命令及使用方法查看less --help或man less
4.3查看部分文件内容
head 命令
:显示文件开头一些行的内容,默认显示文件前10行
1,查看显示文首内容 head -n [number] file_name ,显示文首多少行内容 head -n 100 file_name #显示文首一百行内容 #或不加-n,head -100 file_name也是显示文尾100行内容 2、输出文首最后的多少个字节 head -c 10 file_name
tail 命令
:显示文件最后一些行的内容,默认显示文件后10行
1、查看显示文尾内容 tail -n [number] file_name ,显示文尾多少行内容 tail -n 100 file_name #显示文尾一百行内容 #或不加-n,tail -100 file_name也是显示文尾100行内容 2、当文件增长时输出追加的数据,比如日志时时生成,(crtl+c终止显示) tail -f log_file 3、加-f参数显示追加是数据时可以与-s参数配置,睡眠几秒在进行追加显示 tail -f -s 10 log_file #查看日志内容,10秒刷新一次 4、输出文尾最后的多少个字节 tail -c 10 file_name
五、文件权限
1、权限说明
文件权限简介:'r' 代表可读(4),'w' 代表可写(2),'x' 代表执行权限(1),括号内代表"8421法"
##文件权限信息示例:-rwxrw-r--
-第一位:'-'就代表是文件,'d'代表是文件夹
-第一组三位:拥有者的权限
-第二组三位:拥有者所在的组,组员的权限
-第三组三位:代表的是其他用户的权限
2、文件权限
所谓的文件权限,是指对文件访问权限,包括对文件的读、写、删除、执行操作。Linux是一个多用户操作系统,它运行多个用户同时登陆和工作,因此,Linux将一个文件或者目录与一个用户与组联系起来的。
普通授权 chmod +x a.txt
8421法 chmod 777 a.txt //1+2+4=7,"7"说明授予所有权限
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名
六、打包、解压、安装
1、打包/解包
tar是linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件
tar的命令格式如下:
1、打包文件:
tar -cvf 打包文件.tar 被打包文件/路径 ① tar -cvf test.tar 1.txt 2.txt 3.txt zip -r 名称.zip 被压缩文件
2、解包文件
tar -xvf 打包文件.tar unzip 名称.zip
tar选项说明
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档接档的详细过程,显示进度 |
f | 指定档案文件名称,f 后面一定是.tar文件,所以必须放选项最后 |
注意:f 选项必须放在最后,其他选项可以随意
2、压缩/解压缩
(1)gzip
tar 与 gzip 命令结合可以使用实现文件打包和压缩
tar只复杂打包文件,但不压缩
用gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
在tar 命令中有一个选项-z 可以调用gzip,从而可以方便的实现压缩和解压缩的功能
命令格式:# 压缩文件 tar -zcvf 打包文件.tar.gz 被压缩的文件/路径... ② tar -zcvf test.tar.gz 1.txt 2.txt 3.txt # 解压缩文件 tar -zxvf 打包文件.tar.gz # 解压缩到指定路径 tar -zxvf 打包文件.tar.gz -C 目标路径 unzip test.zip //解压*.zip文件 unzip -l test.zip //查看*.zip文件的内容
-C : 解压缩到指定目录,注意:要解压缩的目录必须存在
3、软件安装
apt是advanced Packaging Tool,是Linux下的一款安装包管理工具。
可以在终端中方便的安装、卸载和更新软件包。
(1)安装软件:
sudo apt install 软件包
(2)卸载软件:
sudo apt remove 软件名
(3)更新已安装的包:
sudo apt upgrade
查看当前进程排名的软件:
sudo apt install htop
七、 软链接与硬链接
软连接
1、概念
类同与windos的快捷方式,给文件创建一个快速的访问路径,它依赖于原文件,与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。
2.特性
- 可对不存在的目录和文件创建软链接。
- 可以对存在的文件或目录建软链接。
- 可以跨文件系统创建软链接。
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死链接(即dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
- 软链接创建时原文件的路径指向使用绝对路径较好,相对路径的话原文件移除后可能会成为死链接。
3.软链接的创建
ln -s 原文件 链接名称
例如:
硬链接
1、概念
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。
2.特性
- 只能对已存在的文件进行创建(必须事先要有一个原始文件)。
- 硬链接必须在同一个文件系统里创建。
- 不能对目录进行创建。
3.硬链接的创建
ln 原文件 链接名称
例如:
八、文件传输
rz、sz 命令
使用 rz、sz 命令可以实现 linux 和 windows 之间的文件传输,但要求在 windows 客户端要安装 Xshell 远程连接工具。rz 命令和 sz 命令是一对上传与下载的指令。它们的软件包名为 lrzsz。
rz 中的 r 意为 received (接收),即将文件从win本地上传到服务器,为服务器接收文件。
sz 中的 s 意为 send (发送),输入sz时,意为服务器要发送文件,既从服务器发送文件到本地,或是说本地从服务器上下载文件。
# linux下的lrzsz包安装命令 yum install lrzsz -y # redHat、centos、Fedora系统下的安装命令 dpkg -i lrzsz -y # ubuntu系统下的安装命令 # sz、rz 命令的使用方法 rz 回车后会弹出windows窗口,然后选择文件。 # 将文件从win本地上传到服务器 sz 文件名 # 从服务器发送文件到win本地# 注意:不论是send还是received,动作都是在服务器上发起的。
sftp 命令
连接远程主机,上传或下载文件。
#语法格式: sftp 远程主机#作用: 连接远程主机,上传或下载文件 # 示例: (需连接到远程主机) sftp 172.24.5.12 # 连接到远程主机 get a.txt # 下载a.txt文件 put a.txt # 上传a.txt到远程主机
scp 命令
scp 命令能够将不同主机的文件进行相互传输,使用简单方便。此方法会加密传输文件,安全性提升,但是相对来说速度会慢些。
#语法格式: scp 远程主机账号@远程IP地址 本地目录#作用: 登录远程主机进行拷贝文件或目录 # 示例: scp root@192.168.12.11:/soft/test.tar.gz /tools/ # 将远程主机目录下的/soft/test.tar.gz 拷贝到本地目录下的tools/下 scp root@192.168.12.11:/soft/ /tools/ # 将远程主机目录soft 拷贝到本地目录的tools/下。
rcp 命令
#语法格式: scp 主机1 主机2#作用: 远程主机间的文件或目录相互拷贝 # 示例: rcp test 192.168.128.169:/test # 拷贝当前目录下的test 到192.168.128.169的/test目录下 rcp root@192.168.128.169:./test /test # 复制远程目录到本地的/test下
九、系统管理
1、防火墙操作
service iptables status //查看iptables服务的状态 service iptables start //开启iptables服务 service iptables stop //停止iptables服务 service iptables restart //重启iptables服务 chkconfig iptables off //关闭iptables服务的开机自启动 chkconfig iptables on //开启iptables服务的开机自启动 ##centos7 防火墙操作 systemctl status firewalld.service //查看防火墙状态 systemctl stop firewalld.service //关闭运行的防火墙 systemctl stop firewalld.service //开启防火墙 systemctl disable firewalld.service //永久禁止防火墙服务
2、修改主机名(CentOS 7)
hostnamectl set-hostname 主机名
3、查看网络
ifconfig # 查看网卡配置信息 $ ifconfig # 查看网卡对应的 IP 地址 $ ifconfig | grep inet
4、修改IP
修改网络配置文件,文件地址:/etc/sysconfig/network-scripts/ifcfg-eth0 ------------------------------------------------ 主要修改以下配置: TYPE=Ethernet //网络类型 BOOTPROTO=static //静态IP DEVICE=ens00 //网卡名 IPADDR=192.168.1.100 //设置的IP NETMASK=255.255.255.0 //子网掩码 GATEWAY=192.168.1.1 //网关 DNS1=192.168.1.1 //DNS DNS2=8.8.8.8 //备用DNS ONBOOT=yes //系统启动时启动此设置 ------------------------------------------------- 修改保存以后使用命令重启网卡:service network restart
5、配置映射
修改文件: vi /etc/hosts 在文件最后添加映射地址,示例如下: 192.168.1.101 node1 192.168.1.102 node2 192.168.1.103 node3 配置好以后保存退出,输入命令:ping node1 ,可见实际 ping 的是 192.168.1.101。
6、端口操作
在Linux中,可以使用以下命令来查看端口号: 1. netstat命令 netstat -tunlp # 查看所有端口号和对应的进程信息 netstat -tunlp | grep 端口号 # 查看指定端口号对应的进程信息 2. lsof命令 lsof -i:端口号 # 查看指定端口号对应的进程信息 3. ss命令 ss -tunlp # 查看所有端口号和对应的进程信息 ss -tunlp | grep 端口号 # 查看指定端口号对应的进程信息 4、可以使用Linux命令netstat来查询端口号。具体命令如下:netstat -ap | grep <进程名或进程ID> 其中,-a表示显示所有连接和监听端口,-p表示显示进程ID和进程名,grep命令用于过滤出包含指定进程名或进程ID的行。执行该命令后,会显示该进程所绑定或监听的端口号。 举个例子,如果要查询进程名为nginx的进程所绑定或监听的端口号,可以执行以下命令:netstat -ap | grep nginx 5、开放端口命令 使用firewall命令开放端口,firewall-cmd --add-port=<端口号>/<协议> --permanent; //以3306为例 先执行: firewall-cmd --add-port=3306/tcp --permanent; 在执行: firewall-cmd --reload #刷新 6、关闭端口命令 先执行: firewall-cmd --remove-port=3306/tcp --permanent; 在执行: firewall-cmd --reload
7、查看进程
静态: ps aux #查看进程使用情况 ps aux | less # 查看进程使用情况,考虑到显示过多,使用分管符和less命令查看 ps aux --sort CPU #查看进程使用情况,并按照CPU的使用率升序排列 ps aux --sort -CPU #查看进程使用情况,并按照CPU的使用率降序排列 ps aux --sort rss #查看进程使用情况,并按照内存的使用升序排列 ps aux --sort -rss #查看进程使用情况,并按照内存的使用降序排列 ps -ef | grep XXX #查看指定的进程是否开启 ps axo user,pid,ppid…… #查看进程,并且只查看后面列举出的信息 动态: top -d 1 top -p 100 top -n 3 >123.txt top -u nginx -d 表示刷新的时间间隔,单位为s -p 表示查看指定PID的进程 -u 表示查看指定用户的进程 -n 表示top刷新指定次数后退
8、结束进程
kill pid //杀死该pid的进程 kill -9 pid //强制杀死该进程
9、查看链接
ping IP //查看与此IP地址的连接情况 netstat -an //查看当前系统端口 netstat -an | grep 8080 //查看指定端口
10、快速清屏
ctrl+l //清屏,往上翻可以查看历史操作
11、远程主机
ssh IP //远程主机,需要输入用户名和密码
12、ping一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢
ping一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢 # 检测到目标主机是否连接正常 $ ping IP地址 # 检测本地网卡工作正常 $ ping 127.0.0.1
十、du命令
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的.
命令格式:
du [选项][文件]
命令功能:显示每个文件和目录的磁盘使用空间。
命令参数:
-a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -k或--kilobytes 以KB(1024bytes)为单位输出。 -m或--megabytes 以MB为单位输出。 -s或--summarize 仅显示总计,只列出最后加总的值。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 -D或--dereference-args 显示指定符号链接的源文件大小。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -l或--count-links 重复计算硬件链接的文件。
实例1:显示目录或者文件所占空间
[root@localhost test]# du 608 ./test6 308 ./test4 4 ./scf/lib 4 ./scf/service/deploy/product 4 ./scf/service/deploy/info 12 ./scf/service/deploy 16 ./scf/service 4 ./scf/doc 4 ./scf/bin 32 ./scf 8 ./test3 1288 . [root@localhost test]#
说明:只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小
实例2:显示指定文件所占空间
[root@localhost test]# du log2012.log 300 log2012.log [root@localhost test]#
实例3:查看指定目录的所占空间
[root@localhost test]# du scf 4 scf/lib 4 scf/service/deploy/product 4 scf/service/deploy/info 12 scf/service/deploy 16 scf/service 4 scf/doc 4 scf/bin 32 scf [root@localhost test]#
实例4:显示多个文件所占空间
[root@localhost test]# du log30.tar.gz log31.tar.gz 4 log30.tar.gz 4 log31.tar.gz [root@localhost test]#
实例5:只显示总和的大小
[root@localhost test]# du -s 1288 . [root@localhost test]# du -s scf 32 scf [root@localhost test]# cd .. [root@localhost soft]# du -s test 1288 test [root@localhost soft]# ————————————————
实例6:方便阅读的格式显示
[root@localhost soft]# du -h test 608K test/test6 308K test/test4 4.0K test/scf/lib 4.0K test/scf/service/deploy/product 4.0K test/scf/service/deploy/info 12K test/scf/service/deploy 16K test/scf/service 4.0K test/scf/doc 4.0K test/scf/bin 32K test/scf 8.0K test/test3 1.3M test [root@localhost soft]#
实例7:文件和目录都显示
[root@localhost soft]# du -ah test 4.0K test/log31.tar.gz 4.0K test/test13.tar.gz 0 test/linklog.log 0 test/test6/log2014.log 300K test/test6/linklog.log 0 test/test6/log2015.log 4.0K test/test6/log2013.log 300K test/test6/log2012.log 0 test/test6/log2017.log 0 test/test6/log2016.log 608K test/test6 0 test/log2015.log 0 test/test4/log2014.log 4.0K test/test4/log2013.log 300K test/test4/log2012.log 308K test/test4 4.0K test/scf/lib 4.0K test/scf/service/deploy/product 4.0K test/scf/service/deploy/info 12K test/scf/service/deploy 16K test/scf/service 4.0K test/scf/doc 4.0K test/scf/bin 32K test/scf 4.0K test/log2013.log 300K test/log2012.log 0 test/log2017.log 0 test/log2016.log 4.0K test/log30.tar.gz 4.0K test/log.tar.bz2 4.0K test/log.tar.gz 0 test/test3/log2014.log 4.0K test/test3/log2013.log 8.0K test/test3 4.0K test/scf.tar.gz 1.3M test [root@localhost soft]#
实例8:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
[root@localhost test]# du -c log30.tar.gz log31.tar.gz 4 log30.tar.gz 4 log31.tar.gz 8 总计 [root@localhost test]#
说明:加上-c选项后,du不仅显示两个目录各自占用磁盘空间的大小,还在最后一行统计它们的总和
实例9:按照空间大小排序
[root@localhost test]# du|sort -nr|more 1288 . 608 ./test6 308 ./test4 32 ./scf 16 ./scf/service 12 ./scf/service/deploy 8 ./test3 4 ./scf/service/deploy/product 4 ./scf/service/deploy/info 4 ./scf/lib 4 ./scf/doc 4 ./scf/bin [root@localhost test]#
实例10:输出当前目录下各个子目录所使用的空间
[root@localhost test]# du -h --max-depth=1
608K ./test6
308K ./test4
32K ./scf
8.0K ./test3
1.3M .
[root@localhost test]#
十一、其他常用命令
1、find
find . -name "*.c" //将目前目录及其子目录下所有延伸档名是 c 的文件列出来 find . -type f //将目前目录其其下子目录中所有一般文件列出 find . -ctime -20 //将目前目录及其子目录下所有最近 20 天内更新过的文件列出 find /var/log -type f -mtime +7 -ok rm {} \; //查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们 find . -type f -perm 644 -exec ls -l {} \; //查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件 find / -type f -size 0 -exec ls -l {} \; //为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
2、whereis
whereis ls //将和ls文件相关的文件都查找出来
3、which
说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 which bash //查看指令"bash"的绝对路径 /etc/passwd 是用于保存用户信息的文件 /usr/bin/passwd 是用于修改用户密码的程序 which 命令可以查看执行命令所在位置,例如: which ls # 输出 # /bin/ls which useradd # 输出 # /usr/sbin/useradd
4、sudo
说明:sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。需要输入自己账户密码。 使用权限:在 /etc/sudoers 中有出现的使用者 sudo -l //列出目前的权限 $ sudo -u yao vi ~www/index.html //以 yao 用户身份编辑 home 目录下www目录中的 index.html 文件
5、grep
grep -i "the" demo_file //在文件中查找字符串(不区分大小写) grep -A 3 -i "example" demo_text //输出成功匹配的行,以及该行之后的三行 grep -r "ramesh" * //在一个文件夹中递归查询包含指定字符串的文件
6、service
说明:service命令用于运行System V init脚本,这些脚本一般位于/etc/init.d文件下,这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径 service ssh status //查看服务状态 service --status-all //查看所有服务状态 service ssh restart //重启服务
7、free
说明:这个命令用于显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况 free -g //以G为单位输出内存的使用量,-g为GB,-m为MB,-k为KB,-b为字节 free -t //查看所有内存的汇总
8、top
top //显示当前系统中占用资源最多的一些进程, shift+m 按照内存大小查看
9、df
说明:显示文件系统的磁盘使用情况 df -h //一种易看的显示
10、mount
mount /dev/sdb1 /u01 //挂载一个文件系统,需要先创建一个目录,然后将这个文件系统挂载到这个目录上 dev/sdb1 /u01 ext2 defaults 0 2 //添加到fstab中进行自动挂载,这样任何时候系统重启的时候,文件系统都会被加载
11、uname
说明:uname可以显示一些重要的系统信息,例如内核名称、主机名、内核版本号、处理器类型之类的信息 uname -a
12、yum
说明:安装插件命令 yum install httpd //使用yum安装apache yum update httpd //更新apache yum remove httpd //卸载/删除apache
13、rpm
说明:插件安装命令 rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm //使用rpm文件安装apache rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm //使用rpm更新apache rpm -ev httpd //卸载/删除apache
14、 date
date -s "01/31/2010 23:59:53" ///设置系统时间
15、wget
说明:使用wget从网上下载软件、音乐、视频 示例:wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz //下载文件并以指定的文件名保存文件 wget -O nagios.tar.gz http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
17、ftp
ftp IP/hostname //访问ftp服务器 mls *.html - //显示远程主机上文件列表
18、scp
scp /opt/data.txt 192.168.1.101:/opt/ //将本地opt目录下的data文件发送到192.168.1.101服务器的opt目录下
十二、用户权限相关命令
常见面试题
在Linux系统中,以( 文件 )方式访问设备。
在Linux系统中,设备通常以文件的形式出现在文件系统中,这被称为“设备文件”。这些设备文件通常位于`/dev`目录下,代表了系统中的各种设备,如硬盘、磁盘分区、终端、键盘等。
通过这些设备文件,用户和应用程序可以像操作普通文件一样来访问设备,例如读取、写入或执行特定操作。这种方式使得Linux系统的设备管理更为灵活和统一。
例如,一个磁盘分区的设备文件可能被命名为`/dev/sda1`,一个终端设备的设备文件可能被命名为`/dev/tty1`。通过这些设备文件,系统可以识别和管理与之相关的设备。
在Linux内核引导时,从文件( /etc/fstab )中读取要自动加载的文件系统。
在Linux内核引导时,会从文件(/etc/fstab)中读取要自动加载的文件系统。这个文件的作用是存放文件系统的静态信息,包括文件系统的设备、挂载点、文件系统类型以及挂载选项等。系统在启动时会自动读取这个文件,并将其中指定的文件系统挂载到指定的目录。
你可以使用以下命令查看/etc/fstab文件的内容:
cat /etc/fstab
如果你需要修改/etc/fstab文件,可以使用以下命令:
vi /etc/fstab
在打开的编辑器中,你可以根据需要修改文件系统的设备、挂载点、文件系统类型和挂载选项等信息。修改完成后保存并退出编辑器即可。
在Linux系统中,文件链接分为:( 硬链接 )和( 符号/软 )链接。
在Linux系统中,文件链接分为硬链接和符号/软链接。
硬链接是指通过索引节点来创建的链接,它们与原始文件共享相同的索引节点和数据块。硬链接可以看作是原始文件的另一个名称,删除任何一个硬链接都不会影响其他硬链接或原始文件的可用性。创建硬链接的命令是ln,默认情况下,ln命令会创建硬链接。例如:
ln file1 file2
这将在当前目录下创建一个名为file2的硬链接,它与file1指向相同的文件。
符号/软链接是一个特殊的文件,它包含了指向另一个文件或目录的路径。软链接类似于Windows的快捷方式。软链接可以跨越文件系统边界,可以链接到不存在的文件或目录。删除原始文件后,软链接将变为无效。创建软链接的命令是ln -s,例如:
ln -s file1 file2
这将在当前目录下创建一个名为file2的软链接,它指向file1。
总结起来,硬链接是原始文件的另一个名称,而软链接是一个指向原始文件的特殊文件
某文件的权限为:drw-r--r--,用数值形式表示该权限为:( 644 ),该文件类型是( 目录 )。
某文件的权限为:drw-r–r–,用数值形式表示该权限为:644,该文件类型是目录。
以下是一个演示如何将文件权限转换为数值形式的示例:
import stat
# 文件权限字符串
permission_str = "drw-r--r--"
# 将权限字符串转换为数值形式
permission_num = stat.filemode(permission_str)
# 输出数值形式的权限print("数值形式的权限:", permission_num) # 输出:644
该示例使用了Python的stat模块中的filemode函数,该函数可以将文件权限字符串转换为数值形式
在文档中搜寻关键词的命令是( grep )。
是的,你可以使用grep命令在文档中搜寻关键词。grep是一个强大的文本搜索工具,它可以使用正则表达式搜索文本,并将匹配的行打印出来。
以下是grep命令的基本语法:
grep [选项] '搜寻字符串' 文件名
其中,选项可以是以下之一:
-a:将二进制文件以文本文件的方式搜索。
-c:只输出匹配行的计数。- -i:忽略大小写。
-n:显示匹配行及其行号。
-v:反转匹配,只显示不匹配的行。
–color=auto:高亮显示匹配的字符串。
例如,如果你想在文件example.txt中搜索关键词"hello",可以使用以下命令:
grep 'hello' example.txt
这将输出所有包含关键词"hello"的行。
改变文件的所有者的命令是( chown )。
chown命令用于修改文件的所有者和文件关联组。它是change owner的缩写。下面是chown命令的语法和示例:
语法:
chown 新所有者名或id 待修改的文件
示例:
chown wuqi test.txt
以上示例将test.txt文件的所有者修改为wuqi。请注意,你需要具有足够的权限才能使用chown命令来修改文件的所有者。
安装Linux系统对硬盘分区时,必须有两种分区类型:( 文件系统分区 ) 和( 交换分区 )。
在安装Linux系统时,必须有两种分区类型:文件系统分区和交换分区。
文件系统分区是用于存储操作系统和用户数据的分区。它包含了根分区(也称为root分区),所有的系统文件和目录都存储在这个分区内。文件系统分区可以使用不同的文件系统格式,如ext4、NTFS等。
交换分区是一种特殊的分区,用于将部分内存中的数据换出来,以腾出内存空间用于其他需求。当系统的物理内存快要用完时,操作系统会将一部分数据存储到交换分区中。交换分区可以提高系统的性能和稳定性。
以下是一个演示如何在Linux系统中进行硬盘分区的例子:
打开终端,并以root用户身份登录。
使用fdisk命令查看当前的硬盘分区情况:
fdisk -l
使用fdisk命令对硬盘进行分区:
fdisk /dev/sda
这里的/dev/sda是你要进行分区的硬盘设备名,可以根据实际情况进行修改。
根据提示,使用n命令创建新分区,并选择分区类型和大小。
使用w命令保存并退出fdisk。
格式化分区:
mkfs.ext4 /dev/sda1
这里的/dev/sda1是你创建的文件系统分区的设备名,可以根据实际情况进行修改。
创建交换分区:
mkswap /dev/sda2
这里的/dev/sda2是你创建的交换分区的设备名,可以根据实际情况进行修改。
启用交换分区:
swapon /dev/sda2
编辑/etc/fstab文件,将文件系统分区和交换分区添加到挂载列表中:
nano /etc/fstab
在文件末尾添加以下内容:
/dev/sda1 /mnt ext4 defaults 0 0/dev/sda2 none swap sw 0 0
这里的/mnt是文件系统分区的挂载点,可以根据实际情况进行修改。
保存并退出/etc/fstab文件。
重新挂载分区:
mount -a
Linux中的临时文件一般放在( /tmp )目录中。
Linux中每个用户都具有一个唯一的身份标识,称做( 用户ID /UID),以区别于其它用户。可以用( ) 命令查看当前登录用户的该标识。
在Linux中,每个用户都具有一个唯一的身份标识,称为用户ID(UID)。UID是一个数字,用于区分不同的用户。每个用户都有一个与之关联的UID,通过UID可以确定用户的身份和权限。
要查看当前用户的UID,可以使用以下命令:
id -u
该命令将输出当前用户的UID。
要查看所有用户的UID列表,可以使用以下命令:
cut -d: -f1 /etc/passwd
该命令将从/etc/passwd文件中提取出所有用户的用户名,并输出其对应的UID
在确定操作对象的位置,我们可以使用( 相对路径 )和( 绝对路径 )来表示文件的位置。
在确定操作对象的位置时,我们可以使用相对路径和绝对路径来表示文件的位置。
相对路径是相对于当前工作目录的路径。它不包含根目录,而是从当前目录开始的路径。相对路径可以使用".“表示当前目录,”…"表示上一级目录。例如,如果当前工作目录是/home/user/,而文件位于/home/user/documents/file.txt,则相对路径可以表示为documents/file.txt。
绝对路径是从根目录开始的完整路径。它包含了存储文件的各级文件夹。在Windows中,使用倒斜杠\来分隔路径,在Mac OS和Linux中使用正斜杠/作为路径分隔符。例如,文件位于/home/user/documents/file.txt,则绝对路径就是/home/user/documents/file.txt。
使用相对路径可以更方便地定位文件,特别是当文件与当前工作目录相关时。而使用绝对路径可以确保准确地找到文件,无论当前工作目录在哪里。
1、请说明用户的创建和可以对用户进行哪些操作,再说明与用户设置相关的配置文件有哪些?
用户的创建和操作:
创建用户:可以使用useradd命令来创建用户,例如useradd username,其中username是要创建的用户名。
删除用户:可以使用userdel命令来删除用户,例如userdel username,其中username是要删除的用户名。
修改用户信息:可以使用usermod命令来修改用户的信息,例如usermod -c "New Comment" username,其中-c选项用于修改用户的注释信息。
修改用户密码:可以使用passwd命令来修改用户的密码,例如passwd username,系统会提示输入新的密码。
与用户设置相关的配置文件:
/etc/passwd文件:该文件记录了系统中所有用户的基本信息,包括用户名、用户ID、用户组ID、用户主目录等。
/etc/shadow文件:该文件存储了用户的加密密码和密码过期信息。
/etc/group文件:该文件记录了系统中所有用户组的信息,包括用户组名、用户组ID和用户组成员。
用户主目录下的配置文件:在用户的主目录下,可以创建一些配置文件来定制用户的环境,例如.bash_profile、.bashrc、.bash_logout等。这些文件可以用来设置用户的环境变量、别名、自定义命令等。
2、请说明chmod命令的作用和使用格式,并说明其每个参数的作用?
chmod命令用于改变文件或目录的访问权限。它允许用户控制文件或目录的访问权限。chmod命令有两种使用格式:文字设定法和数字设定法。
文字设定法: chmod [who] [+|-|=] [mode] 文件名
[who]:表示要修改权限的对象,可以是以下之一:
u:文件或目录的属主
g:文件或目录的所属组
o:其他用户
a:所有用户(u、g和o的组合)
[+|-|=]:表示要添加、删除或设置权限。+表示添加权限,-表示删除权限,=表示设置权限。
[mode]:表示要设置的权限模式,可以是以下之一:
r:可读权限
w:可写权限
x:可执行权限
数字设定法: chmod [mode] 文件名
[mode]:表示要设置的权限模式,是一个由0到7的八进制数组成的三位数。每一位数表示一种权限,分别对应可读、可写和可执行权限。0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。将这些数字相加可以得到所需的权限。
示例:
chmod u+rwx,g+rw,o+r file.txt
以上命令将给文件file.txt的属主添加可读、可写和可执行权限,给所属组添加可读和可写权限,给其他用户添加可读权限
3、vi 编辑器有哪几种工作模式?如何在这几种工作模式之间转换?
答:Vi的工作模式有三种:命令模式、输入模式、末行模式。3分
在命令模式下输入a、A、i、I、o、O等命令之一可以进入输入模式,
在输入模式下按Esc键回到命令模式;
在命令模式下输入:进入末行模式,
末行命令执行完后回到命令模式。
命令行模式(Command Mode):
移动光标:
h:向左移动光标
j:向下移动光标
k:向上移动光标
l:向右移动光标
w:向前移动一个单词
b:向后移动一个单词
gg:跳转到文件开头
G:跳转到文件结尾
删除/修改:
x:删除光标处的字符
dw:删除光标所在位置至下一个单词结尾
dd:删除一行
u:撤销上一步操作
复制/粘贴:
yy:复制当前行
p:粘贴在光标之后
查找/替换:
/pattern:向前搜索指定文本模式
?pattern:向后搜索指定文本模式
:s/pattern/replacement/g:替换当前行匹配项
:%s/pattern/replacement/g:替换整个文件内的匹配项
退出与保存:
:q:如果未做任何修改,则退出vi
:q!:强制退出并放弃所有修改
:w:保存当前文件但不退出
:wq:保存并退出
ZZ:保存并退出(等同于:wq)
插入模式(Insert Mode):
进入插入模式:
i:在光标前开始插入文本
a:在光标后开始插入文本
o:在当前行下方新建一行并进入插入模式
O:在当前行上方新建一行并进入插入模式
退出插入模式:
按下Esc键返回命令行模式
底行模式(Last Line Mode):
除了上述在命令行模式下的命令外,在命令行模式下按下冒号:进入底行模式,可以执行更多高级命令:
:w filename:另存为指定文件名
:e!:放弃所有更改并重新加载文件
:set nu:显示行号
:help或:h:查看帮助文档
:source ~/.vimrc:重新加载用户的.vimrc配置文件
4、Ls 命令执行什么功能?可以带哪些参数,有什么区别?(5分)
ls 执行的功能:列出指定目录中的目录,以及文件
哪些参数以及区别:a 所有文件l 详细信息,包括大小字节数,可读可写可执行的权限
持续更新