文章目录
Linux新手必须掌握的命令
0.Linux目录介绍
- Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:

- /bin目录
/ b i n目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序( b i n是b i n a r y - -二进制的简称),多是系统中重要的系统文件。 - /sbin目录
/ s b i n目录类似/bin ,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。 - /etc目录
/ e t c目录存放着各种系统配置文件,其中包括了用户信息文件/ e t c / p a s s w d,系统初始化文件/ e t c / r c等。l i n u x正是*这些文件才得以正常地运行。 - /root目录
/root 目录是超级用户的目录。 - /lib目录
/ l i b目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。 - /lib/modules 目录
/lib/modules 目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。 - /dev目录
/ d e v目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/ d e v / m o u s e来访问鼠标的输入,就像访问其他文件一样。 - /tmp目录
/tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用/ v a r / t m p来代替/tmp ,因为前者可能拥有一个更大的磁盘空间。 - /boot目录
/ b o o t目录存放引导加载器(bootstrap loader)使用的文件,如l i lo,核心映像也经常放在这里,而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在i d e硬盘的前1 0 2 4柱面内。 - /mnt目录
/ m n t目录是系统管理员临时安装( m o u n t )文件系统的安装点。程序并不自动支持安装到/mnt 。/mnt 下面可以分为许多子目录,例如/mnt/dosa 可能是使用m s d o s文件系统的软驱,而/mnt/exta 可能是使用e x t 2文件系统的软驱,/mnt/cdrom 光驱等等。 - /proc, /usr,/var,/home目录
其他文件系统的安装点。
1. 基本的bash shell命令
1.1 文件操作:
rm:删除文件
格式为“rm [选项] 文件,
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt c.txt
[root@iz1zdpxadujj9vz learn]# rm c.txt
rm: remove regular empty file ‘c.txt’? y
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除。
另外,想要删除一个目录,需要在rm命令后面一个-r参数才可以,否则删除不掉。
2. cp:复制文件
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt
[root@iz1zdpxadujj9vz learn]# cp a.txt a_copy.txt
[root@iz1zdpxadujj9vz learn]# dir
a_copy.txt a.txt b.txt
- 查看目录
ll
[root@iz1zdpxadujj9vz learn]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 3 19:07 a_copy.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 a.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 b.txt
touch:创建文文件
[root@iz1zdpxadujj9vz learn]# dir
a_copy.txt a.txt b.txt
[root@iz1zdpxadujj9vz learn]# touch test.txt
[root@iz1zdpxadujj9vz learn]# dir
a_copy.txt a.txt b.txt test.txt
1.2 目录相关:
mkdir:创建目录,同时创建多个目录和子目录,引出参数-p
[root@iz1zdpxadujj9vz learn]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 3 19:07 a_copy.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 a.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 b.txt
[root@iz1zdpxadujj9vz learn]# mkdir test
[root@iz1zdpxadujj9vz learn]# ll
total 4
-rw-r--r-- 1 root root 0 Apr 3 19:07 a_copy.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 a.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 b.txt
drwxr-xr-x 2 root root 4096 Apr 3 19:16 test
rmdir:删除目录,删除非空目录可以使用参数-r.不提醒可用参数-f
[root@iz1zdpxadujj9vz learn]# ll
total 4
-rw-r--r-- 1 root root 0 Apr 3 19:07 a_copy.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 a.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 b.txt
drwxr-xr-x 2 root root 4096 Apr 3 19:16 test
[root@iz1zdpxadujj9vz learn]# rmdir test/
[root@iz1zdpxadujj9vz learn]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 3 19:07 a_copy.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 a.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 b.txt
pwd:查看当前目录的绝对路径
[root@iz1zdpxadujj9vz learn]# pwd
/root/learn
1.3 查看文件
file:查看文件类型
[root@iz1zdpxadujj9vz learn]# ll
total 4
-rw-r--r-- 1 root root 0 Apr 3 19:07 a_copy.txt
-rw-r--r-- 1 root root 7 Apr 3 19:19 a.txt
-rw-r--r-- 1 root root 0 Apr 3 19:04 b.txt
[root@iz1zdpxadujj9vz learn]# file a.txt
a.txt: ASCII text
cat:查看整个文件-n:给所有行加上行号-b:给文本行加上行号-T:不让制表符出现
[root@iz1zdpxadujj9vz learn]# dir
a_copy.txt a.txt b.txt
[root@iz1zdpxadujj9vz learn]# cat -n b.txt
1 妾发初覆额,折花门前剧。
2 郎骑竹马来,绕床弄青梅。
3 同居长干里,两小无嫌猜,
4 十四为君妇,羞颜未尝开。
5 低头向暗壁,千唤不一回。
6 十五始展眉,愿同尘与灰
-
more:分页工具

