Linux学习之路 -- 常用命令和各种总结(不断补充完善)

※、常用命令:

ls | wc -l    #统计当前目录下文件数(不含子目录内文件)
ld -d  dirname #仅列出目录,不显示目录下的文件
pwd -P  #显示当前目录所在实际路径,非链接路径
du -sch *   #显示当前目录下各个文件或目录(不含子目录)的大小,以及总大小
df -h   #显示磁盘空间信息

※、查看最近登录用户信息和IP地址: last -f /var/log/wtmp
※、显示日期 : date 格式化日期 date ‘+%Y-%m-%d %H:%M:%S’
或 : date ‘+%F %T’
显示当月日历 : cal
显示指定月份日历: cal 5 2016
※、命令行下进入计算器: bc –仅支持quit命令退出
scale=2 –指定小数位2位,Linux计算器默认仅输出整数,用scale调整小数位
10%3 –取余数,仅在输出整数时有效
※、查看命令帮助: man [command] 如: man date
※、/etc/profile 和 ~/.bash_profile 和 ~/.bashrc 的区别:
/etc/profile用于整个系统所有用户,
~/.bash_profile, ~/.profile和~/.bashrc 用于各个用户,这里的”~”符号就是各当前用户的$HOME
~/.bash_profile 和 ~/.profile 只在登陆时读取一次。
~/.bashrc 每次都读取

 ~/.bash_profile 和 ~/.profile 的区别在于,bash 只读取~/.bash_profile;而对于 ~/.profile 来说,不光bash, 其他shell 也读 ~/.profile

执行顺序为: /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

※、改变文件的权限
方式一、
1) 更改文件\目录权限: chmod 777 filename
其中第一位数字标识文件所有者的权限;第二位为文件所属组的权限,第三位为其他用户
数字表示的权限:r(读) - 4 w(写) - 2 x(执行) - 1
2) 更改文件所属组: chgrp grpname filename
3) 更改文件所有者: chown user filename
4) 更改文件所有者和群组:chown user:users filename
以上命令带参数 -R时,表示同时更改子目录的权限。
方式二、
a - 所有用户 u - 文件所属用户 g - 组内用户 o - 其他用户 以上可组合使用

chmod u=rwx,go=rx filename  --更改文件权限为所有者rwx,组内用户和其他用户rx
chmod a+w filename  --为所有用户增加对filename文件的 w 权限
chmod a- w filename  --为所有用户去除对filename的 w 权限
chmod a=rw  filename  --将filename权限设置为所有用户可rw

※、CP命令: 复制文件到目标位置:

 $> cp file1 /tmp/file1   --普通复制,默认覆盖,同时更改文件属性(命令操作者用户属性)
 $> cp -i file1 /tmp/file1 --复制时,如果目标位置存在该文件,会询问是否覆盖 y-是 n-否
 $> cp -a file1 /tmp/file1 --复制文件的所有属性,所属用户、所属组、创建时间等
 $> cp -r ./dir1/  ../dir2/ --复制目录

※、显示文件内容到控制台:
1) cat filename –正向输出文件内容
cat命令参数详解:

cat -n filename  --输出行号,包括空行
cat -b filename  --输出非空白行行号
cat -A filename  --输出特殊字符,如行尾显示$
cat -T filename  --将[Tab]以 ^I  显示出来
cat -v filename  --列出一些看不出来的特殊字符

2) tac filename –反向输出
3) nl filename –输出文件内容,同时显示行号
nl命令详解:

nl -b a filename  --输出内容和行号
nl -b t filename  --输出内容和行号,空白行不显示行号(默认值)
nl -n ln filename  --行号靠左显示
nl -n rn filename  --行号靠右显示
nl -n rz filename  --行号靠右显示,且左补0
nl -n rz -w 2 filename  --行号靠右显示,且左补0,但行号只占2位

4) more filename –一页一页显示文件内容(仅支持向后输出)
more命令详解:

more等待输入:
空格  --下翻一页
Enter  --下翻一行
:f  --立即显示当前文件名和显示的行数
q  --退出more不再显示文件内容
5) less filename  --与more类似,但支持往前查看([PageUp/PageDown])
6) head -n 2 filename  --只查看文件的前2行
    head -n -2 filename  --不显示文件后2行
7) tail -n 2 filename  --只查看文件的最后2行
8) head -n 4 filename | tail -n 2   --取文件的第3到4行
9) od filename  --显示二进制文件内容

※、查看文件修改时间

ls -lrt --time=atime  --查看文件最后被读取时间(cat/vi/more等命令)
ls -lrt --time=ctime  --查看文件权限或属性的变更时间
ls -lrt   --默认显示mtime,即内容被更改时间
touch命令会更改文件的时间属性:
touch filename --不存在时会创建空文件,存在时会修改文件所有时间为当前系统时间

※、文件的隐藏属性:
查看文件的隐藏属性:

lsattr filename

为文件增加保护(仅限于root执行):

chatrr +i filename  --为文件增加保护,不能被任何用户(包括root自己)更改、删除
chattr +a filename  --文件只允许增加数据(仅echo 'a'>>filename方式),不允许修改、删除。

※、find查找文件

