关于Linux命令的那点小事

Linux命令那点事—ls命令[list]

就问你美不美

  • 命令格式

    ls [选项] [目录名]

  • 命令功能

    列出目标目录中所有的子目录和文件。

  • 常用参数

参数 备注
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“ ”表示FIFOs;“”表示套接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-F 在每个文件名后附上一个字符以说明该文件的类型,见-p -F命令。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。

–colorno 不显示彩色文件名
–help 在标准输出上显示帮助信息。
–version 在标准输出上输出版本信息并退出。

实例

  • 最近修改的文件显示在最上面
1
2
[root@localhost /]# ls -t
tmp root etc dev lib boot sys proc data home bin sbin usr var lost+found media mnt opt selinux srv misc
  • 显示递归文件
1
2
[root@localhost ~]# ls -R
.: anaconda-ks.cfg install.log install.log.syslog satools ./satools: black.txt freemem.sh iptables.sh lnmp.sh mysql php502_check.sh ssh_safe.sh
  • 列出可读文件和文件夹详细信息
1
2
3
4
5
6
7
8
[root@localhost /]# ls -n
total 254
drwxr-xr-x 2 0 0 4096 Jun 12 04:03 bin
drwxr-xr-x 4 0 0 1024 Jun 15 14:45 boot
drwxr-xr-x 6 0 0 4096 Jun 12 10:26 data
drwxr-xr-x 10 0 0 3520 Sep 26 15:38 dev
drwxr-xr-x 75 0 0 4096 Oct 16 04:02 etc
  • ls命令和它的别名 alias ls="ls -l"

    • 我们可以通过不加任何参数的alias命令来看到目前系统中可用的所有alias设置,当然它们同时也可以unalias来取消。

      1
      2
      3
      4
      5
      6
      7
      8
      # alias
      alias cp='cp -i'
      alias l.='ls -d .* --color=auto'
      alias ll='ls -l --color=auto'
      alias ls='ls --color=auto'
      alias mv='mv -i'
      alias rm='rm -i'
      alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
+ 删除一项之前定义的alias设置,只需用unalias命令即可。

1
# unalias ls
  • 显示文件夹信息
1
2
[root@localhost /]# ls -ld /etc/
drwxr-xr-x 75 root root 4096 Oct 16 04:02 /etc/
  • 计算当前目录下的文件数量
1
ls -|*|grep "^-"| wc -|
  • linux下文件颜色的含义
颜色 含义
绿色 代表可执行文件
红色 代表压缩文件
深蓝色 代表目录
浅蓝色 代表链接文件
灰色 代表其它的文件
  • 列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归

命令: find $PWD -maxdepth 1 | xargs ls -ld

1
2
3
4
5
6
7
8
[root@localhost opt]# find $PWD -maxdepth 1 | xargs ls -ld
drwxr-xr-x 8 root root 4096 10-11 03:43 /opt
drwxr-xr-x 2 root root 4096 2012-03-08 /opt/log
drwxr-xr-x 2 root root 4096 2012-03-08 /opt/script
drwxr-xr-x 5 root root 4096 10-11 03:21 /opt/soft
drwxr-xr-x 2 root root 4096 2012-03-08 /opt/src
drwxr-xr-x 4 root root 4096 10-11 05:22 /opt/svndata
drwxr-xr-x 4 root root 4096 10-09 00:45 /opt/web
  • 递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径

命令: find $PWD | xargs ls -ld

  • 指定文件时间输出格式

命令 :ls -tl –time-style=full-iso

1
2
3
[root@localhost soft]# ls -tl --time-style=full-iso
总计 350644
drwxr-xr-x 16 1016 1016 4096 2012-10-11 03:25:58.000000000 +0800 subversion-1.6.1

命令 :ls -ctl –time-style=long-iso

1
2
3
[root@localhost soft]# ls -ctl --time-style=long-iso
总计 350644
drwxr-xr-x 16 1016 1016 4096 2012-10-11 03:25 subversion-1.6.1
  • 使用ls -lh 可以将文件大小显示为符合人类阅读习惯的格式
