linux常用命令
将硬件文件目录与linux本身文件目录合二为一,硬件设备才能为我们使用,合二为一的过程就是挂载。
root@localhost ~
当前登录用户是root
localhost是当前系统的主机名简写
~:当前用户所在的目录是家目录,显示当前用户在的最后一级目录;
#:超级用户;$:普通用户
命令基本格式:命令 [选项] [参数],[]代表可选
cd ~用户名
切换到指定用户名的家目录
cd /
回到根目录
ls -l dirname
长格式列出目录内文件,dirname不写表示显示当前目录,下同
ls -l 等同于ll
ls -a
显示全部文件,包括隐藏文件
ls -al
长格式列出所有文件,包括隐藏文件
ls -lh
同时显示文件大小
ls --time=atime 文件
查看文件的访问时间,ls也可以改为ll
ll -i 文件1 文件2 文件3
可以查看一个或多个文件的inode号
mkdir -m 755 /home/tom/ttt
创建目录ttt,-m表示手动定义权限为755
mkdir -p 目录名
递归常见目录
rmdir [-p] 目录名
删除目录名(只能删除空目录),-p代表递归删除
touch 文件名
创建文件,touch还能修改文件时间戳
touch -a "2017-05-04 15:40" 文件名
修改文件访问时间
inode和block
每个文件都独自占用一个 inode,文件内容由 inode 的记录来指向;
如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块;
ln -s 源文件(绝对路径) 目标文件
建立软连接文件,软连接会建立自己的inode索引和block,与源文件的inode是不同的,软连接的block中写的是源文件的文件名和inode号。
ln 源文件 目标文件
建立硬链接文件,不会建立自己的inode号(索引)和block(数据块),而是直接指向源文件的inode和block。
cp -d 源文件 目标文件
如果源文件是个软连接文件,使用-d就复制的是软连接文件,不使用-d就是复制的是这个软链接文件的源文件。
rm -rf 目录
递归并强制删除目录,避免不断输入yes
mv 源文件 目标文件
默认执行的是mv -i,如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖。
tar -cvf 包名 源文件或目录
对源文件或目录进行打包,包名以.tar为后缀
tar -xvf 包名 -C 指定目录
对包进行解包到指定目录下
gzip 包
把包压缩成.gz
tar -zcvf 压缩包 源文件或目录
打包并压缩为.gz,-jcvf表示压缩成.bz2
tar -zxvf 压缩包 目标文件或目录
解压缩,还有-jxvf选项
cat 文件名
查看文件内容,适合小文件
cat file1.txt file2.txt > file3.txt
将这两个文件的内容合并后输出到file3文件中
more 文件名
分页查看文件内容,cat的升级版,只能不断向后翻看
head -n 10 文件名
查看文件前10行内容,默认就是前10行。
less 文件名
more的升级版,既可以向后翻看,也可以向前翻看
tail -n 3 文件名
查看文件最后3行的内容,也可以直接tail -3 文件名
grep
从文件中找到包含指定信息的那些行。grep:全面搜索正则表达式匹配的内容并输出到屏幕。
grep -c haha file.txt
在file中找haha字符,仅列出文件中包含haha的行数。
useradd 用户名
创建一个普通用户。
passwd 用户名
修改/创建密码。
usermod
用来修改已经存在的用户。
chage
可以显示更加详细的用户密码信息,还能改密码。
userdel -r 用户名
删除用户,-r表示同时删除用户的家目录。
id 用户名
查询用户的UID、GID 和附加组的信息
su 用户名
su实现切换用户
su - 用户名
不仅切换用户,所用的工作环境也换成这个用户的工作环境。
su -
默认切换到root
groupadd
groupmod
groupdel
gpasswd
newgrp
chgrp 所属组 文件名
将文件的所属组改为目标所属组
chown 所有者 文件名
修改文件/目录的所有者
文件属性
常见文件权限有三种:r(读,4)、w(写,2)、x(针对可执行文件和目录,即可执行,1)
设定不同用户的访问权限是 rw-r--r--,各权限位的含义如下:
例如:-rw-r--r--.
第一个字符是文件类型,d(目录)、b(块设备)、c(字符设备文件)、“-”(普通文件)、字母“l”(链接文件)等;
第二到4个字符(rw-),在这里表示所有者的权限,有r、w,-代表把x去掉了,没有x权限;
第5到7个字符(r--),表示所属组权限,只有r;
第8到10个字符(r--),表示其他人权限,这里其他人只有r;
第11个字符:这里的“.”与SELinux有关,目前不必关注。
chmod命令修改文件权限
rwxrw-r-x 来说:
- 所有者 = rwx = 4+2+1 = 7
- 所属组 = rw- = 4+2 = 6
- 其他人 = r-x = 4+1 = 5
所以权限对应的权限制为765。
使用数字修改文件权限的chmod格式:chmod [-R] 权限值 文件名。其中-R表示连同子目录中的所有文件也都修改为设定的权限。
文件权限通常是644(rw-rw-r--),如果将文件变成可执行文件,并且不让他人修改此文件,只需要改成755( rwxr-xr-x)umask
默认权限,root默认是0022,只看后三位,第一位是特殊权限(setuid、setgid、stickyBIT);普通用户是0002。
sudo
su是让普通用户切换到root身份执行某些特权命令。而sudo命令的运行只需要知道自己的密码就行了,也就是用来root切换到普通用户时不用输密码。当普通用户想要执行默写特权命令的事后,可以这样做,先在root组里面创建一个用户,给这个用户授权一些特权命令,然后普通用户直接sudo到这个用户,执行某些特权命令就行了,还不用输入密码。
sudo -u user1 要执行的命令
换成user1来执行命令。
sudo -I
查看当前用户授权的命令
服务
服务就是系统后台运行的应用程序,可以提供一些功能,把这些应用程序称为服务。守护进程就是为了实现服务、功能的进程。例如apache服务就是服务,用来实现web服务的,那么启动apache服务的进程就是守护进程,守护进程就是服务在后台运行的真实进程。
netstart
查看所有服务端口
启动服务
service 独立服务名 start[stop][restart]
ps aux
查看系统所有进程
ps -le
查看系统所有进程,并且能看到进程的父进程、PID、进程优先级;
ps -l
只能查看当前shell产生的进程。
top
动态持续监听进程的运行状态,进入一个交互界面。按p可以看到cpu使用率、M是内存使用率排行。q是退出top命令。
free [选项]
显示系统内存状态,输出与top类似
kill PID
正常结束进程,是kill的默认信号,即kill -15 PID,如果想强制结束进程,使用kill -9 PID
kill -1 PID
让进程重启
kill -19 PID
让进程暂停
killall [选项] 进程名
杀死所有是该进程名的进程,选项:-i表示交互式,每杀一个进程都要询问一下;-l忽略大小写。