linux技术文档

一、基础知识

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 详细信息,包括大小字节数,可读可写可执行的权限

持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石明亮(JT)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值