LInux
一:绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
1.绝对路径:路径的写法一定是由根目录 / 写起的,例如 :# cd /mnt/backups/
2.查看当前目录命令:pwd
3.回退一级目录:cd ..(cd 是目录切换命令)
4.回到主目录(当前用户的目录):cd ~
二:怎么查看当前进程?怎么执行退出?怎么查看当前路径?
1.查看当前进程: ps
(1)ps -ef 是用标准的格式显示进程的、其格式如下:
UID :用户ID、但输出的是用户名
PID :进程的ID
PPID:父进程ID
C:进程占用CPU的百分比
STIME :进程启动的时间
TTY :启动进程的终端名,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
TIME:进程共占用CPU的时间
CMD :命令的名称和参数
(2)ps aux 是用BSD的格式来显示、其格式如下:
USER 进程的用户;
PID 进程的ID;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
VSZ 该进程使用的虚拟内存量(KB);
RSS 该进程占用的固定内存量(KB);
TTY 该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程;
START 该进程被触发启动时间;
TIME 该进程实际使用CPU运行的时间;
COMMAND 命令的名称和参数;
2.退出当前进程:exit
3.查看当前路径:pwd
三:怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
1.清屏:clear
2.退出当前命令: ctrl+c 彻底退出(退出当前正在查看的界面log日志,恢复到可以执行命令的页面)
执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台
3.查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
4.查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个告诉你一些常用参数; info adduesr;
四:Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
1.ls 执行的功能: 列出指定目录中的目录,以及文件
2. ls -a :所有文件
3.ls -l :详细信息,包括大小字节数,可读可写可执行的权限等
五:建立软链接(快捷方式),以及硬链接的命令。
1.软链接: ln -s slink source
2.硬链接: ln link source
六:目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
1.创建目录: mkdir
2.创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
3.复制文件: cp (把text复制到 /mnt/backups/)
七: 文件权限修改用什么命令?格式是怎么样的?
1.文件权限修改: chmod
八:查看文件内容有哪些命令可以使用?
1.vi
(1) vi 文件名:查看文件,此时只能查看处于命令行模式,且光标在文件最前面。
(2)打开文件之后,i:进入插入模式,可以编辑文件
(3)编辑完之后,先退出插入模式:ESC,之后进入命令行模式“:”,在命令行输入退出文件命令:
- w filename (输入 「w filename」将文章以指定的文件名filename保存)
- wq (输入「wq」,存盘并退出vi)
- q! (输入q!, 不存盘强制退出vi)
(4)可以在命令行模式下:
- 显示行号:set number或者:set nu
- 取消行号显示:set nu!
2.cat 文件名 :显示全部文件内容
3.more 文件名 #分页显示文件内容
(1)more:
(2)more +数字:从第几行开始显示
(3)more -数字:只显示到第几行
4.less 文件名 :与 more 相似,更好的是可以往前翻页
(1)空格键 滚动一行
(2)回车键 滚动一页
(3)[pagedown]: 向下翻动一页
(4)[pageup]: 向上翻动一页
(5)q:退出less命令
5.tail 文件名 :仅查看尾部,还可以指定行数,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容
6.head 文件名 :仅查看头部,还可以指定行数
(1)head 文件名:
(2)head -c 字节数 文件名 : 显示字节数
(3)head -n 行数 文件名 : 显示行数
九:随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
1.vi/vim:写文件命令
2.echo hello world:echo向屏幕输出命令
十:移动文件用哪个命令?改名用哪个命令?
1.mv 文件 指定地址
2.mv
十一:复制文件用哪个命令?如果需要连同文件夹一块复制呢?
1.cp:只能复制文件
2.cp -r:可以复制文件夹
十二:删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
1.删除文件:rm(remove directory的简写)
2.删除文件夹以及其下文件:rm -r
3.删除空文件夹:rm -r(会询问你是否删除),rmdir:直接删除
十三:Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
1.“?”可替代单个字符。
2.“*”可替代任意多个字符。
3.方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
十四:用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
wc 命令:
1.- c 统计字节数
2.- l 统计行数
3.- w 统计字数。
十五:Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
1.是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
2.忽略大小写:grep [小写字符(字符串)大写字符(字符串)] filename
3.查找不含该串的行:grep -v 'he' 412.txt 显示输出没有字符“he”所有的行
十六:Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
1.进程状态:
(1)不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
(2)暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
(3)就绪状态:在 run_queue 队列里的状态
(4)运行状态:在 run_queue 队列里的状态
(5)可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
(6)zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
(7)退出状态
2.ps aux显示出来的信息表示状态的符号
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程
3.stat 中的参数意义如下:
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
n 低优先级
s 包含子进程
+ 位于后台的进程组
十七:怎么使一个命令在后台运行?
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
十八:利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
1.ps -ef :(system v 输出)
2.ps aux :bsd 格式输出
3.ps -ef | grep pid:显示指定进程的信息(因为grep 是个文本搜索工具,会显示出所有搜索出来的东西)
十九:哪个命令专门用来查看后台任务?
1.jobs:查看当前有多少在后台运行的命令
2.jobs -l:可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。
二十:把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
1.把后台任务调到前台执行 fg
2.把停下的后台任务在后台执行起来 bg
二十一:终止进程用什么命令? 带什么参数?
1.kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
2.kill-9 pid
3.kill命令详解:
- 1.命令格式:
- kill[参数][进程号]
- 2.命令功能:
- 发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
- 3.命令参数:
- -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
- -a 当处理当前进程时,不限制命令名和进程号的对应关系
- -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
- -s 指定发送信号
- -u 指定用户
- 注意:
- kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。
-
4.使用实例:
- kill -l:显示所有的信号
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
二十二:怎么查看系统支持的所有信号?
kill -l
二十三:搜索文件用什么命令? 格式是怎么样的?
1.搜索文件格式:find <指定目录> <指定条件> <指定动作>
find
find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。
find的使用格式如下:
#find [指定目录] [指定条件] [指定动作]
指定目录:是指所要搜索的目录和其子目录。如果不指定,则默认为当前目录。
指定条件:是指所要搜索的文件的特点。
指定动作:是指对搜索的结果如何处理。
常见选项:
-name 根据文件名称查找(严格区分大小写,如果文件名中间有空格,则必须把文件名用双引号引起来)
-iname 根据文件名查找(不区分大小写)
-regex "PATTERN" 正则表达式匹配
-user 根据文件属主进行查找
-group 根据文件属组进行查找
-uid 根据文件的uid查找
-gid 根据用户的gid查找
-nouser 查看所有的没有属主的文件
-nogroup 查看所有的没有属组的文件
例:查看tmp目录下,文件属主为redhat的文件
#ls -l `find /tmp -user redhat`
2.案例:
- find /etc/ -name 文件名 根据文件名查找(精确查找)
- find /etc/ -name *(前面忽略)字符串 查找尾部有字符串的文件
文件名通配的知识:
*表示 通配任意的字符
?表示 通配任意的单个字符
[ ] 表示 通配括号里面的任意一个字符
- find /etc -maxdepth 1 -name 文件名:查找/etc/下的文件,查找一层
二十四:查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
1.查找自己所在的终端信息:who am i
2.查看当前谁在使用该主机:who
二十五:使用什么命令查看用过的命令列表?
history
二十六:使用什么命令查看磁盘使用空间? 空闲空间呢?
1.df -h或者df -hl
2.各个列表示的意义:
- Filesystem:文件系统
- Size:容量
- Used: 已用
- Avail:可用
- Use%: 已用%
- Mounted on :挂载点
二十七:使用什么命令查看网络是否连通?
Netstat: 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
从整体上看,netstat的输出结果可以分为两个部分:
- 一个是Active Internet connections,称为有源TCP连接
- 其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
- 另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
- Proto显示连接使用的协议
- RefCnt表示连接到本套接口上的进程号
- Types显示套接口的类型
- State显示套接口当前的状态
- Path表示连接到套接口的其它进程使用的路径名。
二十八:使用什么命令查看 ip 地址及接口信息?
ifconfig:命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
1.命令ifconfig
- eth0 表示第一块网卡
- inet :用来表示网卡的IP地址:172.17.118.85
- broadcast:广播地址:172.17.127.255
- netmask:掩码地址:255.255.240.0
- lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
二十九:查看各类环境变量用什么命令?
1.查看所有 env
2.查看某个,如 home: env $PATH
三十:查看当前目录下各个文件及目录占用空间大小
1.du -sh *
2.du -h --max-depth=1 /home :仅列出home目录下面所有的一级目录文件大小;
三十一:通过什么命令查找执行命令?
which 只能查可执行文件
whereis 只能查二进制文件、说明文档,源文件等
三十二:
1.find
2.locate
locate命令不是实时查找,所以查找的结果不精确,但查找速度很快。因为它查找的不是目录,而是一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
locate使用格式
locate [指定目录]
例:查找所有包含passwd的文件
#locate passwd
例:查找所有包含passwd的文件,并且只显示前十个
#locate -n 10 passwd
3.which
which命令是查找命令是否存在,以及命令的存放位置在哪儿。
例:#which ls
4.whereis
用法:whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
参数:
- -b 只查找二进制文件。
- -B<目录> 只在设置的目录下查找二进制文件。 -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -M<目录> 只在设置的目录下查找说明文件。 -s 只查找原始代码文件。
- -S<目录> 只在设置的目录下查找原始代码文件。 -u 查找不包含指定类型的文件。
whereis命令只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使用实例:
#whereis vim
三十三:怎么对命令进行取别名?
alias la='ls -a'
三十四:du 和 df 的定义,以及区别?
du 显示目录或文件的大小
df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。
(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。
df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。
三十五:如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?
使用命令compgen -c,可以打印出所有支持的命令列表。
三十六:你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
使用linux命令 ’disown -r ’可以将所有正在运行的进程移除。
三十七:bash shell 中的hash 命令有什么作用?
linux命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。
三十八:哪一个bash内置命令能够进行数学运算。
bash shell 的内置命令let 可以进行整型数的数学运算。
三十九:怎样一页一页地查看一个大文件的内容呢?
通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要.
[root@localhost ~]# cat file_name.txt | more
四十:数据字典属于哪一个用户的?
数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的
四十一:怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?
使用命令whatis 可以先出显示出这个命令的用法简要,比如,你可以使用whatis more 去查看‘more’的介绍以及使用简要。
四十二:使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
使用命令repquota 能够显示出一个文件系统的配额信息
【附】只有root用户才能够查看其它用户的配额。