Linux 常用命令
系统安全
sudo
// 超级用户
su
// 用于切换当前用户身份到其他身份,变更时需输入所要变更的用户账号与密码。
chmod
// 用来变更文件或目录的权限
setfacl
// 设置文件访问控制列表
进程管理
w
// 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
top
// 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。
ps
// 用于报告当前系统的进程状态。
kill
// 可以按照进程名杀死进程。
pstree
// 以树状图的方式展现进程之间的派生关系,显示效果比较直观。
killall
// 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。
用户管理
id
// 可以显示真实有效的用户ID(UID)和组ID(GID)。
usermod
// 用于修改用户的基本信息。
useradd
// 用于 Linux中创建的新的系统用户。
groupadd
// 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
userdel
// 用户删除给定的用户,以及与用户相关的文件。
文件系统
mount
// 用户加载文件系统到指定的加载点。
unmount
// 用于卸载已经加载的文件。
fsck
// 用于检查并且试图修复文件系统中的错误。
df
// 用于显示磁盘分区上的可使用的磁盘空间。
du
// 对文件和目录磁盘使用的空间的查看。
系统关机和重启
shutdown
// 关机
reboot
// 重启
网络应用
curl
// 是一个利用URL规则在命令行下工作的文件传输工具。
telnet
// 用于登录远程主机,对远程主机进行管理。
mail
// 命令行的电子邮件发送和接收工具。
elinks
// 能实现一个纯文本界面的WWW浏览器
网络测试
ping
// 用于测试主机之间网络的连通性。
netstat
// 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
host
// 常用的分析域名查询工具,可以用来测试域名系统工作是否正常。
网络配置
hostname
// 用于显示和设置系统的主机名称。
ifconfig
// 被用于配置和显示Linux内核中网络接口的网络参数。
常用工具
ssh
// openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
screen
// 是一款由GNU计划开发的用于命令行终端切换的自由软件。
clear
// 用于清除当前屏幕终端上的任何信息。
who
// 显示当前登录系统的用户信息。
date
// 显示或设置系统时间与日期。
软件包管理
yum
// 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
rpm
// rpm软件包的管理工具。
apt-get
// Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体如同 Windows上的安装文件。
文件查找和比较
locate
// 用来查找文件或目录。
find
// 用来在指定目录下查找文件。
文件内容查看
head
// 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
tail
// 用于输入文件中的尾部内容。tail命名默认在屏幕上显示指定文件的末尾10行。
more
// 用来浏览文件档案的内容(只能向前浏览)。
less
// 用来浏览文字档案的内容,允许用户向前或向后浏览文件。使用该命令时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
文件处理
unlink
// 用于系统调用函数 unlink 去删除指定的文件。
rename
// 用字符串替换的方式批量改变文件名。
cat
// 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
touch
// 有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
ln
// 用来为文件创建连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用”-s”选项(注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限时没有意义的)
目录操作
cd
// 用来切换工作目录至 dirname。
mv
// 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
rm
// 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。
pwd
// 以绝对路径的方式显示用户当前工作目录。
tree
// 以树状图列出目录的内容。
cp
// 用来将一个或过个源文件或者目录复制到指定的目的文件或目录
ls
// 用来显示目录列表,在 Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以区分不同类型的文件。
文件权限属性
setfacl
// 用来变更文件或目录的权限。
chmod
// 设置文件访问控制列表。
chgrp
// 用来改变文件或目录所属的用户组。
chown
// 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者。
文件传输
ftp
// 用来设置文件系统相关功能。
scp
// 用于在Linux下远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。
Linux系统定时任务
crontab
命令
at
命令
1 2 3 4 5
| at>/home/Jason/do_job at>Ctrl + D
总体意思,明天两点执行 do_job,最终退出
|
注:at
命令 是一次性执行,不是循环执行,也不是周期性执行。
面试/笔试题
获取文件行数
输入文件的最后5行到另一个文件中
1
| tail -n 5 file1 >> file2
|
查找文件中包含hello的行
查找当前目录下所有目录名为var
的子目录的命令
1
| find ./var -maxdepth 1 -type d -print
|
如何让一个程序在后台运行并把输入定向到指定的文件
如何实时的显示一个文件的输出
1 2 3 4
| 使用more或者less
// 或者 tail -100f // 实时显示输出的后100行
|
查看所有用户
有mail.log的一个文档,内容为若干邮件地址,其中用’\n’将邮件地址分隔。要求从中
有mail.log的一个文档,内容为若干邮件地址,其中用’\n’将邮件地址分隔。要求从中
挑选出sina.com的邮件地址(包括从文件读取、过滤到列印出来)。
mail.log内容如下:
james@sina.com.cn
jack@163.com
zhansan@sohu.com
lisi@hotmail.com
wangwu@gmail.com
1
| cat mail.log | grep sina.com
|
请解释下列10个shell命令的用途
top、ps、mv、find、df、cat、chmod、chgrp、grep、wc
top
: 该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用情况。
ps
: 显示系统进程在瞬间的运行动态。
mv
: 文件/目录改名或变更存储位置
find
: 在指定的路径下查找指定文件。
df
: 检查磁盘空间占用情况。
cat
: 将文件的内容打印到标准输出。
chmod
: 改变文件的权限。
chgrp
: 改变文件所属组
grep
: 过滤文本,根据指定的字符串,对文件的每一行进行搜索,如找到,则输出该行内容。
wc
: 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。