LINUX常用命令
常见目录及作用
/root:root用户的主目录
/home:普通用户的主目录
/etc:配置文件
/bin:可执行文件
/var:可变目录,用以存放经常变化的文件,如日志文件
/dev:设备文件,任何设备与接口设备都是以文件形式存在于此目录
常用命令
1.系统维护类
ls、pwd、cd、date、passwd、man、who、last、ps
ls:用于显示指定工作目录下的内容
pwd:当前工作目录
cd:切换当前工作目录
date:用来显示或设定系统日期和时间
passwd:用来更改密码
man:帮助手册
who:显示当前登录系统的用户
last:用来显示用户最近登录信息
ps:用来查看当前运行的进程状态
2.文件管理
touch、cd、stat、rm、more、mv、cat、less、head、tail、grep、find、ln
touch:用于创建、修改文件或目录的时间属性
stat:用于显示inode内容
rm:用于删除一个文件或者目录
more:类似于cat,但会以一页一页的形式显示,空格下一页显示,b上一页显示
mv:用来为文件或目录改名,或者将文件或目录移入其他位置
cat:用于连接文件并打印到标准输出设备上
less:与more类似,但可以随意浏览文件,且在查看之前不会加载整个文件
head:查看文件前10行
tail:查看文件后10行,动态查看日志
ln:给文件创建软链接,并显示操作信息
ln -sv source.log link.log
给文件创建硬链接,并显示操作信息
ln -v source.log link1.log
grep:文本过滤显示
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep ^ [q] 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep ^ [0-9] 文件名
匹配以q或者f开头的行:grep ^ [qf] 文件名
不匹配以q或者f开头的行:grep ^ [ ^qf ] 文件名
匹配oo前面不是f或者g的字符串:grep [ ^gf ]oo 文件名
匹配以#号开头的行:grep ^#
过滤空白行:grep ^$
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
-l:查询多文件时只输出包含匹配字符的文件名
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2
find:find [path] [options] [expression]
1.与时间有关的参数:
共有-atime,-ctime,-mtime。ll --time=atime
-mtime n:意义为在n天之前的一天之内被更改过的文件;-mtime 4,前4~5那一天的文件名
-mtime -n:列出在n天之内(包含n天本身)被更改过的文件名;-mtime -4,小于等于4天内的文件名
-mtime +n:列出在n天之前(不包含n天本身)被更改过的文件名;-mtime +4,大于等于5天前的文件名
find /-mtime 0 #0代表目前的时间,所以从现在开始到24小时前有改动过内容的文件都会被列出来
find /etc/ -newer /etc/passwd寻找/etc/下面的文件,如果文件日期比/etc/passwd新就列出
2.与用户或者用户组名有关的参数
-uid n:n为数字,这个数字是用户的账号ID,即UID
-gid n:GID
-user name:根据文件拥有者寻找文件
-group name:根据文件所属组寻找文件
-nouser:寻找文件的所有者不存在/etc/passwd的人
-nogroup:寻找文件的所有用户组不存在于/etc/group(当你自行安装软件时,很可能该软件的属性当中并没有文件所有者)
3.与文件权限及名称有关的参数
-name filename:查找文件名为filename的文件,支持通配符*和?(由于find命令自己能解析通配符的含
义,所以加引号不会让*和?这两个符号失效)
-size [±]SIZE:查找比SIZE还要大(+)或者小(-)的文件。这个SIZE的规格有:c代表字节,k代表1024
字节。-size +50k表示要找比50kB还要大的文件。
-type TYPE:根据文件类型查找文件,一般正规文件f,设备文件c、b,目录d,链接文件l,
socket(s),FIFO(p)
-perm -mode:根据文件权限寻找文件。-perm -0744,当一个文件权限为4755时,也会被列出来。
-perm +mode:查找文件权限“包含任一mode的权限”的文件。-perm +755,当一个文件权限为-rw-------
时也会被列出来,因为它有rw的属性存在
find /bin /sbin -perm +6000找出在/bin和/sbin这两个目录下具有SUID或SGID的文件
4.其他可执行的操作
-exec command:command为其他命令,-exec后面可再接其他的命令来处理查找到的结果
-print:将结果打印到屏幕上,这个操作是默认操作
find / -perm +700 -exec ls -l {} ;
{}表示“由find找到的内容”,find的结果会被放置到{}位置中。
-exec一直到“;”是关键字,代表额外命令的开始(-exec)到结束(;),在这中间的就是find命令内的额
外命令。额外的命令不支持命令别名。
3.压缩与解压缩
zip、unzip、gzip、bzip2、xz、tar
zip:压缩文件.zip
unzip:解压.zip文件
gzip:压缩文件.gz
bzip2:压缩文件.bz2
xz:压缩文件.xz
压缩文件gzip: gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
-c表示将压缩过程中产生的数据输出到屏幕上
解压文件: gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)
查看压缩过的文本文件内容:zcat 文件名.gz
压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
解压文件: bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
文件的归档即打包文件:tar [主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c— create 创建一个新归档文件
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C—这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
–exclude=FILE在打包的过程中,不要将 FILE 打包! --排除某个文件打包
常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
解压到指定路径:tar xvf 文件名 -C 目标路径
tar -xjv -f filename.tar.bz2 -C 欲解压缩的目录
查看已压缩文件:tar tf 文件名
4.磁盘管理
df、du、fsck、sync、fdisk、gdisk、mkfs、mount、umount
df:列出文件系统的磁盘空间占用情况
du:显示磁盘空间使用量(统计目录或文件所占磁盘空间大小)
fsck:用来检查与修复linux档案系统,可以同时检查一个或多个linux档案系统
sync:数据同步写入磁盘,在内存中未被更新的数据,会写入硬盘中;在关机或重新启动前可执行
fdisk:创建和维护分区表的程序,兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表
mkfs:用于在特定的分区上建立linux文件系统
mount:挂载linux系统外的文件
umount:用于卸除文件系统
5.网络设置
ifconfig、ip、nmcli、nmtui
ifconfig:用于显示或设置网络设备
ip:与ifconfig类似,但功能更强大,命令更简化
nmcli:命令行修改网络配置
nmtui:可视化界面修改网络配置
6.用户管理
useradd、usermod、userdel、groupadd、groupmod、groupdel、id、w、who、su、sudo
useradd:建立用户账号,保存在/etc/passwd,密码在/etc/shadow
usermod:修改用户账号的各项设定
userdel:删除账号,不加参数,仅删除用户账号,不删除相关文件;-r删除账号和相关文件
groupadd:创建一个新的工作组,保存在/erc/group,密码在/etc/gshadow
groupmod:修改群组识别码或名称
groupdel:删除用户群组
id:用于显示用户的ID,以及所属群组的ID
w:用于显示目前登入系统的用户信息
su [-lm] [-c 命令] [username]
-:单纯使用-如“su -”,代表使用login-shell的变量文件读取方式来登陆系统;若用户名没有写,则代表切
换为root用户
-l:与-类似,但后面需要加欲切换的用户账号,也是login-shell的方式
-m:-m与-p是一样的,表示使用目前的环境变量设置,而不读取新用户的配置文件
-c:仅进行一次命令,所以-c后面可以加上命令
使用su切换成为root的身份为non-login shell,这种方式下很多原本的变量不会改变。
login-shell:取得bash时需要完整的登录流程。login-shell读取配置文件的顺序是:/etc/profile、
/.bash_profile、/.bashrc、/etc/bashrc。
non-login shell:取得bash接口的方法不需要重复登录。non-login shell会读取的配置文件为:
~/.bashrc、/etc/bashrc。
sudo:是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令。
sudo命令的配置在/etc/sudoers中,sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统
命令的程序
查看当前是哪个用户登录的shell:whoami
sudo [-u 新用户账号]
-u:后面可以接欲切换的用户,若无此项则代表切换身份为root
sudo的执行流程如下(默认只有root用户能使用):
1、当用户执行sudo时,便会让用户输入自己的密码来确认(root执行sudo时不需要输入密码);
2、若欲切换的身份与执行者身份相同,那也不需要输入密码。
3、若密码输入成功,系统会去/etc/sudoers文件中查找该用户是否有执行sudo的权限;
4、若用户具有执行sudo的权限,便开始sudo后续接的命令;
参数代表含义:
1、用户账号:系统哪个账号可以使用sudo这个命令。默认为root用户。
2、登录者的来源主机名:这个账号由哪台主机连接到本地Linux主机。默认值root可来自任何一台网络主机。
3、可切换的身份:这个账号可以切换成什么身份来执行后续的命令。默认root可以切换成任何人。
4、可执行的命令:这个命令最好使用绝对路径编写。默认root可以切换任何身份且进行任何命令。
ALL是关键字,代表任何身份、主机或命令。