find . -name filename  --根据文件名,在目标路径(包含子目录)中精确查找
find . -name 'filename*'  --根据文件名模糊查找
find . -size +500c  --查找目标路径中大于500b的文件
find . -size +500k  --查找目标路径中大于500Kb的文件
find . -type f  --查找目标路径中正常文件(除目录、链接等文件外)
find . -type d  --查找目标路径中目录文件
find . -mtime +4  --查找大于等于5天前有更改的文件
find . -mtime -4  --查找距当前4天内有更改的文件
find . -mtime 4  --查找距当前第4-5天内有更改的文件
find . -user username  --查找username用户的文件

※、查看linux文件系统(FileSystem)类型:

 file -s /dev/sda1

※、sed文本内容替换命令

sed '/text/d' filename  --删除包含'text'内容的整行,并输出到屏幕(文件内容不改变)
sed -i '/text/d' filename  --直接删除文件包含'text'内容的整行
sed 's/text/replace/g' filename  --替换文件中'text'为'replace',并输出到屏幕
sed -i 's/text/replace/g' filename  --直接替换文件中'text'为'replace'

※、bash字符串,单双引号区别:
单引号(”):单引号中任何字符都原样输出,不作任何转换,单引号中不能引用其他变量,
转义符无效,且单引号字符串中不能再出现单引号
双引号(”“): 双引号中可以使用变量或转义符
※、获取字符串长度:

name="Tom"
echo ${#name}    #3
echo $(echo ${name} | wc -L)   #3

※、数组

arr=("Tom" 'Jim' 15)   #数组定义
echo ${arr[@]}   #读取数组所有元素
echo ${arr[1]}    #根据下标读取数组元素,下标从0开始
echo ${#arr[@]}   #获取数组长度
echo ${#arr[1]}     #获取数组元素的长度

※、函数 , shell函数返回值只能返回整数值
[root@#localhost ~]# vim test.sh

#!/bin/bash
function fun(){
echo "This is parameter 1: $1"
echo "This is parameter 2: $2"
}
fun $1 $2

[root@#localhost ~]# sh ./test.sh 10 20

※、Linux用户管理
添加用户:useradd
eg:

useradd -d /home/test -m -g root -s /bin/bash test
-c  添加注释
-d  指定用户主目录,如目录不存在,可指定-m创建该目录
-g  指定用户所属用户组
-G  指定用户所属附加组
-s  指定用户shell
-u  指定用户号,如果有-o选项,可以重复使用其他用户的用户号

※、脚本开机运行
需要开机运行的脚本加入/etc/rc.d/rc.local中,同时rc.local和脚本需要有可执行权限
※、history显示最近执行过的1000条命令
history -c 清空历史命令
显示命令执行时间:.bash_profile中加入:HISTTIMEFORMAT=”%Y-%m-%d %H:%M:%S ”
soruce .bash_profile
history n 显示最近执行的n条命令
!!运行上一次执行的命令
!n 运行history显示的第n条命令
※、磁盘管理:
列出硬盘和分区信息: fdisk -l
新加入的硬盘做分区: 1、fdisk /dev/sdb1 然后选择n(增加分区),在选择p(主分区),输入1,
回车后输入w保存。
2、格式化增加的分区:mkfs.ext4 /dev/sdb1
3、挂载硬盘:mount /dev/sdb1 /data01
卸载硬盘: umount /data01
设置硬盘开机自动挂载:如果使用UUID,则通过命令’blkid /dev/sdb1’获取磁盘UUID,
然后在/etc/fstab中加入:
UUID=e8a4d42c-d259-4cd3-85bc-e73091edb1ef /data01 xfs defaults 0 0
※、shell编程if判断(加!表示取反)
格式:
if [ 条件 ]; then
执行语句
else
执行语句
fi
条件表达式:

if [ -e file ] 如果文件file存在
if [ -f file ]  如果文件file存在(改文件为一般文件,非设备文件或目录)
if [ -d dir ]  如果目录dir存在
if [ -s file ]  如果文件file存在且非空(大小不为0)
if [ -r file ]  如果文件file存在且可读
if [ -w file ]  如果文件file存在且可写
if [ -x file ]  如果文件file存在且可执行

数字类型变量比较:

if [ $a -eq $b ]  如果a == b
if [ $a -ne $b ]  如果a != b
if [ $a -ge $b ]  如果a >= b
if [ $a -gt $b ]  如果a > b
if [ $a -le $b ]  如果a <= b
if [ $a -lt $b ]  如果a < b

字符串表达式:

if [ $a = $b ]  如果两个字符串相同
if [ $a != $b ] 如果两个字符串不相同
if [ -n $str ]  如果字符串非空,返回0(true)
if [ $str ]  如果字符串非空
if [ -z $str ]  如果字符串空

逻辑与(-a)、或(-o)判断
( [[ ]]中>、<用于字符串比较,按照asci字符顺序比较大小,如2>10返回true):
expr1: (a > b and a < c)

if (( $a > $b )) && (( $a < $c ))

if [[ $a > $b ]] && [[ $a < $c ]]

if [ $a -gt $b -a $a -lt $c ]

expr2: ( a > b 或 a > c)

if (( $a > $b )) || (( $a > $c ))

if [[ $a > $b ]] || [[ $a > $c ]]

if [ $a -gt $b -o $a -gt $c ]

※、grep命令
grep -v “test” 匹配除”test”以外的内容
※、printf和echo区别

printf输出默认不换行,且可以使用变量替换:
a="Linux"
printf 'Hi %s' $a   输出 Hi Linux
echo 'Hi %s' $a   输出 Hi %sLinux
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值