linux学习笔记

2019-10-03  本文已影响0人  dancer4code

whoami当前用户名
who am i当前用户名 登陆的终端 当前的日期和时间
who哪些用户在系统上工作
w 比who更全面


users 所有用户
tty 目前登陆系统所使用的终端


uname --help查看所有uname命令命令
uname --version
uname [-a|--all]所有信息
uname [-n|--nodename]所使用系统的主机名
uname [-s|--kernel-name]操作系统名
uname [-r|--kernel-release]操作系统发布版本信息
uname [-v|--kernel-version]
uname [-m|--machine]machine hardware name
uname [-p|--processor]processor type
uname [-i|--hardware-platform]
uname [-o|--operating-system]


date显示系统日期和时间
cal 显示本月日历(calendar)
cal 7 2019 显示2019年7月日历
cal 2019显示2019年日历

clear清除终端窗口中的显示

不能用root用户直接telnet操作

#root用户提示符
$普通用户提示符
su命令(switch user)
su - root切换root用户
su -默认切换到root
exit退出超级用户


passwd修改密码命令password

whatis who 命令who的作用概括

man -f who

who --help

man who 查看who命令帮助man(manual手册)

info who 帮助更易理解


/etc系统主要配置文件
/tmp 临时文件
/boot 系统内核文件
/usr (unix sysytm resources)系统应用程序和与命令相关的系统数据
/dev 系统设备
Lost+Found系统异常崩溃错误 ,系统将一些遗失的片段放入其中,系统自动过生成。
/var存放系统运行时经常变化的文件,如log ,mail
/srv存放的所有与服务器相关的服务,即一些服务启动后,这些服务需要访问的目录。
/proc 虚拟文件系统,常驻内存中不占磁盘空间,存放系统运行所需的信息。
/lib 、usr/lib、usr/local/lib系统使用的函数库。程序运行中需要调用的库函数


cd命令(change directory)
cd进入目录
cd .当前目录
cd ..上一层目录
cd /根目录
cdcd ~cd $HOME切换到用户家目录
cd -切换到用户之前的工作目录


