linux基本命令


一、linux目录结构:

/      根目录
/bin   存放二进制可执行文件(ls,cat,mkdir等)
/boot  存放用于系统引导时使用的各种文件
/dev   用于存放设备文件
/etc   存放系统配置文件
/home  存放所有用户文件的根目录,比如用户user1的主目录就是/home/user1
/lib   标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/mnt   系统提供这个目录是让用户临时挂载其他的文件系统。
/opt   额外安装的可选应用程序包所放置的位置
/proc  虚拟的目录,系统内存的映射。可直接访问这个目录来获取系统信息
/ root 超级用户主目录
/sbin  存放二进制可执行文件,只有root才能访问
/tmp   用于存放各种临时文件
/var   用于存放运行时需要改变数据的文件,某些大文件的溢出区,比方说各种服务的日志文件
/usr   用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录,也是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/X11R6         存放X window的目录
/usr/bin           众多的应用程序
/usr/sbin          超级用户的一些管理程序
/usr/doc           linux文档
/usr/include       linux下开发和编译应用程序所需要的头文件
/usr/lib           常用的动态链接库和软件包的配置文件
/usr/man           帮助文档
/usr/src           源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin     本地增加的命令
/usr/local/lib     本地增加的库

命令行工具:

在linux系统中,除了视窗操作外,还需要用到命令行工具,在其间输入命令,来完成任务,常见命令行工具如下:
管理员root用户命名符号为:#
普通用户符号为:$
Linux命令区分大小写,对大小写敏感

二、文件和目录命令1:

cd         去什么地方
cd  /home  进入 '/ home' 目录' 
cd ..      返回上一级目录 
cd   /home 进入个人的主目录 
cd  /user1 回到个人的主目录 
cd -  返回上次所在的目录 
pwd   显示当前工作路径 
ls    查看目录中的文件 
ls -l 显示文件和目录的详细资料 (可简写为ll),后可跟具体文件名
ls -a 显示隐藏文件 
touch 生成一个空文件
mkdir dir1      创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2 同时创建两个目录 
mkdir /dir1/目录名        到指定目录创建文件夹
mkdir  -p   /dir1/dir2   递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

文件和目录命令2:

删除文件/删除目录:
rm -f file1 删除一个叫做 ‘file1’ 的文件 , -f 直接删除文件不询问 
rmdir dir1  删除一个叫做 ‘dir1’ 的空目录,不能删除非空目录
rm -rf dir1 删除文件,而且可以删除非空目录。-rf参数表示递归强制删除
rm -rf dir1 dir2 同时删除两个目录及它们的内容 
移动/重命名文件/目录:
mv dir1 new_dir          重命名/移动 一个目录 (文件)
mv test1.txt test2.txt   将test1.txt 改名为test2.txt(当前目录无test2.txt文件,重命名)
mv file1 file2        当前目录存在file1,file2,因此将file1的内容覆盖到file2中  ;
mv test1.txt mydoc1   将test1.txt移动到mydoc1目录中 (当前目录存在mydoc1目录,移动)
mv test1.txt test3.txt mydoc3  移动多个文件到mydoc3目录中
mv mydoc1 mydoc2  当前目录存在mydoc2目录,因此移动目录mydoc1到mydoc2目录中
mv mydoc7 mydoc8  当前目录不存在mydoc8目录,因此将mydoc7重命名为mydoc8  }
复制文件/目录:
cp file1 file2    复制一个文件,将file1复制且名字改为file2,文件内容不变 
cp  -r dir1 dir2  递归复制dir1目录下的所有文件及文件夹至dir2目录下

三、查看文件内容命令:

