前言:Linux主要应用于服务器端,嵌入式开发和个人pc桌面端

本人wechat:YWNlODAyMzU5MTEzMTQ=


GPL

GPL是一个开源许可协议,由自由软件基金会创建的。GPL许可的核心,是保证任何人有共享和修改自由软件的自由,任何人有权取得,修改和重新发布自由软件的源代码权利,但都必须同时给出具体更改的源代码。



服务

开机启动的重要服务:sshd,rsyslog,network,crond,sysstat

chkconfig --list # 列出所有系统服务
chkconfig --list sshd # 查看ssh服务
chkconfig --level 3 sshd off # on设置ssh在等级3为开机自启动服务,off为关闭 # ssh服务
/etc/ssh/sshd_config
port 52113
UseDNS no
PermitRootLogin no
ListenAddress 192.168.1.17
GSSAPIAuthentication no
/etc/init.d/sshd restart

常用命令80个

Linux三剑客

grep "abc" test.txt test2.txt # 分离出含有abc字符串
grep -v "abc" test.txt # 分离出不含abc字符串
grep -E "[a-z]+" test.txt # 根据正则表达式分离 # sed是一种流编辑器,处理时把当前处理的行放到临时缓冲区中,
# 处理完成后把缓冲区内容送往屏幕,默认文件内容没有改变,除非使用重定向
sed 's/hhh/aaa/' test.txt # 把每一行第一个hhh替换成aaa
sed -i 's/hhh/aaa/g' test.txt # 把所有的hhh替换成aaa,-i参数改变文件内容
sed '/^test/'d test.txt # 删除所有开头是test的行
sed '/^$/d' test.txt # 删除空白行
sed '2d' test.txt # 删除第2行
sed '$d' test.txt # 删除最后1行
sed '2d,$d' test.txt # 删除第2到最后1行之间所有行
sed -n '20,30p' test.txt # 打印文件20到30行之间的内容
# 把递归查找到的所有test.txt中所有的alex替换成lema
sed -i 's/alex/lema/g' `find . -name "test.txt"` awk -F ':' '{print $NF,$(NF-1)}' /etc/passwd # 打印最后两列
awk '{if(NR>19&&NR<31) print $0}' test.txt # 打印20到30行的整行内容

文件目录管理

####################增####################

touch把已存在文件的时间更新为当前系统时间或者创建新文件

cp sshd_config sshd_config.lema.20180301 # 备份

mkdir -p /home/lema/test/core # 递归创建目录
mkdir stu{1..100} # 创建100个目录 ####################删#################### rm -fr / ####################查#################### diff比较两个文本文件的不同,如果比较的是目录则会比较两个目录是否有同名的文件
vimdiff test.txt test2.txt tree以树状图打印目录的内容 cat >>test.txt<<EOF
>aaa
>bbb
>EOF head -3 test.txt
less test.txt
more test.txt
tail显示指定文件的最后10行,若不加指定文件则读取标准输入 # 按照名字在指定目录下查找文件
find . -name "*.log" -o -iname "*.txt" # -o参数表示或者,-a表示并且
find . ! -name "*.log" -o ! -iname "*.txt"
# 按照文件类型和时间查找文件
find . -type f -atime -7 # 在最近7天内被访问过的文件
find . -type f -atime +7 # 在超过7天之前被访问过的文件
find . -type f -atime 7 # 恰好在7天前被访问过的文件
find /home/lema -type f -exec rm -f {} \; updatedb
locate /etc/sh # 搜索etc目录下所有以sh开头的文件,比find查找更快
# 不搜索具体目录而是搜索数据库/var/lib/locatedb ####################改#################### mv剪切文件或重命名文件 >test.txt # 清空文件内容 # >重定向,>>追加重定向,<<追加输入重定向,<输入重定向
# 标准输入0,标准正常输出1,标准错误输出2
echo "hhh" 1>./test.txt 2>./test2.txt

查看系统和硬件信息

uname打印当前系统相关信息(内核版本号,硬件架构)
[root@localhost ~]# uname -a
Linux localhost 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux
# 2表示主版本号,有结构性变化才更改,6表示次版本号,新增功能时才变化,
# 32表示对次版本的修订次数或补丁包数,504代表编译的次数,el代表企业版Linux env # 显示系统已存在的环境变量

权限管理

u:User,即文件或目录的拥有者;
g:Group,即文件或目录的所属群组;
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
a:All,即全部的用户,包含拥有者,所属群组以及其他用户;
r:读取权限,数字代号为“4”;
w:写入权限,数字代号为“2”;
x:执行或切换权限,数字代号为“1”;
-:不具任何权限,数字代号为“0”;
s:特殊功能说明:变更文件或目录的权限。 chmod u+x,g+r test.txt
chmod 770 test.txt chown -R lema test.txt # 改变某文件的所有者和所属组 sudo # 在/etc/sudoers中设置了可执行sudo指令的用户
visudo # vi /etc/sudoers
root ALL=(ALL) ALL # sudo su root chattr +i /etc/passwd /etc/inittab # 改变文件属性
lsattr # 查看文件的第二扩展文件系统属性

shell管理

xargs将标准输入数据转换成命令行参数
cat test.txt|xargs -n3 # 格式化输出
find /root/data -type f|xargs rm -f HISTSIZE=5 # 设置history只显示5条历史命令
HISTFILESIZE=3 # 设置~/.bash_history文件中只保存3条历史命令
history # 显示之前用过的命令
!304 unalias cp # 取消别名
alias # 查看已经设置的别名 whereis cd # 用来定位指令的二进制程序,源代码文件及man手册页的路径
which chattr ulimit -n # 限制用户对shell资源的访问

软件安装卸载

# yum是在Fedora和redhat以及suse中基于rpm的软件包管理器,
# 能够从指定的服务器自动下载rpm包并且安装,自动处理依赖关系。
yum grouplist # 显示已安装程序组
yum groupinstall # 安装程序组
yum install tree -y # -y参数对所有的提问都回答yes # rpm是rpm软件包的管理工具
rpm -ivh packagesname.rpm
rpm -qa|grep sql # 检查是否安装带sql的软件包 # apt-get是Debian Linux发行版中的apt软件包管理工具。Debian软件库存在互联网上的一些公共站点上,
# /etc/apt/sources.list是存放这些地址列表的配置文件

进程管理

# init进程是所有Linux进程的父进程,进程号为1,系统中的第一个进程

# ps报告当前系统的进程状态
ps -e # 显示所有程序
ps -ef |grep ssh # -f参数显示UID,PPIP,C与STIME栏位 kill # 删除执行中的程序和工作

网络管理

ping www.zhihu.com # 执行ping指令会使用ICMP传输协议,发出要求回应的信息测试网络连通性

ifconfig eth0 down
ifconfig eth0 up
ifup eth0激活网络接口eth0
ifdown eth0禁止指定的网络接口eth0
/etc/init.d/network restart
/etc/init.d/networking restart netstat -lntup # 查看开放的端口

系统管理

halt
shutdown -h 11:50
reboot runlevel # 查看当前系统运行的级别
init 6 # 进程初始化,切换到运行等级6
#0 停机(绝对不能把initdefault设置为0)
#1 单用户模式
#2 多用户,没有NFS
#3 完全多用户模式
#4 没有用到
#5 x11(Xwindows)
#6 重新启动(绝对不能把initdefault设置为6) ntpdate ntp.api.bz # 时间同步
date # 显示系统时间
hwclock -w # 显示硬件时钟时间,-w参数与系统时钟同步

用户管理

useradd lema -g a -G b # -g指定群组,-G指定附加群组
passwd -l lema # 设置用户lema不能更改密码
userdel -r lema # 删除用户连同其家目录文件
su lema # 切换用户 id lema # 显示用户id和组id

其它

seq -s '/' 1 2 10 # 产生奇数列

setup # 启动图形界面设置系统配置服务

# scp在Linux下远程拷贝文件,scp传输加密
# 从远处复制文件到本地目录
scp root@192.168.1.101:/home/lema/test.py /home/akast/
# 从远处复制目录到本地目录
scp -r root@192.168.1.101:/home/lema /home/akast lrzsz 查看系统用户登录信息
非常危险的系统命令
基础网络操作
深入网络操作
搜索文件
文件压缩及解压
系统安全
系统性能监视
线上查询及帮助
信息显示
用户管理
磁盘文件系统

最新文章

  1. 《Invert》开发日志03:一些想法
  2. setInterval setTimeout clearInterval
  3. 在PowerDesigner中设计概念模型
  4. 以查询方式实现1s定时
  5. 【JAVA - SSM】之MyBatis的ParameterType的使用
  6. ExtJS 4 Grids 详解
  7. EXT ajax简单实例
  8. make文件中静态连接库在command里面的位置
  9. C#中使用SendMessage在进程间传递数据的实例
  10. codeforces 522D. Closest Equals 线段树+离线
  11. Android拖动和缩放图片
  12. How To : Create SQL Server Management Studio Addin
  13. 运行shell脚本时报错&quot;[[ : not found&quot;解决方法
  14. Django_MTV视图
  15. Snort初探
  16. mysql读写分离——中间件ProxySQL的简介与配置
  17. Java集合框架学习
  18. php的语法
  19. 关于FSMC地址线的理解
  20. servlet介绍

热门文章

  1. sql server性能调优
  2. 基于JSP的学术交流论坛系统的设计与实现
  3. linux系统下nginx安装目录和nginx.conf配置文件目录
  4. JS获取当年当月最后一天日期
  5. Educational Codeforces Round 11B. Seating On Bus 模拟
  6. webform中Repeater的Command用法、Repeater的替代方法
  7. $微信小程序开发实践点滴——Bmob基本REST API的python封装
  8. NIO复习02
  9. nohup- Shell后台运行
  10. 支持Access的数据库建模工具 EZDML