pwd
打印当前工作目录(print working directory

ls(list)
ls -a列举所有文件及文件夹包括隐藏-a(all)
ls -l 列出非隐藏文件细节-l(long)
ls -R列出本目录及子目录内容
ls -F 列出目录中文件(可执行文件(*),目录(/),超链(@))


mkdir(make directory)创建文件夹

> 重新创建创建文件

touch创建文件,如果不存在则创建,如果存在则更新时间戳

mkdir aa 创建文件夹aa
mkir -p aa/bb/cc不存在就创建
-p(parents)
>bb.txt每次都是重新创建创建文件bb.txt

ls -l /lib >cc.txt 创建文件cc.txt并把列举lib下所有文件信息写入

ls -lh文件大小变为熟悉方式-h(human)


cp(copy)

cp [options] [sources] [target]

cp -i|-r|-p|-f aa /home复制aa文件夹道home下
-i(interactive交互的)覆盖时有提示信息
-r(recursive递归的)复制该目录及该目录下的全部内容
-p(preserve维持)保留一些属性如时间戳
-f(force强制)存在即直接覆盖

普通用户cp -f强制覆盖
root用户cp -i提示信息


mv(move)移动目录及其目录下的内容

mv aa.txt bb.txt

rm(remove)删除

rm -i|-r|-f
rm -r aa删除aa及aa下的文件及目录
rmdir只能删除当前空文件夹


yum install vsftpd
安装vsftpd

service vsftpd status
systemctl status vsftpd 查看vsftpd服务状态

service sftpd start
systemctl enable vsftpd开启服务


ftp主机名|ip端口
ftp>
byequit退出

lcd查看和改变本地路径
cd ls查看改变linux路径

open主机|ip端口 建立一个新连接
切换模式
ascii纯文本模式
bin二进制模式

put filename传输一个文件
mput file1 file2 传输多个文件

prompt开启/关闭交互信息

get file
mget file1 file2从linux到windows


file查看文件类型,linux扩展名并不代表文件类型

file aa
filels -F类似,只不过更详细


cat浏览文件内容(concatenate

cat -A|-s|-b file1 file2 把file1和file连接到一起显示
-A显示换行符
-s压缩多个空行为一行
-b显示行号

cat>file
you can to create a new file to use cat > command
创建一个file并写入you can to create a new file to use cat > command 用ctrl+D保存结束


head -n|--line 10 file查看file的前10行
或者
head -10 file与上一样


tail -n|--line 10 file 查看文件最后10行
tail -10 file

tail -f|--follow file动态监控文件变化是显示在屏幕上
tail -f log监控log文件

wc (word count)查看文件行数、单词数、字符数
wc -l|-w|-c -l line -w word -c character


more如果一个文件较大用more查看
空格键:向下移动一屏幕
enter键:一次移动一行
B:向上移动一屏幕
H:帮助
/字符串:向下搜索这个字符串
N:字符串下一次出现
Q:退出more命令
V:在当前行启动vi


type -t|-a|-P ls
-t file为外部命令 alias为别名 builtin为bash内置命令
-a列出包含指定命令的命令包括别名
-P显示完整的文件名(外部命令),或者为内部命令


linux中的通配符

*:匹配0个或多个字符
:匹配一个字符
[a-z]:匹配a~z范围内的字符
[^a-z]:匹配a~z之外的字符
[abc]:匹配括号中的任意字符
[^abc]:匹配不包含括号内的字符


~ 符号
~后面没跟用户 代表当前用户家目录
~跟了用户名 这个用户的家目录


history查看执行命令的历史
!行号 执行该命 令

bash变量和{}用法

$PATH执行命令时要搜索的路径,即一个命令如果存储在PATH的预定义变量用户可以只输入变量名来执行命令
echo $PATH
$HOME用户家路径

{}
touch a.{b,c}.{txt,jpg}
则会创建 a.b.txt a.b.jpg a.c.txt a.c.jpg四个文件 其他命令使用{}也变得更方便。


讲一个命令的输出作为另一个命令的参数
hostname 主机名

echo "this ishostname"
echo "this is $(hostname)"
echo "Today isdate"
echo "Today is $(date)"


linux 命令数学运算

a=10;b=5,c=3

echo $[$a+$b]
echo $[$a-$b]
echo $[$a*$b]
echo $[$a/$b]
echo $[$a%$b]
echo $[$a**$c] 10的三次方


反斜杠\用法

\$a不作为一个变量输出$a
\*不作为通配符输出*
命令行最后使用\表示命令下一行继续。

单引号(')与双引号(")
1.单引号:禁止所有命令行扩展功能
2.禁止除下面意外的命令行扩展功能
美元符号$
倒引号 `
反斜杠 /
感叹号 !


文件描述符
fd(file descriptor)

0:标准命令输入 stdin
1:标准命令输出 stdout
2:标准命令错误 stderr

ls -l /dev/std* 文件描述符与缩写对应关系查询


使用find搜索文件和目录
find pathnames expressions actions
pathnames:搜索起始绝对路径或相对路径
expressions:由一个或多个选项第一的搜索条件 多个选项关系时逻辑与(and)
-name:文件名,使用通配符时最好放入""内
-size [+|-]n: 大小大于 +n 小于 -n 或等于 n ,n代表512字节大小数据块的个数。
-atime [+|-]n:查找访问时间超过天数 +n 低于 -n ,等于 n
-mtime [+|-]n:查找更新时间超过天数 +n 低于 -n ,等于 n
-user loginID:查找属于loginID(用户)的所有文件。
-type:查找么某一类文件如f(文件)或d(目录)
-perm:查找所有具有某些特定的访问许可位的文件

actions:当文件被定位之后需要进行的操作 默认将满足条件的所有路径打印在屏幕上。
-exec 命令 {} ; :在每一个所定位的文件上运行指定的命令。大括号{}表明文件名将传给前面表达式所表示的命令。
一个空格、一个反斜线和一个分号表示命令的结束。在反斜杠和大括号之间必须有一个空格。
-ok 命令 {} \;:在每个定位文件执行命令之前需要确认。实际就是-exec 命令的交互方式。
-print:打印路径,默认方式
-ls: 显示当前路径名和相关的统计信息,如i节点(inode)数、以K字节为单位的大小(尺寸)、保护模式、硬连接和用户。

find / -name "java*" -ls查询根路径下的所有java开头的文件或路径的详细信息


将输出重定向到文件中
>:覆盖原来的内容。
>>:在原文件之后追加内容。

切换普通用户演示
find /etc -name passwd 1>stdout.txt
相同
find /etc -name passwd >stdout.txt

find /etc -name passwd 2>errout.txt输出错误信息到errout.txt

find /etc -name passwd >allout.txt 2>&1标准输出和错误输出合并到一个文件
find /etc -name passwd &>allout.txt&代表了所有文件描述符号


输入重定向及tr命令
tr (translate):转换、压缩和/或删除来自标准输入的字符并将结果写到标准输出上
tr命令不接受文件名形式的参数,该命令要求他的输入被重定向为某个地方。

aa.txt
内容AAAAA

tr 'A-Z' 'a-z' <aa.txt >bb.txt替换文件aa.txt中的大写字母为小写字母到bb.txt

windows 换行(回车符"\r"+换行符("\n"))
linux 换行(换行符("\n"))

tr -d "\r" <aa.txt>cc.txt删除(-d)回车符(\r)
tr命令的参数部分也是可以使用ascii码字符的八进制表示的数字如 \015 表示\r
man ascii查看ascii对应信息


cut 剪切命令

cut -f|-d|-d file
-f:字段(列)
-c:要剪切的字符
-d:字段分隔符(默认Tab)
cut -f3 bb.txt列出第三个字段
cut -f2 -d, bb.txt l列出第二个字段以,分隔符 默认分隔符Tab字符

cut -c1-3 bb.txt从第一个字符取到第三个字符(按行取)


paste 粘帖命令

user.txt
zlq,11,anhui
fsd,22,anhui
llx,33,fujian
koo,44,guangdong

[zlq@localhost test]$ cut -f1 -d, <user.txt >name.txt
[zlq@localhost test]$ ls
name.txt  user.txt
[zlq@localhost test]$ cat name.txt 
zlq
fsd
ssh
jjg
[zlq@localhost test]$ cut -f2 -d, <user.txt >age.txt
[zlq@localhost test]$ ls
age.txt  name.txt  user.txt
[zlq@localhost test]$ cat age.txt 
11
22
33
44
[zlq@localhost test]$ cut -f3 -d, <user.txt >addr.txt
[zlq@localhost test]$ ls
addr.txt  age.txt  name.txt  user.txt 
[zlq@localhost test]$ cat addr.txt 
anhui
anhui
hebei
beijing

[zlq@localhost test]$ paste name.txt addr.txt >nameaddr.txt
paste name.txt addr.txt >>nameaddr.txt区别
[zlq@localhost test]$ ls
addr.txt  age.txt  nameaddr.txt  name.txt  user.txt
[zlq@localhost test]$ cat nameaddr.txt 
zlq anhui
fsd anhui
ssh hebei
jjg beijing

col将tab替换成空格

[zlq@localhost test]$ cat -A user1.txt 
zlq^I11^Ianhui$
fsd^I22^Ianhui$
ssh^I33^Ihebei$
jjg^I44^Ibeijing$
[zlq@localhost test]$ col -x <user1.txt>user2.txt
[zlq@localhost test]$ cat -A user2.txt 
zlq     11      anhui$
fsd     22      anhui$
ssh     33      hebei$
jjg     44      beijing$

sort命令进行排序

sort [options] [filename]
-r: 反向排序(降序) reverse
-f:忽略字符大小写 folds
-n:以数字顺序进行排序 numeric
-u:去掉重复行 unique
-t: -tc表示以字符c作为分隔符
-k: kN表示按第N个字段排序 k N1,N2先按N1排序,如果重复按N2排序

sort -r name.txt

uniq命令去掉文件中相邻的重复行

-c:行前显示该行出现的次数
-d:只显示重复行
-i:忽略字符大小写
-u:只显示出现一次的行。

sort -cid aa.txt 忽略大小写显示重复行。

管道(|)操作

命令1|命令2|.....
命令1的输出作为命令2的输入

cut -f1 -d: /etc/passwd |sort -r |more 查看linux系统所有用户名

[root@localhost test]# ls
1.txt  3.jpg  4.txt  4.zip
[root@localhost test]# cat>delete_lists
1.txt
3.jpg
4.txt
4.zip
[root@localhost test]# cat delete_lists 
1.txt
3.jpg
4.txt
4.zip
[root@localhost test]# cat delete_lists |xargs rm -f
[root@localhost test]# ls
delete_lists

cat命令列出delete_lists文件名 xargs命令将由管道得来的文件名转换成rm -f的参数列表

使用tee命令分流输出
cut -f1 -d: /etc/passwd |tee passwd.cut |sort -r |tee passwd.sort |more

mail 发送电子邮件
mail -s "hello"用户或邮箱
-s subject

ls -l |mail -s "list all" root列出本目录下的文件发送给root用户

上一篇下一篇

猜你喜欢

热点阅读