cat file1   从第一个字节开始正向查看文件file1的内容 (一次性显示文件)
tac file1   从最后一行开始反向查看一个文件的内容 
cat>newfile 新建一个文件,且可以输入内容,ctrl+C结束编辑并保存
cat file1 file2 >newfile     将file1和file2文件合并,合并到新的newfile文件中保存起来
echo ‘test file ’ > filename 新建一个文件filename并往文件里面写入内容:test file
touch filename 生成一个文件名为filename的空文件
more file1     查看一个长文件的内容 ,分页查看,显示满一页时暂停,此时可按空格健,继续显示下一个画面,按Q停止显示
less file1 类似于 ‘more’ 命令,不同的是 less 允许使用者用键盘方向键往回看 ,退 出用ctrl+z
head  命令用于显示文件的开头的内容 
参数:
-n<数字>:指定显示头部内容的行数; -c<字符数>:指定显示头部内容的字符数;
head  -n  2 abc.txt 显示前2行; head  -c  2 abc.txt 显示前2个字符;
tail  命令用于显示文件的尾部的内容 
tail  -f  abc.txt     动态显示文件内容(默认后10行);
tail  -n  10 abc.txt  显示文件后10行
du -h filename  查看文件占用磁盘空间大小
du -h dirname   查看目录下所有的目录占用磁盘空间大小
grep  在指定的文本文件中查找指定的字符串,是一个强大的文本
grep this is new2.txt,        在new2.txt文本中返回包括字符串“this is”的行。
grep  –E  “this|is “ new2.txt,在new2.txt文本中返回包括字符串“this” 和”is”的行。
|    Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入(将管道左边的输出进一步按照管道右边的关键字找出来)

四、文件搜索命令:

find  / -name filename   从 ‘/’ 根目录查找名为filename的文件(注意/后有空格,绝对路径)
find  .  -name  filename 查询当前目录下文件名称为filename的文件(相对路径)
find  /  -user username  搜索属于文件属主的文件(注意/后有空格)
find   /user/local   -name \*.txt 搜索以 '.txt' 结尾的文件
find  . -size +6000c 在当前目录下查找大于6k的文件 (c小写,字节的意思)
find  . -size -6000c 在当前目录下查找小于6k的文件
find  /root/dir -size  6000c  在“/root/dir”目录下查找等于6k的文件
使用find组合命令查询/tmp下的文件或是文件夹的个数 
查询/tmp下的文件个数:  find  /tmp  -type f |wc  –l
查询/tmp下的文件夹个数: find  /tmp  -type d |wc  –l
说明:type的参数:f为文件,d为目录         
备注:
文件的大小其实就是文件内容实际具有的字节数,它以Byte为衡量单位,只要文件内容不发生变化,文件大小就不会发生变化。但文件在磁盘上的所占空间却不是以Byte为衡量单位的,它最小的计量单位是块(block),windows空间大小是簇(Cluster)”,它们默认都是以4kB为单位划分存储的。

普通文件:存储普通数据,一般就是字符串。 目录文件:是一种特殊的文件,它存储了一张表,该表存储的就是该目录下的所有文件名、文件及目录的基本信息,包含时间、档名、使用者及群组等。

五、打包和压缩文件命令1:

tar:打包命令,将多个文件整成一个文件,常用作备份或发布安装包,可   以在打包的同时调用gzip或者bzip2进行压缩
gzip, bzip2: 压缩程序,gzip的速度快一些,bzip2要压得小一些。
压缩率:bzip2 > gzip > zip

打包和压缩文件命令2:

gzip命令
命令格式:
gzip [参数] 压缩(解压缩)文件名
参数:
若没有加上任何参数,gzip将执行压缩操作,压缩完文件后会产生.gz 的压缩文件,并删除原始的文件
-d 将压缩文件解压。
-r 递归压缩/解压目录中文件
示例:
压缩: gzip filename
解压1:gunzip filename.gz
解压2:gzip -d filename.gz  解压后,原压缩文件被删除
gzip file1 file2     压缩2个文件
gzip -d file1.gz  file2.gz    解压缩2个文件    
gzip *     分别压缩当前目录下所有文件
gzip –d *  解压当前目录下的所有文件

打包和压缩文件命令3:

bzip2命令
命令格式:
bzip2 [参数] 文件名
参数:
若没有加上任何参数,bzip2将执行压缩操作,压缩完文件后会产生.bz2的压缩文件,并删除原始的文件
-d :执行解压缩 ( decompress解压缩的首写字母 )

示例:
压缩: bzip2     filename
解压1:bzip2 -d  filename.bz2
解压2:bunzip2   filename.bz2

bzip2 file1 file2     压缩2个文件   
bzip2  -d file1.bz2  file2.bz2   解压缩2个文件
bzip2 *       分别压缩当前目录下所有文件
bzip2 –d  *   解压当前目录下的所有文件

打包和压缩文件命令4:

tar命令
命令格式:
tar [-参数]  [压缩打包文件时新名称] [欲压缩的源文件]
参数:
-c :打包(建立压缩文件名,产生新文件)
-x :解包
-z :用 gzip  压缩
-j :用 bzip2 压缩
-v :压缩的过程中显示详细信息
-f :指定一个文件名,在 f 之后要立即接文件名
-tf:显示一个包的内容
示例:
 打包:tar  -cvf   Newname.tar   sourcefile
 解包:tar  -xvf   Newname.tar
(注:tar是打包,不是压缩!)

打包后立即压缩:tar  -jcvf  Newname.tar.bz2    sourcefile
解包并解压:   tar  -jxvf  Newname.tar.bz2
显示一个包中的内容: tar -tf  package.tar 

参数-f是必须的
-f: 指定文件的名字,切记,这个参数放在最后面,它的后面只能跟文件名

打包压缩文件命令5:

几种常用的格式

tar -cvf   package.tar  file1 将file1打包并起包名字为package.tar ,打包一个文件
tar -cvf   package.tar  file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 ‘dir1’的包(其中dir1为目录),打包多个文件
tar -cvf package.tar *  将当前目录下所有文件及目录一起打包,包名为package.tar

tar -xvf package.tar 解包 
tar -xvf package.tar -C  /home/ccc/mydoc1 将打包文件释放到 /home/ccc/mydoc1目录下 

tar -jcvf  package.tar.bz2 dir1 创建一个bzip2格式的压缩包 
tar -jxvf  package.tar.bz2      解压一个bzip2格式的压缩包 
tar -zcvf  package.tar.gz dir1  创建一个gzip格式的压缩包 
tar -zxvf  package.tar.gz       解压一个gzip格式的压缩包 

打包和压缩文件6:

zip file1.zip file1 创建一个zip格式的压缩包 
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 
unzip file1.zip     解压一个zip格式压缩包 

zip    压缩
unzip  解压工具

打包和压缩文件命令7:

解压命令总结

   *.gz         用 gzip  -d (或者gunzip) 解压
   *.bz2        用 bzip2 -d (或者用bunzip2) 解压
   *.tar        用 tar –xvf  解包
   *.tar.gz     用 tar –zxvf 解包且解压
   *.tar.bz2    用tar –jxvf  解包且解压
   *.zip        用 unzip 解压

六、YUM在线安装WGET在线下载命令:

Yum(全称为 Yellow dog Updater, Modified)
是一个RedHat、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
-q  静默执行,不显示安装过程  -t   忽略错误    -y  自动应答yes
yum    install 包名        ------下载并安装一个rpm包 
yum -y install 包名        ------自动下载安装并默认选择y,全自动(支持*) 
yum remove package_name 删除一个已经安装好了的rpm包 
yum list installed      列出当前系统中已经安装的所有包 
yum search package_name 在远端服务器rpm仓库中搜寻软件包 
适用CentOS, Redhat及类似系统
Wget    是一个下载文件的工具,支持断点下载,同时支持FTP和HTTP等方式
wget -O 下载并以不同的文件名保存 
例:wget -O  wordpress.zip  http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 
下载链接地址内容,并命名为wordpress.zip

七、显示系统信息命令:

uname -m  显示机器的cpu架构
uname -a  显示正在使用的内核版本 
getconf LONG_BIT  显示操作系统所使用的位数(数字显示)
cat /proc/cpuinfo 显示CPU 的信息 
cat /proc/version 显示内核的版本 (可以查看位数) 
cat /etc/redhat-release 查看centos版本
date     显示系统日期 
cal 2007 显示2007年的日历表 
date 041217002007.00 设置日期和时间 - 月日时分年.秒  ,设置系统时间

八、查看磁盘和内存空间命令:

磁盘使用情况
du  显示每个文件和目录的磁盘占用空间(计算的大小就是当前认为存在的所有文件大小的累 加和,不包含已删除文件所占用空间。占用空间非实际文件大小)
参数
-k  以KB为单位显示内存使用情况。 (默认单位)  命令示例: du –k /目录
-m  以MB为单位显示内存使用情况。  命令示例:du -m /目录
-h  以合适的列表方式显示
df  显示磁盘文件的可用空间(通过查看文件系统磁盘块分配图得出总块数与剩余块数的总空间)
参数
-k  以KB为单位显示内存使用情况。 (默认单位)
-m  以MB为单位显示内存使用情况。
-h  以合适的列表方式显示
内存使用情况命令
free 显示系统使用和空闲的内存情况
参数
-k   以KB为单位显示内存使用情况。 (默认单位)
-m   以MB为单位显示内存使用情况。
-g   以GB为单位显示内存使用情况。 