-
less:一次显示一屏文本文件。按q推出 -
tail:显示文件最后十行。tail -n:显示最后n行
[root@iz1zdpxadujj9vz learn]# tail a.txt
临别殷勤重寄词,词中有誓两心知。
七月七日长生殿,夜半无人私语时。
在天愿作比翼鸟,在地愿为连理枝。
天长地久有时尽,此恨绵绵无绝期
the ending
[root@iz1zdpxadujj9vz learn]# tail -2 a.txt
the ending
head:显示文本文件前十行。head -n:显示文件前n行。
[root@iz1zdpxadujj9vz learn]# head a.txt
长恨歌
【作者】白居易 【朝代】唐 译文对照
汉皇重色思倾国,御宇多年求不得。
杨家有女初长成,养在深闺人未识。
天生丽质难自弃,一朝选在君王侧。
回眸一笑百媚生,六宫粉黛无颜色。
[root@iz1zdpxadujj9vz learn]# head -2 a.txt
长恨歌
【作者】白居易 【朝代】唐 译文对照
1.4 探测进程
ps:显示进程信息
[root@iz1zdpxadujj9vz learn]# ps
PID TTY TIME CMD
19930 pts/0 00:00:00 bash
20084 pts/0 00:00:00 ps
-
top:实时显示进程信息。PID:进程IDUSER:进程主的名称PR:进程优先等级

