赞
踩
mkdir-p /a/b/c
-l#列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等
-d#只查看目录
-F#会在不同类型的文件后面加上*/=>@|等符号,以便区分不同类型文件
-p#会在目录后面加上/,以便区分目录和文件
-h#人类可读模式,显示K、M、G
-i#显示inode,也就是文件的index number
-r#依相反次序排列,–reverse
-R#列出所有子目录层, –recursive
-t#按修改时间进行文件的排序,-modificationtime
-s#在每个文件的后面打印出文件的大小,-size
-a#列出文件下所有的文件,包括以“.“开头的隐藏文件
-A#列出除了"."和".."以外的文件。
--color=auto #添加颜色
--time-style=STYLE#style值可选full-iso,long-iso(最优), iso, locale
ll --time-style=long-iso install.log (显示效果最好)
-rw-r--r--. 1 root root 62057 2017-01-14 14:32install.log
ll --time-style=full-iso install.log
-rw-r--r--. 1 root root 62057 2017-01-1414:32:36.206994569 +0800 install.log
ll --time-style=iso install.log
-rw-r--r--. 1 root root 62057 01-14 14:32 install.log
ll --time-style=locale install.log
-rw-r--r--. 1 root root 62057 Jan 14 14:32 install.log
~表示家目录,
-表示上一次的目录
cd~
cd/tep/fq
cd/root
cd- # 回到/tep/fq
pwd
-n : 不换行输出
-e : 激活转义字符\,可以使用以下转义字符
\a alert (BEL)
\b backspace
\c produce no further output
\e escape
\f form feed
\n new line #换行
\r carriage return
\t horizontal tab #水平tab键
\v vertical tab #垂直tab键
echo"abce"
echo -n'abcd';echo 'efg'
echo -e"hello\tworld"
hello world
echo -e"hello\nworld"
hello
world
echo -e "hello\vworld"
hello
world
echo `date +%F`
echo $(date +%F)
:set nu 显示行号
settabstop=4 一个tab为4个空格长度
set ai 设置自动缩进
syntax on 高亮
dd 删除当前行
yy 复制当前行
p 粘贴
行号gg 定位到指定行号
G 切换到文件尾
gg 切换到文件首
^或0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
cat/etc/hosts
cat-n /etc/hosts #显示行号
cat>>a.txt<<EOF #将EOF之间所所有数据追加到a.txt尾部
...
EOF
cpa.txt /tmp/
cp-r a /tmp #将目录a拷贝到tmp
cp-a a /tmp #-a = -dpr
mva.txt /tmp
mva.txt b.txt #将a.txt改为b.txt
-f强制删除文件
-r递归删除文件或目录
-fr删除指定的目录和文件
rm-fr /tmp/*
-n行数
head-n 500 a.txt
head-500 a.txt
-n行数,显示文件后几行,默认10行;
-f跟踪文件结尾变化,如果文件被删除后重建,不会显示新的变化
-F跟踪文件结尾变化,会尝试重新连接文件,如果文件被删除后重建,会显示新的变化
tail-n 500 a.txt
tail-500 a.txt
类似命令:tailf。
tailf相当于tail -f,类似于tail -f,严格说来应该与tail –follow=name更相似些。
与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以省电,并减少了磁盘访问
可以在/etc/profile、/etc/bashrc中配置全局别名。在用户家目录.bashrc配置用户别名
alias grep='grep --color=auto'
cata.txt | tac
whichntpdate
/usr/sbin/ntpdate
-typef 按类型(f:文件 d:目录)
-namefilename 按文件名
-perm 按权限查找
-mtime 按修改时间, +n表示n天前,-n表示最近的n天,n表示第n天
-prune 忽略某个目录,如查没有-depth参数,则-prune则有效,并表示不深入到目录里面。(难以理解,见下面练习题第二关中的说明)
-mindepth 限定搜索指定目录的最小深度
-maxdepth 限定搜索指定目录的最大深度
! 排除
-o 或,等于-or
-and 并且,条件之件默认为-and
find/ -type -f -name aaa #查找文件名为aaa的文件
find. -maxdepth 1 -type d ! -name "." #只查找1层,类型是目录,目录名不含有.的目录
find/bin -type f -perm 4755 -exec ls -l {}\; #查找有特殊权限的命令
-d 显示目录
-L 要显示层级
tree/
tree-L 1 / : 只显示一层结构
find /tmp -typef -name aa | xargs rm –fr
find ./ -type f -print0| xargs -0 md5sum >> md5_rc1.txt
后一种是适用于文件名含有空格的文件。通常xargs用于隔断文件是默认为:空格、TAB、换行符等,-print0则是以NULL隔断文件,xargs -0 就是以NULL来区分文件隔断。
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件
-或-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量
-m,-p或--preserve-environment:变更身份时,不要变更环境变量
-s或--shell=:指定要执行的shell
--help:显示帮助
--version;显示版本信息。
su - root
sudouseradd kkk
rpm-ivh :安装
rpm-e :卸载
rpm-e --nodeps :不考虑依赖,强行卸载
whereis-b mkdir
mkdir:/bin/mkdir
-a:
-r:
-m:
uname-a
shutdown-r now : 重启
shutdown-h now : 关机
lsb_release-a
硬链接:源文件与目标文件的inode号码相同,都指向同一个inode
ln 源文件 目标文件
软链接:相当于windows中的快捷方式
ln -s 源文件 目标文件
ln -s /abc/def/ghi/jk/ /tmp/jk/
可以通过readlink 软链接名,来查看软链接信息
-L, --dereference #follow links
-Z, --context #print the SELinux security context
-f, --file-system #display file system status instead of file status
-c --format=FORMAT #格式化输出
-t, --terse #print the information in terse form
The valid format sequences for files (without --file-system):
%a Access rights in octal(八进制权限644)
%A Access rights in humanreadable form(人类可读模式rw-r--r--)
%b Number of blocks allocated(see %B)(取stat信息中的Blocks: 后面的值)
%B The size in bytes of eachblock reported by %b
%C SELinux security contextstring
%d Device number in decimal
%D Device number in hex
%f Raw mode in hex
%F File type
%g Group ID of owner
%G Group name of owner
stat install.log
File: `install.log'
Size: 62057 Blocks: 136 IO Block: 4096 regular file
Device: 803h/2051d Inode:391683 Links: 1
Access: (0644/-rw-r--r--) Uid:( 0/ root) Gid: ( 0/ root)
Access: 2017-01-01 23:32:26.238999717 +0800
Modify: 2017-01-02 00:00:41.324999404 +0800
Change: 2017-01-02 00:01:11.062999379 +0800
stat -c %B etiantian
512
stat -c %d etiantian
1792
stat -c %G etiantian
root
df -hi
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
选择参数:
--block-size=<区块大小>指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
--help 显示帮助信息
--version 显示版本信息
-N #显示行号
less a.txt
less -N a.txt
source/etc/sysconfig/i18n 或 . /etc/sysconfig/i18n
[--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--program|-p]
netstat-lntup
netstat-an
lsof -c abc 显示abc进程现在打开的文件
lsof -c -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一个)
port --> 端口号 (可以不止一个)
COMMAND:进程的名称 PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
lsof -i :port :查看端口情况
lsof-i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2776 root 3u IPv4 16724 0t0 TCP *:ssh (LISTEN)
sshd 2776 root 4u IPv6 16730 0t0 TCP *:ssh (LISTEN)
sshd 23312 root 3r IPv4 3417749 0t0 TCP LS-B:ssh->127.0.0.1:patrolview(ESTABLISHED)
crontab--操作每个用户的守护程序和执行的时间表。
crontabfile [-u user]--用指定的文件替代目前的crontab。
crontab- [-u user]--用标准输入替代目前的crontab。
crontab-l [user]--列出用户目前的crontab。
crontab-e [user]--编辑用户目前 的crontab 。
crontab-d [user]--删除用户目前 的crontab 。
crontab-c dir --指定crontab的目录。
crontab文件的格式:M H D m d cmd
M:分钟(0-59)
H:小时(0-23)
D:天(1-31)
m:月份(1-12)
d:一星期内的天(0-6,0为星期天)
history-d 9 #删除指定行号的历史记录
history-c #删除所有历史记录
可以通过配置HISTCONTROL=ignorespace环境变量来指定history命令不记录敏感操作。如:
一般情况会显示:
history -c
mysql -uroot -p123456
histroy
mysql -uroot -p123456
history
使用HISTCONTROL
history -c
HISTCONTROL=ignorespace
mysql -uroot -p123456
histroy
HISTCONTROL=ignorespace
history
seq-s "," -f "t%01g" 1 5
-s :使用分隔符
"," :分隔符为了英文逗号
-f :格式化
%01g:1位浮点数
结果 :t1,t2,t3,t4,t5
chkconfig-–list #列出所有的系统服务
chkconfig-–add httpd #增加httpd服务
chkconfig-–del httpd #删除httpd服务
chkconfig-–level httpd 2345on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig-–list #列出系统所有的服务启动情况
chkconfig-–list mysqld #列出mysqld服务设置情况
chkconfig-–level 35 mysqldon #设定mysqld在等级3和5为开机运行服务,–level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfigmysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
参数:
-c:只输出匹配行的计数。
-i:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:排除,显示不包含匹配文本的所有行。
-e: 或的意思,可使用多个条件
-E: 使用多个条件,相当于多个-e,需加双引号
--color=auto #添加颜色
grep -E 相当于egrep
示例:
grep 'test' d* # 显示所有以d开头的文件中包含 test的行。
grep 'test' aa bb cc #显示在aa,bb,cc文件中匹配test的行。
grep linuxtechi /etc/passwd: #在/etc/passwd文件中查找单词"linuxtechi"
grep -e EST -e WAIT /netstat.log #在netstat.log中查找包含EST或WAIT的行
grep -E "EST|WAIT" /netstat.log #在netstat.log中查找包含EST或WAIT的行
grep -v ^# /etc/ssh/sshd_config #过滤文件/etc/ssh/sshd_config中所有的注释
grep -Ev "^#|^$"/etc/ssh/sshd_config #过滤文件/etc/ssh/sshd_config中所有的注释和空行
sed是一种在线编辑器,一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容打印到屏幕。然后处理下一行,至文件末尾。此时,原文件的内容不会改变,除非用-i参数来指定sed修改原文件。sed的分隔符可以是#,也可以是/。
sed [-nefri] [n1[,n2]][command] 输入文本
-n:取消默认打印,只打印sed特殊处理的那一行。
-e:直接在指令列模式上进行sed的动作编辑。
-f:sed直接执行动作文件内的动作command。-f commandfile
-r:使用扩展的正则表达式(默认为基础正则表达式语法)
-i:直接修改读取的文件的内容,不在由屏幕输出
一般表示选择要进行动作的行数。如动作要删除在10行到20行之间的行:[10,20d]
a:新增。新增一行a后面的字符串(当前行的下一行)
c:取代。c后面的字符串可以取代n1,n2之间的行
d:删除。
i:插入。插入i后面的字符串(当前行的上一行)
p:打印。
s:替换。
sed -nr 's#abc
s###g中第1个#和第2个#之间的内容表示要查找的内容,可以用正则表达式,其中用小括号()括起来的内容,可以在第2个#和第3个#之间用\1来调用,第2个#和第3个#之间不能用正则表达式。如查前面有多个小括号,则\1、\2、...\n来表示第1个括号的内容,第2个括号的内容。。。第n个括号的内容。r表示使用正则表达式,g表示全局替换,p表示打印。由于前面有-n取消了默认输出,所以必须用参数p来打印过滤出的内容,否则什么都不会输出。
sed s#str1#str2#g filename:用str2替换str1,只打印,但不改原文件内容。-i:表示修改原文件内容
sed s#oldboylinux#mywindows#g ett.txt:将oldboylinux替换成mywindows
sed -i s#oldboylinux#mywindows#g ett.txt :此时ett.txt中的内容已被替换
sed -n 2p #显示第2行
sed -n [2,5d] #删除第2、3、4、5行
sed -n '/oldboylinux/p' ett.txt #过滤出含有oldboylinux的行
echo 'kkkddd' | sed 's#
echo 'kkkddd' | sed -r 's#(kkk)(ddd)#\1#g' #kkk
echo 'kkkddd' | sed -r 's#(kkk)(ddd)#\1 \2#g' #kkk ddd
echo 'kkkddd' | sed -r 's#(kkk)(ddd)#\1 is a \2#g' # kkk is a ddd
删除ifconfig eth1的输出前后的空格,并将内容中的相连的多个空格替换为一个空格
ifconfig eth1 | sed -r 's# +# #g' | sed -r 's#^ ##g' | sed -r 's#+$##g'
在a.txt文件的第1行插入1行内容为:wddglog
sed -i '1 i wddglog' a.txt #-i表示修改原文件,1表示第1行,i表示插入
awk -F: '{print $1}' /etc/passwd #以:为分隔符,打印/etc/passwd中的第一列
-F:指定分隔符,默认分隔符为空格。多个分隔符需用'[]','[]'内的全部为分隔符,同时有效
$0:表示一行
$1:表示第一列
$n:表示第n列
$NF:表示最后一列
NR:表示行号
cat /etc/passwd | awk -F: '{print $1}'
echo "I am oldboy,myqq is 49000448" | awk -F '[ ,]' '{print$3" "$6}' #以空格和逗号为分隔符
oldboy49000448
格式:
tar[必选参数+辅助参数] 包名 需打包的文件或目录
参数:
必选参数
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
必选参数之只选一(五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。)
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
可选参数
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-P: 不提示
-C: 改变目录
-X: 打包时根据文件列表排除文件
--exclude Filename:排除,在压缩的过程中,不要将 Filename 打包!
常用参数组合:
gzip打包组合zcvf,解包组合zxvf
bzip打包组合jcvf,解包组合jxvf
压缩示例:
tarzcvf a.tar.gz /tmp/kkk
tarjcvf a.tar.bz /tmp/kkk
tarzcvf workspace.tar.gz --exclude /Workspace/Linux Workspace/ #打包时排除/Workspace/Linux
tarzcvfX workspace.tar.gz a.txt /Workspace/Linux Workspace/ #打包时根据a.txt中的文件名排除
cat a.txt
aa.txt
bb.txt
cc.txt
解压示例:
tar-xvf file.tar #解压 tar包
tar-xzvf file.tar.gz #解压tar.gz
tar-xjvf file.tar.bz2 #解压 tar.bz2
tar-xZvf file.tar.Z #解压tar.Z
tar-xvf file2.tar -C /home/usr2 #将file2.tar解压到/home/usr2下
格式:
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
参数
-b:以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c:以字符为单位进行分割。
-d:自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪列。f3表示第三列,f3,6表示第3列和第6列,f2-5表示第2列到第5列
-n:取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
示例:
catcut_ch.txt
星期一
星期二
星期三
星期四
cut -c 3 cut_ch.txt
一
二
三
四
echo "I am oldboy,myqq is 49000448" | tr ","" " #将逗号替换成空格
echo 'abc' | tr 'abc' 'xyz' #x替换a,y替换b,z替换c
参数:
-c,--bytes: 打印字节数(print thebyte counts)
-m,--chars:打印字符数(print the charactercounts)
-l,--lines:打印行数(print thenewline counts)
-L,--max-line-length:打印最长行的长度(print the length of the longest line)
-w,--words:打印单词数(print theword counts)
示例
wc--lines /etc/passwd
wc -l/etc/passwd
-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为换算
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。