九、网络命令:

ifconfig eth0      显示一个以太网卡的配置 
ifconfig eth0 up   启用一个 'eth0' 网络设备 
ifconfig eth0 down 禁用一个 'eth0' 网络设备
ifconfig           查看本地IP地址
ping 对方IP         测试从本机到对方网络的连通性

十、系统管理命令:

groups  显示当前用户所在组
ps      显示进程状态(Process Status)
kill  pid   停止某进程
kill -9 pid 强制杀掉进程
pkill -9  java 强制杀掉所有Java进程
su  权限转换为指定使用者    示例:su root 切换到root用户
hostname 显示主机名称
clear    清屏 –翻到下一页
reset    清屏 ---清空所有历史命令
top 动态的显示当前系统中耗费资源最多的进程( cpu/内存等)
top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态

十一、ps命令详解:

ps 用来显示当前进程的状态
命令参数:
-a  显示同一终端下的所有程序
-e  显示所有进程 
f   显示程序间的关系
u   指定用户的所有进程
-C  显示进程的真实名称
-u  usrname 显示指定用户的进程
-x   通常与 a 这个参数一起使用,可列出较完整信息
-au  显示较详细的资讯
-aux 显示所有包含其他使用者的行程 ,正在内存中的程序
ps aux  --sort=-pcpu|head -5  显示前4个消耗了大部分的CPU进程(有两个-,连起来)
ps –ef|grep firefox  查找firefox进程
较多使用格式:
ps  –ef 
Ps  –aux
Ps  –C 进程名: 查找指定进程的PID
UID:用户ID   PID:进程ID  PPID: 父进程  C: CPU占用率 STIME: 系统启动时间   TTY登入者的终端机位置      TIME:耗时  CMD: COMMAND命令,行为 

十二、关机命令:

关机 (系统的关机、重启以及注销 ) 
shutdown -h now 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统 
shutdown -c     取消按预定时间关闭系统 
shutdown -r now 重启(1) 
reboot 重启(2) 
halt   关机后关闭电源
logout 注销 

十三、shell快捷键:

ctrl+a: 光标移到行首
ctrl+e: 光标移到行尾
ctrl+c: 杀死当前进程,退出当前操作。
ctrl+d: 退出当前 Shell
↑ :自动打印出前次输入过的命令
Linux如何快速跳转到文档开头或者末尾
输入 gg 命令,光标会移动到文档开头 ;
输入 G 命令,光标会移动到文档末尾;
另外可以敲击 上下键、Page UP、Page Down 键快速查看文档;

包管理工具及在线安装:

软件包管理工具
作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。

Linux软件包,常见的格式包括有rpm、tar、gz、bz2等
rpm是RedHat Package Manager(RedHat软件包管理工具)的缩写,可直接安装.
以tar、tar.gz等格式发布的Linux软件,这几类软件包的实质都是将一堆文件进行打包之后,再经过压缩处理而成,因此,要安装这几类格式的软件包时,都需要经过相应的解压缩及解包的步骤。
   

vim编辑器简介:

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性

VIM的运行模式 
基本模式:可以移动光标,查看文件,不能编辑
插入模式:基本模式下,输入 i 进入插入模式,可以编辑文本信息
命令模式:在基本模式下,输入 “:” 进行命令模式,可以输入命令(保存文件需要回到命令模式,接收命令)
其它模式返回到基本模式:按”Esc”键,任何模式之间切换,需要先回到基本模式

十四、vim编辑器使用:

VIM 常用命令
:q  直接退出vi
:wq 保存后退出vim ,按Enter回车键(也可以先保存:w 后退出:q)
:q! 强制退出,不保存
:set number     在编辑文件显示行号
:set nonumber 	在编辑文件不显示行号
:e  filename    打开当前目录下的文件
:e   /user/local/filename  打开绝对路径下的文件
:w filename  将当前内容保存名称为filename的文件(一般是先vim进来的情况),再按:wq保存退出
---------------------------
vim filename     打开文档(如没有,则表示新建)
Vim newfile      新建空文件(执行:wq命令则会生成一个空文件,否则不生成)
vim /usr/local/filename 绝对路径      
vim + n filename 普通方式打开文档后,定位第n行

