Linux学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记相关的知识,希望对你有一定的参考价值。
命令 --help 命令的简单帮助
man == 命令帮助
help == 命令的帮助(bash的内置命令)
ls == 查看目录列表 -l(long) -d(directory)
mkdir == make directory 作用是创建目录, 例如: mkdir /data -p 递归创建目录
cd == change directory 作用切换路径, 例如: cd /
touch == 作用是创建文件, 例如: touch oldboy.txt
vi == 编辑器,相当于记事本,有编辑功能,单较弱
vim == 复杂编辑器
echo 是一个打印输出内容的常用命令,配合">或>>"可以为文件覆盖及追加内容。">"重定向,会清除文件里的数据, ">>"为内容追加。
cat == 查看文件内容
特殊用法:增加内容
cat > oldboy.txt <<EOF
I am studying linux
EOF
EOF要成对出现,EOF可以被任意成对内容替换
cp == copy 复制命令 copy目录用cp -a 或 cp -r
-r: 递归,用于复制目录;-p保持属性。
-a:相当于-pdr
cp = ‘cp -i‘ -i 确认
mv == 移动目录或文件,例如:mv /data /root/
pwd == 查看当前用户所在的路径
rm == 删除文件或者目录 -f请知 -r删除目录
生产场景尽量不要使用rm,如果非要用,一定要先cp等备份
替代方法:
mv移动到一个临时目录。回收站。
find删除 find /home/abelxu/data/ -type f -exec rm -f {} \;
find /home/abelxu/data/ -type f | xargs rm -f
删除一个目录下的所有文件,但有一个文件不删: find /home/abelxu/data/ -type f ! -name "oldgril.txt" | xargs rm -f
find /home/abelxu/data/ -type f ! -name "oldgril.txt" -exec rm -f {} \;
head == 取文件的前n行,默认前10行, 取前3行 -n 3
tail == 取文件的最后n行, 默认最后10行, 取最后3行 -n 3 -f 跟踪一个文件尾部的实时变化
grep == 过滤器,把想要的或者不想要的分离开。-v 排除
-B 除了显示匹配行的一行之外,并显示该行之前的num行
-A 除了显示匹配行的一行之外,并显示该行之后的num行
-C 除了显示匹配行的一行之外,并显示该行前后的num行
sed == (stream editor)过滤: sed -n ‘/过滤的内容/处理的命令‘ 文件
-n 取消默认输出
-i 改变文件内容
处理的命令:p print打印
d delete删除
例子:sed -n ‘/oldboy/p‘ test.txt
sed ‘/oldboy/d‘ test.txt
sed替换
sed -i ‘s#boy#gril#g‘ test.txt
s 查找并替换
g global与s联合使用时,全部替换
"#"是分隔符
awk 一门语言,过滤内容(取列)
awk -F "分隔符" ‘{print $1}‘ 文件 <== $1第一列 $2第二列...$NF最后一列,$(NF-1)
NR 代表行号
$0 整行
例子:
awk -F ":" ‘{print $1" "$2}‘ /etc/passwd
yum == Linux包管理器, yum帮助解决依赖问题
rpm -ivh (安装、显示输出、人类可读展示)
例子: rpm -ivh 包名.rpm
yum install tree nmap sysstat lrzsz doc2unix -y
软件包下载下来 rpm格式 rpm -ivh 包名
源代码 ./configure; make; make install
yum install 更新所有软件最新版本
tree 显示目录树结构 -L 层数 -d 目录
alias 查看以及定义别名
例子: alias oldboy=‘echo "I am oldboy"‘
alias rm=‘echo "rm can not be used, pls use mv"‘
别名生效的位置:针对root用户:/root/.bashrc
所有用户都生效:/etx/bashr或/etc/profile定义
生效 source /etc/profiles
unalias 取消别名
seq 序列 -s 指定序列的分隔符 -w
用法:seq [选项]... 尾数
或:seq [选项]... 首数 尾数
或:seq [选项]... 首数 增量 尾数
history 打印用户操作的历史纪录 -c清除所有记录 -d清除指定记录
hostname 查看主机名
uname 打印系统信息 -r内核 -m 32 or 64bit -n主机名 -a查看所有
whoami 查看当前用户
su 用户角色切换 su - 用户名 -参数切换用户环境变量
getenforce 检查selinux状态
setenforce 设置selinux状态 1启用 0 警告不启用
runlevel 查看运行级别
init 切换运行界别,后面接对应级别的数字
快捷键:
TAB 命令、路径补全
Ctrl+a 切换到命令行开始
Ctrl+e 切换到命令行末尾
Ctrl+l 清除屏幕内容
Ctrl+u 清除剪切光标之前的内容
Ctrl+k 清除剪切光标之后的内容
特殊字符命令:
>或1> 重定向,覆盖
>>或1>> 追加重定向,
<或<0 输入重定向
<<或<<0 追加输入重定向
2>错误重定向
2>>错误追加重定向
箭头的指向就是数据的流向
\ 让一个有意义的字符,脱掉马甲。
.. 上级目录
. 当前目录 \. 代表点号。
| 管道
~ 用户的家目录,针对root ~代表/root
{}
!...
标准输入(stdin):代码为0,使用<或<<数据流向从右向左
标准正常输出(stdout):代码为1,使用>或>>数据流向从左向右
标准错误输出(stderr):代码为2,使用2>或2>>
查看默认文件描述符最大值 ulimit -n
查看进程: ps -ef
查看端口: netstat -lntup
查看配置的IP: ifconfig 或 ip add
关闭防火墙:/etc/init.d/iptables stop
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core) 版本
uname -r
3.10.0-514.el7.x86_64 内核
uname -m
x86_64 32位还是64位
hostname == uname -n
localhost.localdomain 主机名
init 6 重启
init 5 === startx
tar zxvf python.xx.tgz 解压
关闭SELinux
解法一:sed ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config
getenforce
setenforce 0
关闭防火墙
/etc/init.d/iptables stop
Linux目录结构:
顶点/,其他所有目录都在根下
linux目录结构和磁盘分区是分离的。可自由组合
/
├── bin -> usr/bin
├── boot
├── dev
├── etc 放置系统配置文件
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
已知文件test.txt内容为:
test
liyao
oldboy
请给出打印test.txt内容时,不包含oldboy字符串的命令
cat >> test.txt << EOF
test
liyao
oldboy
EOF
解法一:head -2 test.txt
解法二:grep -v "oldboy" test.txt
解法三:cat test.txt | grep -v oldboy test.txt
解法四:sed ‘/oldboy/d‘ test.txt
9、请用一条命令完成创建目录/oldboy/test
mkdir -p /oldboy/test
10、已知/tmp目录下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让linux系统不提示是否覆盖
解法一:/bin/cp /mnt/test.txt /tmp/test.txt
解法二:\cp /mnt/test.txt /tmp/test.txt
11、 只查看ett.txt文件(100行)内第20行到第30行的内容
seq 100 > test.txt
解法一:head -n 30 test.txt | tail -n 11
解法二:sed -n ‘20,30p‘ test.txt
解法三:awk ‘{if(NR<31 && NR>19) print $1}‘ test.txt
解法四:grep 30 -B 10 test.txt
13、把/oldboy目录及其子目录下所有以扩展名.sh的文件中包含./hostlists.txt的字符串全部替换为../idctest_iplist
解法一: find ./ -type f -name "test.txt" | xargs sed -i ‘s#oldboy#oldgril#g‘
解法二: find ./ -type f -name "test.txt" -exec sed -i ‘s#oldboy#oldgril#g‘ {} \;
echo 123456|passwd --stdin oldboy
非交互方式修改密码
TIMEOUT=10: 连接的超时时间控制变量
HISTSIZE=5:命令行的历史记录数量变量
HISTFILESIZE=10:历史记录文件的命令数量变量(~/.bash_history)
本文出自 “许大树” 博客,请务必保留此出处http://abelxu.blog.51cto.com/9909959/1980408
以上是关于Linux学习笔记的主要内容,如果未能解决你的问题,请参考以下文章