linux常用操作与技巧

常用命令

账户安全

# 切换用户
su - username
# 更改权限
chmod +x filename

搜索与查找

which 寻找执行文档

which [-a] command

# -a 将所有可以找到的指令均列出,而不止第一个被找到的指令名称

which -a java

whereis 寻找特定文档

whereis [-bmsu] 档案或目录名
#参数∶
#-b :只找 binary 的档案
#-m :只找在说明档 manual 路径下的档案
#-s :只找 source 来源档案
#-u :没有说明档的档案!
whieris passwd
whereis -b passwd

locate

locate filename
locate passwd

find

# 将过去系统上面 24 小时内有更动过内容 (mtime) 的档案列出
find / -mtime 0

# 寻找 /etc 底下的档案,如果档案日期比 /etc/passwd 新就列出

find /etc -newer /etc/passwd

# 搜寻 /home 底下属于 dmtsai 的档案
find /home -user dmtsai

# 搜寻系统中不属于任何人的档案
find / -nouser

# 找出档名为 passwd 这个档案
find / -name passwd

# 搜寻档案属性为 f (一般档案) 的档案
find /home -type f

# 搜寻档案当中含有 SGID/SUID/SBIT 的属性

find / -perm +7000

# 将上个范例找到的档案使用 ls -l 列出来~
find / -perm +7000 -exec ls -l {} \;

# 找出系统中,大于 1MB 的档案
find / -size +1000k

程序安装

# 安装软件
rpm -ivh filename.rpm
# 列出所有仓库
yum repolist all
# 列出仓库中所有软件包
yum list all
# 安装软件包
yum install

# 启动服务
systemctl start foo.service
# 重启服务
systemctl restart foo.service
# 停止服务
systemctl stop foo.service
# 重新加载配置文件(不终止服务)
systemctl reload foo.service
# 查看服务状态
systemctl status foo.service

系统管理

系统运行时命令

#查看进程运行时间
ps -p 7890 -o lstart,etime
# 查看网络网卡状况
ifconfig
# 查看系统内核与系统版本等信息
uname -sr
# 用于查看系统的负载信息
uptime -p
# 以M为单位查看内存
free -m -t -s 10
# 查看当前登入主机的用户终端信息
who
# 查看所有系统的登录记录
last -iw
# 显示历史执行过的命令
history
# 收集系统配置及架构信息并输出诊断文档
sosreport -a
# 打印固定格式时间
date "+%Y-%m-%d %H:%M:%S"
# 重启
reboot
# 关机
poweroff
# 查看所有进程状况
ps -aux
# 查看占用前10的进程
ps aux | sort -k3nr |head -n 10
# 监视系统负载状况
top
# 查询系统进程pid
pidof [参数] [服务名称]
# 根据名称查找进程id
pgrep hello
# 关闭进程
kill -9 [进程PID]

killall [参数] [进程]
# 计算程序运行时间
time ./fibo 30
# 设置环境变量
export PATH=PATH:/opt/bin
# 查看系统端口
netstat -tunlp

文件管理

# 用户当前所处的工作目录
pwd

# 切换工作路径
cd ~

# 显示目录中的文件信息
ls

# 纯文本文件
cat
# 查看纯文本文件(内容较多的)
more
# 查看纯文本文档的前N行
head
# 查看纯文本文档的后N行或持续刷新内容
tail -f filename.txt
# 替换文本文件中的字符 tr [原始字符] [目标字符]
tr
# 统计指定文本的行数、字数、字节数

wc [参数] 文本 -l 只显示行数 -w 只显示单词数 -c 只显示字节数

# 查看文件的具体存储信息和时间等信息
stat

# 按“列”提取文本字符
cut [参数] 文本

# 比较多个文本文件的差异,格式为“diff [参数] 文件”
diff

# 创建空白文件或设置文件的时间
touch

# 创建空白的目录
mkdir

# 复制文件或目录
cp [选项] 源文件 目标文件

# 剪切文件或将文件重命名
mv [选项] 源文件 [目标路径|目标文件名]

# 删除文件或目录
rm [选项] 文件”

# 按照指定大小和个数的数据块来复制文件或转换文件
dd

# 查看磁盘情况
df -h

# 查看文件的类型
file 文件名

tar -czvf testfile.tar.gz
tar -xzvf testfile.tar.gz

# 在文本中执行关键词搜索
grep [选项] [文件]
-c 仅显示找到的行数 -i 忽略大小写 -n 显示行号 -v 反向选择——仅列出没有“关键词”的行。
grep -rn "test"
# 按照指定条件来查找文件
find [查找路径] 寻找条件 操作
# 预设权限
umask

文本操作

文本重定向

# 将文件作为命令的标准输入
命令 < 文件
# 从标准输入中读入,直到遇见分界符才停止
命令 << 分界符
# 将文件1作为命令的标准输入并将标准输出到文件2
命令 < 文件1 > 文件2
# 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 > 文件
# 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件
# 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件
# 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件
# 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面
命令 >> 文件 2>&1 或 命令 &>> 文件
# 使用cat创建文件
cat <<EOF>testfile.txt
输入文本
EOF

命令行光标与屏幕

# 删除从开头到光标出的文本
ctrl+u
# 删除从光标出到结尾处的文本
ctrl+k
# 光标移动到命令开头
ctrl+a
# 光标移动到命令结尾
ctrl+e
# 光标向前移动一个字母
ctrl+f
# 光标向后移动一个字母
ctrl+b
# 光标向前移动一个单词
alt+f
# 光标小后移动一个单词
alt+b
# 删除一个单词
ctrl+w
# 冻结屏幕
ctrl+s
# 冻结恢复
ctrl+q

远程管理

使用lrzsz上传和下载文件

# 安装命令 yum install lrzsz 
# 上传文件
rz
# 下载文件
sz

帮助文档

man -h 
# 向下翻一页
space
# 向下翻一页
Page down
# 向上翻一页
Page up
# 直接前往首页
home
# 直接前往尾页
end
# 从上至下搜索某个关键词,如“/linux”
/
# 从下至上搜索某个关键词,如“?linux”
?
# 定位到下一个搜索到的关键词
n
# 定位到上一个搜索到的关键词
N
# 退出帮助文档
q

其他技巧

感叹号!使用

# 命令位置
whereis bash

# 再次执行上一条名称
!!

# 使用上一条名称最后一个参数
# 上一条名称是 ls /proc/1/task/1/net/tcp
# 添加 -al参数
ls -al !$ #实际执行 ls -al /proc/1/task/1/net/tcp


# 使用上一条命令第一个参数
ls -al !^

# 去掉最后一个参数执行上一条命令
!:-

# 使用上一条名称所有参数
#fin -name "test.zip" #这里find输错了。
find !*

# 使用上一条名称指定参数
# cp -rf dira dirb/ #将dira拷贝到dirb
ls -l !cp:2 #查看dira的内容


# 执行history中的命令
history
# 执行history 2225条命令
!2225
# 执行倒数第二条名称
!-2

# 执行上一条find命令
!find

# 替换上条命令的参数
# find ./ -name "old*" -a -name "*.zip"
!!:gs/old/new

# !感叹号参数时做非运算
# 删除不是cfg结尾的所有文件
rm !(*.cfg)
本文总阅读量