十五、用户和组 账户管理:

linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。

1.用户和组群账户管理:

用户账户
超级用户账户:管理员在系统上的任务是对普通用户和整个系统进行管理。对系统具有绝对的控制权,能够对系统进行一切操作,root就是超级用户,它具有等同于操作系统的权限。
普通用户账户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中有完全权限。
群组账户 
私有组:当创建一个用户时没有指定属于哪个群组,Linux就会建立一个与用户同名的私有群组,此私有组只含有该用户。
标准组:当创建一个用户时可以选定一个标准群组,如果一个用户同时属于多个群组时,登录后所属的组为主群组,其他的为附加群组。
UID和GID号
UID: Linux系统中的每一个用户账号都有一个数字形式的身份标记,称为UID,对于系统核心来说,UID作为区分用户的基本依据,原则上每个用户的UID号应该是唯一的。root用户账号的UID号为固定值0.而程序用户账号的UID号默认在1-499之间,500-60000的UID号默认分配给普通用户账号使用。
GID: 每一个组账号也有一个数字形式的身份标记,称为GID。root组账号的GID号为固定值0,而程序组账号的GID号默认在1-499之间,普通组账号使用的UID号默认为500-60000.
普通用户、组账号使用的默认UID、GID号范围定义在配置文件“/etc/login.defs”中。

2.用户账户管理:

使用命令行工具管理账户 

useradd newuser    创建一个新用户 ,默认在home目录下

passwd  newuser    回车,为新用户newuser设置密码,密码不回显

passwd  –d  ddd    删除用户ddd的口令

userdel -r  DDD    删除用户DDD,其家目录及文件一并删除

useradd –u 1000 newuser  创建一个UID,GID为1000的新用户(默认GID=UID)

usermod –u  [新UID] [用户账户]    修改用户ID为新ID

usermod –u 552 ddd              将用户ddd的UID 更改为552

usermod –g ccc aaa              将用户aaa更改归属到ccc用户的ccc组中

3.组账户管理:

组账户维护命令 
groupadd –g 550  mygroup1 创建新组,此时在/etc/group文件中产生一个组ID(GID)
是550的项目
groupdel group1 删除用户组group1

groupmod –g 551 mygroup1 更改mygroup1的组ID为551
用户和组状态命令 
su 用户名  切换用户账户
su root
su - root “-”前后需要有空格

id 用户名    显示用户的UID,GID
whoami      显示当前用户名称
groups      显示用户所属组

sudo   临时赋予当前用户root权限,允许普通用户执行一些或者全部的root命令的一个工具
sudo   cat  /etc/sudoers
#rpm –q sudo   检测是否安装了sudo
Sudo配置文件为sudoers  (需要使用vim编辑此配置文件,在权限处添加一行user权限,和root一致)
cat  /etc/sudoers

十六、chmod命令及权限:

chmod命令用来变更文件或目录的权限。文件或目录权限的控制分别为读取、写入、执行3种
权限范围的表示法如下:
u User, 即文件或目录的拥有者;
g Group,即文件或目录的所属群组;
o Other,除了文件或目录拥有者或所属群组之外,其他用户;
a All,  即全部的用户,包含拥有者,所属群组以及其他用户;
r=读取属性      //值=4
w=写入属性      //值=2
x=执行属性      //值=1
- 不具任何权限    //值=0
示例:字母法和数字法写法
chmod  u+x  file     给file的属主增加执行权限
chmod  751  file     给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod u=rwx, g=rx, o=x  file  上例的另一种形式
chmod -R u+r directory        递归地给directory目录下所有文件和子目录的属主分配读的权限

十七、ll命令详解:

ls –l  /  ll中显示的内容如下:

-rwx rw- r-- .1 root root 1213 Feb 2 09:39 abc

- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7
- 1    表示连接的文件数
- root 表示用户
- root 表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc  表示文件名

十八、ln链接文件命令:

创建软链接即用 :ln -s   原始文件或文件夹   目标文件或文件夹   
举例: ln -s  /home/user/bak  /var/bak
想要删除链接文件夹要用以下命令 rm   /var/bak 少了一个“ / ” 删除的就是链接文件, 也就是在文件的最后不要加上”/”
注意创建和删除链接文件需要使用绝对路径

文章作者: 派大星是一个天才
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 派大星是一个天才 !
评论
  目录