Linux命令格式
Linux命令列通常由好几个字符串组成, 中间用空格键分开。
如下所示:
command options arguments(或parameters)
命令 选项 参数
例如:
rm –rf /home/ols3
Linux遵循“一切皆文件”
命令基本语法:command [<option1> <option2>... i<parm1> <parm2...>]
例如: ls -l -a /root == ls -la /root (显示/root下的所有文件详细信息)
Linux基本命令
ls命令
ls
语法:ls [参数选项] [目录名]
说明:显示指定工作目录下的内容
-a 显示所有文档及目录,包括隐藏文件
-r 将文档以相反次序显示(原定按英文字母次序)
-F 在列出的文档名称后加一符号;例如可执行文档则加“*”,目录则加 “/” ,符号链接文件加“@”
-l 将文档名、文档类型、权限、拥有者、大小等信息详细列出
-d 显示指定目录信息。不加d参数,显示指定目录下的信息
-i 显示指定目录的i节点信息
-h 人性化显示目录和文件的大小
-R 递归地显示子目录中的内容
ls 显示文件或目录,颜色表示文件或目录的类型。颜色由/etc/DIR_COLORS控制
cat /etc/DIR_COLORS|more
绝对路径:以/开头
相对路径:..(上层目录) .(下层目录)
以.开始的都是隐藏文件,只有用ls -a才能看到
ls实例
ls –a /root ls –R /etc ls –F /bin ls –l /dev
ls –i /root ls –dl /bin ll /bin ls –lh /root
ls参数
ls -l /root/anaconda-ks.cfg
-rw-r--r-- 1 root root 1132 Oct 31 03:16 anaconda-ks.cfg
权限 硬链接数 属有者 所属组 文件大小 日期 文件名
权限:属有者权限,所属组权限,其它组权限
r:只读,w:读写,x:执行
重要选项:-l 显示详细信息。
[root@rhel6 ~]# ls -l
总用量 24
-rw-------. 1 root root 1014 7月 29 18:39 anaconda-ks.cfg
-rw-r--r--. 1 root root 13374 7月 29 18:39 install.log
-rw-r--r--. 1 root root 3482 7月 29 18:37 install.log.syslog
从左到右分别为:
文件类型和权限 硬链接数 属有者 工作组 文件大小 创建或修改时间 文件名
cd命令
语法:cd [目录名]
说明:用于更换工作目录
cd .. 更换目录回到上一级目录
cd . 更换到当前目录
cd ~ 更换目录到当前用户的个人宿主目录
cd /etc/vsftpd/ 更换到/etc/vsftpd目录
cd / 更换目录到根目录
[root@rhel6 /]# cd /var/log/ 绝对路径
[root@rhel6 log]# ls
anaconda.ifcfg.log anaconda.xlog ConsoleKit maillog tallylog
anaconda.log anaconda.yum.log cron messages wtmp
anaconda.program.log audit dmesg rhsm xferlog
anaconda.storage.log boot.log dracut.log secure
anaconda.syslog btmp lastlog spooler
[root@rhel6 log]# cd audit/ 相对路径,相对于/var/log目录
[root@rhel6 audit]# ls
audit.log
[root@rhel6 audit]# cd ..
[root@rhel6 log]# pwd 显示当前目录的绝对路径
/var/log
pwd、clear、man命令
pwd
语法:pwd
说明:显示当前工作目录的绝对路径
clear
语法:clear
说明:清除屏幕上的信息
man
语法:man [参数选项] 帮助主题。
说明:man实际上就是查看命令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令。man是manual(手册)的缩写字,它的说明非常的详细,建议记得一些基本用法就可以了。
pwd 显示目录绝对路径
clear 清屏, 按ctrl+l
man帮助命令,帮助文档均存放到/usr/share/man/目录下
[root@rhel6 ~]# cd /usr/share/man
[root@rhel6 man]# ls
cs id man0p man2 man3x man5x man7x man9x pt_BR tr
de it man1 man2x man4 man6 man8 mann ru zh_CN
fr ja man1p man3 man4x man6x man8x pl sk zh_TW
hu ko man1x man3p man5 man7 man9 pt sv
mkdir、rmdir命令
mkdir
语法:mkdir [参数选项] 目录名
说明:创建一个空目录,要求此用户在当前目录上具有写权限
rmdir
语法:rmdir [参数选项]目录名
说明:删除一个或多个空目录或空子目录,要求此用户在当前目录上具有写权限
mkdir 创建目录
mkdir -p a/b/c/d 创建多级目录
mkdir -m 777 dir1 创建目录时,同时设置权限
rm命令
语法:rm [参数选项] 文件…
说明:用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于符号链接文件只是断开了链接,原文件保持不变。
-f:不作确认提示,强制删除文件。如果错误只是文件不存在,那么不会生成一个状态返回的错误。
-i:进行确认提示。(在同时给定了-f和-i选项时,列在最后的生效)。
-r,-R:递归地移除目录树。 它可以连同这个目录下的子目录都删除。
[root@rhel6 ~]# ls
1.dir anaconda-ks.cfg grub.conf install.log.syslog test
1.file audit install.log messages
[root@rhel6 ~]# rm 1.* -rf
[root@rhel6 ~]# ls
anaconda-ks.cfg grub.conf install.log.syslog test
audit install.log messages
[root@rhel6 ~]# rm messages -i
rm:是否删除普通文件 "messages"?y
[root@rhel6 ~]# ls
anaconda-ks.cfg grub.conf install.log.syslog
audit install.log test
touch、ln命令
touch
语法:touch [参数选项] 文件…
说明:修改文件的时间戳,不加任何参数则创建一个空白文件。
-a:改变文件访问时间为当前时间
-m:改变文件修改时间为当前时间
ln
语法:ln [参数选项] 源文件 链接文件
说明:创建链接文件,分为硬链接和软链接,加-s参数为创建软链接
-b:删除文件前备份文件
-d、-F:指定源目录,用在链接目录时
-f:强制创建链接 -s:创建符号链接
ln [-sf] 原文件 符号链接文件|硬链接文件
-s 创建符号链接文件。快捷方式
-f 覆盖
符号链接文件:快捷方式,可以跨分区,对文件和目录操作,具有独立的i节点,占用硬盘空间
硬链接文件:用于保护文件。不能跨分区,只能对文件操作,不占用硬盘空间
cp命令
语法:cp [参数选项] 源文件或目录 目标文件或目录
说明:把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
-f:如果需要,删除已存在的目的文件
-i:提示是否覆盖现有普通目标文件。 (在标准出错上显示问题,从标准输入读取答案。只有明确确认了才复制文件) 。
-p:保留原文件的所有者、组、权限(包括 setuid 和 setgid 位),上次修改时间和上次访问时间。如果制作所有者或组信息的副本时出错,则 setuid 和 setgid 位被清空。
-R:递归复制目录,如果对象不是普通文件或目录那么做相应正确处理,(因此,一个 FIFO或者特殊文件在复制后仍然是一个 FIFO型或者相应特殊文件) 。
[root@rhel6 ~]# cp /var/log/messages .
[root@rhel6 ~]# ls messages
messages
[root@rhel6 ~]# cp /var/log/audit .
cp: 略过目录"/var/log/audit"
[root@rhel6 ~]# cp -Rvap /var/log/audit .
"/var/log/audit" -> "./audit"
"/var/log/audit/audit.log" -> "./audit/audit.log"
[root@rhel6 ~]# ls
1.dir anaconda-ks.cfg install.log messages
1.file audit install.log.syslog test
mv命令
语法:mv [参数选项] 源文件或目录 目标文件或目录
说明:
•视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
•当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
•在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
-f:覆盖前永不提示 -i:覆盖前提示
mv source_name [path]/target_name
[root@rhel6 ~]# mv messages messages.bak
[root@rhel6 ~]# ls messages.bak
messages.bak
[root@rhel6 ~]# mv messages.bak /messages
[root@rhel6 ~]# ls
1.dir anaconda-ks.cfg install.log test
1.file audit install.log.syslog
[root@rhel6 ~]# ls /messages
/messages
[root@rhel6 ~]# mv /messages .
[root@rhel6 ~]# ls
1.dir anaconda-ks.cfg install.log messages
1.file audit install.log.syslog test
chmod命令
chmod的语法有两种模式:
语法1:chmod [options] [who] opcode permission file…
语法2:chmod [options] [n1]n2n3n4 file…
说明:改变文件或目录的权限模式
例如:
第一种:chmod –R u=rwx,g=rw,o=rx /home/test
第二种:chmod -R 765 /home/test
方法一:文本方式
chmod -R [ugoa][+-=][rwxst] filename|dirname
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 he.shixiao root 13374 7月 29 18:39 install.log
[root@rhel6 ~]# chmod u=rwx,g=rx,o=r install.log
[root@rhel6 ~]# ll install.log
-rwxr-xr--. 1 he.shixiao root 13374 7月 29 18:39 install.log
方法二:数字方式(rwx分别按照421加权)
chmod -R 7777 filename|dirname
7:suid,sgid,t
7:user:rwx
7:group:rwx
7:other:rwx
例:
rwx==111=7
rw-==110=6
r-x== 101=5
chown命令
语法:chown [options] [newuser] [.newgroup] file…
说明:改变文件或目录的所属用户,也可以改变所属组
-c:显示改变的信息
-v:显示所有权改变
-R:连同改目录下的子目录和文件一并更改
例如:
chown root:jake /root/install.log
[root@rhel6 ~]# useradd a
[root@rhel6 ~]# useradd b
[root@rhel6 ~]# chown a.b install.log
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 a b 13374 7月 29 18:39 install.log
[root@rhel6 ~]# chown root.root install.log
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 root root 13374 7月 29 18:39 install.log
[root@rhel6 ~]# useradd he.shixiao
[root@rhel6 ~]# chown he.shixiao:root install.log
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 he.shixiao root 13374 7月 29 18:39 install.log
cat命令
语法:cat [参数选项] fileNames
说明:把档案串连后传到基本输出(或加 >重定向到另一个文件)。
-E:每行结束显示 $。
-n:所有输出行编号。
-s:将所有的连续的多个空行替换为一个空行。
例如
cat –n /root/install.log |more
[root@rhel6 ~]# cat -n /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
more、less命令
more
语法:more [参数选项][fileNames]
说明:类似cat,不过会以一页一页的显示方便使用者逐页阅读,
空格键(space)显示下一页
b键(back)显示上一页
h帮助
less
语法:less [参数选项] fileName
说明:less 的作用与 more 十分相似,但less 并未在一开始就读入整个文件,因此在遇上大型文件的开启时,会比一般的文书编辑器(如 vi) 快速。按h,显示帮助命令。
head
语法:head [参数选项] fileNames
说明:显示文件的前十行。
例如:head install.log 显示install.log的前十行内容。
若要显示前十五行,可以用 head -15 install.log命令。
tail
语法:tail [参数选项] fileNames。
说明:显示文件的后十行。
例如:tail install.log 显示install.log的后十行内容。
[root@rhel6 ~]# tail -f /var/log/messages
动态显示messages文件的变化情况。一般用于排错。
file
语法:file [参数选项] 文件…
说明:确定文件的类型
-b:显示信息时省略文件名
-s:查看设备文件的类型
-L:追踪符号链接
-f listfile:识别文件listfile中列出的文件名
find
语法:find [搜索路径] [参数选项] [匹配表达式]
功能:在指定的搜索路径下搜索指定的目录或文件。
-name 字符:查找包含固定字符的文件和目录。
-perm 模式: 匹配所有符合指定数值模式值的文件。
-size n[c]:匹配大小为n个block的文件名,c:以字节为单位
-user 用户名:搜索所有属主为用户名的文件。
-group 组名:搜索所有属主为组名的文件。
-atime n:搜索在n天前访问过的文件。
-mtime n:搜索在n天前修改过的文件。
-ctime n:搜索在n天前创建的文件。
-exec 命令 {} \; :对每个匹配的文件执行该命令,标志{}用于指定命令执行时文件名出现的地方,命令必须终止于符号“{}\;”。
例如:查找所有空文件并将其删除: find / -size 0 –exec rm –rf {} \;
-type f|b|c|d|s|p|l 按文件类型查找
[root@rhel6 ~]# find /dev -type b
[root@rhel6 ~]# find /dev -type s -exec ls -l {} \;
srw-rw-rw-. 1 root root 0 7月 29 18:40 /dev/log
-exec <shell_command> {} \; 调用外部命令
[root@rhel6 ~]# find /dev -type s -exec ls -l {} \;
-a -o !
与 或 非
查找无主文件且文件大小为空时,删除。
find . -nouser -a -size 0 -exec rm -rf {} \;
查找aa用户,或者文件大小超过10M的文件。
find . -user aa -o -size +10M
locate、slocate
语法:locate [参数选项] [匹配表达式]
说明:locate是slocate的符号链接,从系统的一个数据库中查找相关的数据,在查找前需使用updatedb命令先更新一下数据库文件
-u :创建locate需要的系统数据库
-d path:指定使用该路径下的数据库
whereis
说明:简易的查询命令,在特定目录中查找源代码、二进制文件和说明文件
which
说明:在环境变量$PATH指定的目录中查找文件,可一次查询多个文件,主要用于查找命令
find 从硬盘中查找某个文件(最慢)
whereis 查找某个命令
which 查找某个命令
slocate 从数据文件中,从索引文件中找文件(最快)
shutdown
语法:shutdown [参数选项] [时间] [警告信息]
说明:shutdown会安全地将系统关机,该命令只能由超级用户使用。
reboot
语法:reboot
说明:终止系统并重新引导系统。
halt、poweroff
语法:halt、poweroff
说明:停机命令
init
语法:init 运行级
说明:改变运行级
关机:
shutdown -h now
init 0
poweroff
halt
重启:
shutdown -r now
init 6
reboot
tar
语法:tar [参数选项] [tar文件] [文件或目录]
说明:从一个打包介质中拷贝文件或恢复文件。如果是目录,则整个子目录都一起操作,参数不需在文件之前。
-c 建立新的归档文件
-t 显示归档文件内容
-u 只追加比归档文件中的文件更新的文件
-x 从归档文件中解开文件
-v 处理时显示文件名
-z 在进行归档或解包时,采用gzip进行压缩和解压缩
-j 在进行归档或解包时,采用bzip2进行压缩和解压缩
-r 向归档文件末尾追加文件
-d 将归档文件和系统文件进行比较。
tar 打包和解包
打包(备份):-c 打包 -v显示打包的过程 -f 打包到文件 -z gzip压缩 -j bzip2压缩
tar -cvf 1.tar /var/log /etc/hosts 将/var/log目录和/etc/hosts文件打包到1.tar文件中
tar -zcvf 1.tar.gz /var/log /etc/hosts 在打包时,采用gzip命令压缩
tar -jcvf 1.tar.bz2 /var/log /etc/hosts 在打包时,采用bzip2命令压缩
gzip
语法:gzip [参数选项] 文件
说明:压缩或解压缩文件
gunzip
说明:解压缩.gz文件
-v:显示压缩的比率
-l:查看压缩文件的信息
-d:解压缩
[root@rhel6 ~]# ll 1.tar
-rw-r--r--. 1 root root 1187840 7月 30 00:16 1.tar
[root@rhel6 ~]# ll 1.tar -h
-rw-r--r--. 1 root root 1.2M 7月 30 00:16 1.tar
[root@rhel6 ~]# tar -zcf 2.tar.gz /var/log/ /etc/hosts
tar: 从成员名中删除开头的“/”
[root@rhel6 ~]# ll 2.tar.gz 1.tar
-rw-r--r--. 1 root root 1187840 7月 30 00:16 1.tar
-rw-r--r--. 1 root root 122458 7月 30 00:17 2.tar.gz
[root@rhel6 ~]# ll 2.tar.gz 1.tar -h
-rw-r--r--. 1 root root 1.2M 7月 30 00:16 1.tar
-rw-r--r--. 1 root root 120K 7月 30 00:17 2.tar.gz
[root@rhel6 ~]# gzip 1.tar
[root@rhel6 ~]# ll -h 1.tar.gz
-rw-r--r--. 1 root root 120K 7月 30 00:16 1.tar.gz
[root@rhel6 ~]# gzip -d 1.tar.gz
[root@rhel6 ~]# ll -h 1.tar
-rw-r--r--. 1 root root 1.2M 7月 30 00:16 1.tar
bzip2
语法:bzip2 [options] [files]
说明:压缩解压缩文件
bzip2 test 把test文件压缩成test.bz2替代原来的test文件
bzip2 –k test 保留原来的文件test
bzip2 –d test.bz2 解压缩
bzip2recover test.bz2 修复损坏的.bz2文件
bunzip2
说明:解压缩.bz2文件
[root@rhel6 ~]# bzip2 1.tar
[root@rhel6 ~]# ll -h 1.tar.bz2
-rw-r--r--. 1 root root 93K 7月 30 00:16 1.tar.bz2
[root@rhel6 ~]# bzip2 -d 1.tar.bz2