1
2
3
4
5
6
7
8
9
10
11
12
[root@iZ251k7t70aZ lib]# ls -l -h
total 168K
drwxr-xr-x 2 root root 4.0K Aug 18 2014 alternatives
drwxr-xr-x 2 root root 4.0K Jul 14 2008 bluetooth
drwxr-xr-x 2 root root 4.0K Aug 2 2012 cs
drwx------ 2 apache apache 4.0K Sep 16 2014 dav
drwxr-xr-x 2 root root 4.0K Oct 2 2013 dbus
drwxr-xr-x 2 root root 4.0K Jan 23 2013 dhclient
drwxr-x--- 2 root root 4.0K Mar 6 2011 dhcpv6
drwxr-xr-x 2 root root 4.0K May 11 2011 games
drwxr-xr-x 2 root root 4.0K Jan 9 2013 hal
drwxr-xr-x 8 root root 4.0K Aug 18 2014 iscsi
  • 列出文件并标记颜色分类
1
2
[root@localhost nginx-1.2.1]# ls --color=auto
auto CHANGES CHANGES.ru conf configure contrib html LICENSE Makefile man objs README src

ls -l 文件列表权限详解

  • 使用 ls -l 命令 执行结果如下
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@iZ251fgdsaZ var]#ls -l
-rwxrwxrwx 1 root root 1290 May 31 11:08 home.php
-rwxrwxrwx 1 root root 5669 May 31 11:08 index.php
drwxrwxrwx 5 root root 4096 Jun 27 17:02 install
-rwxrwxrwx 1 root root 1025 May 31 11:08 member.php
-rwxrwxrwx 1 root root 2462 May 31 11:08 misc.php
-rwxrwxrwx 1 root root 1757 May 31 11:08 plugin.php
-rwxrwxrwx 1 root root 988 May 31 11:08 portal.php
-rwxrwxrwx 1 root root 582 May 31 11:08 robots.txt
-rwxrwxrwx 1 root root 1161 May 31 11:08 search.php
drwxrwxrwx 10 root root 4096 Jun 27 11:13 source
drwxrwxrwx 6 root adm 4096 Jun 11 22:41 tomcat9
drwxrwxrwx 5 root root 4096 Jun 13 02:21 template
  • 文件列表权限图解

文件列表权限详解

1
2
3
4
5
6
7
8
9
10
11
12
13
第一列 : “drwxr-x---” 表识文件的类型 和文件权限
第二列: “2”是纯数字 ,表示 文件链接个数
第三列 : “root” 表示文件的所有者
第四列:“adm” 表示为文件的所在群组
第五列:“4096”,表示为文件长度(大小)
第六列:“2016-08-07 11:03”,表示文件最后更新(修改)时间
第七列:“tomcat9” 表示文件的名称

drwxrwxrwx第一列共有10个字符,第一个字符代表文件的类型,后面9个字符表示文件的权限

  • d rwx rwx rwx

  • d代表是目录,

  • 第一个rwx 代表所有者的读、写、执行的权限
  • 第二个rwx 代表用户组读、写、执行的权限
  • 第三个rwx 代表其他用户读、写、执行的权限
  • 如果没有权限的话,用-来代替,例如:drwx-w-r--

文件类型

文件列表权限详解

  • 文件类型和文件权限 ,即为列表第一列内容:

“drwxr-x—” 含义:有两部分组成 ,一部分是第一列即为“d” ,表示文件类型(目录或文件夹),另一部分是“rwxr-x—” 表示文件权限,权限有分为三段:即为 “ rwx ”,“ r-x ”和 “ — ”分别表示 ,文件所有者的权限,文件所属组的权限 和其他用户对文件的权限。

1
2
3
4
5
6
7
d :目录
- :文件
l :链接
s :socket
p :named pipe
b :block device
c :character device
  • 文件权限 :
1
2
3
4
5
6
7
8
9
10
r :含义为 “可读”,用数字 4 表示
w:含义为 “可写”用数字 2 表示
X(小X):含义为“可执行”用数字 1 表示
-:含义为“无权限”用数字0 表示
X (大X):含义为只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s:含义为 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用 户ID位,“g+s”设置组ID位。