检测磁盘空间
mount:磁盘挂载命令umount:磁盘装卸命令df:查看已经挂载磁盘使用情况du:显示某特定目录的磁盘使用情况
1.5 处理数据文件(排序与压缩)
sort:排序文件-n:将数字识别成数字而不是字符-M:按月排序
- 压缩文件
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt
[root@iz1zdpxadujj9vz learn]# tar -cvf test.tar a.txt b.txt
a.txt
b.txt
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt test.tar
- 列出压缩文件的内容,但不解压
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt test.tar
[root@iz1zdpxadujj9vz learn]# tar -tf test.tar
a.txt
b.txt
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt test.tar
- 解压文件
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt test.tar
[root@iz1zdpxadujj9vz learn]# tar -xvf test.tar
a.txt
b.txt
[root@iz1zdpxadujj9vz learn]# dir
a.txt b.txt test.tar
1.6 环境变量
export sth:将sth变成全局变量printenv:打印全局变量set:显示局部变量
[root@iz1zdpxadujj9vz learn]# printenv
XDG_SESSION_ID=5287
HOSTNAME=iz1zdpxadujj9vz
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=124.89.2.69 33640 22
OLDPWD=/root
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_192/bin:/root/bin
a=4
PWD=/root/learn
JAVA_HOME=/usr/java/jdk1.8.0_192
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=124.89.2.69 33640 172.17.89.179 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/printenv
-
unset:删除环境变量 -
PATH=$PATH:路径:设置path环境变量。
1.7 linux用户相关
useradd:添加用户
[root@iz1zdpxadujj9vz learn]# useradd tes
[root@iz1zdpxadujj9vz learn]# passwd tes
Changing password for user tes.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
userdel:删除用户-r:删除用户的HOME目录以及邮件目录
[root@iz1zdpxadujj9vz learn]# userdel tes
[root@iz1zdpxadujj9vz learn]# su tes
su: user tes does not exist
-
usermod:修改用户帐呼呼的字段,还可以指定主要组以及附加组的所属关系。 -
passwd:修改用户密码-e:强制用户下次登陆时候修改密码。
-
chpasswd:从标准输入自动读取登陆名和密码对链表(有冒号分割)
`
1.8 其他命令
echo:在终端输出字符串或变量提取后的值
[root@iz1zdpxadujj9vz learn]# userdel tes
[root@iz1zdpxadujj9vz learn]# su tes
su: user tes does not exist
date;显示及设置系统的时间或日期
[root@iz1zdpxadujj9vz learn]# userdel tes
[root@iz1zdpxadujj9vz learn]# su tes
su: user tes does not exist
-
reboot:重启系统,需要管理员权限。 -
wget:终端下载网络文件,格式为weget [参数] 下载地址 -
poweroff:关闭系统 -
ifconfig:获取网卡配置与网络状态等信息。格式为ifconfig [网络设备][参数]- 使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量
[root@iz1zdpxadujj9vz learn]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.89.179 netmask 255.255.240.0 broadcast 172.17.95.255
ether 00:16:3e:06:e9:6a txqueuelen 1000 (Ethernet)
RX packets 421701 bytes 51505489 (49.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 433784 bytes 53097839 (50.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 36 bytes 4896 (4.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36 bytes 4896 (4.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
uname:命令用于查看系统内核与系统版本等信息,格式为uname [-a]。 -
uptime:它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。
[root@iz1zdpxadujj9vz learn]# uptime
19:46:05 up 31 days, 6:59, 1 user, load average: 0.00, 0.01, 0.05
-
free:显示当前系统中内存的使用量信息,格式为free [-h] -
history:显示历史执行过的命令

1.9 安装软件程序
yum list installed:列出以安装的包

yum list xterm:查找某一特定软件是否安装yum install package_name:安装软件
[root@iz1zdpxadujj9vz learn]# yum lsit xterm
Loaded plugins: fastestmirror
No such command: lsit. Please use /usr/bin/yum --help
[root@iz1zdpxadujj9vz learn]# yum install xterm
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 3.6 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 187 kB 00:00:00
(2/4): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(3/4): epel/x86_64/primary_db | 6.6 MB 00:00:00
(4/4): updates/7/x86_64/primary_db | 3.4 MB 00:00:00
=========================================================================================
Install 1 Package (+17 Dependent packages)
Total download size: 3.9 M
Installed size: 12 M
Is this ok [y/d/N]:
yum localinstall package_name.rpm:安装本地文件yum list updates:列出需要更新的安装包yum update package_name:更新某特定应用yum update:更新所有安装包yum remove page_name:装卸某应用yum erase package_name:删除软件及其所有相关文件yum repolist:查看自己的仓库源
[root@iz1zdpxadujj9vz learn]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 10,019
epel/x86_64 Extra Packages for Enterprise 13,030
extras/7/x86_64 CentOS-7 385
updates/7/x86_64 CentOS-7 1,493
repolist: 24,927
- 从源码安装软件
- 下载并解压
- 进入解压文件,查看README文档
make install安装
2. 基本术语
- 文本命令界面
command line interface简称:CLI - Linux将文件存储在单个目录结构中,这个目录被称为虚拟目录,
- Linux使用正斜杠(/)而不是反斜杠()在文件路径中划分目录,Linux使用反斜杠来表示转义字符。
- Linux在pc安装的第一块硬盘称为:根驱动器,Linux会在根驱动器上建立一些特别的目录,我们称之为:挂载点
- 常见的目录名基于:文件系统层级标准(filesystem hierarchy standard).FHS
*:标准匹配符,代表零个或者多个字符。?:标准匹配夫,代表一个字符。->:表示符号链接关系的符号


被折叠的 条评论
为什么被折叠?



