Linux使用笔记

学习资料

  • 脚本之家,Linux板块:https://www.jb51.net/list/list_235_36.htm
  • 《鸟哥的Linux私房菜》:http://www.runoob.com/linux/linux-tutorial.html

命令

基本命令

ls  # 显示当前所在目录
ls -a  # 显示当前目录所有文件(包括隐藏文件)
ls /  # 显示系统目录结构
ls -l  # 显示全部文件及属性(可查看快捷方式的指向)
ll  # 同上
ls | grep "abc"  # 查找当前目录中文件名包含abc的文件
cd folder_name  # 打开文件夹
cd ..  # 退回到上级目录
cd /  # 退回到根目录
pwd  # 显示当前目录
cat file_name  # 打开文件(完全打开)
more file_name  # 打开文件(分批次打开)
whereis exec_name  # 查询程序的安装路径,eg: whereis hive
which exec_name   # 查询程序运行路径,eg: which hive
ps -ef| grep <software>  # 查询运行中软件的安装位置,eg:ps -ef | gref flume
find / -name file_name  # 查看某具体文件名的所在地址
grep [-acinv] [--color=auto] '搜寻字符串' filename  # 查找文件里符合条件的字符串
mkdir folder_name  # 新建文件夹
rm file_name  # 删除文件
rm -rf folder_name  # 删除文件夹
ls | grep -E  "tmp_ys*" | xargs rm  # 删除满足该正则表达式tmp_ys*的所有文件
tar -zxvf gz_name  # 解压缩.tar.gz文件
curl url (eg: curl https://www.baidu.com)  # 浏览万维网
cat /etc/passwd | grep user_name  # 查看所有用户
cat /etc/passwd  # 查看用户密码
userdel -r user_name  # 删除用户
make  # 用gcc编译c文件
<linux_command> &  # 后台执行进程,从而不占据屏幕;eg:hive -f tmp.sql &
nohup <linux_command>  # 退出终端或账号,命令仍然执行下去(no hang up)
nohup <linux_command> &  # 在后台持续执行命令,即使退出也持续执行
jps  # 显示当前所有进程、PID
jps -lm  # 显示当前所有PID、运行的类名
sudo su  # 用户暂时申请root权限,后续输入的是当前用户的密码
sudo yangsong  # 切换为个人账号yangsong
sudo  # 切换root账号,需要输入root的密码
wc -l file_name  # 统计文件行数
head -10 source.txt > target.txt  # 取txt文件的前10行到另一个文件
top  # 列出所有系统进程
kill -9 [pid]  # 杀死进程
:set encoding=utf-8  # 解决vim编辑时,中文乱码问题
:set paste  # 进入粘贴插入模式,即不会自动缩进和连续注释。解决vim编辑时,粘贴字符的缩进问题
chmod +x test.sh  # 为 test.sh 文件增加可执行权限
export LC_ALL=zh_CN.GBK  # 设置编码格式
export LC_ALL=zh_CN.utf8  # 设置编码格式

crontab -l  # 显示目前所有的定时任务
crontab -e  # 新增或编辑定时任务
* * * * * python3 /root/yangsong/demo.py >> log.txt  # 每分钟执行一次demo.py程序,并将日志写入 log.txt 中
0 6 * * * echo "Good morning." >> /tmp/test.txt  # 每天早上6点打印信息

vim /etc/hosts  # 修改host

# 增加环境变量
step1. vim /etc/profile,在 PATH 后面增加相应程序的路径;
step2. source /etc/profile,编译配置文件;


运行shell脚本的方法:
Method1: sh FileName  # 启动一个子shell来执行命令,写在FileName中的变量不会对父shell产生影响
Method2: bash FileName  # 与sh等价,但设置比sh丰富
Method3: source FileName  # 在当前bash环境下读取并执行FileName中的命令
Method4: . FileName  # 与source等价

df -h  # 查询机器存储空间
adduser tommy  # 添加名为tommy的用户
passwd tommy  # 修改tommy账户的密码
vim /etc/sudoers  # 增加root权限,增加 `tommy ALL=(ALL) ALL`

# Linux磁盘空间清理,一般流程
df -Th  # 磁盘空间查看
find / -size +10000M  列出所有大于10G的文件
sed -i 1,999d result1.txt  # 把 result1.txt 从第一行删除到 第999行。但是特别慢
echo " " > test.txt  # 将文件内容用空格替代,速度很快
du -sh  # 打印该目录下所有文件的总大小
# netcat 命令,TCP/IP协议相关
# 一对local address/ foreign address构成了一个TCP连接
# local address: 本地地址;foreign address: 远程地址,即与本机有联系的地址

netstat -talnp  # 查看系统所有端口
netstat -tln  # 查看系统所有正在监听的端口
netstat -anp | grep <port>  # 查看某个端口的状态
lsof -i :<port>  # 查看监听端口的使用程序、PID
kill -s <PID>  # 杀死该进程,即可释放端口

# 发送get请求
curl "http://127.0.0.1:5030/get_something?userid=jack&class=001"

# 发送post请求
curl -d '{"userid":"jack", "class":"001"}' "http://127.0.0.1:5030/post_something"

curl http://127.0.0.1/v1 -X POST
-H "Content-Type:application/json;charset=UTF-8" -H "Authorization:mima0101"
-d '{"pushId":"001"}'

vim基本命令

  • 用vim打开文件:vim tmp.sql
  • 开始编辑文件:i
  • 退出vim编辑器:先按键盘的esc键,然后输入:wq,即保存后退出
  • 删除文件某行:dd
  • 删除文件所有文本:先执行gg跳跃至首行;然后执行dG清空全部文本;
  • 跳跃至尾行:G
  • 切换编辑模式为paste模式,从而vim编辑器不会自动换行:set paste

添加命令别名alias

以将hive命令简写为h作为例子:

  • Step1. 在你的登录用户目录下,输入ll -a命令,显示所有隐藏文件,找到.bashrc
  • Step2. 编辑.bashrc文件,在最后加上格式为alias h='hive'的代码;
  • Step3. 在Linux shell下,输入h,即可实现输入hive的效果;

清理linux的磁盘占用空间

最简单的方法是df -Th查看磁盘空间,然后找到、删除大文件。但有时候我们会发现,通过df -Th统计磁盘剩余空间,和du -sh统计磁盘使用空间,打印的信息不一样。明明前者显示剩余空间很少了,但后者显示没用多少。

这是因为删除了东西没有释放句柄,需要重启一下占用文件句柄的进程、或直接kill对应的进程。首先,要用lsof |grep deleted找到全部包含delete命令的进程,然后lsof -n |grep deleted |awk -F' ' ' {printf "kill -9 %s\n", $2}' > test.sh将全部的进程删除语句写入test.sh 这个文件当中,最后 sh test.sh即可批量删除全部对应的句柄进程了。最后等待几分钟,再执行df -Th即可发现空间释放了。


常用shell脚本

# 按顺序输出日期
count=0
while [ $count -lt 15 ];
do
    run_date=`date -d "2018-12-17 + $count day" +%Y-%m-%d`
    run2_date=`date -d "2018-12-16 + $count day" +%Y-%m-%d`
    echo $run_date
    echo $run2_date
    #hive --hivevar settle_date=$run_date timest=$run2_date -f dw_bzd_analysis.hql
    #echo --
    count=$((count+1))
done

# 日期命令
date +%Y%m%d  # 获取当天日期
date +%Y-%m-%d  # 获取当天日期
date -d next-day +%Y%m%d  # 获取明天的日期
date -d last-day +%Y%m%d  # 获取昨天的日期
date -d last-month +%Y%m  # 获取上个月的年和月
date -d next-month +%Y%m  # 获取下个月的年和月
date -d next-year +%Y  # 获取明年的年份

# https://www.cnblogs.com/liyanbin/p/8250378.html


Linux文件属性

  • 文件属性:由10位字符组成,eg:‘drwxr-xr-x’,其含义如下图所示

从左至右用0-9这些数字来表示。

其中,第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-“字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用”-"字符表示,则没有执行权限。

ft get -s work/ /usr/share/fonts/windows/

ft get -s conf

ft get -s conf/arial.ttf

scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3

/data/code/static/fonts

/usr/share/fonts/sans-serif/

fc-list #字体列表

fc-list :lang=zh #中文字体

mkfontscale

mkfontdir

fc-cache

fc-match -v “字体名” # 查看字体详情

findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans.

curl http://bailing-v7-dev-80.bailing.odpcld.oa.com/gamematrix/

ifconfig # 查看ip地址等信息

cp * /usr/share/fonts/sans-serif/

cat /etc/redhat-release # 查看 Linux 发行版本
service crond restart # 重启 crontab 服务

nohup gunicorn -w 4 -b <服务器IP>:8000 app:app &

nohup python3 /data/code/app.py &

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值