Linux入门级新手命令的一些常见用法
成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达10多年累计超上千家客户的网站建设总结了一套系统有效的营销解决方案,现已广泛运用于各行各业的客户,其中包括:成都轻质隔墙板等企业,备受客户称扬。
1.系统时钟自动同步到NTP服务器
使用timedatectl同步系统时钟:#timedatectl set-ntp true
前提要在系统上安装NTP,检查是否安装NTP相关包:#rpm -qa|grep ntp
要检查服务状态,使用#timedatectl status
查看所有可用时区:# timedatectl list-timezones
设置本地时区(例如Asia/Shanghai):# timedatectl set-timezone "Asia/Shanghai"
设置时间和日期:# timedatectl set-time “18:50:21 2019-11-05”
设置时间:# timedatectl set-time 18:50:21
设置日期:# timedatectl set-time 20191105
2.修改主机名
临时修改:#sudo hostname 新主机名
永久修改:#sudo hostnamectl set-hostname 新主机名
查看主机名:hostname 或hostnamectl
查看FQDN名称:hostname -f
查看主机IP地址:hostname -i
3.查看进程和端口
查看sshd进程:#ps -ef|grep sshd
查看sshd端口:#netstat -lntup|grep ssh
或者 #ss |grep ssh
4.挂载文件系统
查看已挂载磁盘:#df -h
查看块状设备信息:#lsblk
下面以挂接U盘为例:插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
创建挂载点:#mkdir -p /mnt/usb
挂载usb(以磁盘分区sdd1为例):#monut /dev/sdd1 /mnt/usb
只读模式挂载:#monut -o ro /dev/sdd1 /mnt/usb
查看文件内容:#ll /mnt/usb
卸载文件系统(要先退出挂载目录):#umonut /mnt/usb
若想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。
例如:如果想将文件系统为ext4的硬件设备/dev/sdb2在开机后自动挂载到/backup目录上,并保持默认权限且无需开机自检,就需要修改/etc/fstab文件写入:
5.软件的安装
a.源码包方式(一般把源码放在/usr/local/src目录下)
解压源码包:#tar -zxvf *.tar.gz
然后切换到源码文件夹,顺序:配置-编译-安装
配置,并指定安装目录(这里以ucurses为例):# ./configure --prefix=/usr/local/ncurses
编译:#make
安装:#make install
b.二进制包方式(rpm)
查询某个已安装软件:#rpm -qa|grep 关键词
卸载软件:#rpm -e 关键词 [--nodeps]
安装软件:#rpm -ivh 完整名称
升级软件:#rpm -Uvh 完整名称
查询软件:#rpm -qf 文件路径 【查询指定文件属于哪个包】
c.yum方式安装
列出当前已安装和可安装的软件:#yum list [installed]
搜索指定的关键词的包:#yum search 关键词
安装指定的包:#yum [-y] install 包名
更新指定的包,不指定包则更新全部软件:#yum [-y] update 包名
卸载指定的包:#yum [-y] remove 包名
6.查看系统信息
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
cat /proc/version 显示详细内核版本 或者uname -a
cat /proc/meminfo 校验内存使用
cat /proc/cpuinfo 查看CPU信息
cat /proc/swaps 显示哪些swap被使用
date 显示系统时间日期
free -m 查看内存使用量和交换区使用量
df -h 查看各分区使用情况
fdisk -l 查看所有分区
systemctl list-unit-files 列出所有系统服务
ifconfig 查看所有网络接口的属性
iptables -L 查看防火墙设置
route -n 查看路由表
netstat -lntp 查看所有监听端口
netstat -antp 查看所有已经建立的连接
netstat -s 查看网络统计信息进程
ps -ef 查看所有进程
top 实时显示进程状态用户
w 查看活动用户
id <用户名> 查看指定用户信息
last 查看用户登录日志
cut -d: -f1 /etc/passwd 查看系统所有用户
cut -d: -f1 /etc/group 查看系统所有组
crontab -l 查看当前用户的计划任务服务
查看内存大小:cat /proc/meminfo |grep MemTotal
查看硬盘大小:fdisk -l |grep Disk
查看内存使用量和交换区使用量:free -m
7.用户管理(root权限下执行)
useradd user1 创建一个新用户
useradd -c "备注内容 " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户,并指定家目录和shell
userdel -r user1 删除一个用户 (-r并删除用户家目录)
usermod -c "备注内容" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改当前用户密码
passwd user1 修改指定用户密码
groupadd group_name 新建一个用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
8.文件权限管理(root用户或文件所有者才可执行)
ll 或ls -l 显示文件权限
ls -m 水平输出文件列表
chmod -R ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod -R go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown user1:group1 file1 改变一个文件的所有人和群组属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
chgrp -R group1 /usr/dir 将/usr/dir及其子目录下所有文件的用户组改为group1
权限范围的表示法如下:
u User,即文件或目录的拥有者;
g Group,即文件或目录的所属群组;
o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
a All,即全部的用户,包含拥有者,所属群组以及其他用户;
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;
- 不具任何权限,数字代号为“0”;
s 特殊功能说明:变更文件或目录的权限。
注意:在Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除。
9.文件搜索
1) find用来在指定目录下查找文件(占用资源大,应尽量缩小搜索范围)
按文件名称搜索:
find /etc -name init 精准搜索,必须为init才能搜索的到
find /etc -iname init 必须为init或有字母大写也能搜索到
find /etc -name *init 模糊搜索,以init结尾的文件或目录名
find /etc -name init???模糊搜索 ?表示单个字符
根据文件类型查找:f表示文件,d表示目录,l表示软链接
find /home -type d 查找/home目录下文件类型是目录的
2) locate 用来在文件资料库中查找文件
新建文件需要命令updatedb 手动更新资料库才能用locate搜到,另外/tmp目录不属于文件资料库的收录范围。
locate -i 不区分大小写搜索
3)which 用来搜索命令所在的目录及别名信息
which【命令】
例如:which grep
4) whereis 用来搜索命令所在的目录及帮助文档路径
whereis【命令】
例如:whereis ls
5) grep用来在文件中搜寻字符串匹配的行并输出
grep 关键词 文件路径
-i 不区分大小写
-v 反向搜索,即排除指定字符串
-m 只显示全字符合的列,即精确搜索
例如:grep MySQL /root/install.log
10.查看文件内容
cat file1 正向查看文件的内容
tac file1 反向查看文件的内容
more file1 查看一个长文件的内容
less file1 与more类似,不同的是允许用户向前或向后浏览文件
head -n2 file1 查看一个文件的前两行,-n可省略
tail -2 file1 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容
11.文本处理
1)cut 列截取工具。用于列的截取
-c 以字符为单位进行分割,截取
例:cut -c1-5 passwd 截取第一到第五个字符。
cut -c10- passwd 从第十个字符开始往后全部截取
-d 自定义分隔符,默认为制表符\t
-f 与-d一起使用,指定截取那哪个区域
例: cut -d: -f1,3 passwd 以:分割截取第一和第三列
2)sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
-t 分隔符, 类似cut -d
-k 第N列, 类似cut -f
-o 将排序结果输出到文件中,类似重定向符号>
-n 以数字排序,默认是按字符排序
-r 降序排列,默认是升序
-u 去除重复行,类似uniq
-R 随机排序,每次运行的结果都不同
例如:#sort -nrk 3 -t: test.txt
3)uniq 用于去除连续的重复行
-i 忽略大小写
-c 统计重复行次数
-d 只显示重复行
4)tee 用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。例
ls -l | tee file.txt | less
并输出file.txt内容
-a 向文件中重定向时使用追加模式
5)diff 用于逐行比较文件的不同
语法:diff [选项] 文件1 文件2
-c 上下文格式显示
-u 合并格式显示
-q或--brief:仅显示有无差异,不显示详细的信息;
注意:diff描述两个文件不同的方式 是告诉我们怎样改变第一个文件之后与第二个文件匹配。
有时候我们需要以一个文件为标准,去修改其他的文件,并且修改的地方较多时,我们可以通过打补丁的方式完成。
第一步,先找出文件的不同,然后输出到一个文件
# diff -uN file1 file2 > file.patch
-N 表示将不存在的文件当做空文件
第二步,将不同内容补丁到文件
# patch file1 file.patch
第三步,测试验证
#diff file1 file2
6)paste 用于将多个文件按照列队列进行合并。
paste file1 file2 file3
-d 自定义间隔符,默认是tab
-s 串行处理,非并行
小技巧:通过重定向到空来清空文件内容,例如#>access.log
7)tr 用于字符转换,替换和删除,主要用于删除文件中控制字符或进行字符转换
用法1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理
# commands | tr ‘string1’ ‘string2’
用法2:tr处理的内容来自文件,记住要使用“<” 标准输入
# tr ‘string1’ ‘string2’ < filename
用法3: 匹配sting1进行相应操作,如删除操作
# tr options ‘string1’ < filename
-d 表示删除字符串1中所有输入字符
-s 表示删除重复出现字符序列,只保留一个,即将重复出现字符串压缩为一个字符串。
例:
将输入字符由大写转换为小写:
#echo "HELLO WORLD" | tr 'A-Z' 'a-z'
使用tr删除字符:
#echo "hello 123 world 456" | tr -d '0-9'
将制表符转换为空格:
#cat text | tr '\t' ' '
12.文件和目录操作
cd /home 进入home目录'
./表示当前目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入当前用户的家目录
cd ~user1 进入指定用户的家目录
cd - 返回上次所在的目录
pwd 显示当前工作路径
ls 用来显示目标列表
ls -d 仅显示目录名,而不显示目录下的内容列表
ls -a 显示隐藏文件
ls -l 或ll 所有输出信息用单列格式输出
ls -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
tree 显示文件和目录由根目录开始的树形结构(可能需安装tree命令)
mkdir dir1 创建一个叫做dir1的目录'
mkdir dir1 dir2 同时创建dir1 dir2两个目录
mkdir -p /tmp/dir1/dir2 递归创建dir1 dir2目录
rm -f file1 强制删除文件file1
rm -rf dir1 删除目录dir1及其子内容
rm -rf dir1 dir2 同时删除两个目录及其子内容
mv dir1 new_dir 重命名/移动,将dir1重命名为new_dir
cp file1 file2 复制一个文件(一般不建议更名)
cp dir/* ./ 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 ./ 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
touch file1 新建一个文件
13.系统关机/重启/注销
shutdown -h now 立即关机
poweroff 关机
init 0 关闭系统
init 3 切换到命令行界面
init 5 切换到图形界面
shutdown -r now 重启
reboot 重启
logout 注销
例:指定5分钟后关机
# shutdown +5 “System will shutdown after 5 minutes” //5分钟后关机并显示警告信息
shutdown -c 取消按预定时间关闭系统
一些常用快捷键:
tab键:补全命令
Ctrl+L :清屏,与clear命令一样
Ctrl+u:删除光标前所有内容
Ctrl+k:删除光标往后所有内容
Ctrl+r:查找历史命令(history)
Ctrl+c: 终止进程
!命令 :执行最近的一次指定命令
!! :执行上一个命令
方向键上下键↑↓:调出历史命令
分享文章:Linux入门级新手命令的一些常见用法
文章出自:http://ybzwz.com/article/jdddje.html