文件权限的修改

  • 命令: chmod 文件权限 文件名称 [-R]

    • (1) 直接给文件赋相应的权限即为 :

      1
      chmod a+x auth.log #含义为 给 auth.log 文件赋予所有者可执行权限
    • (2) 使用数字方式代替权限 :

      1
      chmod 777 auth.log #含义为给auth.log文件赋予任何可读,可写,可执行权限
  • 数字含义详见下表

所有者 群组 其他 三位代表权限的数字
rwx rwx rwx 实际结果
521 521 521 777
421 401 401 705

文件所有者的更改

  • 命令: chown 用户名 文件
1
chown MySQL auth.log #含义为 把 文件 auth.log 的所有者更改为 mysql

文件所在组的更改

  • 命令 chgrp [-R] 群组名称 文件名称
1
chgrp -R mysql apache2 #含义为 ,把 目录apache2 的所在组更改为mysql

Linux 命令英文缩写

缩写 完整 解释
ls list (列出目录内容)
cd Change Directory (改变目录)
su switch user 切换用户
rpm redhat package manager 红帽子打包管理器
pwd print work directory 打印当前目录 显示出当前工作目录的绝对路径
ps process status (进程状态,类似于windows的任务管理器) 常用参数 -auxf
ps -auxf 显示进程状态
df disk free 其功能是显示磁盘可用空间数目信息及空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。
rpm 即RedHat Package Management 是RedHat的发明之一
rmdir Remove Directory (删除目录)
rm Remove (删除目录或文件)
cat concatenate 连锁 cat file1 file2>>file3把文件1和文件2的内容联合起来放到file3中
insmod install module ,载入模块
ln -s link -soft 创建一个软链接,相当于创建一个快捷方式
mkdir Make Directory (创建目录
touch
man Manual
pwd Print working directory
su Swith user
cd Change directory
ls List files
ps Process Status
mkdir Make directory
rmdir Remove directory
mkfs Make file system
fsck File system check
cat Concatenate
uname Unix name
df Disk free
du Disk usage
lsmod List modules
mv Move file
rm Remove file
cp Copy file
ln Link files
fg Foreground
bg Background
chown Change owner
chgrp Change group
chmod Change mode
umount Unmount
dd 本来应根据其功能描述“Convert an copy”命名为“cc”,但“cc”已经被用以代表“C Complier”,所以命名为“dd”
tar Tape archive
ldd List dynamic dependencies
insmod Install module
rmmod Remove module
lsmod List module
文件结尾的”rc”(如.bashrc、.xinitrc等) Resource configuration
Knnxxx / Snnxxx(位于rcx.d目录下) K(Kill);S(Service);nn(执行顺序号);xxx(服务标识)
.a(扩展名a) Archive,static library
.so(扩展名so) Shared object,dynamically linked library
.o(扩展名o) Object file,complied result of C/C++ source file
RPM Red hat package manager
dpkg Debian package manager
apt Advanced package tool(Debian或基于Debian的发行版中提供)
部分Linux命令缩
bin BINaries #下面的是一些二进制程序文件
/dev DEVices #下面的是一些硬件驱动
/etc ETCetera #目录存放着各种系统配置文件, 类似于windows下的system
/lib LIBrary
/proc PROCesses
/sbin Superuser BINaries
/tmp TeMPorary
/usr Unix Shared Resources
/var VARiable ?
/bootboot #下面的是开机启动文件
FIFO First In, First Out
GRUB GRand Unified Bootloader
IFS Internal Field Seperators
LILO LInux LOader
MySQ My是最初作者女儿的名字,SQL Structured Query Language
PHP Personal Home Page Tools PHP Hypertext Preprocessor
PS Prompt String
Perl “Pratical Extraction and Report Language” “Pathologically Eclectic Rubbish Lister”
Python 得名于电视剧Monty Python’s Flying Circus
Tcl Tool Command Language
Tk ToolKit
VT Video Terminal
YaST Yet Another Setup Tool
apache “a patchy” server
apt Advanced Packaging Tool
ar archiver
as assembler
awk “Aho Weiberger and Kernighan” 三个作者的姓的第一个字母
bash Bourne Again SHell
bc Basic (Better) Calculator
bg BackGround
biff 作者Heidi Stettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。
cal CALendar
cat CATenate
cd Change Directory
chgrp CHange GRouP
chmod CHange MODe
chown CHange OWNer
chsh CHange SHell
cmp compare
cobra Common Object Request Broker Architecture
comm common
cp CoPy
cpio CoPy In and Out
cpp C Pre Processor
cron Chronos 希腊文时间
cups Common Unix Printing System
cvs Current Version System
daemon Disk And Execution MONitor
dc Desk Calculator
dd Disk Dump
df Disk Free
diff DIFFerence
dmesg diagnostic message
du Disk Usage
ed editor
egrep Extended GREP
elf Extensible Linking Format
elm ELectronic Mail
emacs Editor MACroS
eval EVALuate
ex EXtended
exec EXECute
fd file descriptors
fg ForeGround
fgrep Fixed GREP
fmt format
fsck File System ChecK
fstab FileSystem TABle
fvwm F* Virtual Window Manager
gawk GNU AWK
gpg GNU Privacy Guard
groff GNU troff
hal Hardware Abstraction Layer
joe Joe’s Own Editor
ksh Korn SHell
lame Lame Ain’t an MP3 Encoder
lex LEXical analyser
lisp LISt Processing Lots of Irritating Superfluous Parentheses
ln LiNk
lpr Line PRint
ls list
lsof LiSt Open Files
m4 Macro processor Version 4
man MANual pages
mawk Mike Brennan’s AWK
mc Midnight Commander
mkfs MaKe FileSystem
mknod MaKe NODe
motd Message of The Day
mozilla MOsaic GodZILLa
mtab Mount TABle
mv MoVe
nano Nano’s ANOther editor
nawk New AWK
nl Number of Lines
nm names
nohup No HangUP
nroff New ROFF
od Octal Dump
passwd PASSWorD
pg pager
pico PIne’s message COmposition editor
pine “Program for Internet News & Email” “Pine is not Elm”
ping 拟声 又 Packet InterNet Grouper
pirntcap PRINTer CAPability
popd POP Directory
pr pre
printf PRINT Formatted
ps Processes Status
pty pseudo tty
pushd PUSH Directory
pwd Print Working Directory
rc runcom run command, rc还是plan9的shell
rev REVerse
rm ReMove
rn Read News
roff RunOFF
rpm RPM Package Manager RedHat Package Manager
rsh, rlogin, rvim中的r Remote
rxvt ouR XVT
seamoneky
sed Stream EDitor
seq SEQuence
shar SHell ARchive
slrn S-Lang rn
ssh Secure SHell
ssl Secure Sockets Layer
stty Set TTY
su Substitute User
svn SubVersioN
tar Tape ARchive
tcsh TENEX C shell
tee T (T形水管接口)
telnet TEminaL over Network
termcap terminal capability
terminfo terminal information
tex τέχνη的缩写,希腊文art
tr traslate
troff Typesetter new ROFF
tsort Topological SORT
tty TeleTypewriter
twm Tom’s Window Manager
tz TimeZone
udev Userspace DEV
ulimit User’s LIMIT
umask User’s MASK
uniq UNIQue
vi VIsual Very Inconvenient
vim Vi IMproved
wall write all
wc Word Count
wine WINE Is Not an Emulator
xargs eXtended ARGuments
xdm X Display Manager
xlfd X Logical Font Description
xmms X Multimedia System
xrdb X Resources DataBase
xwd X Window Dump
yacc yet another compiler compiler
Fish the Friendly Interactive SHell
su Switch User
MIME Multipurpose Internet Mail Extensions
ECMA European Computer Manufacturers Association
Contents
  1. 1. Linux命令那点事—ls命令[list]
    1. 1.1. 实例
  2. 2. ls -l 文件列表权限详解
  3. 3. 文件类型
  4. 4. 文件权限的修改
  5. 5. 文件所有者的更改
  6. 6. 文件所在组的更改
  7. 7. Linux 命令英文缩写