为您找到与linux中gcc的用法相关的共200个结果:
欢迎来到读文网,本文介绍Linux系统mknod命令用法 ,欢迎您阅读。
mknod 用法:
名字
mknod - 建立块专用或字符专用文件
总览
mknod [options] name {bc} major minor
mknod [options] name p
GNU 选项(缩写):
[-m mode] [--help] [--version] [--]
描述
mknod 用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。
文件系统中的一个专用文件存贮着三种信息(布朗型、整型、整型)。布朗型在字符文件与块文件之间作出选择,两个整型是主、次设备号。
通常,一个专用文件并不在磁盘上占用空间,仅仅是为操作系统提供交流,而不是为数据存贮服务。一般地,专用文件会指向一个硬件设备(如:磁盘、磁带、打印机、虚拟控制台)或者操作系统提供的服务(如:/dev/null, /dev/random)。
块文件通常类似于磁盘设备(在数据可以被访问的地方赋予一个块号,意味着同时设定了一个块缓存)。所有其他设备都是字符文件。(以前,两种文件类型间是有差别的。比如:字符文件I/O没有缓存,而块文件则有。)
mknod命令就是用来产生这种类型文件的。
以下参数指定了所产生文件的类型:
p FIFO型
b 块文件
c 字符文件
GNU版本还允许使用u(‘unbufferd‘非缓冲化),以保持与C语言的一致。
当创建一个块文件或字符文件时,主、次设备号必须在文件类型参数后给出。(十进制或八进制以0开头;GNU 版本还允许使用以0x开头的十六进制)缺省地,所产生的文件模式为0666(‘a+rw‘)。
选项
-m mode, --mode=mode 为新建立的文件设定模式,就象应用命令chmod一样,以后仍然使用缺省模式建立新目录。
1 3 是主设备号1,次设备号3 .
浏览量:2
下载量:0
时间:
一 .tar
解包
tar xvf FileName.tar
打包
tar cvf FileName.tar DirName
注意:tar是打包,不是压缩。
二 .gz
解压
gunzip FileName.gz
或
gzip -d FileName.gz
压缩
gzip FileName
三 .tar.gz 和 .tgz
解压
tar zxvf FileName.tar.gz
压缩
tar zcvf FileName.tar.gz DirName
四 .bz2
解压
bzip2 -d FileName.bz2
或
bunzip2 FileName.bz2
压缩
bzip2 -z FileName
五 .tar.bz2
解压
tar jxvf FileName.tar.bz2
压缩
tar jcvf FileName.tar.bz2 DirName
六 .bz
解压
bzip2 -d FileName.bz
或
bunzip2 FileName.bz
七 .tar.bz
解压
tar jxvf FileName.tar.bz
八 .Z
解压
uncompress FileName.Z
压缩
compress FileName
九 .tar.Z
解压
tar Zxvf FileName.tar.Z
压缩
tar Zcvf FileName.tar.Z DirName
十.zip
解压
unzip FileName.zip
压缩
zip FileName.zip DirName
十一 .rar
解压
rar x FileName.rar
压缩
rar a FileName.rar DirName
十二 .lha
解压
lha -e FileName.lha
压缩
lha -a FileName.lha FileName
十三 .rpm
解包
rpm2cpio FileName.rpm
十四 .deb
解包
ar p FileName.deb
对于以下格式的包
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压
sEx x FileName.*
压缩
sEx a FileName.* FileName
注意:sEx只是调用相关程序,本身并无压缩、解压功能。
那么这么多工具,如果我们是压缩文件,该使用哪个工具好呢,下面就介绍一个在Linux平台下很好用的一个解压缩工具。
gzip 命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名
该命令的各选项含义如下:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字 num 调整压缩的速度,
-1 或 –fast 表示最快压缩方法(低压缩比),
-9 或–best表示最慢压缩方法(高压缩比)。系统缺省值为 6。
举例
gzip *% 把当前目录下的每个文件压缩成 .gz 文件。
gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。
gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。
gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。
浏览量:3
下载量:0
时间:
GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另一方面,说到 GCC 对于操作系统平台及硬件平台支持,概括起来就是一句话:无所不在。下面我们一起了解下。
gcc连接器是gas提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。附加的目标文件包括静态连接库和动态连接库。
对于上一小节中生成的test.o,将其与C标准输入输出库进行连接,最终生成程序test
gcc test.o -o test
在命令行窗口中,执行。/test, 让它说HelloWorld吧!
浏览量:2
下载量:0
时间:
Linux tail命令主要用于把档案文件的最后几行显示到终端上,以确保能看到最新的内容,那么Linux tail要怎么用呢?下面读文网小编就给大家介绍下Linux tail的用法。
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
tail 命令从指定点开始将File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。Number 变量指定将多少单元写入标准输出。Number 变量的值可以是正的或负的整数。如果值的前面有+(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有-(减号),则从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有+(加号)或-(减号),那么从文件末尾指定的单元号开始读取文件。
Number 变量用于确定计数的起点的单元类型由-b、-c、-k、-m 以及-n 标志确定。如果没有指定其中的任何一个标志,那么tail 命令就会读取指定文件的最后十行,并将其写到标准输出。这与在命令行输入-n 10 是相同的。
-m 标志在单字节和双字节字符环境中提供了一致的结果。当输入是包含多字节字符的文本文件时应谨慎使用-c 标志,因为产生的输出可能不从字符边界开始。
浏览量:3
下载量:0
时间:
Linux系统中查找文件的命令式find,find命令具有强大的功能,能够提供多种查找条件,下面读文网小编就给大家带来Linux中find命令的常见用法汇总,一起来学习下吧。
·find path -option [ -print ] [ -exec -ok command ] {} ;
find命令的参数;
pathname: find命令所查找的目录路径。例如用。来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command’ { } ;,注意{ }和;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
#-print 将查找到的文件输出到标准输出
#-exec command {} ; —–将查到的文件执行command操作,{} 和 ;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
例:find 。 -name .svn | xargs rm -rf
====================================================
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px“》
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录
=====================================================
$find ~ -name ”*.txt“ -print #在$HOME中查.txt文件并显示
$find 。 -name ”*.txt“ -print
$find 。 -name ”[A-Z]*“ -print #查以大写字母开头的文件
$find /etc -name ”host*“ -print #查以host开头的文件
$find 。 -name ”[a-z][a-z][0–9][0–9].txt“ -print #查以两个小写字母和两个数字开头的txt文件
$find 。 -perm 755 -print
$find 。 -perm -007 -exec ls -l {} ; #查所有用户都可读写执行的文件同-perm 777
$find 。 -type d -print
$find 。 ! -type d -print
$find 。 -type l -print
$find 。 -size +1000000c -print #查长度大于1Mb的文件
$find 。 -size 100c -print # 查长度为100c的文件
$find 。 -size +10 -print #查长度超过期作废10块的文件(1块=512字节)
$cd /
$find etc home apps -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name ”passwd*“ -exec grep ”cnscn“ {} ; #看是否存在cnscn用户
$find 。 -name ”yao*“ | xargs file
$find 。 -name ”yao*“ | xargs echo ”“ 》 /tmp/core.log
$find 。 -name ”yao*“ | xargs chmod o-w
======================================================
find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} ;
find /tmp -name tmp.txt -ok rm {} ;
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
浏览量:4
下载量:0
时间:
今天小编给大家介绍下Linux系统的关机与重启命令,涉及的命令有shutdown、halt、reboot,也是本文主要讲解的命令,希望对正在学习的朋友有所帮助。
halt命令,可以相当于调用shutdown -h。
halt执行时,杀死应用进程,执行sync系统调用,文件系统写操作完成后就会停止内核。
halt命令的参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
浏览量:3
下载量:0
时间:
Linux中的less命令主要用来浏览文件内容,与more命令的用法相似,不同于more命令的是,less命令可往回卷动浏览以看过的部分,下面随读文网小编一起来了解下less命令的具体用法吧。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
浏览量:2
下载量:0
时间:
jiffies是Linux系统中的全局变量,与时间有关,那么jiffies变量具体有哪些作用呢?下面读文网小编就给大家介绍下Linux全局变量jiffies的用法,感兴趣的朋友不妨来了解下吧。
系统运行时间以秒为单位,等于jiffies/Hz。
注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。
将以秒为单位的时间转化为jiffies:
seconds * Hz
将jiffies转化为以秒为单位的时间:
jiffies / Hz
相比之下,内核中将秒转换为jiffies用的多些。
jiffies的内部表示
jiffies定义于文件中:
/*
* The 64-bit value is not atomic - you MUST NOT read it
* without sampling the sequence number in xtime_lock.
* get_jiffies_64() will do this for you as appropriate.
*/
extern u64 __jiffy_data jiffies_64;
extern unsigned long volatile __jiffy_data jiffies;
ld(1)脚本用于连接主内核映像(在x86上位于arch/i386/kernel/vmlinux.lds.S中),然后用jiffies_64变量的初值覆盖jiffies变量。因此jiffies取整个jiffies_64变量的低32位。
访问jiffies的代码只会读取jiffies_64的低32位,通过get_jiffies_64()函数就可以读取整个64位的值。在64位体系结构上,jiffies_64和jiffies指的是同一个变量。
#if (BITS_PER_LONG 《 64)
u64 get_jiffies_64(void);
#else
static inline u64 get_jiffies_64(void)
{
return (u64)jiffies;
}
#endif
在中
#if (BITS_PER_LONG 《 64)
u64 get_jiffies_64(void)
{
unsigned long seq;
u64 ret;
do {
seq = read_seqbegin(&xtime_lock);
ret = jiffies_64;
} while (read_seqretry(&xtime_lock, seq));
return ret;
}
jiffies的回绕wrap around
当jiffies的值超过它的最大存放范围后就会发生溢出。对于32位无符号长整型,最大取值为(2^32)-1,即429496795。如果节拍计数达到了最大值后还要继续增加,它的值就会回绕到0。
内核提供了四个宏来帮助比较节拍计数,它们能正确的处理节拍计数回绕的问题:
/*
* These inlines deal with timer wrapping correctly. You are
* strongly encouraged to use them
* 1. Because people otherwise forget
* 2. Because if the timer wrap changes in future you won‘t have to
* alter your driver code.
*
* time_after(a,b) returns true if the time a is after time b.
*
* Do this with “《0” and “》=0” to only test the sign of the result. A
* good compiler would generate better code (and a really good compiler
* wouldn’t care)。 Gcc is currently neither.
*/
#define time_after(a,b) /
(typecheck(unsigned long, a) && /
typecheck(unsigned long, b) && /
((long)(b) - (long)(a) 《 0))
#define time_before(a,b) time_after(b,a)
#define time_after_eq(a,b) /
(typecheck(unsigned long, a) && /
typecheck(unsigned long, b) && /
((long)(a) - (long)(b) 》= 0))
#define time_before_eq(a,b) time_after_eq(b,a)
/* Same as above, but does so with platform independent 64bit types.
* These must be used when utilizing jiffies_64 (i.e. return value of
* get_jiffies_64() */
#define time_after64(a,b) /
(typecheck(__u64, a) && /
typecheck(__u64, b) && /
((__s64)(b) - (__s64)(a) 《 0))
#define time_before64(a,b) time_after64(b,a)
#define time_after_eq64(a,b) /
(typecheck(__u64, a) && /
typecheck(__u64, b) && /
((__s64)(a) - (__s64)(b) 》= 0))
#define time_before_eq64(a,b) time_after_eq64(b,a)
用户空间和HZ
浏览量:3
下载量:0
时间:
Linux众多操作中,lftp可用于ftp文件的下载上传,登陆ftp等,拥有多种使用方法,下面读文网小编就针对lftp给大家做个详细介绍,感兴趣的朋友不妨来了解下吧。
lftp使用介绍
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
命令行语法
要看lftp的命令行语法,只要在shell中输入lftp --help
lftp [OPTS]
‘lftp’是在 rc 文件执行后 lftp 执行的第一个命令
-f 执行文件中的命令后退出
-c 执行命令后退出
--help 显示帮助信息后退出
--version 显示 lftp 版本后退出
其他的选项同 ‘open’ 命令
-e 在选择后执行命令
-u [,] 使用指定的用户名/口令进行验证
-p 连接指定的端口
主机名, URL 或书签的名字
如果在命令行中输入的站点名称,lftp将直接登录站点,比如
$lftp ftp://。。。。。。。。。。。。。
如果在命令行不输入站点名称,则必须在进入到lftp界面后用open命令打开
[yhj@ccse-yhj yhj]$ lftp
lftp :~》 open ftp://。。。。。。。。。。。。。。。。。。。
常用命令
* 下载单个文件和一组文件,断点续传用-c参数
lftp 。。。。。。。。。。。。。。。。:/》 get -c ls-lR.txt
lftp 。。。。。。。。。。。。。。。:/》 mget *.txt
* 镜像(反镜像即上传)一个目录,可以用多个线程并行镜像一个目录(--parallel=N)
lftp 。。。。。。。。。。。。。。。。:/》 mirror incoming local_name
lftp 。。。。。。。。。。。。。。。。:/》 mirror -R local_name
lftp 。。。。。。。。。。。。。。。。:/》 mirror --parallel=3 incoming local_name
* 多线程下载,类似网络蚂蚁的功能;缺省是5个线程
lftp 。。。。。。。。。。。。。。。。:/》 pget -n 4 ls-lR.txt
* 后台任务管理
缺省情况下,按 Ctrl+z,正在执行的任务将转为后台执行,也可以在命令行末尾加&符号使任务在后台执行。用jobs命令可以查看所有的后台进程。用queue命令可以排队新的任务。如果退出lftp是还有任务在后台执行,lftp将转为后台执行。
* 其它用法
lftp支持类似bash的管道操作,例如用下面的命令可以将ftp服务器上的特定目录下(也可以是整个站点)所有文件的大小存到本地的文件ls.txt中
lftp 。。。。。。。。。。。。。。。。:/》 du incoming 》 ls.txt
相关文件
/etc/lftp.conf
全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc
~/.lftp/rc, ~/.lftprc
用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。
lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行
debug 3
就可以看到出错信息了。
更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。
~/.lftp/log
当lftp转为后台非挂起模式执行时,输出将重定向到这里
~/.lftp/bookmarks
这是lftp存储书签的地方,可以lftp查看bookmark命令
~/.lftp/cwd_history
这个文件用来存储访问过的站点的工作目录
~/.lftprc
在用lftp访问国内一些ftp服务器时,往往看到的中文是乱码
^_^不用慌,这是由于服务器和本地编码不一致造成的。我们只要在主目录下新建一个文件~/.lftprc或者~/.lftp/rc
并在其中加入以下内容:
debug 3set ftp:charset GBKset file:charset UTF-8#set ftp:passtive-mode no#alias utf8 “ set ftp:charset UTF-8”#alias gbk “ set ftp:charset GBK”
登录ftp服务器
言归正传,我们先来看看怎么登录ftp服务器
lftp ftp://user:password@site:port
lftp user:password@site:port
lftp site -p port -u user,password
lftp site:port -u user,password
上面的几种方式都能正常工作,不过密码都是明文,这样好像不太安全哦。没关系
lftp user@site:port
系统会提示输入password,密码就回显为******了
不过每次都输入这么多,好麻烦哦。 如果有类似leapftp的站点管理器就好了,其实lftp早就给我们想好了: 这就是bookmark。后面我们将会看到。
常用命令
在终端运行
man lftp
或登录ftp后输入
help
就可以看到命令列表
下面我们看一下lftp常用的命令:
ls
显示远端文件列表(!ls 显示本地文件列表)。
cd
切换远端目录(lcd 切换本地目录)。
get
下载远端文件。
mget
下载远端文件(可以用通配符也就是 *)。
pget
使用多个线程来下载远端文件, 预设为五个。
mirror
下载/上传(mirror -R)/同步 整个目录。
put
上传文件。
mput
上传多个文件(支持通配符)。
mv
移动远端文件(远端文件改名)。
rm
删除远端文件。
mrm
删除多个远端文件(支持通配符)。
mkdir
建立远端目录。
rmdir
删除远端目录。
pwd
显示目前远端所在目录(lpwd 显示本地目录)。
du
计算远端目录的大小
!
执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd
切换本地目录
lpwd
显示本地目录
alias
定义别名
bookmark
设定书签。
exit
退出ftp
快捷书签
ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;我们可以直接修改此文件,快速登陆ftp服务器。
浏览量:2
下载量:0
时间:
GCC是GNU编译器套件,需在有网络的情况下安装,其安装简单,但无网络能不能安装GCC呢?其实是可以的,下面读文网小编就给大家介绍下Linux无网络安装GCC的技巧,一起来了解下吧。
在有网络的情况下安装gcc只需一条指令:yum install gcc 那么在没有网络的情况下该如何安装gcc呢?虽然没有网络,但需要有安装光盘或者ISO镜像,利用安装光盘或ISO镜像来挂载一个本地yum源,利用这个来安装gcc。
步骤:
1.首先进入文件: vi /etc/yum.repos.d/CentOS-Media.repo
2.修改文件如下:
[c6-media]
name=CentOS-$releasever - Media #名字而已
baseurl=file:///media/Centos #还记得你刚刚挂载镜像的地址不,没错,就是它
gpgcheck=1
enabled=1
gpgkey=file:///etc/media/Centos/RPM-GPG-KEY-CentOS-6 #还是要注意路径
3. 退出保存。
4.输入指令:gcc -v 看看有没有反应。
上面就是Linux无网络安装GCC的技巧介绍了,前提是你要有安装光盘或ISO镜像,否则无法安装,虽然无网络也能安装GCC,但相对来说会复制很多,推荐使用网络安装GCC。
浏览量:2
下载量:0
时间:
今天读文网小编给大家介绍下Linux常用命令用法100个~让使用Linux系统的新用户能得到帮忙。
1,echo "aa" > test.txt 和 echo "bb" >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部
2,chmod go+w -R /home/zhangy //给组用户和其他用户添加写的权限
3,tar -tzvf test.tar.gz //列出归档内容
4,du -ah //查看文件列表大小
5,du -sh //查看所有文件的大小总和
6,echo '1+2'|bc -l //数学运算
7,uname -a //查看linux内核等的一些信息
8,badblocks -s /dev/sda //坏道扫描时显示进度
9,time command //查看命令的运行时间
10,ls -lrt //按时间的倒序排序
11,rsync -P //同步时显示进度
12.history -c //清楚历史命令
13,cd - //返回上次目录
14,tree //显示目录树
15,umount -n /mnt/hda2 //强制卸载
16,echo ~/ //显示用户的home目录
17,echo $[5*5] //算术运算
18,echo $((5*5)) //算术运算
19,eval ls;ps aux|grep httpd //这二个命令都能执行
20,free -m //有MB为单位显示内存
21,uptime //显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
22,加法运算
[root@krlcgcms01 mytest]# let a=34+3;
[root@krlcgcms01 mytest]# echo $a;
23,export //查看所有环境变量
24,echo $PATH //查看单个变量
25,cmp file1 file2 //文件内容比对
26,clear //清屏
27,echo 23423 |awk --re-interval '/[0-9]{3,}/' //如果不加re-interval的话,不显示
28,cal //得到一个整齐的日历格式
29,wc -l //统计行数,wc -w 统计单词
30,echo "AaDCbd23" |tr "[A-Z]" "[a-z]" 大写变小写,echo "AaDCbdc23" |tr -c b-d = 将b-d之外的字符串替换成=
31,echo "ADSF" | iconv -f UTF8 -t GBK //把字符由utf8转成gbk -f是from和简写,-t好像terminal的简写
32,cat -n file //内容的前面会显示行号
33,chattr +i file //只读,root用户也没法对其进行修改
34,lsattr file //查看文件属性
35,cat /etc/passwd |awk -F: '{print $1}' //查看系统中所有用户
36,cat /etc/group //查看系统中所有的组
37,groups //查前当前用户所在的,所有组
38,usermod -g 组名 用户 //这种方式是覆盖的方式,用的时候要小心,如果用户A性于mysql usermod -g php mysql这样的话只
属于php了,
39,usermod -G 组名 用户 //这种方式是增加的方式,如果用户A性于mysql usermod -g php mysql这样的话,mysql就属于2个组了
40,bc //进入数学计算中去
41,umask 003 u权限是7,g权限是7,其他用户是4,也就是774,777-003=774
42,mkfs -t vfat /dev/hda6 //将移动硬盘里面的一个分区格式化成vfat格式
43,mount /dev/cdrom /media/cdrom //挂载cdrom
44,getent group 532 //通过组ID,来查找组信息
45,last //登录成功用户记录
46,lastb //登录不成功用户记录
47,dump -S /dev/sda2 //查看一下要备份/dev/sda2所要的容量
48,dump -0j -f /dev/hda2/sda2_bak.dump.bz2 /dev/sda2 //将sda2进行备份并压缩
49,restore -t -f /dev/hda2/sda2_bak.dump //查看备份信息
50,restore -r -f /dev/hda2/sda2_bak.dump //还原备份
51,fc-list //查看系统中安装的字体
52,find ./ -type f -exec grep -q "root" {} ; -exec echo {} ; //查找目录下文件所包涵的字符串
53,vmstat 5 //每5显示一下次系统信息,cpu,memory,i/o等
54,top 后 在shift + P 所占进程的排序显示
55,top 后 在shift + M 所占内存的排序显示
56,iptraf -g //查看各个接口的流量
57,ostat -d -x /dev/sda2 2 //用iostat查看磁盘/dev/sda2的磁盘i/o情况,每两秒刷新一次
58, paste -sd '|||n' test //文件的每4行转换成1行,并用|隔开。
59,lsof -i :22 //知道22端口现在运行什么程序
60,lsof -c abc //显示abc进程现在打开的文件
61,lsof -p 12 //看进程号为12的进程打开了哪些文件
63,route //查看路由信息
64,ifup //开启网卡
65,ifdown //关闭网卡
66,route del -net 172.168.0.0 netmask 255.255.0.0 dev eth0 //删除 172.168这个网段
67,route add -net 172.168.10.0 netmask 255.255.255.0 dev eth0 //增加一个路由
68,netstat -tunl //列出监听的网络服务端口
69,netstat -tun //列出已连接的网络服务端口
70,nmap -sP 172.30.4.0/24 //在这个网段内有多少用户在我的主机上操作,一个不错的安全检查工具
71,vgdisplay //查看系统中的可用空间
72,lvextend -L+20G /dev/tank/part1 //向part1这个分区增加20G的空间
73,lvresize -L-10G /dev/tank/part2 //向part2这个分区减少10G的空间
74,pvdisplay //查看磁盘信息
75,mplayer -loop 10 /mnt/song/music/花儿开了.mp3 //循环播放10遍
76,pacman -S firefox -nd //nd去掉依赖
77,wget -c //断点下载
78,chroot /mnt/ubuntu //改变根目录到/mnt/ubuntu
79,ctrl+a //命令行下,光标称动到开头
80,ctrl+e //命令行下,光标移动结尾
81,cut -d: -f 1-4 test //用:分割文件,取分割后的1-4列
82,file /home/zhangy/test.php //用于查看文件的一些基本信息
83,touch test.txt //创建一个空文件 text.txt
84,htpasswd -cbd /usr/local/nginx/conf/authfile //创建访问控制文件
85,df //查看磁盘空间,和当前的磁盘数
86,fdisk -l //查看所有磁盘数
87,alsamixer //进入后,m键可以实现静音
88,killall httpd //把所有httpd进程杀掉
89,killall -9 mysqld_safe //有些进程超级用户也停止不了,-9是强制删除
90,mirror /mysql //下载mysql目录
91,mirror -R /mysql //上传mysql目录
92,rmmod pcspkr //关掉tab提示音
93,modprobe pcspkr //开启tab提示音
94,gpasswd -a zhangy wheel //将zhangy这个用户添加到wheel这个组
95,dd if=/dev/zero of=/virtual/ubuntu.virt.img bs=1M count=4096 //创建一个4G的IMG镜像
96,lspic //显示pci设备
97,lsusb //显示usb设备
98,history | less //less根more有点像,感觉less用着更舒服点
99,ln -s //如果忘了-s就变成硬链接了
100,tar zxvf test.tar.gz -C /home/zhangy //将内容解压到指定目录
浏览量:2
下载量:0
时间:
今天小编要给大家介绍的是Linux系统下VI编辑器的用法,首先读文网小编要给大家介绍下vi命令是Linux下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。若在vi执行时没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件。若指定的文件不存在,那么就按指定的文件名创建一个新的文件。若对文件的修改不保存的话,v i命令并不改变原来文件的内容。
注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后保存的文件版本将被保留。
:e filename 使用filename激活vi (在vi中装入另一个文件filename)。
e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动。
:e+filename 使用filename激活vi ,并从文件尾部开始编辑。
:e+number filename 使用filename激活vi ,并在第number行开始编辑。
:e# 开始编辑另外一个文件。
浏览量:2
下载量:0
时间:
读文网小编将介绍passwd命令的几种用法。首先读文网小编介绍下passwd命令的解释。
passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码。
首先我们执行命令 passwd 则更改当前登录用户本身的密码。
如下图所示我们使用管理员登录,修改root账户的密码。
第二条命令必须在管理员权限登录下,执行。命令格式为passwd +要修改的用户的名称。设置其他用户的密码。
第三条命令,在普通用户或者管理员用户登录情况下,执行命令passwd -S。查看当前用户的密码状态。
可以看到返回结果为:root P 10/27/2015 0 99999 7 -1。我们对各个字段进行解释。
root(第一个字段):用户名称。
P(第二个字段):该字段默认显示为密码的状态,在debian系统下有三种状态:NP 代表无密码,P代表已经设置密码,L代表密码锁定状态。
10/27/2015(第三个字段):代表上次修改密码的时间。
后面4个字段分别代表密码能更改的最小期限和最大期限,警告期限和没有使用该口令的时长。
备注:在管理员权限下可执行命令:passwd -S+用户名,查看该用户的密码状态。
第4条命令。在管理员权限下执行。passwd -Sa 查看系统内所有用户的密码状态。如下图所示显示debian系统下所有用户的密码状态。
第5条命令,在管理员权限下执行。执行命令为passwd -d+用户名称,意思为删除用户密码。
本篇中我们在root登录情况下,删除test用户的密码。然后切换到test下,执行passwd -S查看密码状态。
第6条命令,在管理员权限下执行。执行命令为passwd -l +用户名称。
意思为锁定用户密码。执行后,该用户登录系统后,不能更改自己的密码了。
第7条命令,在管理员权限下执行,执行命令为:passwd -u +用户名称。意思为解锁用户密码。
浏览量:3
下载量:0
时间:
在linux系统下如果没有安装gcc,就没发安装源码包。有时候可以手动安装gcc-X.X.X.tar.bz2,但是在没有gcc包的时候,我们可以用yum在线安装gcc环境。下面请看读文网小编为大家推荐的方法吧~
进入到一下文件/etc/yun.repos.d/
修改CentOS-Base.repo文件名为CentOS-Base.repo.bak使其使用失效,从而使系统使用CentOS-Media.repo文件.
执行命令:vim CentOS-Media.repo 使用vim打开文件CentOS-Media.repo并对其以下各项进行修改,开始的界面
修改后界面
执行安装命令:yum -y install gcc,至此安装成功!
浏览量:3
下载量:0
时间:
find是个使用频率比较高的命令。常常用它在系统特定目录下,查找具有某种特征【名字类型属主权限等】的文件。读文网小编分享了Linux find命令常见用法,希望大家喜欢。
·find path -option [ -print ] [ -exec -ok command ] {} ;
find命令的参数;
pathname: find命令所查找的目录路径。例如用。来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command’ { } ;,注意{ }和;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
#-print 将查找到的文件输出到标准输出
#-exec command {} ; —–将查到的文件执行command操作,{} 和 ;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
例:find 。 -name .svn | xargs rm -rf
====================================================
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px“》
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录
=====================================================
$find ~ -name ”*.txt“ -print #在$HOME中查.txt文件并显示
$find 。 -name ”*.txt“ -print
$find 。 -name ”[A-Z]*“ -print #查以大写字母开头的文件
$find /etc -name ”host*“ -print #查以host开头的文件
$find 。 -name ”[a-z][a-z][0–9][0–9].txt“ -print #查以两个小写字母和两个数字开头的txt文件
$find 。 -perm 755 -print
$find 。 -perm -007 -exec ls -l {} ; #查所有用户都可读写执行的文件同-perm 777
$find 。 -type d -print
$find 。 ! -type d -print
$find 。 -type l -print
$find 。 -size +1000000c -print #查长度大于1Mb的文件
$find 。 -size 100c -print # 查长度为100c的文件
$find 。 -size +10 -print #查长度超过期作废10块的文件(1块=512字节)
$cd /
$find etc home apps -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name ”passwd*“ -exec grep ”cnscn“ {} ; #看是否存在cnscn用户
$find 。 -name ”yao*“ | xargs file
$find 。 -name ”yao*“ | xargs echo ”“ 》 /tmp/core.log
$find 。 -name ”yao*“ | xargs chmod o-w
======================================================
find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} ;
find /tmp -name tmp.txt -ok rm {} ;
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
查当前目录下的所有普通文件
# find 。 -type f -exec ls -l {} ;
-rw-r–r– 1 root root 34928 2003-02-25 。/conf/httpd.conf
-rw-r–r– 1 root root 12959 2003-02-25 。/conf/magic
-rw-r–r– 1 root root 180 2003-02-25 。/conf.d/README
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出
=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} ;
=================================================
查询当天修改过的文件
[root@book class]# find 。/ -mtime -1 -type f -exec ls -l {} ;
=================================================
查询文件并询问是否要显示
[root@book class]# find 。/ -mtime -1 -type f -ok ls -l {} ;
《 ls … 。/classDB.inc.php 》 ? y
-rw-r–r– 1 cnscn cnscn 13709 1月 12 12:22 。/classDB.inc.php
[root@book class]# find 。/ -mtime -1 -type f -ok ls -l {} ;
《 ls … 。/classDB.inc.php 》 ? n
[root@book class]#
=================================================
查询并交给awk去处理
[root@book class]# who | awk ’{print $1”“$2}’
cnscn pts/0
=================================================
awk—grep—sed
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ’none’ | sed s”//dev///g“
文件系统
sda2
sda1
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ’none’
文件系统
/dev/sda2
/dev/sda1
1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR”,最后打印出所有包含“SYSCALL_VECTOR”的文件名
A) find /tmp -name “*.h” | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d’:‘ -f1| uniq 》 filename
C) find /tmp -name “*.h” -exec grep “SYSCALL_VECTOR” {} ; -print
2)find / -name filename -exec rm -rf {} ;
find / -name filename -ok rm -rf {} ;
3)比如要查找磁盘中大于3M的文件:
find 。 -size +3000k -exec ls -ld {} ;
4)将find出来的东西拷到另一个地方
find *.c -exec cp ‘{}’ /tmp ‘;’
如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir
6)查找2004-11-30 16:36:37时更改过的文件
# A=`find 。/ -name “*php”` | ls -l –full-time $A 2》/dev/null | grep “2004-11-30 16:36:37”
Linux-all, Linux | No Comments »
find 实例
要在/usr/linux中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR“,最后打印出所有包含”SYSCALL_VECTOR“的文件名,有以下几种方法实现
find /usr/linux -name ”*.h“ | xargs -n50 grep SYSCALL_VECTOR
grep SYSCALL_VECTOR /usr/linux/*.h | cut -d’:’ -f1 | uniq 》 filename
find /usr/linux -name ”*.h“ -exec grep ”SYSCALL_VECTOR“ {} ; -print
我用find / -name filename| rm -rf,不成功,请问为什么不成功?
find / -name filename -exec rm -rf {} ;
find 。 -name filename |rm -rf试一下{} 表示你找出来的结果。
; 则相当于“宪法”,没什么说头,就是这么规定的,在 -exec 后面需要一个表示该命令终结的的符号。可以在 man find 中找到答案。
要让rm识别find的结果,如下:
find / -name filename |xargs rm -rf
之所以find 。 -name filename |rm -rf不通过,是因为rm命令不接受从标准输入传过来的指令
查找含特定字符串的文件
例如查找当前目录下含有”the string you want find…“字符串的文件:
$find 。 -type f -exec grep “the string you want find…” {} ; -print
从根目录开始查tmpfile,一旦查到马上删除
find / -name ”tmpfile“ -exec rm {} ;
find 的perm问题
请问一下以下命令什么意思?关键是那个数字前的-,其他都还知道
find -name ”.*“ -perm -007
我知道
find -name ”.*“ -perm 755
这个是用来查找权限位为755的隐藏文件
噢,对了还有,我上边的命令都省略了find的pathname参数 find默认是查找当前工作目录的吗?
如果我用 -ok 替代 -exec, 那么还需要加上 {} ; 吗?
这个已经清楚,仍然需要,因为 -ok 只是 -exec 的提示模式,它只是多了一个确认操作的步骤,刚才没有读懂那几句E文的意思 呵呵 不好意思
-007是指查找所有用户都可读、写、执行的文件,要小心呀~~~
解释解释?
find -name ”.*“ -perm -007 和 find -name ”.*“ -perm 777 有区别吗?
-007是怎么来得呢?
不过有一个问题
我用 find 。 -perm -100 会列出当前目录 。 , 这是为什么呢?
下面引用由explover在 2002/10/01 06:15am 发表的内容:
-007是指查找所有用户都可读、写、执行的文件,要小心呀~~~
-007是查找含其它用户(不同组,非属主)可读,写,执行的文件。并不一定要同组可读写,-是指最少权限为007.
下面引用由一颗小白菜在 2002/10/01 10:16am 发表的内容:
OK了, 呵呵
不过有一个问题
我用 find 。 -perm -100 会列出当前目录 。 , 这是为什么呢?
这种方法不会准确的找出目录的。 -100是指权限至少是属主可运行。
在unix系统下,你可以拥有对目录文件的执行权你才可以进入一个目录。这便是目录文件被列出的原因。
find 。 -perm -001 -print找到往往是目录文件。
我的意思当然不是使用这种方法来找目录,只不过不明白其中的 -100 意义了
那以此类推,是不是 -010是指权限至少是owner同组可执行的吗?也就是说其实这里的010和-是分开的,-表示一个至少的意思,而且010才是真正用来描述权限位的?
这样子就明白了 谢谢你噢
将find出来的东西拷到另一个地方?
find *.c -exec cp ‘{}’ /tmp ‘;’
如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir
找出磁盘中某个大小范围内的文件
比如要查找磁盘中大于3M的文件:
find 。 -size +3000k -exec ls -ld {} ;
如何用find查找某一天更改的文件?
可以使用这一行命令来实现:
A=`find ~ -print` | ls -l –full-time $A 2》/dev/null | grep ”Jun 27“ | grep 1998
使用find 命令查找某个时间段的shell怎么写。比如11点到12点的。thanks
创建一个脚本judgetime,内容如下:
ls -l $*|awk ‘{split($8,hour,”:“);if((hour[1]》23 || hour[1] 《 1)&&hour[1]《24)print}’
到要查找的目录下,运行
find 。/ -name ”*“ -exec judgetime {} ;
注意时间格式为24小时制。
thank you ,如果我要精确到分钟呢
touch -t 04241112 starttemp #精确到12分钟
touch -t 04241220 endtemp #截止到12点20
find [dir] -newer starttemp -a ! -newer endtemp -exec ls -l {} ;
newer?
那昨天12:10文件如何呢?
每天执行的时候,用当天的日期和时间戳替换一下不就行了吗?
我不知道他是不是把所有的11:00~12:00的都找出来,是不是只执行一次还是每天都执行?
这种情况俺猜想是自己的东西放在哪忘了,只记得当时是深夜了。
有道理!
不愧是斑竹!
不光知道怎么解决问题,还知道在什么情况下出现这类问题,佩服佩服!
问题又出现了。创建这个文件的时候。本来应该是时间的一栏现在写上了2002,而不是12:00.
等到12:00过了吧!
删除指定日期的文件
find 。/ -name 文件名 -exec rm -f {} ;
例:删除当前30天内没用过的文件,用如下命令:
find / -atime +30 -exec rm -f {} ;
我自己试着写了一小段SHELL,也用ll ,grep, rm 几个命令,用起来还差强人意。
对过滤出来的文件名列表中用了一个FOR语句,再执行rm 。现在我想把这段SHELL 扩展一下让它每天定时运行将 n 天前的文件删掉,有没有人能给我一些提示,谢谢!
还有个问题,对于前面那位朋友提到的”find / -atime +30 -exec rm -f {} ;
“方法,我很早就试过几次,不过好像都不太对,参数 -atime n 是查找n天前被访问过的文件,我不明白的是这里的时间参照点是什么,以及这个n天是怎么计算的。
问 题二、对于”ll |cut -f 1“ 这个命令我是不是用错了,我只想取出 ll 中列出的文件名,但用cut -f 命令做不到 ,我只好换用 ll |cut -c 59- 这种方式得到我要的文件名,but it’s a pool idear !我也试过用awk ,好像也不对,看看大家可不可以给我一些小小的提醒,TKS SO MUCH
问题三、如何改变 I结点 的日期格式 我现在的系统显示的格式是:
-rw-r—– 1 msahz01 users 2253 2002年2月 2日 poheader.i
我想把这换成
-rw-rw-rw- 1 house users 2193 Apr 19 2001 hkdisp.p
如何才能做到这点?
awk 应该可以
ll | awk ‘{print $9}’
删除多少天之前的文件
find /yourpath -mtime +31 -exec rm {} ;
find /yourpath -mtime +366 -exec rm {} ;
find中, -ctime, -mtime及其-atime有何区别
请问 -ctime 和 -mtime 有什么关系 ?
如果父目录的 ctime 改变, 那它下面的文件的 ctime 就会自动都改了吗 ?
-ctime 和 -mtime ,-atime 这些信息是存在哪儿呢 ?
我用 -mtime -1 找到了新建或改的文件。
但怎样才能找到一天内 mv 来的文件呢( 它们的时间是原有的时间,早于一天 ) ?
用-newer选项啊。
你可以先touch一个你想要的时间的文件如下:
$ touch -t 08190800 test
$ ls -l test
-rw-r–r– 1 dba other 0 Aug 19 08:00 test
然后
$ find 。 -newer test -print
。
。/.sh_history
$ ls -l .sh_history
-rw——- 1 dba other 154 Aug 20 17:39 .sh_history
用touch可以写出你想要的任何时间的文件,然后用-newer ,! -newer选项即可成功。
1.ctime含inode信息修改的时间.mtime只指文件内容建立或修改的时间。
2 不会。
3.这些信息应该是存在文件系统的超级块里。
我查了书 -ctime 是指 inode 的改变(或称文件的状态改变)。
请问 inode 存了哪些信息 ?
做了些小测试,-mtime 改, -ctime 一定也改。
改文件名, -ctime 也会改。
谁能回答 i-node 存了哪些东西 ?
vi /usr/include/sys/inode.h
班主,我不能 access /usr/include/sys/inode.h 。
摘书如下:
Directories contain directory entries. Each entry contains a file or subdirectory name and an index node reference number (i-node number)。 To increase speed and enhance use of disk space, the data in a file is stored at various locations in the computer’s memory. The i-node contains the addresses used to locate all the scattered blocks of data associated with a file. The i-node also records other information about the file including time of modification and access, access modes, number of links, file owner, and file type.
可我发现 -atime 改了, -ctime 还没改。 why ?
( 我先 cat 一个 ASCII 文件,再用 -atime -1 有它用 -ctime -1 居然没有它。)
着岂不跟 inode 信息改变, ctime 就改矛盾吗?
我不同意你贴出来的那段文章,正如我提到的那样,atime,ctime,mtime是放到超级块里,在sco unix下是一种叫stat的结构。(stat_32),不同的系统文件系统可能不同。
sco 下inode的结构如下:
typedef struct inode
{
struct inode *i_forw; /* inode hash chain */
struct inode *i_back; /* ‘’ */
struct inode *av_forw; /* freelist chain */
struct inode *av_back; /* ‘’ */
int *i_fsptr; /* ”typeless“ pointer to fs dependent */
ino32_t i_number; /* i number, 1-to-1 with dev address */
ushort i_ftype; /* file type = IFDIR, IFREG, etc. */
short i_fstyp; /* File system type */
off_t i_size; /* size of file */
ushort i_uid; /* owner */
ushort i_gid; /* group of owner */
ushort i_flag;
ushort i_want; /* i_flag extension to avoid MP races */
ushort i_count; /* reference count */
short i_nlink; /* directory entries */
dev_t i_rdev; /* Raw device number */
#define i_namtype i_rdev /* i_ftype==IFNAM subtype */
dev_t i_dev; /* device where inode resides */
struct mount *i_mton;/* ptr to mount table entry that */
/* this directory is mounted on */
struct region *i_rp; /* ptr to shared region if any */
struct stdata *i_sp; /* ptr to associated stream */
struct iisem *isem; /* ptr to XENIX semaphores */
struct iisd *isd; /* ptr to XENIX shared data */
} i_un;
#define i_mnton i_un.i_mton /* i_ftype==IFDIR IMOUNT */
#define i_rptr i_un.i_rp /* i_ftype==IFREG || i_ftype==IFBLK */
#define i_sptr i_un.i_sp /* i_ftype==IFCHR || i_ftype==IFIFO */
#define i_sem i_un.isem /* i_ftype==IFNAM && i_namtype==IFSEM */
#define i_sd i_un.isd /* i_ftype==IFNAM && i_namtype==IFSHD */
struct fstypsw *i_fstypp; /* ptr to file system switch FSPTR */
long *i_filocks; /* pointer to filock (structure) list */
unsigned long i_mappages; /* number of pages currently cached */
unsigned long i_vcode; /* read-ahead block save (NFS) */
short i_wcnt; /* write open count or ITEXT count */
struct lockb i_cilock; /* tas to synchronize i_flag changes */
ushort i_rdlocks; /* count of non-exclusive lockers */
} inode_t;
所以,访问一个文件不能改变inode信息。
使用chown, chgrp, chmod命令可以很好的比较mtime和ctime
chown改变一个文件的属主,用ctime可以找到,用mtime便找不到。
试试看。
多谢斑竹! 我是在 Solaris 上面试的。我是对 -ctime 不明白。
试的结果如下:
修改文件,-mtime 改了, -ctime 也会改。
访问文件,-atime 改了, -ctime 没变。
chown, chgrp, chmod,mv, 都会使 -ctime 改变,但不影响 -atime 和 -mtime.
touch 可以改 -mtime and/or -atime,但 touch -a 只改访问时间时,-ctime也改了。
touch -m 改修改时间时,-ctime当然也改了。
好象还有别的很多东西可以令 -ctime 改变, 搞不清楚。
有什么方法可以显示 -mtime,atime,ctime 吗?
可以用 -ctime 来实现对目录的增量文件进行备份或 transfer 吗 ?
多谢!
没有什么工具显示,(可能是俺不知道)
把下面程序里的st_mtime换成st_ctime,或st_atime便可以得到你要的了。
#include
int
main (int argc, char **argv)
{
struct stat buf;
char date[80];
char fname[80];
printf(”Enter filename (with full path) to check mtime : “);
scanf(”%s“,fname);
stat(fname, &buf);
printf (”mtime (in sec) of %s = %ld“, fname, buf.st_mtime);
strcpy(date, ctime((time_t *)&(buf.st_mtime)));
printf (”mtime (in date) of %s = %s“, fname, date);
}
至于文件备份,有什么不可以的么?
mtime ls -l 最近修改文件内容的时间
atime ls -lu 最近访问文件的时间
ctime ls -li 最近文件有所改变的状态 ,如文件修改,属性属主 改变 ,节点 ,链接变化等 ,应该是不拘泥只是时间前后的改变
俺看了ls的帮助,以为只是按ctime或atime排序,显示的时间还是mtime.
仔细比较了一下,ayhan说的是对的。谢谢ayhan.
多谢 ahyan 提示 ! 我在 Solaris 上试过如下:
mtime 用 ls -l 看到
atime 用 ls -lu 看到
ctime 用 ls -lc 看到。 (ls -li 只有 inode number)
摘书如下:
-c Uses time of last modification of the i-node (file
created, mode changed, and so forth) for sorting (-t)
or printing (-l or -n)。
-u Uses time of last access instead of last modification
for sorting (with the -t option) or printing (with the
-l option)。
-i For each file, prints the i-node number in the first
column of the report.
上面就是Linux下find命令的常见用法的介绍了,所有会使用到的find都有提到,初学者如果对find命令不熟悉的话,不妨来详细了解下find命令。
浏览量:5
下载量: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
时间:
如果没有设置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下实现断点续传的方法,希望对大家有所帮助。
断点续传的原理
其实断点续传的原理很简单,就是在 Http 的请求上和一般的下载有所不同而已。
打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:
假设服务器域名为 wwww.sjtu.edu.cn,文件名为 down.zip。
GET /down.zip HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-
excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Connection: Keep-Alive
服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下:
200
Content-Length=106786028
Accept-Ranges=bytes
Date=Mon, 30 Apr 2001 12:56:11 GMT
ETag=W/“02ca57e173c11:95b”
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 Web 服务器的时候要多加一条信息 -- 从哪里开始。
下面是用自己编的一个“浏览器”来传递请求信息给 Web 服务器,要求从 2000070 字节开始。
GET /down.zip HTTP/1.0
User-Agent: NetFox
RANGE: bytes=2000070-
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
仔细看一下就会发现多了一行 RANGE: bytes=2000070-
这一行的意思就是告诉服务器 down.zip 这个文件从 2000070 字节开始传,前面的字节不用传了。
服务器收到这个请求以后,返回的信息如下:
206
Content-Length=106786028
Content-Range=bytes 2000070-106786027/106786028
Date=Mon, 30 Apr 2001 12:55:20 GMT
ETag=W/“02ca57e173c11:95b”
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT
和前面服务器返回的信息比较一下,就会发现增加了一行:
Content-Range=bytes 2000070-106786027/106786028
返回的代码也改为 206 了,而不再是 200 了。
知道了以上原理,就可以进行断点续传的编程了。
Java 实现断点续传的关键几点
(1) 用什么方法实现提交 RANGE: bytes=2000070-。
当然用最原始的 Socket 是肯定能完成的,不过那样太费事了,其实 Java 的 net 包中提供了这种功能。代码如下:
URL url = new URL(“http://www.sjtu.edu.cn/down.zip”);
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
// 设置 User-Agent
httpConnection.setRequestProperty(“User-Agent”,“NetFox”);
// 设置断点续传的开始位置
httpConnection.setRequestProperty(“RANGE”,“bytes=2000070”);
// 获得输入流
InputStream input = httpConnection.getInputStream();
从输入流中取出的字节流就是 down.zip 文件从 2000070 开始的字节流。 大家看,其实断点续传用 Java 实现起来还是很简单的吧。 接下来要做的事就是怎么保存获得的流到文件中去了。
保存文件采用的方法。
我采用的是 IO 包中的 RandAccessFile 类。
操作相当简单,假设从 2000070 处开始保存文件,代码如下:
RandomAccess oSavedFile = new RandomAccessFile(“down.zip”,“rw”);
long nPos = 2000070;
// 定位文件指针到 nPos 位置
oSavedFile.seek(nPos);
byte[] b = new byte[1024];
int nRead;
// 从输入流中读入字节流,然后写到文件中
while((nRead=input.read(b,0,1024)) 》 0)
{
oSavedFile.write(b,0,nRead);
}
以上就是断点续传的原理,知道这些原理,相信大家都能够进行编程了吧
看过“Linux下怎么实现断点续传”
浏览量:3
下载量:0
时间: