linux相关学习软件下载地址:VM12及Linux系统镜像文件
LINUX基本命令
Linux的基本命令共有上百个,不求全部要记住,但是也得要大体知道有哪些类型的命令。在介绍命令之前先介绍一下提高效率的手段:使用命令行补全和通配符。
命令行补全:在输入文件名的时候,只需要输入前面几个字符,然后按下Tab键,Shell会自动把文件名补全。如果以已键入的字符开头的文件不止一个,那么可以连续按下Tab键两次,Shell会议列表的形式给出所有以键入字符开头的文件。当然,命令行补全适用于所有的Linux命令。是不是看着就很爽,不需要记全所有的命令。
通配符:Shell有一套被称作通配符的专用符号,它们是“*”、“?”、“[]”。这些通配符可以搜索并匹配文件名的一部分。从而大大简化命令的输入,这使得批量操作成为可能。
“*”:用于匹配文件中任意长度的字符串,例:*.c->匹配所有以.c后缀的文件。
“?”:只匹配一个字符,例:test?->匹配文件名中以test开头而后跟一个字符的文件。
“[]”:用于匹配所有出现在方括号内的字符。例:text[1A]-> 列出以text开头而仅以1或A结束的文件名。
也可以使用短线“-”来指定一个字符集范围。所有包含在上下界之间的字符都会被匹配。例:text[1-3]-> 列出以text开头而并以1~3结束的文件名。还可以使用字母范围,例:text[A-Z]。
下面就将Linux相关命令分类介绍一下:首先介绍一个大杀器,查看帮助命令-man:
格式:man 命令名
范例: man find -> 查看find命令的用法。
当遇到一个陌生的命令后又不知道有那些可用的参数时就可以使用man命令了。所以有部分命令记不住也不怕啦。
1. 用户管理类命令
1.1.添加用户-useradd
格式:useradd [选项] 用户名
范例:useradd mike -> 添加名字为mike的用户,当用户创建成功后,会在/home/目录下生成与用户名同名的目录(root权限下操作)。
例:useradd –g users mike -> 建立名为mike的用户账号,并指定其属于users组;
例:useradd –s /bin/bash mike -> 建立名为mike的用户账号,并指定其登陆后使用bash作为Shell。
通常该命令采用默认的状态,不添加参数。
1.2.删除用户-userdel
格式:userdel [选项] [用户名]
范例:userdel –r mike -> 删除名字为mike的用户,“-r”选项会使/home目录下的该用户目录也被删除(“-r”选项参数要慎用)。
1.3.修改密码 -passwd
格式:passwd [选项] [用户名]
范例:passwd mike -> 修改mike用户的密码。
1.4. 管理用户账号-usermod
格式:usermod [选项] [用户名]
范例:usermod mike –d /home/mike –e 10/01/18 -> 主目录改为/home/mike,并设置账号有效期至2018年10月01日。
1.5.切换用户-su
格式:su [选项] [用户名]
范例:su – root -> 切换到root用户,并将root用户的环境变量同时带入。
1.6.查看用户信息-id
格式:id [选项] [用户名]
范例:id mike -> 查看用户mike的UID、GID及其所属的组。
1.7.添加用户组-groupadd
格式:groupadd [选项] [用户组名]
范例:groupadd group1 -> 添加组名为“group1”的用户组。
1.8.删除用户组-groupdel
格式:groupdel [用户组名]
范例:groupdel group1 -> 删除组名为“group1”的用户组。
1.9.记录用户操作-history
格式:history [用户组名]
范例:
1.history -> 查看当前用户在系统中执行过的命令。
2.history n -> 查看当前用户在系统中最近n次执行过的命令。
3.history -c -> 清空当前用户在系统中执行过的命令的历史记录。
2. 文件与目录类命令
2.1.查看目录-ls
格式:ls [选项] [目录或文件]
范例:
1. ls /home -> 显示/home目录下的文件与目录(不包含隐藏文件)。
2. ls –a /home -> 显示/home目录下的所有文件与目录(含隐藏文件)。
3. ls –l /home -> home目录下的文件与目录的详细信息。
2.2.改变工作目录-cd
格式:cd 目录名
范例:
1. cd /home/ -> 进入/home目录。
2. cd .. -> 退回到上一级目录。
2.3.查看当前路径-pwd
格式:pwd
范例:pwd-> 显示当前工作目录的绝对路径。
2.4.复制文件/目录 -cp
格式:cp [选项] 源文件或目录目标文件或目录
范例:
1. cp /home/test /tmp/ -> 将 /home目录下的test文件copy到/tmp目录下。
2. cp–r /home/dir1 /tmp/ -> 将 /home目录下的dir1目录copy到/tmp目录下。
2.5.移动或更名-mv
格式:mv [选项] 源文件或目录目标文件或目录
范例:
1. mv /home/test /home/test1 -> 将 /home目录下的test文件更名为test1。
2.mv/home/dir1 /tmp/ -> 将 /home目录下dir1目录移动(剪切)到/tmp目录下。
2.6.删除文件/目录-rm
格式:rm [选项] 文件或目录
范例:
1.rm /home/test -> 删除/home目录下的test文件。
2.rm–r /home/dir -> 删除/home目录下的dir目录。
2.7.改变文件权限-chmod
格式:chmod[who] [mode] 文件名
参数:
who:
u 表示文件的所有者。
g 表示与文件所有者同组的用户。
o 表示“其他用户”。
a 表示“所有用户”。它是系统默认值。
mode:
+ 添加某个权限
- 取消某个权限
= 赋予给定权限
范例:
1.chmod g+w hello.c -> 增加了文件属组对文件hello.c的写权限。
2.chmod o=u hello.c -> 将其他用户的权限设置为和属主的权限一样。
注:只有文件的属主和root用户才有权限修改文件的权限。
chmod的助记符尽管意义明确,但有些时候显得太啰嗦。系统管理员更喜欢用chmod的八进制语法来修改文件属性。首先简单介绍一下八进制记法的来历。每一组权限rwx在计算机中实际上占用了3位,每一位都有两种情况。例如对于写入位,只有“设置(r)”和没有设置(-)两种情况。这样计算机就可以使用二进制0和1来表示每一个权限位,其中0表示没有设置,而1表示设置。例如“rwx”就被表示为111,“-w-”表示为010等。
由于3位二进制数对应于1位八进制数,因此可以进一步用一个八进制数来表示一组权限。下表显示了八进制、二进制、文件权限之间的对应关系。
八进制 | 二进制 | 权限 | 八进制 | 二进制 | 权限 |
0 | 000 | --- | 4 | 100 | r-- |
1 | 001 | --x | 5 | 101 | r-x |
2 | 010 | -w- | 6 | 110 | rw- |
3 | 011 | -wx | 7 | 111 | rwx |
例:chmod 711 hello.c -> 将文件hello.c的所有权赋予属主,而数组用户和其他人仅有执行权限。711 -> rwx—x—x。
2.8.创建目录-mkdir
格式:mkdir [选项] 目录名
范例:
1. mkdir /home/workdir -> 在/home目录下创建workdir目录
2.mkdir –p /home/dir1/dri4/dir3/dir2 -> 创建/home/dir1/dir2目录,如果dir1不存在,先创建dir1。
2.9.查看目录大小-du
格式:du 目录名
范例:du /tmp 查看目录tmp大小。
2.10.创建新文件-touch
格式:touch 文件名
范例:
1.touchnewfile -> 创建一个名字为“newfile”的空白文件。
2.touch–d “2 days ago” file -> 将文件file的访问与修改的时间改为2天前。
2.11.文件链接-ln
在Linux系统中,存在类似于windows中“快捷方式”的链接文件。链接文件又分为“软链接”和“硬链接”。
格式:ln [选项] 文件名链接名
范例:
1. ln oldfile hlink -> 为oldfile文件创建一个硬链接hlink
2. ln–s oldfile slink -> 为oldfile文件创建一个软链接slink
2.12.列出目录内容-dir
格式:dir 目录路径
范例:dir /home/dir1 -> 列出home中目录dir1的内容。
2.13.列出目录和文件的完整信息-vdir
格式:vdir 目录路径-cdir
范例:vdir /home/dir1 -> 列出home中目录dir1的完整细信息。
2.14.查看文本文件(短)-cat
格式:cat [选项] 文件名
范例:
1.cat hello.c ->查看hello.c文件内容。
2.cat –n hello.c ->查看hello.c文件内容,并在每一行前加上行号。
2.15.查看文本文件(长)-more
格式:more [选项] 文件名
范例:
1.more hello.c -> 一页一页的显示hello.c文件内容。
2.16.阅读文件的开头-head
格式:head [选项] 文件名
范例:head –n 2 hello.c -> 阅读hello.c文件前两行内容。
2.17.阅读文件的结尾-tail
格式:tail [选项] 文件名
范例:
1.tail –n 2 hello.c -> 阅读hello.c文件最后两行内容。
2.18.更好的文本阅读工具-less
格式:less [选项] 文件名
范例:
1. less hello.c -> 一显示hello.c文件内容。
2. less –m hello.c -> 一显示hello.c文件更多的内容。
2.19.查看特殊格式的文件-od
格式:od [选项] 文件名
2.20.转换文本文件中的字符-tr
格式:tr [原始字符] [目标字符]
范例:cat tr.txt | tr [a-z] [A-Z] -> 将tr.txt文件中小写字符转换成大写字符。
2.21.统计指定文件的行数、字数、字节数-wc
格式:wc [选项] 文本
范例:wc –l hello.c -> 显示hello.c文件中文本行数。
2.22.通过列来提取文本字符-cut
格式:cut [选项] 文本
范例:wc –d: -f1 /etc/passwd -> 获取当前系统中所有用户的名称。
2.23.比较多个文本文件的差异-diff
格式:diff [选项] 文本
范例:diff A.txt B.txt -> 比较A、B两个文件的差异。
2.24.输出重定向 > or >>
范例:
1. ls > /ls_out -> 将ls的输出重定向到用户目录的lsout文件中。如果ls_out不存在,那么输出重定向符号“>”会试图建立这个文件。如果ls_out存在,那么输出重定向符号“>”会覆盖这个文件的内容。
2. date > date_out -> 将date命令的输出重定向到date_out文件。
3. uname –r >>date_out -> 将uname命令产生的版本信息追加到date_out文件的末尾。
2.25.输入重定向 < or <<
通过使用输入重定向符号“<”可以让程序从一个文件中获取输入。
范例:
1. cat < days -> 将文件days作为输入传递给cat命令,cat读取days中的每一行,然后输出读到的内容。
2. cat << EOF -> 立即文档,从键盘接收输入,并传递给程序。
2.26.管道 |
管道将“重定向”再向前推进一步。通过一根竖线“|”,将一条命令的输出连接到另一条命令输入。
范例:ls | grep ay -> ls首先列出当前目录下的所有文件名,管道“|”接收到这些输出,并把他们发送给grep命令作为其输入。最后grep在这堆文件中查找包含字符串ay的文件名。
3.压缩打包类命令
在Linux环境中,压缩文件的扩展名通常为*.tar; *.tar.gz;*.tgz; *.gz; *.bz2。而不同后缀名的文件,则需要使用不同的命令来处理。
*.gz <-> gzip命令压缩的文件;
*.bz2 <-> bzip2命令压缩的文件;
*.tar <-> tar命令打包的文件;
*.tar.gz <-> tar打包后,再经过gzip压缩的文件;
*.tar.bz2 <-> tar命令打包后,再经过bzip2压缩的文件。
3.1.压缩解压-gzip
格式:gzip [选项] 文件名
范例:
1. gzip /root/anaconda-ks.cfg -> 压缩文件
2. gzip –d /root/anaconda-ks.cfg.gz -> 解压文件3.gzip –l /root/anaconda-ks.cfg.gz -> 查看压缩效果,文件的大小以字节为单位。
4. gzip –t /root/anaconda-ks.cfg.gz -> 测试压缩文件的完整性。
5. gzip –tv /root/anaconda-ks.cfg.gz -> 同上
3.2.压缩解压-bzip2
格式:bzip2 [选项] 文件名
范例:
1. bzip2 /root/anaconda-ks.cfg -> 压缩文件
2. bzip2 –d /root/anaconda-ks.cfg.bz2 -> 解压文件
3,bzip2 –tv /root/anaconda-ks.cfg.bz2 -> 检查压缩文件的完整性。
3.3.打包压缩-tar
格式:tar [选项] 目录或者文件
范例:
1. tar cvf tmp.tar /tmp -> 将tmp目录打包为一个文件。
2. tar xvf tmp.tar -> 将打包文件解开。
3. tar cvzf tmp.tar.gz /tmp -> 将tmp目录打包为一个文件。
4. tar xvzf tmp.tar.gz -> 将打包文件解开。
3.4.转移文件-dd
格式:dd [选项]
范例:dd if=/dev/cdrom of=cd.iso -> 将一张CD完整转储为iso镜像文件。
4.磁盘管理类命令
4.1.加载光盘-mount
格式:mount [选项] 设备名 挂载目录
范例:
1. mount /dev/cdrom /mnt -> 将cdrom挂载到mnt目录中。
2. mount –r /dev/cdrom /mnt -> 以只读方式将cdrom挂载到mnt目录中。
3. mount –rw /dev/cdrom /mnt -> 以可读写方式将cdrom挂载到mnt目录中。同范例1,即默认状态。
参数 | 含义 |
auto | 开机自动挂载 |
default,noauto | 开机不知道挂载 |
nouser | 只有root可挂载 |
ro | 只读挂载 |
rw | 可读写挂载 |
user | 任何用户都可以挂载 |
4.2.卸载光盘-umount
格式:umount 挂载目录
范例:
1. umount /mnt -> 卸载文件
2. umount –r /mnt -> 无法卸载文件系统时尝试以只读方式重新载入。
重要提示:请在执行umount之前,保证已经用户已经退出了mnt目录。
4.3.查看磁盘使用情况-df
格式:df [选项]
范例:df –hl
4.4.检查和修复文件系统-fsck
格式:fsck [选项] 磁盘名称
范例:
1.fsck /dev/sda1 -> 检查和修复磁盘sda1文件系统。
2.fsck –p -> 根据fstab文件来检查文件系统。
需要root权限,存在风险,慎用。
4.5.在磁盘上建立文件系统-mkfs
格式:mkfs [选项]
范例:
1.mkfs –t ext3 /dev/sdb1 -> 以ext3格式格式化/dev/sdb1。
2.mkfs –t ext4 –c /dev/sdb1 -> 检查/dev/sdb1。
5.查找类命令
5.1.查找文件/目录-find
格式:find 查找路径 -name 文件名
范例:
1. find /root/ -name install.log -print-> 在root目录下寻找名字为intall.log的文件。
2.find /etc/ -name init.d –type d –printf -> 在etc目录中查找名叫init.d的目录。
3.find /user/bin/ -type f –atime +100 –printf -> 在/user/bin/中查找最近100天内没有使用过的命令。
4.find . –type f –mtime –l –printf -> 查找当前目录中最近一天内修改过的文件。
5.2.查找字符串-grep
格式:grep “字符串”路径 [选项]
范例:
1. grep “hello” ./ -rn -> 在当前路径下寻找包含字符串”hello”的文件。
2. grep “he*” ./ -rn -> 路径下寻找包含以”he”开头的字符串的文件。
5.3.更快速的定位文件-locate
格式:locate “字符串”路径 [选项]
范例:locate *.doc -> 查找所有后缀为.doc的文件。
5.4.查找特定的程序-whereis
格式:whereis [选项]
范例:
1.whereis find -> 查找find命令。
2.whereis –b find -> 只查找find命令的二进制可执行文件。
5.5.查看当前系统中有哪些人登录-who。
5.6.查看当前以什么身份登录系统-whoami。
5.7.查看当前系统系统的版本信息-uname
格式:uname [选项]
范例:
1.uname –a -> 查看当前系统的所有有用信息。
2.uname –r -> 查看内核版本信息。
5.8.查看所有系统的登入记录-last。
6.进程管理类命令
6.1.查看进程-PS
格式:ps [选项]
范例:
1.psaux。
2.pslax -> 提供父进程(PPID)和谦让度(NI)。
6.2.杀死进程-Kill
格式:kill [选项] pid
范例: kill –KILL pid -> 在内核级别杀死一个进程,确保结束进程号为pid的进程。
常用的选项:
信号编号 | 信号号 | 描述 | 默认操作 |
0 | EXIT | 程序退出 | 终止 |
1 | HUP | 挂起 | 终止 |
2 | INT | 中断 | 终止 |
3 | QUIT | 退出 | 终止 |
9 | KILL | 杀死 | 终止 |
11 | SEGV | 段错误 | 终止 |
15 | TERM | 软件终止 | 终止 |
取决于硬件 | USR1 | 用户定义 | 终止 |
取决于硬件 | USR2 | 用户定义 | 终止 |
6.3.查看内存-free
格式:free [选项]
范例:
1.free–m -> 以m为单位显示当前系统中的内存使用情况。
2.free –g -> 以g为单位显示当前系统中的内存使用情况。
3.free -> 以k为单位显示当前系统中的内存使用情况。
6.4.CPU占有率-top
格式:top [选项]
范例:top -> 即时跟踪当前系统中进程的情况。
6.5.查看占用文件的进程-lsof
格式:lsof [选项]
范例:lsof ReadMe.doc -> 列出正在使用ReadMe文件的进程信息。
7.其他命令
7.1.软件管理-rpm
格式:rpm [选项] [软件包]
范例:
1.rpm –ivh /mnt/Packages/xinetd-2.3.14-34.el6.i686.rpm ->安装xinetd-2.3.14-34.el6.i686.rpm。
2. rpm –qa -> 查看系统中已经安装的所有软件包。
3. rpm –e xinetd-2.3.14-34.el6.i686 -> 卸载已经安装的xinetd-2.3.14-34.el6.i686。
7.2.关闭linux系统-shutdown
格式:shutdown [选项] 时间
范例:shutdown now -> 立刻关机。
7.3.获取命令简介-whatis
格式:whatis [选项] 时间
范例:whatis uname -> 获取uname命令的大概功能。