为您找到与Linux命令行如何识别文件类型相关的共200个结果:
file是通过查看文件的头部内容,来获取文件的类型。使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。那么Linux怎么使用file命令识别文件类型?
我们知道Linux文件系统是Linux内核支持的基本功能之一,并由根 / 开始往下形成倒立树状的级连式结构。文件与目录是Linux文件系统的两个基本元素,(广义的)文件分为普通文件、目录文件、连接文件和特殊文件。可以通过file命令来识别各种不同的文件类型。
linux对于文件的扩展名没有像windows要求的那么严格,所以在使用linux的过程中经常会遇到有些文件根本就没有扩展名,哪么我们应该如何去判断没有扩展名的文件,到底是文件还是目录呢?其实我们可以借助file来检查文件的类型,示例如下:
[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
install.log为文本文件
[root@localhost ~]# file /usr/local/
/usr/local/: directory
/usr/local为目录、
在Linux系统中,文件类型根据文件的权限以及文件内容类型来划分的。在linux中文件本身是不需要后缀名称的,我们习惯上添加后缀名称仅仅是便于直观了解这是哪种用途类型。
语法:file [选项] [文件]
file命令检验文件类型按以下顺序来完成:
检验文件系统(Filesystem)中支持的文件类型。
检验magic file规则。
检验文件内容的语言和字符集。
检验文件系统(Filesystem)中支持的文件类型
文件系统支持的文件类型指的是通过ls -l 中第一个字符表示的文件类型:
-(regular):正规文件(包括文本文件(ASCII,会打印text),可执行文件(会打印excutable),其他二进制文件(会打印data))
d(directory):目录
l(link):软链接(不包括硬连接,硬链接会以正规文件显示
b(block buffered special):随机存储的设备文件,如硬盘,光盘等存储设备
c(character unbuffered special):持续输入的设备文件,如鼠标,键盘
s(socket):socket文件,最常在/var/run目录下看到这类文件
p(pipe):管道文件(first-in-first-out),它的目的在解决多个程序同时存取一个文件造成的错误问题
检验magic file规则
magic file指的是那些具有特殊文件格式的文件,如C文件,它会有#include字样;tar文件的前几个字节会有特殊的规则。而检验magic file规则就是根据这些特殊的格式去判断一个文件的类型。而这些规则是保存在$HOME/.magic.mgc,$HOME/.magic,/etc/magic.mgc,/etc/magic/usr/share/misc/magic.mgc,/usr/share/misc/magic中。
*/magic文件是文本文件,而*/magic.mgc文件则是由*/magic编译后的二进制文件。同一目录下若存在*/magic.mgc则使用该文件,否则使用*/magic。
这些配置的优先级为$HOME/.magic*>/etc/magic*>/usr/share/misc/magic*。
*/magic文件内容格式
文件中的每行都指定了一个规则测试去检验文件类型,这个规则由4个域指定:
offset:指定由文件起始的第几个byte开始检验。
type:要进行检验的数据类型,即由offset那个byte开始的那个数据类型是什么。具体有哪些数据类型,可以参才magic(5)。常用的数据类型有
byte:一个byte的值
short:两个byte的值
long:四个byte的值
string:字符串。
test:检验值。用于检验offset下的type是否是这个test值。使用C语言的数值或字符表示形式。
message:用于显示检验结果的信息显示
如果type为数值类型,那么其后面可添加&value,表示先与后面的test值进行‘与’操作,再进行比较。如果type为字符串类型,则其后可跟/[Bbc]*,/b表示忽略空格,/c表示忽略字母大小写。
如果test的值为数值类型,可以数值前添加=,<,>,&,^,~,分别表示相等、小于、大于、与操作、异或操作、取反操作。如果test的值为字符串类型,可以在其前添加=、<、>。
看过“ Linux怎么使用file命令识别文件类型 ”
浏览量:2
下载量:0
时间:
在Linux系统操作过程中,没有扩展名的文件难以识别,我们可以使用命令来识别文件类型,下面读文网小编就给大家介绍下如何使用file命令来识别文件类型。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
我们知道Linux文件系统是Linux内核支持的基本功能之一,并由根 / 开始往下形成倒立树状的级连式结构。文件与目录是Linux文件系统的两个基本元素,(广义的)文件分为普通文件、目录文件、连接文件和特殊文件。可以通过file命令来识别各种不同的文件类型。
linux对于文件的扩展名没有像windows要求的那么严格,所以在使用linux的过程中经常会遇到有些文件根本就没有扩展名,哪么我们应该如何去判断没有扩展名的文件,到底是文件还是目录呢?其实我们可以借助file来检查文件的类型,示例如下:
[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
install.log为文本文件
[root@localhost ~]# file /usr/local/
/usr/local/: directory
/usr/local为目录
上面就是Linux下使用file命令识别文件类型的方法介绍了,对于没有扩展名的文件来说,使用该命令就能轻易识别,赶紧试试看吧。
浏览量:2
下载量:0
时间:
很多时候,当我们写一个脚本时,我们总会提供一些可选的命令选项。当可选项比较多的时候,比如git, 如果能够提供命令自动补全,那么的Linux中命令行怎么补全命令呢?下面跟着读文网小编一起来了解一下吧。
在 Linux 系统中,当你输入一个命令,再按两次 TAB 键,就会列出所有以你输入字符开头的可用命令。这并不新鲜,可能你已经知道了。这个功能被称作命令行补全bash completion。默认情况下,bash 命令行可以自动补全文件或目录名称。不过,我们可以增强 bash 命令补全功能,通过 complete 命令让它达到新的高度。
这个教程说明了我们是怎样使用可编程的命令行补全功能(programmable completion)把自动补全功能应用于选项或者命令行参数。
例如:在输入 write 命令之后,如果你按两次 TAB 按键,自动补全功能会提供可供执行 write 操作的用户列表。
$ write[TAB][TAB]
bala raj
jason randy
john ritu
mayla thomas
nisha www-data
在下面的例子中,可以为 telnet 命令显示可用的主机名:
$ telnet [TAB][TAB]
localhost dev-db fileserver
要让可编程命令补全功能在你的终端起作用 ,你只需要如下执行/etc/bash_completion即可:
#./etc/bash_completion
你也可以取消/etc/bash.bashrc(来自 Ubuntu Linux 13.04 系统)中如下的注释,这样,你就可以不需要执行上面的命令了:
### enable bash completion in interactive shells
if! shopt -oq posix;then
if[-f /usr/share/bash-completion/bash_completion ];then
./usr/share/bash-completion/bash_completion
elif[-f /etc/bash_completion ];then
./etc/bash_completion
fi
fi
如果你没有发现这些代码,也没有找到/etc/bash_completion文件,那么你只需要通过使用apt-get命令来安装bash_completion 包即可。
1. 查看已有的命令行补全
在启用可编程的命令行补全功能后,就已经有了一些定义好的命令补全功能。complete 命令用于定义命令行补全。
要查看已有的命令行补全,如下使用 complete 命令:
complete -p |less
上面例子中的 -p 选项是可选的。
2. 列出 bash 中标准补全功能
默认情况下,Bash 为 Linux 用户提供了下列标准补全功能。
变量补全
用户名补全
主机名补全
路径补全
文件名补全
我们在之前的 bash 标准补全中讨论过这些。
3. 定义一个命令名补全
通过 -c 选项可以将所有的可用命令作为一个命令的补全参数。在下面的例子里面,为 which 命令定义了一个补全(LCTT译注:在按两下 TAB 时,可以列出所有命令名作为可补全的参数)。
$ complete -c which
$ which [TAB][TAB]
Display all 2116 possibilities?(y or n)
如上,如果按下 ‘y’,就会列出所有的命令名。
4. 定义一个目录补全
通过选项 -d,可以定义一个仅包含目录名的补全参数。在下面的例子中,为 ls 命令定义了补全。
$ ls
countfiles.sh dir1/ dir2/ dir3/
$ complete -d ls
$ ls[TAB][TAB]
dir1/ dir2/ dir3/
如上,连按下 TAB 仅会显示目录名。
5. 定义一个后台任务名补全
补全功能也能够以任务名作为补全参数。选项 -j 可以定义任务名作为传递给命令的参数,如下:
$ jobs
[1]-Stoppedcat
[2]+Stoppedsed'p'
$ complete -j ./list_job_attrib.sh
$ ./list_job_attrib.sh [TAB][TAB]
catsed
关于后台任务,你可以参考 Linux 后台任务中的例子了解如何管理后台任务。
6. 带有前缀和后缀的补全
补全功能可以为实际的补全内容定义前缀和后缀。在下面的例子中,为 list_job_attrib.sh 定义了补全内容的前缀和后缀。
$ jobs
[1]+Stoppedcat
$ complete -P '">'-S '<"'./list_job_attrib.sh
$ ./list_job_attrib.sh [TAB][TAB]
$ ./list_job_attrib.sh ">cat<"
7. 带有排除的文件名和目录名补全
假如脚本运行完成后,输出目录如下:
$ cd output/
$ ls
all_calls.txt incoming_calls.txt outgoing_calls.txt missed_calls.txt
parser_mod.tmp extract.o
如上,如果你想要 ls 命令的补全忽略 .tmp 和 .o 文件:
$ export FIGNORE='.tmp:.o'
$ complete -f -d ls
$ cd output
$ ls[TAB][TAB]
all_calls.txt incoming_calls.txt outgoing_calls.txt missed_calls.txt
FIGNORE 是一个环境变量,它包含了自动补全所需要排除的文件名后缀。
8. 通过 IFS 变量分割字符串得到补全值
可以通过 -W 选项定义补全值列表,然后通过 IFS 环境变量进行切分。切分结果会展开变量并作为补全显示。
$ export IFS=" "
$ complete -W "bubble quick"./sort_numbers.sh
$ ./sort_numbers.sh [TAB][TAB]
bubble quick
如上所述,字符串通过 IFS 分隔符进行切分后,内嵌的变量会被展开为变量值,所以可以如下使用变量:
$ echo $SORT_TYPE1
bubble
$ echo $SORT_TYPE2
quick
$ complete -W "$SORT_TYPE1 $SORT_TYPE2"./sort_numbers.sh
$ ./sort_numbers.sh [TAB][TAB]
bubble quick
9. 写个函数来生成补全
你可以引入一个函数来定义补全。使用 -F 选项将函数名传给 complete 命令,执行函数生成补全内容。例如,函数如下:
_parser_options()
{
local curr_arg;
curr_arg=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W '-i --incoming -o --outgoing -m --missed'-- $curr_arg ));
}
在上述函数中:
COMPREPLY : 该数组控制连按下 TAB 后显示的结果
COMP_WORDS : 该数组包含命令行输入的单词
COMP_CWORD : COMP_WORDS 数组的索引,使用它来区分命令行可以访问的单词位置
compgen : -W 基于 $current_arg 提供可能的补全及其参数
该函数放在 parser_option 文件中,并通过 source 命令引入:
$ source parser_option
将该函数和你的 parser.pl 脚本关联起来:
$ complete -F _parser_options ./parser.pl
$ ./parser.pl [TAB][TAB]
-i --incoming -o --outgoing -m --missed
如上,parser.pl 的选项是由函数 _parser_options() 生成的。
提示: 查看/etc/bash_completion 来了解更多的可编程补全函数。
10. 当第一个规则没有生成结果时,就使用第二个
如果定义的补全规则没有生成匹配时,可以使用 -o 选项生成补全。
$ complete -F _count_files -o dirnames ./countfiles.sh
如上,为 ./countfiles.sh 定义了 _count_files 补全函数。 如果 the _count_files() 函数没有生成任何匹配的话,就会触发目录补全。
$ ls
countfiles.sh dir1/ dir2/ dir3/
$./countfiles.sh [TAB][TAB]
dir1 dir2 dir3
看过“ 10个有用的Linux命令行补全例子 ”
浏览量:2
下载量:0
时间:
在linux下如何设置日期和时间呢?假如你的linux系统没有安装GUI,而只能通过ssh或者telnet登陆到linux操作系统里,如何在linux操作系统下设置日期呢?那么使用命令行怎么更改Linux系统的日期和时间呢?下面跟着读文网小编一起来了解一下吧。
问题: 在 Linux 上, 我怎样通过命令行来改变日期和时间?
在 Linux 系统中保持日期和时间的同步是每一个 Linux 用户和系统管理员的重要责任。 很多程序都依靠精确的时间信息得以正常工作。 另外, 不精确的日期和时间会使得日志文件中的时间戳变得毫无意义, 减弱了它们在系统检查和检修中的作用。 对于生产系统来说, 精确的日期和时间甚至更为重要。 例如, 在零售公司中, 所有产品必须时刻准确地计数(并储存在数据库服务器中)以便于财政部门计算每天及每周,每月,每年的支出和收入。
我们必须注意, 在 Linux 机器上有两种时钟:由内核维持的软件时钟(又称系统时钟)和在机器关机后记录时间的(电池供电的)硬件时钟。 启动的时候,内核会把系统时钟与硬件时钟同步。之后, 两个时钟各自独立运行。
更改Linux系统的日期和时间方法一:Date 命令
在 Linux 中, 你可以通过 date 命令来更改系统的日期和时间:
# date --set=‘NEW_DATE’
其中 NEW_DATE 是诸如 “Sun, 28 Sep 2014 16:21:42” 或者 “2014-09-29 16:21:42” 的可读格式的日期字符串。
日期格式也可以手动指定以获得更精确的结果:
# date +FORMAT --set=‘NEW_DATE’
例如:
# date +’%Y%m%d %H%m’ --set=‘20140928 1518’
你也可以用相对的方式地增加或减少一定的天数,周数,月数和秒数,分钟数,小时数。 你也可以把日期和时间的参数放到一个命令中。
# date --set=‘+5 minutes’# date --set=‘-2 weeks’# date --set=‘+3 months’# date --set=‘-3 months +2 weeks -5 minutes’
最后, 把硬件时钟设置为当前系统时钟:
# hwclock --systohc
运行 hwclock --systohc 的目的是将硬件时钟同软件时钟同步, 这可以更正硬件时钟的系统漂移(即时钟按照一定的速度走快或走慢)。
另一方面, 如果硬件时钟是正确的, 但系统时钟有误, 可以用下面的命令更正:
# hwclock --hctosys
在两种情况下, hwclock 命令都是将两个时钟同步。 否则, 重启后时间会是错误的, 因为当电源关闭时硬件时钟会记忆时间。 然而, 这对于虚拟机器并不适用, 因为虚拟机器并不能访问硬件时钟。
更改Linux系统的日期和时间方法二:NTP
另一种使系统日期和时间保持精确的方法是使用 NTP (网络时间协议)。 在 Linux 上, ntpdate 命令通过 NTP 将系统时钟和公共 NTP 服务器同步。
你可以使用如下命令来安装 ntpdate:
在 Debian 及基于 Debian 的发行版上:
# aptitude install ntpdate
在基于 Ret Hat 的发行版上:
# yum install ntpdate
使用 NTP 同步系统时钟:
# ntpdate -u 《NTP 服务器名或IP》# hwclock --systohc
除了一次性使用 ntpdate 来同步时钟, 你也可以使用 NTP 守护进程(ntpd), 它会始终在后台运行, 不断地通过 NTP 来调整系统时钟。
上面就是使用命令行更改Linux系统日期和时间的方法介绍了,如果你想用命令行修改Linux系统的话,不妨试试上面介绍的方法步骤吧。
浏览量:3
下载量:0
时间:
4月7日凌晨,微软推送了最新的Win10一周年更新预览版14316,这也是Build2016开发者会后首个Windows10系统版本,在该版本中包含了大部分已宣布内容,其中就包括重要的原生支持Linux Bash命令行支持。用户可以不用开启Linux系统就可以使用Bash了。那么Win10系统怎么开启Linux Bash命令行?下面跟着读文网小编一起去了解下吧。
1、首先将Win10系统升级到最新的Build 14316,然后到系统设置——更新和安全——针对开发人员——选择开发者模式。
2、然后系统搜索“程序和功能”,选择“开启或关闭Windows功能”,开启Windows Subsystem for Linux (Beta),并重启系统。
3、安装Bash,需要开启命令行模式,然后输入“bash”,即可使用。
总结:以上就是Win10系统开启Linux Bash命令行的方法步骤了,这样一来就可以在Win10系统下使用Bash命令行了。
看过“ Win10系统怎么打开Linux Bash命令行 ”
浏览量:2
下载量:0
时间:
网友问到小编“我经常在 Linux 桌面查看天气预报。然而,是否有一种在终端环境下,不通过桌面小插件或者浏览器查询天气预报的方法?”读文网小编为大家分享在Linux 命令行下浏览天气预报的方法,供大家参考!
对于 Linux 桌面用户来说,有很多办法获取天气预报,比如使用专门的天气应用、桌面小插件,或者面板小程序。但是如果你的工作环境是基于终端的,这里也有一些在命令行下获取天气的手段。
其中有一个就是 wego,一个终端下的小巧程序。使用基于 ncurses 的接口,这个命令行程序允许你查看当前的天气情况和之后的预报。它也会通过一个天气预报的 API 收集接下来 5 天的天气预报。
在 Linux 下安装 wego
安装 wego 相当简单。wego 是用 Go 编写的,引起第一个步骤就是安装 Go 语言。然后再安装 wego。
$ go get github.com/schachmat/wego
wego 会被安装到 $GOPATH/bin,所以要将 $GOPATH/bin 添加到 $PATH 环境变量。
$ echo'export PATH="$PATH:$GOPATH/bin"'>>~/.bashrc
$ source ~/.bashrc
现在就可与直接从命令行启动 wego 了。
$ wego
第一次运行 weg 会生成一个配置文件(~/.wegorc),你需要指定一个天气 API key。 你可以从 worldweatheronline.com 获取一个免费的 API key。免费注册和使用。你只需要提供一个有效的邮箱地址。
你的 .wegorc 配置文件看起来会这样:
除了 API key,你还可以把你想要查询天气的地方、使用的城市/国家名称、语言配置在 ~/.wegorc 中。 注意,这个天气 API 的使用有限制:每秒最多 5 次查询,每天最多 250 次查询。 当你重新执行 wego 命令,你将会看到最新的天气预报(当然是你的指定地方),如题图显示。
显示出来的天气信息包括:(1)温度,(2)风速和风向,(3)可视距离,(4)降水量和降水概率 默认情况下会显示3 天的天气预报。如果要进行修改,可以通过参数改变天气范围(最多5天),比如要查看 5 天的天气预报:
$ wego 5
如果你想检查另一个地方的天气,只需要提供城市名即可:
$ wego Seattle
问题解决
可能会遇到下面的错误:
user:Currentnot implemented on linux/amd64
当你在一个不支持原生 Go 编译器的环境下运行 wego 时就会出现这个错误。在这种情况下你只需要使用 gccgo ——一个 Go 的编译器前端来编译程序即可。这一步可以通过下面的命令完成。
$ sudoyum install gcc-go
$ go get-compiler=gccgo github.com/schachmat/wego
看过“ Linux 命令行怎么浏览天气预报 ”
浏览量:2
下载量:0
时间:
有时候我们为了检查下载数据是否正常,需要查看下载数据目录大小,那么你知道如何在Linux命令行中查看目录的大小吗?下面跟着读文网小编一起来了解一下吧。
唯一的要求是du命令行工具。du基本上是所有Linux发行版本默认提供的工具。用以下的命令来检查你的系统中是否可以使用du命令:
man du
du 命令用于输出文件的空间使用情况。
使用du
不带任何参数的运行du命令会显示当前工作目录以及其子目录的文件名和所占用的空间大小(以字节为单位)。
du
使用-h参数以对用户友好的方式输出文件大小,即分别以K, M和G来表示Kb,Mb和Gb
du -h
若想查看某个特定目录的文件大小,则在du命令中指定要查看的目录名,如下:
du -h Mapmaker
使用 -c 参数来查看目录所占用磁盘空间的总大小
du -ch
使用 -s 参数只输出指定目录占用空间的大小
du -sh Mapmaker Sandbox
使用 man du 查看du命令更多参数的用法
man du
看过“ 如何在Linux命令行中查看目录的大小 ”
浏览量:2
下载量:0
时间:
读文网小编将和大家分享一些学习Linux命令行的技巧,希望能对大家有所助益。如果在本文中遇到不太熟悉的命令,可以在终端中键入以下命令寻求帮助。下面跟着读文网小编一起来了解一下吧。
这篇文章希望向你展示一些不需要很高的技术就可以像一个高手一样使用 Linux 终端的有用技巧。你只需要一个 Linux 终端和一些自由时间来体会这些命令。
1. 找到正确的命令
执行正确的命令对你的系统来说非常重要。然而在 Linux 中有如此多的、难以记忆的各种的命令行。那么怎样才能找到你需要的正确命令呢?答案是 apropos。你只需要运行:
# apropos <description>
其中你要用真正描述你要查找的命令的语句代替 “description”。这里有一个例子:
# apropos "list directory"
dir(1)-list directory contents
ls(1)-list directory contents
ntfsls (8)-list directory contents on an NTFS filesystem
vdir (1)-list directory contents
左边你看到的是命令,右边是它们的描述。
2. 执行之前的命令
很多时候你需要一遍又一遍执行相同的命令。尽管你可以重复按你键盘上的向上光标键,但你也可以用 history 命令替代。这个命令会列出自从你上次启动终端以来所有输入过的命令:
# history
1fdisk-l
2apt-get install gnome-paint
3hostname tecmint.com
4hostnamectl tecmint.com
5manhostnamectl
6hostnamectl--set-hostname tecmint.com
7hostnamectl-set-hostname tecmint.com
8hostnamectlset-hostname tecmint.com
9mount-t "ntfs"-o
10fdisk-l
11mount-t ntfs-3g/dev/sda5 /mnt
12mount-t rw ntfs-3g/dev/sda5 /mnt
13mount-t -rw ntfs-3g/dev/sda5 /mnt
14mount-t ntfs-3g/dev/sda5 /mnt
15mountman
16manmount
17mount-t -o ntfs-3g/dev/sda5 /mnt
18mount-o ntfs-3g/dev/sda5 /mnt
19mount-ro ntfs-3g/dev/sda5 /mnt
20cd/mnt
...
正如你上面看到的,你会得到一个你运行过的命令的列表。每一行中有一个数字表示你在第几行输入了命令。你可以通过以下方法重新调用该命令:
!#
其中要用命令的实际编号代替 #。为了更好的理解,请看下面的例子:
!501
等价于:
# history
3. 使用 midnight 命令
如果你不习惯使用类似 cd、cp、mv、rm 等命令,你可以使用 midnight 命令。它是一个简单的可视化 shell,你可以在上面使用鼠标:
Midnight 命令
借助 F1 到 F12 键,你可以轻易地执行不同任务。只需要在底部选择对应的命令。要选择文件或者目录,按下 “Insert” 键。
简而言之 midnight 就是所谓的 “mc”。要安装 mc,只需要运行:
$ sudoapt-get install mc [OnDebian based systems]
#yum install mc [OnFedora based systems]
下面是一个使用 midnight 命令器的简单例子。通过输入以下命令打开 mc:
# mc
现在使用 TAB 键选择不同的窗口 - 左和右。我有一个想要移动到 “Software” 目录的 LibreOffice 文件:
Midnight 命令移动文件
按 F6 按钮移动文件��新的目录。MC 会请求你确认:
移动文件到新目录
确认了之后,文件就会被移动到新的目标目录。
扩展阅读:如何在 Linux 中使用 Midnight 命令文件管理器
4. 在指定时间关闭计算机
有时候你需要在下班几个小时后再关闭计算机。你可以通过使用下面的命令在指定时间关闭你的计算机:
$ sudoshutdown21:00
这会告诉你在你指定的时间关闭计算机。你也可以告诉系统在指定分钟后关闭:
$ sudoshutdown+15
这表示计算机会在 15 分钟后关闭。
5. 显示已知用户的信息
你可以使用一个简单的命令列出你 Linux 系统的用户以及一些关于它们的基本信息。
# lslogins
这会输出下面的结果:
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 00Apr29/11:35 root
1 bin 01 bin
2 daemon 01 daemon
3 adm 01 adm
4lp01lp
5sync01sync
6shutdown01Jul19/10:04shutdown
7halt01halt
8 mail 01 mail
10 uucp 01 uucp
11operator01operator
12 games 01 games
13 gopher 01 gopher
14 ftp 01 FTP User
23 squid 01
25 named 01Named
27 mysql 01MySQLServer
47 mailnull 01
48 apache 01Apache
...
6. 查找文件
查找文件有时候并不像你想象的那么简单。一个搜索文件的好例子是:
#find/home/user -type f
这个命令会搜索 /home/user 目录下的所有文件。find 命令真的很强大,你可以传递更多选项给它使得你的搜索更加详细。如果你想搜索超过特定大小的文件,可以使用:
#find.-type f -size10M
上面的命令会搜索当前目录中所有大于 10M 的文件。确保不要在你 Linux 系统的根目录运行该命令,因为这可能导致你的机器 I/O 瓶颈。
我最经常和 find 命令一起使用的选项之一是 “exec”,这允许你对 find 命令的结果运行一些操作。
例如,假如我们想查找一个目录中的所有文件并更改权限。可以通过以下简单命令完成:
#find/home/user/files/-type f -execchmod644{} ;
上面的命令会递归搜索指定目录内的所有文件,并对找到的文件执行 chmod 命令。
7. 用一个命令创建目录树
你很可能知道可以使用 mkdir 命令创建新的目录。因此如果你想创建一个新的目录,你可能会运行:
#mkdir new_folder
但如果你想在该目录下创建 5 个子目录呢?运行 5 次 mkdir 命令并非是一个好的选择。相反你可以类似下面这样使用 -p 选项:
#mkdir-p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}
最后你会在 new_folder 中有 5 个目录:
#ls new_folder/
folder_1 folder_2 folder_3 folder_4 folder_5
8. 复制文件到多个目录
通常使用 cp 命令进行文件复制。复制文件通常看起来类似:
#cp/path-to-file/my_file.txt /path-to-new-directory/
现在假设你需要复制该文件到多个目录:
#cp/home/user/my_file.txt /home/user/1
#cp/home/user/my_file.txt /home/user/2
#cp/home/user/my_file.txt /home/user/3
这有点荒.唐。相反,你可以用简单的一行命令解决问题:
#echo/home/user/1/ /home/user/2/ /home/user/3/|xargs-n 1cp/home/user/my_file.txt
9. 删除大文件
有时候文件可能会变得很大。我看过由于缺乏管理技能一个日志文件就超过 250G 的例子。用 rm 命令可能不足以删除该文件,因为有大量的数据需要移除。应该避免这个很“笨重”的操作。相反,你可以使用一个简单的方法解决这个问题:
#>/path-to-file/huge_file.log
当然你需要根据你实际情况替换路径和文件名。上面的命令写一个空输出到该文件。用更简单的话说它会清空文件而不会导致你的系统产生大的 I/O 消耗。
10. 在多个 Linux 服务器上运行相同命令
最近我们的一个读者在 LinuxSay 论坛提问说如何通过 ssh 在多个 Linux 服务器上执行一个命令。他机器的 IP 地址是:
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
这里有一个简单的解决方法。将服务器的 IP 地址写到文件 list.txt 中,像上面那样一行一个。然后运行:
#forin $i(catlist.txt);dossh user@$i 'bash command';done
上面的命令中你需要用实际登录的用户替换 “user”,用你希望执行的实际命令替换 “bash command”。这个方法非常适用于通过使用 SSH 密钥进行无密码验证,因为这样你不需要每次都为用户输入密码。
注意取决于你 Linux 系统的设置,你可能还需要传递一些额外的参数给 SSH 命令。
总结
上面的例子都很简单,我希望它们能帮助你发现 Linux 的优美之处,你如何能简单实现在其它操作系统上需要更多时间的不同操作。
浏览量:2
下载量:0
时间:
我们都知道系统文件的类型是有很多种的,如果不了解文件类型就无法知道某些文件的具体作用,那么Linux系统的文件类型都有哪些呢?下面读文网小编就给大家详细介绍下Linux系统的文件类型及扩展名的知识。
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。
我们用 ls -lh 来查看某个文件的属性,可以看到有类似-rwxrwxrwx,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具。。。 。。。。 或 cp工具等。这类文件的删除方式是用rm 命令。 另外,依照文件的内容,又大略可以分为:
1》。 纯文本档(ASCII):
这是Linux系统中最多的一种文件类型,称为纯文本档是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。几乎只要我们可以用来做为设定的文件都属于这一种文件类型。 举例来说,你可以用命令: cat ~/.bashrc 来看到该文件的内容。(cat 是将一个文件内容读出来的指令)。
2》。 二进制文件(binary):
Linux系统其实仅认识且可以执行二进制文件(binary file)。Linux当中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的文件。 刚刚使用的命令cat就是一个binary file。
3》。 数据格式文件(data):
有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件 (data file)。举例来说,我们的Linux在使用者登录时,都会将登录的数据记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件?
浏览量:3
下载量:0
时间:
Linux 系统的时间有时候会不准,不准确的时间会导致日志文件中的时间出现错误,所以准确的时间是很重要的,那么要怎么更改Linux 系统的时间呢?下面小编给大家介绍下使用命令行更改Linux系统时间和日期的方法步骤。
问题: 在 Linux 上, 我怎样通过命令行来改变日期和时间?
在 Linux 系统中保持日期和时间的同步是每一个 Linux 用户和系统管理员的重要责任。 很多程序都依靠精确的时间信息得以正常工作。 另外, 不精确的日期和时间会使得日志文件中的时间戳变得毫无意义, 减弱了它们在系统检查和检修中的作用。 对于生产系统来说, 精确的日期和时间甚至更为重要。 例如, 在零售公司中, 所有产品必须时刻准确地计数(并储存在数据库服务器中)以便于财政部门计算每天及每周,每月,每年的支出和收入。
我们必须注意, 在 Linux 机器上有两种时钟:由内核维持的软件时钟(又称系统时钟)和在机器关机后记录时间的(电池供电的)硬件时钟。 启动的时候,内核会把系统时钟与硬件时钟同步。之后, 两个时钟各自独立运行。
方法一: NTP
另一种使系统日期和时间保持精确的方法是使用 NTP (网络时间协议)。 在 Linux 上, ntpdate 命令通过 NTP 将系统时钟和公共 NTP 服务器同步。
你可以使用如下命令来安装 ntpdate:
在 Debian 及基于 Debian 的发行版上:
# aptitude install ntpdate
在基于 Ret Hat 的发行版上:
# yum install ntpdate
使用 NTP 同步系统时钟:
# ntpdate -u 《NTP 服务器名或IP》# hwclock --systohc
除了一次性使用 ntpdate 来同步时钟, 你也可以使用 NTP 守护进程(ntpd), 它会始终在后台运行, 不断地通过 NTP 来调整系统时钟。
方法二: Date 命令
在 Linux 中, 你可以通过 date 命令来更改系统的日期和时间:
# date --set=‘NEW_DATE’
其中 NEW_DATE 是诸如 “Sun, 28 Sep 2014 16:21:42” 或者 “2014-09-29 16:21:42” 的可读格式的日期字符串。
日期格式也可以手动指定以获得更精确的结果:
# date +FORMAT --set=‘NEW_DATE’
例如:
# date +’%Y%m%d %H%m’ --set=‘20140928 1518’
你也可以用相对的方式地增加或减少一定的天数,周数,月数和秒数,分钟数,小时数。 你也可以把日期和时间的参数放到一个命令中。
# date --set=‘+5 minutes’# date --set=‘-2 weeks’# date --set=‘+3 months’# date --set=‘-3 months +2 weeks -5 minutes’
最后, 把硬件时钟设置为当前系统时钟:
# hwclock --systohc
运行 hwclock --systohc 的目的是将硬件时钟同软件时钟同步, 这可以更正硬件时钟的系统漂移(即时钟按照一定的速度走快或走慢)。
另一方面, 如果硬件时钟是正确的, 但系统时钟有误, 可以用下面的命令更正:
# hwclock --hctosys
在两种情况下, hwclock 命令都是将两个时钟同步。 否则, 重启后时间会是错误的, 因为当电源关闭时硬件时钟会记忆时间。 然而, 这对于虚拟机器并不适用, 因为虚拟机器并不能访问硬件时钟。
上面就是使用命令行更改Linux系统日期和时间的方法介绍了,如果你想用命令行修改Linux系统的话,不妨试试上面介绍的方法步骤吧。
浏览量:2
下载量:0
时间:
通常我们电脑都是通过有线连接宽带,那么无线wifi该如何设置呢?下面读文网小编就给大家介绍下Linux系统下如何通过命令行来连接wifi,一起来学习下吧。
无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的。
这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用;第二,如果您是从命令行中来安装系统的,管理 WiFi 就非常可怕。我总是试图避免在命令行中处理 WiFi 。但 Linux 的世界,应具有无所畏惧的精神。
通过命令行来设置连接到 WiFi 当然有很多种方法,但在这篇文章里,同时也是一个建议,我使用最基本的方法:那就是使用在任何发布版本中都有的包含在“默认包”里的程序和工具。或者说我偏向于使用这一种方法。使用此方法显而易见的好处是这个操作过程能在任意有 Linux 系统的机器上复用。不好的一点是它相对来说比较复杂。
首先,我假设您们都已经正确安装了无线网卡的驱动程序。没有这前提,后续的一切都如镜花水月。如果您你机器确实没有正确安装上,您应该看看关于您的发布版本的维基和文档。
然后您就可以用如下命令来检查是哪一个接口来支持无线连接的:
$ iwconfig
一般来说,无线接口都叫做 wlan0。当然也有例外的,但在这篇教程中我们将会一直用通用叫法。
以防万一,你得确认下以使此接口服务是启动着的:
$ sudo ip link set wlan0 up
一但确认了无线接口是工作着的,你就可以用如下命令来扫描附近的无线网络了:
$ sudo iw dev wlan0 scan | less
根据扫描出的结果,可以得到网络的名字(它的 SSID),它的信息强度,以及它使用的是哪个安全加密的(如:WEP、WPA/WPA2)。从此时起,将会分成两条路线:情况很好、很容易的以及情况稍微复杂的。
如果您想连接的网络是没有加密的,您可以用下面的命令直接连接:
$ sudo iw dev wlan0 connect [网络 SSID]
如果网络是用 WEP 加密的,也非常容易:
$ sudo iw dev wlan0 connect [网络 SSID] key 0:[WEP 密钥]
但网络使用的是 WPA 或 WPA2 协议的话,事情就不好办了。这种情况,您就得使用叫做 wpasupplicant 的工具,它默认是没有的。然后需要修改 /etc/wpasupplicant/wpa_supplicant.conf 文件,增加如下行:
network={ ssid=“[网络 ssid]” psk=“[密码]” priority=1}
我建议你在文件的末尾添加它,并确保其他配置都注释掉。要注意 SSID 和密码字串都是大小写敏感的。在技术上您也可以把接入点的名称当做是 SSID,使用 wpa_supplicant 工具的话会有合适的 SSID 来替代这个名字。
一旦配置文件修改完成后,在后台启动此命令:
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
最后,无论是连到开放的网络还是加密的安全网络,您都得获取 IP 地址。简单地使用如下命令:
$ sudo dhcpcd wlan0
如果一切顺利的话,您应该已经通过 DHCP 获取到了一个全新的本地 IP,这个过程是在后台自动完成的。如果想确认下是否真正连接上的话,您可以再一次输入如下命令检查:
$ iwconfig
最后,我认为多次重复第一步的检查操作是很有必要的。您永远不会知道什么时候您的图形用户界面挂了,或者是什么时候不能访问无线连接了,所以现在就准备着用命令来检测吧。还有,前面提到过的,有很多种方式(如 NetworkManager、wicd、netcfg、wifi 等等)来管理无线连接。我坚持使用最基本的方式,但在某些情况下,我使用的工具可能您还没有,所以您在之前就得先下载它们。另一方面,有很多高级的应用程序,他们确实是不包含在“默认包”里面的,使用它们会大大简化操作过程。但一般建议是开始的话最好从基本的来。
上面就是Linux下通过命令行来连接wifi的方法介绍了,Linux系统管理无线wifi可不简单,且要养成良好的习惯,现在赶紧动手试试看吧。
浏览量:2
下载量:0
时间:
在Linux系统中,有时插上u盘却无法识别,想必不少人遇到过这个问题,而Linux不会自动更新驱动,遇到这种问题该如何解决呢?下面小编就给大家介绍下Linux无法识别u盘的解决方法,一起来了解下吧。
方法
一、插入u盘到计算机,如果目前只插入了一个U盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。
二、在mnt目录下先建立一个u的目录。
三、然后命令提示符#后输入:mount -t vfat /dev/sda1 /mnt/u。
四、卸载时用umount /mnt/u。
上面就是Linux无法识别u盘的解决方法了,该问题只出现在某些版本中,如果你的Linux系统无法识别u盘的话,不妨试试上面介绍的方法吧。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大
浏览量:2
下载量:0
时间:
1、在字符界面输入startx或init 5 。
2、通过编辑/etc/inittab文件实现默认进入图形界面。
把其中的id:3:initdefault中的3改为5,这样以后系统启动后将直接进入文本模式。
以下是配置引导进入图形模式的etc/inittab文件的部分内容:
#Default runlevel.The runlevels used by RHS are:
# 0-halt(Do NOT set initdefault to this)
# 1 -Single user mode
# 2-Multiuser,without NFS(The same as 3,if you do not have networking)
# 3-Full multiuser mode
# 4-unused
# 5-X11 https://选择此项,系统在登录时将进入图形化登录界面
# 6-reboot(Do NOT set initdefault to this)
#
id:3:initdefault: https://此处若改为3,系统将被引导进入文本登录提示符界
浏览量:2
下载量:0
时间:
在浏览网站的时候突然变的好卡,不知道是电脑的原因还是网速的原因导致的,这就需要测试网速了,下面读文网小编给大家介绍下如何使用Linux命令行来测试网速,有兴趣的话不妨来了解下吧。
在可用于测试宽带速度的网站中,Speedtest.net是使用最广泛的。
Speedtest.net的工作原理并不复杂:它在你的浏览器中加载JavaScript代码并自动检测离你最近的Speedtest.net服务器,然后向服务器发送HTTP GET and POST请求来测试上行/下行网速。
但在没有图形化桌面时(例如,当你通过命令行远程登陆服务器或使用没有图形界面的操作系统),基于flash、界面友好的Speedtest.net将无法工作。幸运的是,Speedtest.net提供了一个命令行版本——speedtest-cli。下面我将向你演示如何在Linux的命令行中使用speedtest-cli来测试宽带连接速度。
speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行。它基于 Speedtest.net的基础架构来测量网络的上/下行速率。安装speedtest-cli很简单——只需要下载其Python脚本文件。
1$ wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
2$ chmod a+rx speedtest_cli.py
3$ sudo mv speedtest_cli.py /usr/local/bin/speedtest-cli
4$ sudo chown root:root /usr/local/bin/speedtest-cli
使用speedtest-cli测试网速
使用speedtest-cli命令也很简单,它不需要任何参数即可工作。
1$ speedtest-cli
输入这个命令后,它会自动发现离你最近的Speedtest.net服务器(地理距离),然后打印出测试的网络上/下行速率。
如果你愿意分享测试结果,你可以使用参数“–share”。它将会把你的测试结果上传到Speedtest.net服务器并以图形的方式分享给其他人。
如果你对目前所有可用的Speedtest.net服务器感兴趣,你可以使用参数“–list”。它会打印出所有的Speedtest.net服务器(按照离你的地理距离由近及远排序)。
在上面的列表中,每个服务器的前面都有一个与其对应的ID。如果想使用指定的服务器来测试你的网速,你只需要在speedtest-cli命令后指定其ID即可。例如,如果想使用在Washington DC的服务器,你只需要指定相对应的服务器ID(如935)。
上面就是使用Linux命令行测试网速的方法介绍了,如果你在上网的时候遇到网络卡的情况,就可以使用speedtest-cli测试网速,赶紧试试看吧。
浏览量:2
下载量:0
时间:
电脑光驱在主机上有时会出现无法识别的问题,有Win7系统用户表示,他的主机无法识别光驱,关于这个问题小编提供了解决方法,接下来大家跟着读文网小编一起来了解一下怎么解决WIN7系统无法识别光驱吧。
1. 点击 开始 -〉 所有程序 -〉 附件。
2、右击命令提示符 -〉 ”以管理员身份运行”。
3、粘贴以下命令并回车。
bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS。
Windows7不能识别某些DVD光驱,这个不是DVD的问题,而是Windows7的问题。微软官方曾解释这个问题是由于SATA驱动程序(Msahci.sys)自适应链接电源管理(ALPM)的新电源管理功能,致使某些光驱ALPM功能启用与执行不能正常工作,并导致计算机可能无法识别。我们可以通过教程的两种方法来解决这个光驱故障。
看过“怎么解决WIN7系统无法识别光驱”
浏览量:4
下载量:0
时间:
如果没有设置DNS服务器的话,那么系统就不能正常上网了。,那么Linux系统怎么查看和修改DNS配置呢?下面读文网小编就为大家带来了Linux系统查看和修改DNS配置的方法。
1:查看/etc/resolv.con文件
[root@localhost ~]# cat /etc/resolv.conf
nameserver 192.168.xxx.xxx
#search localdomain
[root@localhost ~]#
2:使用nslookup命令查看DNS信息
[root@localhost ~]# nslookup 127.0.0.1 | grep Server
Server: 192.168.xxx.xxx
[root@localhost ~]#
3:使用dig命令来查看DNS信息
[root@localhost ~]# dig
; 《《》》 DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 《《》》
;; global options: printcmd
;; Got answer:
;; -》》HEADER《《- opcode: QUERY, status: NOERROR, id: 36888
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 3
;; QUESTION SECTION:
;。 IN NS
;; ANSWER SECTION:
。 86163 IN NS m.root-servers.net.
。 86163 IN NS a.root-servers.net.
。 86163 IN NS j.root-servers.net.
。 86163 IN NS l.root-servers.net.
。 86163 IN NS e.root-servers.net.
。 86163 IN NS d.root-servers.net.
。 86163 IN NS k.root-servers.net.
。 86163 IN NS f.root-servers.net.
。 86163 IN NS h.root-servers.net.
。 86163 IN NS c.root-servers.net.
。 86163 IN NS g.root-servers.net.
。 86163 IN NS b.root-servers.net.
。 86163 IN NS i.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 3599 IN A 112.4.20.71
b.root-servers.net. 86163 IN A 192.228.79.201
i.root-servers.net. 86173 IN A 192.36.148.17
;; Query time: 8 msec
;; SERVER: 192.168.xxx.xxx#53(192.168.xxx.xxx)
;; WHEN: Sat Apr 16 07:34:37 2016
;; MSG SIZE rcvd: 289
[root@localhost ~]# dig | grep SERVER: | awk -F# ‘{ print $1 }’ | awk -F: ‘{ print $2 }’
192.168.xxx.xxx
4:其它一些方法查看DNS信息
在网上看到还有一些其他方法,查看服务器的DNS配置信息,如下所示,不过这些方法,由于环境限制,我没有验证过,仅供参考。
nm-tool | grep DNS
nmcli dev list iface eth0 | grep IP4
浏览量:3
下载量:0
时间:
Linux系统进程在一定条件下可以对任何文件、数据库等进行操作。如果此进程被不法分子用作其他不法用途,将会给系统带来重大危害。那么下面跟着读文网小编来一起了解下Linux系统怎么设置安全管理吧。
1.引导程序安全
Linux系统的root密码是很容易破解的,当然前提是你没有设置引导程序密码,如GRUB或LILO,为了防止通过引导程序破译root密码,强烈建议设置GRUB或LILO的引导密码,可以编辑其配置文件/etc/grub.conf或/etc/lilo.conf,设置password参数。
2.不安全权限设置
大家常见的Linux下文件权限是r w x,其实还有一种权限叫s,如果给某个文件赋予的s权限,那么这个文件在执行的时候就会拥有相应宿主用户或宿主组用户的权限,例如:
#chmod u+s testfile
#ls -la testfile
rwsr----- root root 10 testfile
这样,当这个文件被其它用户执行的时候,此用户就具有了此文件宿主用户root的对testfile的执行权限。类似,当文件的宿主组具有s权限后,执行此文件的用户就具有了此文件宿主组用户对此文件的权限,这是相当危险的。
大家可以试想下,如果命令chmod的文件被赋予了s权限,那么其它用户还有什么事情是不能做的呢?那它就可以更改任何文件的权限了,当然,s权限需要和x权限结合使用,没有x权限的s权限是没有任何意义的。
3.自动注销
当某个用户使用服务器后忘记注销,也是很危险的事情,此时,管理员可以设置/etc/profile文件的timeout参数,当用户一段时间不做任何操作时,系统自动注销此用户。
4. 设置口令复杂度
为了防止系统用户口令过于简单而被破译,可以编辑/etc/login.defs文件,设置系统用户口令复杂度,例如口令最长,最短,过期时间等。
5.禁止不必要用户登陆系统
为了防止其它非系统用户登陆系统,可以在添加用户时,赋予此用户不存在的主目录和不存在的shell环境,当然,最好还更改/etc/passwd和/etc/shadow两个文件的访问权限,使之后root用户可以访问。
Linux系统特点就是因为它是一款免费传播类操作系统,使其具有服务器应有的天然特性,但也正是因为有这些特性,所以在管理不当的情况下,也会造成很严重的安全性问题,所以我们的好好使用它,保护它!
看过“Linux系统怎么设置安全管理”
浏览量:4
下载量:0
时间: