Linux常用命令、Vim、Shell、计划任务

本文全面介绍了Linux系统的常用命令,包括系统工作、文本编辑、文件管理、管道、输入输出重定向、shell编程、计划任务、权限管理、磁盘管理等多个方面,是Linux初学者和进阶用户的必备指南。

以下命令总结于《Linux就该这么学》

#常用系统工作命令
man    #帮助命令
echo $SHELL (HOSTNAME #回显主机名  LANG #语言格式  RANDOM #随机数  KEY #按键)    #查看当前shell
date    #显示当前时间
reboot    #重启
wget -O    #下载到指定目录
ifconfig    #网络状态
uname -a    #系统内核版本信息
uptime(watch -n 1 uptime)    #系统负载情况
free -m(free -s 1)    #内存使用情况
who        #查看登入主机的用户
last     #查看所有所有登入记录
history(-c #清空记录)    #当前用户在系统中执行过的命令    #cat ~/.bash_history
pwd(~ #家目录    - #切换到上次目录      .. #上级目录)    #当前工作目录
ls(-a #包括隐藏文件  -d #回显目录  -l #详细  -ldh /etc #查看文件夹etc权限、属性、大小)         #查看目录文件


#文本文件编辑命令
cat -n main.cpp        #查看短文本包,显示行号
more -1000 main.cpp    #显示1000行
head -n 10 main.cpp    #显示前10行
tail -n 10 main.cpp    #显示后10行
wc(-l #行数  -w #单词数  -c #字节数)    #统计文本
cut -d: -f1 /etc/passwd        #通过列提取文本,以“:”作为分隔符,提取第1列文本


#文件目录管理命令
touch test.txt #创建文件
touch -t 1823031453 test.txt    #修改时间
mkdir -m 666 -p a/b/c/d/e #创建多层目录,属性7666
cp -a 123.txt a/    #-a相当于-pdr,p保留原始文件属性,d保留连接文件属性,r递归复制用于目录。-i询问
mv 123.txt 456.txt     #移动文件或重命名
rm -rf a/    #删除一切,r删除文件夹,f忽略警告
rmdir        #仅删除空目录,有文件报错
passwd        #修改密码
tar -czvf a.tar.gz a/      #c创建压缩文件,z用Gzip压缩,v显示过程,f目标文件名
tar -xzvf a.tar.gz (b/ #解压到文件夹b下)        #x解压
grep(-n  #显示行数    -i #忽略大小写  -c 显示次数 ) abcdefg test.txt (>> grep_test.txt #输出到文件中)    #查看test中出现的"abcdefg"
find . -name "main*"    #查找当前目录的文件名开头为main的文件


#管道命令符
grep b test.txt | wc -l       #找到文件test中出现的b,作为管道的输入,统计输入的行数

#输入输出重定向
echo "e,E" >>(>  #清空原文件) 123.txt         #在123.txt中追加e,E

#通配符
ls test*     #(? [0-9])

alias cp="cp -i"     #命令别名,每次复制都会询问用户
unalias cp           #取消别名

#修改PATH路径
PATH=$PATH:/home/losingsang/workdir        #这样修改只能在该shell起作用
echo $PATH


#Vim
#输入模式    a\i\o

#命令行模式    Esc
dd         #删除整行
5dd     #删除光标以下5行
yy        #复制
p         #粘贴
/        #由上至下搜索
?        #右下至上搜索
n/N     #下/上个结果

#末行模式    :
:w                 #保存
:q!             #强制退出不保存
:wq!            #强制保存退出
:set nu(nonu)    #显示行号


#主机名称
vim /etc/hostname

#网卡配置信息
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
sudo systemctl restart network     #重启network服务

#手动修改IP
HWADDR="00:0C:29:36:70:6B"
TYPE="Ethernet"
#默认dhcp,改为none,以便手动修改ip
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="4ca9d8b1-fb39-4d4c-bbf5-f073358da3c6"
ONBOOT="yes"

#添加如下内容
IPADDR="192.168.1.201"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.4.4"


#Shell
cat /etc/shells        #查看所有shell

vim shell_test.sh

#!/bin/bash  
#使用哪种shell
echo "当前脚本名称为$0"
echo "共有$#个参数,分别是$*"
echo "第2个参数为$2"
pwd
ls -al

chmod u+x shell_test.sh #执行权限
./shell_test.sh one two three (sh shell_test.sh  source shell_test.sh)


[ -d /etc/fst ]        #[]前后有空格。
                    #测试参数,d是否目录,f是否文件,e是否存在,rwx是否有相应权限。
                    #不返回结果,0表示肯定。
echo $?                #查看上条命令返回值

[ 10 -gt 5 ]        #数值比较,eq等于,ne不等,gt大于,lt小于,le小于等于,ge大于等于
[ -z $ABC ]            #字符串比较,=相等,!=不等,-z是否为空


#shell if语句

vim shell_ping_grede.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1  #c发包数,i多久一个包,W超时3s
if [ $? -eq 0 ];then
echo "Host $1 is up."
else
echo "Host $1 is down."
fi
read -p "输入分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
echo "优秀"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then
echo "通过"
else echo "不通过"
fi


#看一堆URL中是否能连通
vim shell_ping.sh
#!/bin/bash
HLIST=$(cat ./ipadds.txt)
for IP in $HLIST
do
curl $IP & > /dev/null
if [ $? -eq 0 ];then
echo "成功:$IP" >> ipaddsOK.txt
else
echo "失败:$IP" >> ipaddsOK.txt
fi
done


#计划任务服务
#一次性计划
echo "systemctl stop network" | at 13:50
atq     #显示任务列表
atrm    #移除任务

#长期计划
crontab -e
#输入,分,时,日期,月份,星期
57 * * * * systemctl stop network 
crontab -l      #查看计划
crontab    -r         #删除计划


#隐藏权限
echo "for Test">chattr_test
chattr +a chattr_test    #添加仅追加隐藏权限
lsattr chattr_test        #显示隐藏权限
chattr -a chattr_test    #删除仅追加隐藏权限


#磁盘管理
fdisk /dev/sda
p     #查看分区表
n     #新建分区
w     #保存并退出
q     #退出不保存

mkfs.xfs /dev/sdb1    #格式化磁盘
mount /dev/sdb1 /newFS/    #挂载到目录下
vim /etc/fstab         #系统启动自动挂载磁盘

----------------------------------------------------------------------------------------------------------------

 

#Ubuntu18.04开启ssh,可以被远程连接。CentOS7貌似可以直接连

sudo apt-get install openssh-server

 

转载于:https://my.oschina.net/feistel/blog/2966903

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值